ss2tf
将状态空间表示形式转换为传递函数
说明
示例
质点-弹簧系统
一维离散时间震荡系统由单位质点 通过一根单位弹性常量弹簧连接到墙壁构成。传感器以 Hz 对质量的加速度 取样。
生成 50 个时间样本。定义采样间隔 。
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1);
振荡器可以通过状态空间方程描述。
其中 是状态向量, 和 分别是质点的位置和速度,而矩阵
A = [cos(dt) sin(dt);-sin(dt) cos(dt)]; B = [1-cos(dt);sin(dt)]; C = [-1 0]; D = 1;
系统使用正方向的单位冲激进行刺激。使用该状态空间模型计算系统从全零的初始状态开始的时间演进。
u = [1 zeros(1,N-1)]; x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end
以时间函数形式绘制质量的加速度。
stem(t,y,'filled') xlabel('t')
使用传递函数 H(z) 过滤输入以计算时间依赖加速度。绘制结果。
[b,a] = ss2tf(A,B,C,D); yt = filter(b,a,u); stem(t,yt,'filled') xlabel('t')
系统的传递函数包含一个解析式:
使用表达式过滤输入。绘制响应。
bf = [1 -(1+cos(dt)) cos(dt)]; af = [1 -2*cos(dt) 1]; yf = filter(bf,af,u); stem(t,yf,'filled') xlabel('t')
所有这三种情况下的结果都相同。
双体振荡器
理想的一维振荡系统由位于两面墙壁间的两个单位质点 和 组成。每个质点通过一根单位弹性常量弹簧连接到最近的墙壁。另外一根弹簧连接这两个质点。传感器以 Hz 的频率对 和 (质点的加速度)采样。
将总测量时间指定为 16 秒。定义采样间隔 。
Fs = 16; dt = 1/Fs; N = 257; t = dt*(0:N-1);
系统可以由状态空间模型描述
其中 是状态向量, 和 分别是第 个质点的位置和速度。输入向量 ,输出向量 。状态空间矩阵为
连续时间状态空间矩阵为
表示合适大小的单位矩阵。
Ac = [0 1 0 0; -2 0 1 0; 0 0 0 1; 1 0 -2 0]; A = expm(Ac*dt); Bc = [0 0; 1 0; 0 0; 0 1]; B = Ac\(A-eye(4))*Bc; C = [-2 0 1 0; 1 0 -2 0]; D = eye(2);
第一个质点 接收正向的单位冲激。
ux = [1 zeros(1,N-1)]; u0 = zeros(1,N); u = [ux;u0];
使用该模型计算系统从全零的初始状态开始的时间演进。
x = [0 0 0 0]'; y = zeros(2,N); for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
以时间函数形式绘制两个质点的加速度。
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
将系统转换为其传递函数表示形式。求得对第一个质点的正单位冲激刺激的系统响应。
[b1,a1] = ss2tf(A,B,C,D,1); y1u1 = filter(b1(1,:),a1,ux); y1u2 = filter(b1(2,:),a1,ux);
绘制结果。传递函数提供与状态空间模型相同的响应。
stem(t,[y1u1;y1u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
系统将重置为其初始配置。现在,其他质点 接收正向单位冲激。计算该系统的时间演进。
u = [u0;ux]; x = [0;0;0;0]; for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
绘制加速度。将交换各个质点的响应。
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
求得对第二个质点的正单位冲激刺激的系统响应。
[b2,a2] = ss2tf(A,B,C,D,2); y2u1 = filter(b2(1,:),a2,ux); y2u2 = filter(b2(2,:),a2,ux);
绘制结果。传递函数提供与状态空间模型相同的响应。
stem(t,[y2u1;y2u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
输入参数
A
— 状态矩阵
矩阵
状态矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则 A
为 n×n。
数据类型: single
| double
B
— 输入-状态矩阵
矩阵
输入-状态矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则 B
为 n×p。
数据类型: single
| double
C
— 状态-输出矩阵
矩阵
状态-输出矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则 C
为 q×n。
数据类型: single
| double
D
— 馈通矩阵
矩阵
馈通矩阵,指定为矩阵。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则 D
为 q×p。
数据类型: single
| double
ni
— 输入索引
1 (默认) | 整数标量
输入索引,指定为一个整数标量。如果方程组具有 p 个输入,请使用带尾部参数 ni
= 1, …, p 的 ss2tf
计算对应用于第 ni
个输入的单位冲激的响应。
数据类型: single
| double
输出参数
b
— 传递函数分子系数
向量 | 矩阵
传递函数分子系数,以向量或矩阵的形式返回。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则对于每个输入,b
为 q×(n + 1)。系数按 s 或 z 的幂的降序返回。
a
— 传递函数分母系数
向量
传递函数分母系数,以向量的形式返回。如果方程组具有 p 个输入和 q 个输出并且由 n 个状态变量描述,则对于每个输入,a
为 1×(n + 1)。系数按 s 或 z 的幂的降序返回。
详细信息
传递函数
对于离散时间系统,状态空间矩阵通过
与状态向量 x、输入 u 和输出 y 相关。
传递函数是方程组的冲激响应的 Z 变换。可以按状态空间矩阵表示形式将其表示为
对于连续时间方程组,状态空间矩阵通过
与状态向量 x、输入 u 和输出 y 相关。
传递函数是方程组的冲激响应的拉普拉斯变换。可以按状态空间矩阵表示形式将其表示为
版本历史记录
在 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)