matlab状态空间法建模,以及系统稳定性分析

clc;
clear all;
close all;
%% 状态空间法建模
m=5;k=2;c=0.1;
A=[0 1;-k/m,-c/m];
B=[0;1/m];
C=[1 0];
D=0;
sys1=ss(A,B,C,D)
step(sys1)
%% 模型转换
sys2=tf(sys1)
sys3=zpk(sys2) %原式无法因式分解
[z,p,k]=ss2zp(A,B,C,D)
[num,den]=ss2tf(A,B,C,D)

matlab状态空间法建模,以及系统稳定性分析_第1张图片


%% 对不同惯性环节分析
n=4;
T_in=[1 2 10 0];
figure
for i=1:n
    subplot(2,2,i)
    num=1;
    if i<=3
        den=[T_in(i),1];
        sys=tf(num,den)
        step(sys,30);
    else
        fplot(@(t)heaviside(t),'r-o')
    end
end

matlab状态空间法建模,以及系统稳定性分析_第2张图片
奈奎斯特稳定判据

设G(s)为系统开环传递函数,在G(s)中取s=jω得到系统开环频率响应G(jω)

当参变量ω 由0变化到+∞时,可在复数平面上画出 G(jω)随ω的变化轨迹,称为奈奎斯特图。奈奎斯特稳定判据的基本形式表明,如果系统开环传递函数G(s)在s复数平面的虚轴jω上既无极点又无零点,那么有 Z=P-N

P是开环传递函数在右半s平面上的极点数。

N是当角频率由ω=0变化到ω=+∞时 G(jω)的轨迹沿逆时针方向围绕实轴上点(-1,j0)的次数。

奈奎斯特稳定判据还指出:Z=0时,闭环控制系统稳定;Z≠0时,闭环控制系统不稳定。

%% 对系统稳定性的分析
%{
1、利用 pzmap( ) 绘制连续系统的零极点图;
2、利用 tf2zp( ) 求出系统零极点;
3、利用 roots( ) 求分母多项式的根来确定系统
的极点。
4、画出系统开环奈氏图,根据奈氏曲线对(-1,j0)
点的包围情况和开环右极点的个数判断闭环稳定
性。
%}
figure
subplot(1,3,1);
sys=tf(1,[1 1.8 1.8 1]);
pzmap(sys);
grid on
subplot(132)
nyquist(sys)
grid
subplot(1,3,3);
sys1=feedback(sys,1); % (Gk,H,-1)(开环传递函数,反馈函数,负反馈(可省略))
step(sys1,30)
grid

matlab状态空间法建模,以及系统稳定性分析_第3张图片
P=0 N=0 Z=0

sys =
 
              1
  -------------------------
  s^3 + 1.8 s^2 + 1.8 s + 1
  
  系统稳定
k=100;
z=-5;
p=[2,-8 -20];
GH=zpk(z,p,k);
subplot(131)
pzmap(GH,'r')
grid
subplot(132)
nyquist(GH,'k')
grid
subplot(133)
step(feedback(GH,1),'b')
grid

matlab状态空间法建模,以及系统稳定性分析_第4张图片
P=1 N=1 Z=0
系统稳定

%%
% step:单位阶跃响应
% impulse:单位脉冲响应
% heaviside:单位阶跃函数(赫维赛德函数)
% dirac:单位脉冲函数 (狄拉克函数)
figure
fplot(@(t)dirac(t),'r-o')
%%

matlab状态空间法建模,以及系统稳定性分析_第5张图片

你可能感兴趣的:(matlab)