【问题标题】:How to correct "Error in default port dimensions function of S-function 'X'.function doesnt fully set the dimensions of output port x" under Simulink?如何在 Simulink 下更正“S-Function 'X' 的默认端口尺寸函数错误。函数没有完全设置输出端口 x 的尺寸”?
【发布时间】:2019-01-03 13:21:43
【问题描述】:

我是一名硕士生,我正在学习电气工程 - 控制系统。 我(由我的主管教授)分配给我模拟反馈线性化控制方法,所以我选择了一篇论文(附在下面)并为它制作了一个 simulink 模型。问题是当我尝试运行模拟时,它给出了错误: S-Function 'FeedbackLinearization/Controller' 的默认端口尺寸函数错误。此函数未完全设置输出端口 2 的尺寸 所以我打开信号尺寸显示来检查信号尺寸并检查我是否犯了错误。我发现“e”信号有问题。它应该是一个 3*1 向量,表示跟踪 x-y-z 的误差。如您所见,多路复用器的输出维度为 3,所以一切正常。问题是当信号到达一个模块(MATLAB 函数或导数)时,它的维度会减少到一。我已经附上了我的 slx 模型,所以请你好心看看。 我已经检查了 Controller Matlab func 和 Plant Matlab func 并且它们工作正常。 请帮我。这对我来说太重要了!感谢您的时间和考虑!

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

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

【问题讨论】:

    标签: matlab controls simulink


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多