我是一名硕士研究生,正在学习电气工程控制系统。我(被我的导师教授)指派去模拟一种反馈线性化控制方法,所以我选择了一篇论文(附在下面),并为它制作了一个simulink模型。问题是当我试图运行模拟时,它给出了错误: Error in default port dimensions of S-function 'FeedbackLinearization/Controller‘。此功能不能完全设置输出端口2的尺寸,因此我打开了信号尺寸显示,以检查信号尺寸,并检查我是否出错。我发现'e‘信号有问题。它应该是一个3*1的向量,表示跟踪x-y-z的误差。如你所见,多路复用器的输出维度是3,所以一切都是正常的。问题是,当信号到达一个块(MATLAB函数或导数)时,它的维数就会降到1。我附上了我的slx模型,所以请您友好地看一看。我已经检查了Controller Matlab func和Plant Matlab func,它们工作正常。请帮帮我。这对我来说太重要了!感谢您的时间和考虑!
论文:http://uupload.ir/view/z9mg_aminfl.pdf/
潜在的问题出现在这里:http://uupload.ir/files/jc3k_capture.jpg
发布于 2019-01-03 21:44:32
在模型中,当存在反馈循环时,如果输入大小取决于输出大小,则有时无法成功传播维度。这个模型可能属于那个类别。为了解决这种情况,应该在知道尺寸的位置插入"Signal Specification“块。例如,在mux的输出端。
https://www.mathworks.com/help/simulink/slref/signalspecification.html?s_tid=doc_ta
如果在Mux的输出处插入此块,则可以将标注参数设置为3,并将所有其他参数设置为默认值。
https://stackoverflow.com/questions/54023144
复制相似问题