Matlab 为什么我会犯这个错误?(状态空间)

Matlab 为什么我会犯这个错误?(状态空间),matlab,matrix,simulink,state-space,Matlab,Matrix,Simulink,State Space,有人能给我解释一下我必须在我的模型中改变什么吗 错误信息非常清楚,不言自明。出现错误的原因是B的维度为4x2,并且您尝试执行B*Xr,其中Xr的维度为1。根据你的公式,你需要做B*UwhereU=[dXr/dt;Xr]。但是,如果可以避免,在Simulink中使用导数块绝对不是一个好主意,尤其是对于阶跃输入。想一想你想如何表达你的状态空间的输入。这个问题真的是关于编程的吗?或者它是如此的普通,以至于它可以属于你想要的任何东西……对不起,我想我可以在这个论坛上提出这样的问题……你可以在问答网站上提

有人能给我解释一下我必须在我的模型中改变什么吗


错误信息非常清楚,不言自明。出现错误的原因是
B
的维度为
4x2
,并且您尝试执行
B*Xr
,其中
Xr
的维度为1。根据你的公式,你需要做
B*U
where
U=[dXr/dt;Xr]。但是,如果可以避免,在Simulink中使用导数块绝对不是一个好主意,尤其是对于阶跃输入。想一想你想如何表达你的状态空间的输入。

这个问题真的是关于编程的吗?或者它是如此的普通,以至于它可以属于你想要的任何东西……对不起,我想我可以在这个论坛上提出这样的问题……你可以在问答网站上提出清晰而简洁的问题,但不是像这样非常广泛和不明确的问题。发生了什么?你为什么要改变什么?你想达到什么目标?有错误信息吗?那些截图有点难看。请尽量只包含必要的信息和所有必要的信息。如果你点击图片,你可以看到你所要求的一切。(图片不难看到,有一个缩放按钮)谢谢你的回答。现在可以了。你能建议我如何避免衍生块吗?如果否。我应该使用Matlab而不是Simulink吗?现在我有两个输入U=[dXr/dt;Xr]。也许我可以避免速度dXr/dt而不考虑?阶跃输入的导数是脉冲函数,这在数值上不容易。你能使用不同的输入或重写你的状态空间方程来避免阶跃输入的导数吗?