如何在离散时间系统中使用tf2ss()?

时间:2012-05-24 08:25:38

标签: function matlab transfer state-space

A具有离散时间传递函数,

  

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

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

  

Num = [b 0 ,b 1 ];
  Den = [a 0 1 ,a 2 ];
  T s = 0.01; %采样期`

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

3 个答案:

答案 0 :(得分:2)

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

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

您也可以参考official tf2ss documentation进行确认。

答案 1 :(得分:2)

在连续和离散模型中,传递函数到状态空间转换是相等的。但是,如果您希望系统中的矩阵是离散的,那么您可能希望执行类似这样的操作

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

答案 2 :(得分:1)

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

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