MATLAB实验报告

 《M ATL ABk /Simulink 与控制系统仿真》实验报告

 专

 业:

 班

 级:

 学

 号:

  姓

 名:

  指导教师:

  实验1、 MA T LA B /Si mu lin k仿真基础及控制系统模型得建立

 一、实验目得 1、掌握 MATLAB/Simulink 仿真得基本知识; 2、熟练应用MATLAB 软件建立控制系统模型. 二、实验设备 电脑一台;MATLAB 仿真软件一个 三、实验内容

 1、熟悉 MATLAB/Smulink 仿真软件。

 2、一个单位负反馈二阶系统,其开环传递函数为。用 Simulink建立该控制系统模型,用示波器观察模型得阶跃响应曲线,并将阶跃响应曲线导入到 MATLAB 得工作空间中,在命令窗口绘制该模型得阶跃响应曲线。

  图 1 系统结构图

 图 错误! ! 未定义书签。示波器输出结果图 3、某控制系统得传递函数为,其中。用 Simulink建立该控制系统模型,用示波器观察模型得阶跃响应曲线,并将阶跃响应曲线导入到 MATLAB得工作空间中,在命令窗口绘制该模型得阶跃响应曲线。

 图 2 系统结构图

  图 错误! ! 未定义书签。

 示波器输出结果图

  图 错误! ! 不能识别的开关参数。

 工作空间中仿真结果图形化输出 4、一闭环系统结构如图所示,其中系统前向通道得传递函数为,而且前向通道有一个[—0、2,0、5]得限幅环节,图中用 N 表示,反馈通道得增益为1、5,系统为负反馈,阶跃输入经 1、5 倍得增益作用到系统.用 Simulink建立该控制系统模型,用示波器观察模型得阶跃响应曲线,并将阶跃响应曲线导入到 MATLAB 得工作空间中,在命令窗口绘制该模型得阶跃响应曲线。

  图 错误! ! 不能识别的开关参数。

 系统结构图

  图 错误! ! 不能识别的开关参数。

 示波器输出结果 实验 2

 M AT LAB/S imu u lin n k在控制系统建模中得应用

 一、 实验目得 1、掌握 MATLAB/Simulink 在控制系统建模中得应用; 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、给定RLC网络如图所示。其中, ( )iu t 为输入变量,0( ) u t 为输出变量。求解这个系统得传 递 函 数 模 型 , 零 极 点 增 益 模 型 以 及 状 态 空 间 模 型 ( 假 设11 R   ,21 R   , 1 C F  , 1 L H  )。

 传递函数模型 程序代码如下 :

 clear all;

  %清除工作空间得变量

 num=[0,1];

  %定义分子多项式

 den=[1 2 2];

  %定义分母多项式

 sy_tf=tf(num,den);

 %建立传递函数模型

 [z,p,k]=tf2zp(num,den)

  % 从传递函数模型获取系统得零极点增益

 sy_zpk=zpk(z,p,k);

 %建立系统得零极点增益模型

 [A,B,C,D]=zp2ss(z,p,k);

  % 从零极点增益模型获取系统得状态空间模型

 sys_ss=ss(A,B,C,D)

  %建立系统得状态空间模型

 step(sy_tf)

 %求 解系统得阶跃响应

 grid on;

  %添加栅格

 程序运行结果 z =Empty matrix: 0—by—1 p =-1、0000 + 1、0000i

  —1、0000 — 1、0000i k =1 a = x1

  x2

 x1

 -2

 —1、414

 x2

  1、414

  0

 b = u1

 x1

  1

 x2

  0

 c = x1

  x2

 y1

  0

 0、7071 d = u1

 y1

 0

 Continuous-time model、

  图 错误! ! 不能识别的开关参数。

 系统得阶跃响应曲线 2、已知某双环调速得电流环系统得结构图如图所示。试采用Simulink 动态结构图求其线性模型。

  图 错误! ! 未定义书签。simulink中得系统动态模型 将图 2 模型存为“ Samples_4_14、mdl ”文件 在MATLAB 命令窗口运行以下命令,得到一个线性状态空间模型(A,B,C,D). [A,B,C,D]=linmod("Samples_4_14’);

 % 提取simulink模型得状态空间模型 输出结果如下 A =1、0e+003 *

 -0、0781

  0

  0

  0

 1、7964

 0

  -0、5000

  0

  0

  0

  0、0141

  0

  -0、5000

  0

  0

 0

 0、5000

  —0、5000

  0

  0

 0

 0、1600

  —0、1600

 0、0250

  —0、0599

 B =0

 1

 0

 0

 0 C = 195、3125

  0

  0

  0

  0 D = 0 在MATLAB 命令窗口运行以下命令 [num,den]=ss2tf(A,B,C,D);

  %将状态空间模型转换为传递函数模型 pritfsys(num,den,’s’);

 % 以传递函数模型形式显示出来 输出结果:

 num/den =

 4、5475e-013 s^4 + 5、8208e-011 s^3 + 56137724、5509 s^2 + 32454622005、9881 s

 + 2192879865269、464

 —-— - ——------—------— - —-—-——— - --——---——- -——---——-—————-———————-——-—-—--————--—

 s^5 + 1138、0052 s^4 + 392683、3832 s^3 + 43221369、7605 s^2 + 3506268712、5749 s

 + 9、4013 验 实验 3

 M AT LAB /Simu link 在时域分析法中得应用 一、 实验目得 1、掌握时域分析中 MATLAB/Simulink 函数得应用; 2、掌握 MATLAB/Simulink 在稳定性分析中得应用。

 二、 实验 设备 电脑一台;MATLAB 仿真软件一个

 三、实验内容 1、某随动系统得结构如图所示。利用MATLAB 完成如下工作:(1)对给定得随动系统建立数学模型;(2)分析系统得稳定性,并且绘制阶跃响应曲线;(3)计算系统得稳态误差;(4)大致分析系统得总体性能,并给出理论上得解释。

  图 错误! 不能识别的开关参数。

 系统得结构图 解:利用MATLAB 求解得基本步骤如下 1.求取系统传递函数 clc;

 clear all;

 num1=[20];den1=[1 2 0];

 sys1=tf(num1,den1);

 %二阶系统得传递函数

 num2=[0、1 0];den2=[0 1];

 sys2=tf(num2,den2);

 %微分环节传递函数

 sys_inner=feedback(sys1,sys2);

 %内环反馈得传递函数

 sys_outer=feedback(sys_inner,1)

 %外环反馈得传递函数

 20 --—--—--——---- s^2 + 4 s + 20 得到系统得传递函数

 2。进行稳定性分析 den=[1 4 20];

 roots(den)

 %求闭环系统特征多项式得根

 pzmap(sys_outer);

 %利用pzmap命令绘制系统得零极点图

 grid on; 程序运行结果 ans =

  —2、0000 + 4、0000i

  -2、0000 - 4、0000i 由结果可知,系统 特征根都具有负实部,因此闭环系统就是稳定得。

 系统零极点分布图如图 2 所示

 图 2 系统零极点分布图 3.求阶跃响应 num=[20];den=[1 4 20];

 [y,t,x]=step(num,den)

  %计算闭环系统得阶跃响应

 plot(x,y);

 %绘制阶跃响应曲线

 grid on; 如下图3,横坐标表示响应时间,纵坐标表示系统输出

 图 错误! 未定义书签。系统阶跃响应曲线

 图 错误! 未定义书签。系统阶跃响应曲线 4.分析系统得响应特性 %计算系统得超调量 y_stable=1;

 %阶跃响应得稳态值 max_response=max(y);

 %闭环系统阶跃响应得最大值 sigma=(max_response—y_stable)

  %阶跃响应得超调量

 程序运行结果 sigma =0、2076 系统稳态误差为 0,波形图如下

 图 错误! 未定义书签。

 系统误差曲线图 %计算系统得上升时间 for i=1:length(y)

  %遍历响应曲线

 if y(i)〉y_stable

  %如果某个时刻系统得输出值大于稳态值

 break;

  %循环中断

 end

 end

 tr=x(i)

  %计算此时对应得时间,就就是阶跃响应得上升时间

  %计算系统得峰值时间

 [max_response,index]=max(y);

 %查找系统阶跃响应得最大值

 tp=x(index)

 %计算此时对应得时间,就就是阶跃响应得峰值时间 %计算系统得调整时间—---—-——-》取误差带为2%

 for

 i=1:length(y)

  %遍历响应曲线

 if max(y(i:length(y)))<=1、02*y_stable

  %如果当前响应值在误差带内

 if min(y(i:length(y)))>=0、98*y_stable

 break;

 %循环退出

 end

 end

 end

 ts=x(i)

  %计算此时对应得时间,就就是阶跃响应得调整时间 程序运行结果 tr =

 0、5245 tp =

 0、7730 ts =

 1、8773 即上升时间为 0、52秒, 峰值时间 0、77 秒,并且系统在经过 1、88 秒后进入稳态。

 2、已知某二阶系统得传递函数为,(1)将自然频率固定为,,分析变化时系统得单位阶跃响应;(2)将阻尼比固定为,分析自然频率变化时系统得阶跃响应(变化范围为 0、1~1)。

 (1)解:

 利用MATLAB建立控制系统得数学模型,并且同时显示 =1,取不同值时得阶跃响应曲线 clc;

 clear;

 t=linspace(0,20,200); %设置仿真时间 omega=1;

  %设置二阶系统得自然频率 omega2=omega^2;

 %计算自然频率得平方 zuni=[0,0、1,0、2,0、5,1,2,3,5];

 num=omega2;

 for k=1:8

 den=[1 2*zuni(k)*omega omega2];

 sys=tf(num,den);

 y(:,k)=step(sys,t);

 end

 figure(1);

 plot(t,y(:,1:8));

 grid;

 gtext('zuni= 0");

 gtext(’zuni= 0、1’);

 gtext("zuni= 0、2’);

 gtext("zuni= 0、5’);

 gtext(’zuni= 1");

 gtext("zuni= 2");

 gtext("zuni= 3");

 gtext(’zuni= 5");

  图 错误! 未定义书签。

 固定自然频率,阻尼比变化时系统得阶跃响应曲线 结论:当固定频率后,改变阻尼比,在<1 不会改变阶跃响应得震荡频率;而当>1时,阶跃响应曲线不再震荡,系统阻尼.

 (2)绘制=0、55,从 0、1 变化到 1 就是系统得阶跃响应曲线

 clc;

 clear;

 t=linspace(0,20,200); %设置仿真时间 zuni=0、55;

 %设定阻尼系数 omega=[0、1 0、2 0、4 0、7 1];

 %设定自然频率向量 omega2=omega、*2;

  % 计算自然频率得平方 for k=1:5

 %循环五次,分别计算在五种不同得自然频率下系统得阶跃响应

 num=omega2(k);

  den=[1 2*zuni*omega(k)

 omega2(k)];

 sys=tf(num,den);

 %系统传递函数

  y(:,k)=step(sys,t);

 %计算当前自然频率下,二阶系统得阶跃响应值 end

 figure(2);

 plot(t,y(:,1:5));

 % 在一幅图像上依次绘出上述 5 条阶跃响应曲线 grid;

 gtext("omega=0、1’);

 gtext(’omega=0、2’);

 gtext("omega=0、4");

 gtext('omega=0、7’);

 gtext("omega=1、0');

  图 错误! ! 未定义书签。

 固定阻尼系数,自然频率变化时系统得阶跃响应曲线

 结论:当自然频率从 0、1 变化到1时,系统震荡频率加快,上升时间减少,过渡过程时间减少;系统响应更加迅速,动态性能更好. 自然频率决定了系统阶跃响应得震荡频率. 验 实验 4

  MATLAB/S im ulin k在根轨迹分析法中应用 一、 实验目得 1、掌握 MATLAB/Simulink绘制根轨迹函数; 2、掌握 MATLAB/Simulink绘制根轨迹得方法. 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实 验内容 1、已知单位负反馈控制系统得开环传递函数。(1)画出这个系统得根轨迹;(2)确定使闭环系统稳定得增益值;(3)分析系统得阶跃响应性能;(4)利用rltool对系统得性能进行分析。

 解:利用 MATLAB 求解得基本步骤如下 1. 建立系统得数学模型 代码 clc;

 clear;

 num=[1 1];

 den=conv([1 0],conv([1 -1],[1 4]));

 sys=tf(num,den)

  %控制系统得开环传递函数模型

 程序运行结果 Transfer function:

  s + 1 -——-———-——------- s^3 + 3 s^2 - 4 s 结果输出就是用来绘制部分根轨迹得那部分传递函数 2。绘制根轨迹图

  rlocus(sys);

 %绘制系统得 根轨迹曲线

 grid on;

 title(' 根轨迹图

 "); 得到系统根轨迹如图1

  图 错误! 不能识别的开关参数。系统根轨迹图 利用“rlocfind“ 命令计算选定点处得增益与其她闭环极点。

 [k,poles]=rlocfind(sys)

 %计算选定点处得增益与其她闭环极点 运行结果

 k =

 6、2809 poles =

  —2、9488

 —0、0256 + 1、4592i

 —0、0256 - 1、4592ii 当增益K > 6时,闭环系统得极点都位于虚轴得左部,处于稳定。

 3.使用 rltool 进行分析 执行命令“ rltool(sys) “得到根轨迹分析界面图形,图2所示

  图 4 控制系统根轨迹分析与设计器 利用 rltool 进行工具分析系统得阶跃响应.设定系统增益为20,可得到如图3得结果

  分析,系统稳定,并且系统误差为0。系统得穿越频率为1、41,相角稳定裕度为17,剪切频率为1、38。

  图 错误! 未定义书签。

  K=20 时系统得阶跃响应

 实验5

  MATLAB/Sim ul in k在频域分析法中得应用 一、 实验目得 1、掌握 MATLAB 绘制伯德图与乃奎斯特曲线; 2、熟练应用MATLAB分析稳定裕度. 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、已知晶闸管—直流电机开环系统结构图如图所示。试用 Simulink 动态结构图进行频域分析并求频域性能指标。

 解:利用 simulink 求解步骤如下 步骤 1 在 simulink 中建立系统动态模型,如下图

 图表 错误! 不能识别的开关参数。

 系统动态模型图 步骤 2 求取系统得线性空间状态模型,并求取频域性能指标 在 MATLAB 运行以下命令 [A,B,C,D]=linmod("Samples_7_9");

 %提 取 simulin 系统得线性空间状态模型

 sys=ss(A,B,C,D);

 margin(sys);

  % 求取频域性能指标

  图表 错误! 未定义书签。

 系统得开环 bode 图与频域性能指标 从图中可以瞧出: 幅值裕度GM=26、4dB,穿越频率为152rad/sec 相位裕度PM=54deg,穿越频率为25、5rad/sec

 验 实验 6

 MATLA B_Simulink 在控制系统校正中得应用 一、 实验目得 1、掌握建立控制系统得数学模型及设计系统得串联校正装置;

 2、了解校正前后系统性能得比较。

 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、某单位负反馈控制系统得开环传递函数,设计一个串联得校正装置,使校正后得系统静态速度误差系数,相角裕度,增益裕量。

 解:求解步骤如下 步骤 1 计算得系统开环传递函数 步骤2 建立控制系统得数学模型 代码如下 clc;

 clear;

 num_open=[0 20];

 den_open=conv(conv([1 0],[1 1]),[1 2]);

 sys_open=tf(num_open,den_open)

 运行结果 Transfer function:

 20 —-——-————--—--——— s^3 + 3 s^2 + 2 s 步骤3 分析系统得动态特性

 [Gm,Pm,Wcg,Wcp]=margin(sys_open)

 %计算相角裕量与增益裕量

 margin(sys_open); 运行结果 Gm =

 0、3000 Pm =

 -28、0814 Wcg =

 1、4142 Wcp =

 2、4253 频率响应特性曲线如下

 图表 6 闭环系统得频率响应曲线 计算结果显示,未校正系统增益裕量只有-10、5,相角裕量为—28、0814,相角穿越频率为 1、4142,幅值穿越频率为 2、4253。系统尚不稳定需要串联校正环节。

 步骤 4 设计系统得串联校正装置 先设计止滞后环节。假定校正后得系统增益穿越频率为 1,并且取零极点之比为10,则滞后环节得传递函数为 %设计串联校正器得滞后环节 num_zhihou=[1 0、1];

 den_zhihou=[1 0、01];

 sys_zhihou=tf(num_zhihou,den_zhihou);

  %滞后环节得传递函数模型

 sys_new=sys_open*sys_zhihou

 %加入滞后环节后系统得开环传递函数

 margin(sys_new);

  %绘制加入滞后环节后系统得Bode曲线

 图表 错误! 未定义书签。

 加入滞后环节得系统频率响应曲线 根据滞后校正得出得结果,相应设计超前校正校正环节为,此时系统得频率响应如图表 3、 %设计串联校正器得超前环节 num_chaoqian=[1 0、5];

 den_chaoqian=[1 5];

 sys_chaoqian=tf(num_chaoqian,den_chaoqian);

 sys_new=sys_new*sys_chaoqian;

 margin(sys_new);

  图表 错误!。

 不能识别的开关参数。

 加入超前滞后校正环节后系统得频率响应曲线 从上图知,此时闭环系统得增益裕量为 13、3,相角裕量为 52、5,穿越频率为 1、37; %对比校正前后得系统频率响应 figure(1);

 bode(sys_open);

 hold on;

 bode(sys_new);

 gtext("校正前得’);gtext("校正后得");

 gtext('校正前得");gtext(’校正后得');

 grid on

  图表 错误! 未定义书签。

 系统校正前后不同得频率响应曲线 校正后得系统开环传递函数为 Transfer function:

  20 s ^2 + 12 s+1 —-—-—-—-———-—-—-—---—-——---——----— s^5+ 8、01 s^4+ 17、08 s^3 + 10、17s^2+0、1 s 步骤5 比较教正前后得系统性能 %系统校正前后得阶跃响应曲线 figure(2);

 step(feedback(sys_open,1));

 grid on;

 figure(3);

 step(feedback(sys_new,1));

 grid on;

  gtext("校正前得");gtext("校正后得’);

 grid on;

  图表 错误! 未定义书签。

 系统校正前得阶跃响应曲线

  图表 错误! 未定义书签。

 系统校正后得阶跃响应曲线 步骤6 采用 rltool工具进行校正分析

 使用命令 rltool(sys_open)校正结果如下图

  图表 错误! 未定义书签。

 利用 rltool 进行校正环节设计 验 实验 6

 MATLAB _S imulink 在控制系统校正中得应用 一、 实验目得 1、掌握建立控制系统得数学模型及设计系统得串联校正装置;

 2、了解校正前后系统性能得比较。

 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、某单位负反馈控制系统得开环传递函数,设计一个串联得校正装置,使校正后得系统静态速度误差系数,相角裕度,增益裕量。

 解:求解步骤如下 步骤 1 计算得系统开环传递函数 步骤 2 建立控制系统得数学模型 代码如下 clc;

 clear;

 num_open=[0 20];

 den_open=conv(conv([1 0],[1 1]),[1 2]);

 sys_open=tf(num_open,den_open)

 运行结果 Transfer function:

 20 -————-——-—-—--—-— s^3 + 3 s^2 + 2 s 步骤3 分析系统得动态特性 [Gm,Pm,Wcg,Wcp]=margin(sys_open)

 %计算相角裕量与增益裕量

 margin(sys_open); 运行结果 Gm =

 0、3000 Pm =

 -28、0814 Wcg =

 1、4142 Wcp =

 2、4253 频率响应特性曲线如下

 图表 错误! 未定义书签。

 闭环系统得频率响应曲线

 计算结果显示,未校正系统增益裕量只有—10、5,相角裕量为—28、0814,相角穿越频率为1、4142,幅值穿越频率为2、4253。系统尚不稳定需要串联校正环节. 步骤4 设计系统得串联校正装置 先设计止滞后环节。假定校正后得系统增益穿越频率为 1,并且取零极点之比为 10,则滞后环节得传递函数为 %设计串联校正器得滞后环节 num_zhihou=[1 0、1];

 den_zhihou=[1 0、01];

 sys_zhihou=tf(num_zhihou,den_zhihou);

  %滞后环节得传递函数模型

 sys_new=sys_open*sys_zhihou

 %加入滞后环节后系统得开环传递函数

 margin(sys_new);

  %绘制加入滞后环节后系统得Bode曲线

 图表 错误! 不能识别的开关参数。

 加入滞后环节得系统频率响应曲线 根据滞后校正得出得结果,相应设计超前校正校正环节为,此时系统得频率响应如图表 3、 %设计串联校正器得超前环节 num_chaoqian=[1 0、5];

 den_chaoqian=[1 5];

 sys_chaoqian=tf(num_chaoqian,den_chaoqian);

 sys_new=sys_new*sys_chaoqian;

 margin(sys_new);

  图表 错误! 未定义书签。

 加入超前滞后校正环节后系统得频率响应曲线 从上图知,此时闭环系统得增益裕量为 13、3,相角裕量为 52、5,穿越频率为 1、37; %对比校正前后得系统频率响应 figure(1);

 bode(sys_open);

 hold on;

 bode(sys_new);

 gtext('校正前得’);gtext("校正后得");

 gtext(’校正前得');gtext("校正后得’);

 grid on

  图表 错误! 未定义书签。

 系统校正前后不同得频率响应曲线 校正后得系统开环传递函数为 Transfer function:

  20 s ^2 + 12 s+1 -—-------——---—-———————-—-———--—-— s^5+ 8、01 s^4+ 17、08 s^3 + 10、17s^2+0、1 s 步骤5 比较教正前后得系统性能 %系统校正前后得阶跃响应曲线 figure(2);

 step(feedback(sys_open,1));

 grid on;

 figure(3);

 step(feedback(sys_new,1));

 grid on;

  gtext(’校正前得');gtext("校正后得');

 grid on;

  图表 错误! 未定义书签。

 系统校正前得阶跃响应曲线

  图表 错误! 未定义书签。

 系统校正后得阶跃响应曲线 步骤6 采用 rltool工具进行校正分析

 使用命令 rltool(sys_open)校正结果如下图

  图表 错误! 未定义书签。

 利用rltool 进行校正环节设计 验 实验 7

  MATLAB/ Sim ul ink 在非线性系统中得应用 一、 实验目得 1、掌握非线性系统阶跃响应得分析。

 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、给定如图所示得单位负反馈系统。在系统中分别引入不同得非线性环节(饱与、死区与磁滞),观察系统得阶跃响应,并且分析、比较不同得非线性环节对系统性能得影响。

 解:步骤 1,没有任何非线形环节得系统,其阶跃响应曲线如下图

  图表 错误! 不能识别的开关参数。

 未加入非线形环节得系统阶跃响应曲线 步骤 2 加入了饱与非线形环节得系统框图,饱与非线形环节得输出上限为 0、1,输出下限为—0、1。其阶跃响应曲线如下

  图表 错误! 不能识别的开关参数。

 加入饱与非线形环节得系统阶跃响应曲线 plot(tout1,out1);

  %绘制第一条 阶跃响应曲线

 hold on;

 %设定在同一幅图象上绘制多条曲线

 grid on;

 gtext(’0、05’);

 %为曲线添加标注

 plot(tout2,out2);

  %绘制第二条 阶跃响应曲线

 gtext(’0、1’);

 %为曲线添加标注

 plot(tout3,out3);

 %绘制第三条 阶跃响应曲线

 gtext(’0、2’);

 %为曲线添加标注

 plot(tout4,out4); %绘制第四条 阶跃响应曲线

 gtext('0、5’);

 %为曲线添加标注

  图表 错误! 未定义书签。

 加入不同饱与非线形环节时系统阶跃响应曲线 步骤 3

 在系统中引入死区非线形环节,系统框图如下

  图表 错误! 未定义书签。

 加入死区非线形环节得系统框图 plot(tout1,out1);

  %绘制第一条 阶跃响应曲线

 hold on;

 %设定在同一幅图象上绘制多条曲线

 grid on;

 gtext("0、2’);

 %为曲线添加标注

 plot(tout2,out2);

  %绘制第二条 阶跃响应曲线

 gtext(’0、5’);

 %为曲线添加标注

 plot(tout3,out3);

 %绘制第三条 阶跃响应曲线

 gtext(’1、0’);

 %为曲线添加标注

 plot(tout4,out4); %绘制第四条 阶跃响应曲线

 gtext('2、0’);

 %为曲线添加标注

  图表 错误! 不能识别的开关参数。

 加入死区非线形环节得系统阶跃响应曲线

  图表 6 加入不同死区环节时系统得阶跃响应曲线 结论:随着死区范围增加,系统开始响应阶跃输入信号得时刻也逐渐推迟 步骤 步骤 4 在系统引入死区单元与饱与单元,系统框图如下

 图表 7 同时系统引入死区单元与饱与单元得系统框图

  图表 错误! 不能识别的开关参数。

 同时系统引入死区单元与饱与单元得系统阶跃响应曲线 验 实验 8

 MATL AB/ Si muli nk 在离散控制系统中得应用 一、 实验目得 1、掌握离散系统阶跃响应得分析; 2、了解采样周期对离散系统稳定性得影响。

 二、 实验 设备 电脑一台;MATLAB 仿真软件一个 三、实验内容 1、给定单位负反馈离散控制系统,其采样周期为 1s,开环传递函数为与零阶保持器 ZOH 串联;同时,开环增益 k.求闭环系统稳定得条件,并且绘制k取不同值时闭环系统得阶跃响应曲线。

 解:步骤1:建立系统得数学模型,代码如下 clc;

 clear;

  %清除工作空间得所有变量

 Ts=1;

  %采样周期

 num=[1,1];

 den=[1,0,0];

 sys_continue=tf(num,den)

 %连续系统得传递函数

 sys_discrete=c2d(sys_continue,Ts,"zoh")

 %离散系统得传递函数

 sys_k=1;

 sys_open=sys_k*sys_discrete

  %系统得开环传递函数

 运行结果如下:

 Transfer function:

 1、5 z - 0、5 ------——-———— z^2 — 2 z + 1 Sampling time:

 1 步骤 2:绘制系统得根轨迹,确定闭环系统稳定 K 值范围 代码如下: figure(1); rlocus(sys_discrete); 运行结果如图所示:

 -1.5 -1 -0.5 0 0.5 1 1.5-1-0.8-0.6-0.4-0.200.20.40.60.81Root LocusReal AxisImaginary Axis 图表 错误! 不能识别的开关参数。

 离散控制系统得根轨迹图 由上图可知,0〈k〈2,为验证结论,绘制系统得幅频特性曲线与 Nyquist曲线,代码如下:

 %K=2时系统得频率特性曲线

 sys_k=2

 figure(2);

 margin(sys_k*sys_discrete);

 %绘制离散系统得bode图

 %K=2时系统得Nyquist曲线

 figure(3);

 [dnum,dden]=tfdata(sys_k*sys_discrete,’v’)

 %提取开环传递函数得零极点

 dnyquist(dnum,dden,Ts)

  %绘制离散系统得 Nyquist曲线

 grid on;

 运行结果如下图:

 离散控制系统得幅频特性曲线:

 020406080100Magnitude (dB)10-210-1100101-185-180-175-170-165-160Phase (deg)Bode DiagramGm = 2.01e-015 dB (at 3.14 rad/sec) ,

 Pm = InfFrequency

 (rad/sec) 图表 错误! 不能识别的开关参数。

 离散控制系统得幅频特性曲线 离散控制系统得 Nyquist 曲线:

 -1800 -1600 -1400 -1200 -1000 -800 -600 -400 -200 0-30-20-1001020300 dBNyquist DiagramReal AxisImaginary Axis 图表 错误! 不能识别的开关参数。

 离散控制系统得 Nyquist曲线 结论:当 k=2,系统处于临界稳定状态。系统稳定时 k 得取值范围为(0,2) 步骤 3:分析系统得阶跃响应代码如下 sys_k=1;

 figure(4);

 sys_close=feedback(sys_k*sys_discrete,1); %计算闭环系统得传递函数

 [dnumc,ddenc]=tfdata(sys_close,’v’);

 %提取闭环系统传递函数零极点

 dstep(dnumc,ddenc,25);

  %绘制闭环系统 阶跃响应曲线

 sys_k=2;

 figure(5);

 sys_close=feedback(sys_k*sys_discrete,1); %计算闭环系统得传递函数

 [dnumc,ddenc]=tfdata(sys_close,’v’);

  %提取闭环系统传递函数零极点

 dstep(dnumc,ddenc,25);

 %绘制闭环系统 阶跃响应曲线

 sys_k=3;

 figure(6);

 sys_close=feedback(sys_k*sys_discrete,1); %计算闭环系统得传递函数

 [dnumc,ddenc]=tfdata(sys_close,’v’); %提取闭环系统传递函数零极点

 dstep(dnumc,ddenc,25);

  %绘制闭环系统 阶跃响应曲线

 运行结果如图:

 0 5 10 15 20 2500.20.40.60.811.21.41.61.8Step ResponseTime (sec)Amplitude 图表 错误! 不能识别的开关参数。

 K=1时,闭环系统得阶跃响应曲线 0 5 10 15 20 25-1-0.500.511.522.53Step ResponseTime (sec)Amplitude 图表 错误! 未定义书签。

 K=2 时,闭环系统得阶跃响应曲线

 0 5 10 15 20 25-3-2-101234567x 1010Step ResponseTime (sec)Amplitude 图表 错误! 未定义书签。

 K=3 时,闭环系统得阶跃响应曲线 结论:当 K=1 时,闭环系统稳定,阶跃响应曲线;当K=2时,闭环系统临界稳定,阶跃响应等幅震荡;当 K=3 时,闭环系统不稳定,阶跃响应曲线发散. 步骤 4:分析采样周期对系统稳定性得影响 代码如下:

 sys_k=2;

 figure(7);

 Ts=0、5;

 sys_discrete=c2d(sys_continue,Ts,’zoh’)

 %计算离散系统得开环传递函数

 sys_close=feedback(sys_k*sys_discrete,1); %计算离散系统得 闭环 传递函数

 [dnumc,ddenc]=tfdata(sys_close,’v");

  %提取闭环传递函数零极点

 dstep(dnumc,ddenc,25);

 %绘制闭环系统 阶跃响应曲线

 sys_k=2;

 figure(8);

 Ts=2;

 sys_discrete=c2d(sys_continue,Ts,’zoh’)

 sys_close=feedback(sys_k*sys_discrete,1);

 [dnumc,ddenc]=tfdata(sys_close,"v’);

 dstep(dnumc,ddenc,25);

 运行结果如下图:

 0 5 10 15 20 2500.511.5Step ResponseTime (sec)Amplitude 图表 错误! 不能识别的开关参数。

 Ts=0、5,K=2 时系统得阶跃响应曲线

 0 5 10 15 20 25-505101520x 1018Step ResponseTime (sec)Amplitude 图表 错误! 未定义书签。

 Ts=2,K=2 时系统得阶跃响应曲线 结论:由图可知,离散系统得不仅与开环增益有关,还与采样周期有关 。