如何将 tf2ss() 与离散时间系统一起使用



A 有一个离散的时间传递函数,

H(z-1) = B(z-1)/A(z-1) = (b 0 + b 1 z-1

)/ (a0 + a 1z-1+ a2z-2)。

其分子和分母在代码中表示为:

数字 = [b0, b1];
Den = [a0, a1, a2];
Ts = 0.01;% 采样周期'

如何使用tf2ss()来获取ABCD状态空间矩阵?
我是否像在连续时间系统中那样直接调用tf2ss()
或者是否有任何其他内置的 Matlab 函数用于此目的?

也许我在你的问题中遗漏了一些东西,但你可以像这样简单地使用它:

[A, B, C, D] = tf2ss(Den, Num);

您也可以参考官方tf2ss文档进行确认。

连续和离散模型中,将函数传递到状态空间转换是相等的。但是,如果你想让系统中的矩阵离散地表示,你可能想做这样的事情。

S = ss(tf(Num,Den,T))

首先,您应该使用以下方法构建连续状态空间模型:sys_state_space = tf2ss(a,b)之后你应该使用这个:sys_ss_discrete = c2d(sys_state_space,T*-采样*,'zoh')

然后,您就有了系统的状态空间离散模型。

最新更新