Matlab 如何在Simulink中制作线性传递函数?

Matlab 如何在Simulink中制作线性传递函数?,matlab,function,transfer,simulink,Matlab,Function,Transfer,Simulink,基本上我需要在Simulink中制作k*(T*s+1)传递函数块。 在Matlab中,这很容易,我只是让分母低于分子,一切都很好。但是当我试图用Simulink的块做同样的事情时,它给了我一个错误。[denomenator不应低于分子。 那么你认为呢?你所描述的是包含一个纯导数成分(kTs)。数值解算器无法处理这些组件,大自然也无法实现它们。直观地说,Simulink中的纯导数块在非常小的时间步长下对数值错误的响应会非常大。如果您对Bode图感到满意,导数组件在高频下会有任意大的响应 当使用导数

基本上我需要在Simulink中制作k*(T*s+1)传递函数块。 在Matlab中,这很容易,我只是让分母低于分子,一切都很好。但是当我试图用Simulink的块做同样的事情时,它给了我一个错误。[denomenator不应低于分子。
那么你认为呢?

你所描述的是包含一个纯导数成分(
kTs
)。数值解算器无法处理这些组件,大自然也无法实现它们。直观地说,Simulink中的纯导数块在非常小的时间步长下对数值错误的响应会非常大。如果您对Bode图感到满意,导数组件在高频下会有任意大的响应

当使用导数分量时,通常会在响应曲线中选择一个中断频率。这相当于在导数操作之前对输入应用低通滤波器。如果低通滤波器频率比系统动力学快得多,则会在所使用的频率下获得导数行为虽然仍然有一个可实现的系统

因此,要在Simulink中处理此问题,您可以自己修改传递函数,或者使用一个具有导数意识的Simulink块,例如“导数”块或“PID控制器”块。(Simulink应在幕后工作以实现此功能。)

例如,将方程式改写为:

kTs + k
使用四个块,如下所示:

---+---GAIN=kT----DERIVATIVE----SUM--
   |                             |
   +---GAIN=K--------------------+

您所描述的是包含纯导数成分(
kTs
)。数值解算器无法处理这些组件,大自然也无法实现它们。直观地说,Simulink中的纯导数块在非常小的时间步长下对数值错误的响应会非常大。如果您对Bode图感到满意,导数组件在高频下会有任意大的响应

当使用导数分量时,通常会在响应曲线中选择一个中断频率。这相当于在导数操作之前对输入应用低通滤波器。如果低通滤波器频率比系统动力学快得多,则会在所使用的频率下获得导数行为虽然仍然有一个可实现的系统

因此,要在Simulink中处理此问题,您可以自己修改传递函数,或者使用一个具有导数意识的Simulink块,例如“导数”块或“PID控制器”块。(Simulink应在幕后工作以实现此功能。)

例如,将方程式改写为:

kTs + k
使用四个块,如下所示:

---+---GAIN=kT----DERIVATIVE----SUM--
   |                             |
   +---GAIN=K--------------------+

实际上,我已经尝试过导数和增益的并行连接,我尝试过不带I部分的PID。但所有这些,当我试图在matlab中检查时,给出了不同的bode图。它与s=tf('s');H=k*(T*s+1)不同;所以这是不对的。或者,我需要做什么才能使Simulink中分子比分母低的传递函数?实际上我已经尝试了导数和增益的并行连接,我尝试了没有I部分的PID。但是所有这些,当我试图在matlab中检查时,给了我不同的bode图。这与s=tf('s');H=k*(T*s+1);所以这是不对的。或者,我需要做什么才能使Simulink中分子比分母低的传递函数?