1

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 )。

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

数 = [b 0 , b 1 ];
den = [a 0 , a 1 , a 2 ];
Ts = 0.01 % 采样周期`

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

4

3 回答 3

2

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

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

于 2012-07-22T18:30:09.087 回答
2

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

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

您也可以参考官方tf2ss文档来确认这一点。

于 2012-05-24T09:14:24.273 回答
1

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

那么你就有了系统的状态空间离散模型。

于 2017-07-23T12:48:31.423 回答