Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Simulink 参数设置无效';增益';_Simulink - Fatal编程技术网

Simulink 参数设置无效';增益';

Simulink 参数设置无效';增益';,simulink,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, u

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

“Ex3\U控制器/增益”中参数“增益”的设置无效。引起 作者: 使用hw12时出错(第57行) 评估“Ex3\u控制器/增益”中的参数“增益”时出错 使用hw12时出错(第57行) 未定义的函数或变量“u”。 使用hw12时出错(第57行) 变量“u”不存在。 建议的行动: •将文件加载到“基本工作区”修理 •创建一个新变量。-修理

更新:从
gain
块中删除
u
项后,我收到一个不同的错误:

使用hw12时出错(第57行) 端口宽度或尺寸错误。“Ex3_控制器/增益”的输出端口1是一个包含4个元素的一维向量。 使用hw12时出错(第57行) 端口宽度或尺寸错误。“Ex3_Controller/Model1”的输入端口1是一个包含1个元素的一维向量


增益
块获取输入信号的值并将其乘以增益值。在您的情况下,增益为
K
,这就是您需要放入增益块的全部内容(即,移除
*u
,Simulink会为您处理该问题。)


完成此操作后,您得到的维度错误是因为控制器要求
u
为标量,但您正在向其中输入一个4元素向量。您需要更改
增益
块的适当参数,以便它执行矩阵乘法,将4×1矩阵
K
和(矩阵)与4元素“out”信号相乘以生成标量。

感谢您的响应!从增益块中删除
*u
后,我收到一个新错误。我已经上传了控制器中使用的系统模型(如果有帮助的话),并且用我在执行soI时收到的新错误更新了我的问题。删除
*u
后,我需要将运算类型更改为矩阵乘法。执行此操作后,增益块会自动添加
*u
,使其看起来就像是原始增益块一样。非常感谢。