如何在 Simulink 下更正"Error in default port dimensions function of S-function 'X'.function doesnt fully



我是一名硕士生,正在学习电气工程-控制系统。我(由我的导师教授)被指派模拟反馈线性化控制方法,所以我选择了一篇论文(附在下面),并为其制作了一个simulink模型。问题是,当我试图运行模拟时,它会给出错误:S函数"反馈线性化/控制器"的默认端口尺寸函数出错。此功能不能完全设置输出端口2的尺寸所以我打开信号尺寸显示器来检查信号尺寸,并检查我是否犯了错误。我发现"e"信号有问题。它应该是指示跟踪x-y-z的误差的3*1矢量。正如你所看到的,mux的输出维度是3,所以一切都很好。问题是当信号到达一个块(MATLAB函数或导数)时,它的维度会降到1。我已经附上了我的slx模型,所以请你好心看看。我已经检查了控制器Matlab函数和工厂Matlab函数,它们运行良好。请帮帮我。这对我来说太重要了!感谢您的时间和考虑!

论文:http://uupload.ir/view/z9mg_aminfl.pdf/

潜在的问题出现在这里:http://uupload.ir/files/jc3k_capture.jpg

在模型中,当存在反馈循环时,如果输入大小取决于输出大小,则有时维度无法成功传播。此型号可能属于该类别。为了解决这种情况,您应该在您知道尺寸的位置插入一个"信号规格"块。例如,在多路复用器的输出端。

https://www.mathworks.com/help/simulink/slref/signalspecification.html?s_tid=doc_ta

如果在已圈出的Mux的输出处插入此块,则可以将标注参数设置为3,并将所有其他参数设置为默认值。

最新更新