参数 'Gain' 的设置无效
Invalid setting for parameter 'Gain'
我正在尝试创建一个简单的控制器,但一直收到增益块的错误,指出存在未定义的变量 'u'。我不太了解 Simulink,我现在只是想复制一个旧的家庭作业问题。我在这里提供的代码是作为解决方案提供的,但是当我尝试 运行 它时仍然收到错误。关于可能发生的事情的任何见解?
I= 10; Wl= 5; k= 2; J= 1;
%set initial conditions
thetaIC= 0; phiIC= 0; x0= zeros(4,1);
%fix theta= 0, check output
[xe, ue]= trim('Ex3_System',x0,0,x0,1)
[A,B,~,~]= linmod('Ex3_System', xe, ue)
%choose your desired poles
p= linspace(-1.2,-1.5,4)
%recall the minus sign
K= -acker(A,B,p)
%perturb initial condition
thetaIC= deg2rad(5);
sim('Ex3_Controller');
Invalid setting in 'Ex3_Controller/Gain' for parameter 'Gain'. Caused
by:
Error using hw12 (line 57)
Error evaluating parameter 'Gain' in 'Ex3_Controller/Gain'
Error using hw12 (line 57)
Undefined function or variable 'u'.
Error using hw12 (line 57)
Variable 'u' does not exist.
Suggested Actions:
• Load a file into 'Base Workspace'. - Fix
• Create a new variable. - Fix
更新:从 gain
块中删除 u
项后,我收到了一个不同的错误:
Error using hw12 (line 57)
Error in port widths or dimensions. Output port 1 of 'Ex3_Controller/Gain' is a one dimensional vector with 4 elements.
Error using hw12 (line 57)
Error in port widths or dimensions. Input port 1 of 'Ex3_Controller/Model1' is a one dimensional vector with 1 elements.
Gain
块获取输入信号的值并将其乘以增益值。在你的情况下,增益是 K
,这就是你需要放入增益块的全部内容(即删除 *u
,Simulink 会为你处理。)
一旦完成,您得到的维度错误是因为您的控制器要求 u
是一个标量,但您将一个 4 元素向量输入其中。您需要更改 Gain
块的适当参数,以便它进行矩阵乘法,将 4×1 矩阵 K
和(矩阵)与 4 元素相乘 "out" 产生标量的信号。
我正在尝试创建一个简单的控制器,但一直收到增益块的错误,指出存在未定义的变量 'u'。我不太了解 Simulink,我现在只是想复制一个旧的家庭作业问题。我在这里提供的代码是作为解决方案提供的,但是当我尝试 运行 它时仍然收到错误。关于可能发生的事情的任何见解?
I= 10; Wl= 5; k= 2; J= 1;
%set initial conditions
thetaIC= 0; phiIC= 0; x0= zeros(4,1);
%fix theta= 0, check output
[xe, ue]= trim('Ex3_System',x0,0,x0,1)
[A,B,~,~]= linmod('Ex3_System', xe, ue)
%choose your desired poles
p= linspace(-1.2,-1.5,4)
%recall the minus sign
K= -acker(A,B,p)
%perturb initial condition
thetaIC= deg2rad(5);
sim('Ex3_Controller');
Invalid setting in 'Ex3_Controller/Gain' for parameter 'Gain'. Caused by: Error using hw12 (line 57) Error evaluating parameter 'Gain' in 'Ex3_Controller/Gain' Error using hw12 (line 57) Undefined function or variable 'u'. Error using hw12 (line 57) Variable 'u' does not exist. Suggested Actions: • Load a file into 'Base Workspace'. - Fix • Create a new variable. - Fix
更新:从 gain
块中删除 u
项后,我收到了一个不同的错误:
Error using hw12 (line 57) Error in port widths or dimensions. Output port 1 of 'Ex3_Controller/Gain' is a one dimensional vector with 4 elements. Error using hw12 (line 57) Error in port widths or dimensions. Input port 1 of 'Ex3_Controller/Model1' is a one dimensional vector with 1 elements.
Gain
块获取输入信号的值并将其乘以增益值。在你的情况下,增益是 K
,这就是你需要放入增益块的全部内容(即删除 *u
,Simulink 会为你处理。)
一旦完成,您得到的维度错误是因为您的控制器要求 u
是一个标量,但您将一个 4 元素向量输入其中。您需要更改 Gain
块的适当参数,以便它进行矩阵乘法,将 4×1 矩阵 K
和(矩阵)与 4 元素相乘 "out" 产生标量的信号。