《信号与系统》学习笔记——第八章(补充部分)
利用 MATLAB 进行系统的状态变量分析
微分方程到状态方程的转换
MATLAB 提供的函数 tf2ss
,可将描述系统的微分方程转换为相应的状态方程,函数调用形式如下:
其中 num
, den
分别表示系统函数 H(s) 的分子和分母多项式系数矩阵。A ,B ,C ,D 分别为状态方程和输出方程的系数矩阵。
eg:
描述因果 LTI 系统的微分方程为
试求该系统的状态方程。
由
可得
所以系统的状态方程和输出方程分别为
MATLAB代码:
%例子
[A,B,C,D] = tf2ss([1 4],[1 5 10])
运行结果如下:
系统函数矩阵的计算
利用 MATLAB 提供的函数 ss2tf
,可以根据系统的状态方程和输出方程计算出相应的系统函数矩阵 H(s) ,函数调用形式如下:
其中 A ,B ,C ,D 分别为状态方程和输出方程中的系数矩阵。k 表示函数 ss2tf
计算与第 k 个输入相关的系统函数,即 H(s) 的第 k 列。num
表示 H(s) 第 k 列的 m 个元素的分子多项式,den
表示 H(s) 公共的分母多项式
eg:
利用 MATLAB 计算例 8-5 的系统函数矩阵 H(s) 。
MATLAB代码如下:
%例子
A = [2 3; 0 -1];
B = [0 1; 1 0];
C = [1 1; 0 -1];
D = [1 0; 1 0];
[B1, A1] = ss2tf(A, B, C, D, 1);
[B2, A2] = ss2tf(A, B, C, D, 2);
运行结果:
所以系统函数矩阵 H(s) 为
利用 MATLAB 求解连续时间系统状态方程
连续 LTI 系统状态方程的一般形式为
可用函数 lsim
获得状态方程的数值解。lsim
的基本调用形式为
其中:
sys
—— 连续系统模型,由函数ss(A, B, C, D)
获得;t
—— 输入信号的时间样点;x(:, n)
—— 系统第 n 个输入在 t 时刻的值;q0
—— 系统的初始状态;tout
—— 输出信号的时间样点(有可能与输入 t 不同);y(:, n)
—— 系统的第 n 个输出在tout
时刻的值;q(:, n)
—— 系统的第 n 个状态在tout
时刻的值
eg:利用 MATLAB 计算例 8-5 的数值解。
MATLAB 程序如下:
%例子
clear;
A = [2 3; 0 -1];
B = [0 1; 1 0];
C = [1 1; 0 -1];
D = [1 0; 1 0];
q0 = [2 -1];
dt = 0.01;
t = 0:dt:2;
x(:,1) = ones(length(t), 1);
x(:,2) = exp(-3*t)';
sys = ss(A, B, C, D);
[y, t, q] = lsim(sys, x, t, q0);
subplot(2,1,1);
plot(t, y(:,1), 'r'); ylabel('y1(t)');
xlabel('t');
subplot(2,1,2);
plot(t, y(:,2)); ylabel('y2(t)');
xlabel('t');
运行结果如下:
利用 MATLAB 求解离散时间系统状态方程
离散 LTI 系统状态方程的一般形式为
可用函数 lsim
获得离散时间状态方程的数值解。用 lsim
求解离散系统的状态方程的基本调用形式为
其中:
sys
—— 离散系统模型,由函数ss(A, B, C, D, [])
获得;x(:, n)
—— 系统第 n 个输入;q0
—— 系统的初始状态;k
—— 输出样点;y(:, n)
—— 系统的第 n 个输出;q(:, n)
—— 系统的第 n 个状态。- eg:
MATLAB 程序如下:
%例子
clear;
A = [0 1; -1/6 5/6];
B = [0; 1];
C = [-1 5; 2 0];
D = zeros(2, 1);
q0 = [2; 3];
N = 10;
k = 0:N-1;
x = ones(1, N);
sys = ss(A, B, C, D, []);
[y, k, q] = lsim(sys, x, [], q0);
subplot(1, 2, 1);
y1 = y(:, 1)';
stem(k, y1 - 12);
xlabel('k');
ylabel('y_{1}[k] - 12');
subplot(1, 2, 2);
y2 = y(:, 2)';
stem(k, y2 - 6);
xlabel('k');
ylabel('y_{2}[k] - 6');
运行结果如下:
结果如图所示。为了清楚地显示出系统输出 y1[k] 与 y2[k] 的变化规律,在画图时幅度上分别减去了常数 12 和 6。