基本上我需要在Simulink中制作k *(T * s + 1)传递函数块。 在Matlab中,它很简单,我只是将分母设置得低于分子,一切都很好。但是当我试图用Simulink的块做同样的事情时,它给了我一个错误。 [denomenator不应低于分子。 你觉得怎么样?
答案 0 :(得分:2)
您所描述的内容包含纯衍生组件(kTs
)。数值求解器不能与这些组件一起工作,自然无法实现它们。直观地说,Simulink中的纯派生块在非常小的时间步长上会对数值误差产生不合理的大响应。如果您对Bode图很满意,则衍生组件在高频下具有任意大的响应
使用导数分量时,通常会在响应曲线中选择中断频率。这相当于在微分运算之前对输入应用低通滤波器。如果低通滤波器频率足够快于系统动态,那么您将获得您感兴趣的频率的导数行为,同时仍具有可实现的系统。
因此,要在Simulink中处理此问题,您可以自己修改传递函数,或者使用其中一个衍生感知的Simulink块,例如"衍生物"阻止或#34; PID控制器"块。 (然后Simulink应该在幕后工作以完成这项工作。)
例如,将等式重写为:
kTs + k
并使用四个块,如下所示:
---+---GAIN=kT----DERIVATIVE----SUM--
| |
+---GAIN=K--------------------+