tf2ss
将传递函数滤波器参数转换为状态空间形式
说明
示例
将传递函数转换为状态空间形式
以如下由传递函数描述的系统为例:
使用 tf2ss
将其转换为状态空间形式。
b = [0 2 3; 1 2 1]; a = [1 0.4 1]; [A,B,C,D] = tf2ss(b,a)
A = 2×2
-0.4000 -1.0000
1.0000 0
B = 2×1
1
0
C = 2×2
2.0000 3.0000
1.6000 0
D = 2×1
0
1
质点弹簧系统
一维离散时间震荡系统由单位质点 通过一根单位弹性常量弹簧连接到墙壁构成。传感器以 Hz 对质量的加速度 取样。
生成 50 个时间样本。定义采样间隔 。
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1); u = [1 zeros(1,N-1)];
系统的传递函数包含一个解析式:
.
系统使用正方向的单位冲激进行刺激。使用传递函数计算系统的时间演进。绘制响应。
bf = [1 -(1+cos(dt)) cos(dt)]; af = [1 -2*cos(dt) 1]; yf = filter(bf,af,u); stem(t,yf,'o') xlabel('t')
求系统的状态空间表示。计算从全零初始状态开始的时间演进。将其与传递函数预测进行比较。
[A,B,C,D] = tf2ss(bf,af); x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end hold on stem(t,y,'*') hold off legend('tf','ss')
输入参数
b
— 传递函数分子系数
向量 | 矩阵
传递函数分子系数,指定为向量或矩阵。如果 b
是矩阵,则 b
的每行对应于系统的一个输出。
对于离散时间系统,
b
包含按 z 的降幂排序的系数。对于连续时间系统,
b
包含按 s 的降幂排序的系数。
对于离散时间系统,b
的列数必须等于 a
的长度。如果这两个数字不同,通过填充零使它们相等。您可以使用函数 eqtflength
来完成这项任务。
a
— 传递函数分母系数
向量
传递函数分母系数,指定为向量。
对于离散时间系统,
a
包含按 z 的降幂排序的系数。对于连续时间系统,
a
包含按 s 的降幂排序的系数。
输出参量
A
— 状态矩阵
矩阵
状态矩阵,以矩阵形式返回。如果系统由 n 个状态变量描述,则 A
为 n×n 矩阵。
数据类型: single
| double
B
— 输入-状态矩阵
矩阵
输入-状态矩阵,以矩阵形式返回。如果系统由 n 个状态变量描述,则 B
为 n×1 矩阵。
数据类型: single
| double
C
— 状态-输出矩阵
矩阵
状态-输出矩阵,以矩阵形式返回。如果系统有 q 个输出,并且由 n 个状态变量描述,则 C
为 q×n 矩阵。
数据类型: single
| double
D
— 馈通矩阵
矩阵
馈通矩阵,以矩阵形式返回。如果系统有 q 个输出,则 D
为 q×1 矩阵。
数据类型: single
| double
详细信息
传递函数
tf2ss
将给定系统的传递函数表示的参数转换为等效状态空间表示的参数。
对于离散时间系统,状态空间矩阵通过以下方程与状态向量 x、输入 u 和输出 y 相关:
传递函数是方程组的冲激响应的 Z 变换。可以按状态空间矩阵表示形式将其表示为
对于连续时间系统,状态空间矩阵通过以下方程与状态向量 x、输入 u 和输出 y 相关:
传递函数是方程组的冲激响应的拉普拉斯变换。可以按状态空间矩阵表示形式将其表示为
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)