Matlab中控制系统常见数学模型的计算
%% 系统的输入输出模型:根据系统的输入输出信号或其变换式所表示的模型,可分为:微分方程模型、传递函数模型、频率特性模型
%% 求解传递函数——tf(num,den)
num = [2 3 1];%分子
den = [1 3.2 2.4 0];%分母
sys1 = tf(num,den);
%% 利用传递函数的零极点增益形式建立模型
z = [-0.5 -1];%传递函数的零点
p = [0 -1.2 -2];%传递函数的极点
k = 2;%增益
sys2 = zpk(z,p,k);
%% 若传递函数的分子分母为多个多项式相乘,则
num = conv([1 2 3],[1 0.1 0.2]);%%传递函数的分子
den = conv([1 1.1 2.3],[1 4 1]);%传递函数的分母
sys3 = tf(num,den);
%% 频率响应
a = [2 3 1];%传递函数的分子
b = [1 3.2 2.4];%传递函数的分母
w = logspace(-1,1);%生成对数空间的向量,且为频率
% freqs(a,b,w);
%% 状态空间模型
% dotx = A * x + B * u; 变量解析:x:状态向量;y:输出向量;u:系统输入/控制向量
% y = C * x + D * u; 变量解析:A:系统矩阵;B:输入矩阵;C:输出矩阵;D:前向反馈矩阵
A = [0 1 0;0 0 1;-1 -2 -3];
B = [0;0;1];
C = [1 0 0];
D = 0;
sy1 = ss(A,B,C,D);%建立状态空间模型
sy2 = tf(sy1);% 转换成传递函数模型
sy3 = ss(sy2);% 转换回状态空间模型
sy4 = zpk(sys1);% 转换成零极点形式
sy5 = ss(sy4);% 转换回状态空间模型
% sy1、sy3、sy5并不完全相同,这是由于控制系统传递函数的状态空间不具有唯一性;
% 传递函数只能表征系统的可控部分不能表征系统的不可控部分;
% 状态空间模型既能表征系统的可控部分,又能表征系统的不可控部分;
step(sy1)%表征系统阶跃响应函数:可从该曲线中分析系统的超调量、调节时间、峰值时间、上升时间