参数“增益”的无效设置

时间:2018-11-28 05:00:37

标签: simulink

我正在尝试创建一个简单的控制器,但是不断收到有关增益块的错误消息,指出存在未定义的变量'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');

enter image description here enter image description here

  

参数“ Gain”的“ Ex3_Controller / Gain”中的设置无效。造成的   通过:       使用HW12时出错(第57行)       评估“ Ex3_Controller / Gain”中的参数“ Gain”时出错           使用HW12时出错(第57行)           未定义的函数或变量“ u”。               使用HW12时出错(第57行)               变量“ u”不存在。               建议的动作:                   •将文件加载到“基础工作区”。 -修复                   •创建一个新变量。 -修复

更新:从u块中删除了gain一词后,我收到了另一个错误:

  

使用硬件12时出错(第57行)       端口宽度或尺寸错误。 “ Ex3_Controller / Gain”的输出端口1是具有4个元素的一维向量。       使用HW12时出错(第57行)       端口宽度或尺寸错误。 “ Ex3_Controller / Model1”的输入端口1是具有1个元素的一维向量。

1 个答案:

答案 0 :(得分:2)

Gain块获取输入信号的值,然后将其乘以增益值。在您的情况下,增益为K,这就是您需要放入增益块的全部操作(即删除*u,Simulink会为您处理)。

完成后,得到的尺寸错误是因为控制器要求u为标量,但是您要向其中输入4元素向量。您需要更改Gain块的适当参数,以便进行矩阵乘法,将4×1矩阵K并(矩阵)将其与4元素“输出”信号相乘产生标量。