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()
获取A
,B
,C
和D
状态空间矩阵?
我是否像在连续时间系统中那样直接拨打tf2ss()
?
或者是否有任何其他内置的Matlab功能用于此目的?
答案 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')
然后你有了系统的状态空间离散模型。