控制系统仿真与CAD试实验实验三和实验四.docx
- 文档编号:25958746
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:13
- 大小:334.81KB
控制系统仿真与CAD试实验实验三和实验四.docx
《控制系统仿真与CAD试实验实验三和实验四.docx》由会员分享,可在线阅读,更多相关《控制系统仿真与CAD试实验实验三和实验四.docx(13页珍藏版)》请在冰豆网上搜索。
控制系统仿真与CAD试实验实验三和实验四
实验三采样控制系统的数字仿真
一、实验目的
1.熟悉采样控制系统的仿真方式;
2.掌握采样控制系统数字仿真的程序实现。
二、实验内容
某工业系统的开环传递函数为
,要求用数字控制器D(z)来改善系统的性能,使得相角裕度大于
,调节时间小于1s(2%准则)。
1.绘制碾磨控制系统开环根轨迹图、Bode图和奈奎斯特图,并判断稳定性;
判断其稳定性,可根据奈奎斯特图,进行判定,其原理为:
Z=P-2N
Z是闭环控制系统的特征方程在右半s平面上根的个数。
P是开环传递函数在右半s平面上的极点数。
N是当角频率由ω=0变化到ω=+∞时G(jω)的轨迹沿逆时针方向围绕实轴上点(-1,j0)的次数。
奈奎斯特稳定判据还指出:
Z=0时,闭环控制系统稳定;Z≠0时,闭环控制系统不稳定。
G=zpk([],[0-5],10)
sisotool(G)
//点击“Analysis”下的“Closed-LoopBode”,出现LTIViewerforSISODesigntool
margin(G)
//点击图标“DataCursor”,点击交叉点,出现相关参数。
2.当控制器为
,试设计一个能满足要求的控制器(要求用根轨迹法和频率响应法进行设计);
根轨迹法和频率响应法是常用的两种重要的校正方法。
调节前:
Gs=tf(10,[150]);
Close_S=feedback(Gs,1);
Step(Close_S,'b');
holdon
设计前截止频率为1.88rad/s,相角裕度为69.5°(第一问中)
(1)进行根轨迹校正:
要使得根轨迹向左转,要加入零点。
考虑到校正装置的物理可实现性,加入超前校正装置。
a=6.512,b=11.499(a表示零点,b表示极点)
检验性能:
Ds=tf(10*[16.512],[111.499]);
Gs=tf(10,[150]);
Close_S=feedback(Ds*Gs,1);
Step(Close_S,'b');
holdon
G=zpk([-6.512],[0,-5,-11.499],10);
margin(G);
G=zpk([-6.512],[0,-5,-11.499],100);
margin(G);
(2)频率校正:
要求:
静态速度误差为20,相角裕度不小于45°,调节时间小于1s(2%)。
a.根据静态误差指标确定开环增益
b.据确定的增益K,画出增益经调整后的未校正系统的Bode图
G=zpk([],[0,-5],100);
margin(G);
c.计算为满足设计要求所需增加的相位超前角度
从图可知为满足设计要求,还须25度左右的超前相角。
即令
d.计算
e.选定最大超前角发生频率
因为校正环节在最大超前相角处有10loga的幅值提升,所以把
f.据式
计算超前环节的时间常数因子T和校正环节的交接频率
,
h.对以上设计所得
进行检验,看是否满足设计要求。
i.性能验证:
Ds=tf(24.638*[17.65],[118.836]);
Gs=tf(10,[150]);
Close_S=feedback(Ds*Gs,1);
Step(Close_S,'b');
holdon
G=zpk([-7.65],[0,-5,-18.836],240.638);
margin(G);
3.将采样周期取为
,试确定与
对应的数字控制器
(要求用多种方法进行离散化,并进行性能比较);
(1)选用根轨迹所得到的控制器函数:
(2)采用脉冲响应不变法,零阶保持器法,一阶保持器法,双线性变涣法,零极点匹配方法确定数字控制器Gc(z);
Gc=zpk([-6.512],[-11.499],10);
Gimp=c2d(Gc,0.02,'imp')%脉冲响应不变法
Gzoh=c2d(Gc,0.02,'zoh')%零阶保持器
Gfod=c2d(Gc,0.02,'fod')%一阶保持器
Gtustin=c2d(Gc,0.02,'tustin')%双线性
Gmatched=c2d(Gc,0.02,'matched')%零极点匹配方法
性能比较:
G0=zpk([],[0-5],10);Gc=zpk([-6.512],[-11.499],10);
G=series(G0,Gc);
G1=c2d(G,0.02,'zoh');%零阶保持器
G2=c2d(G,0.02,'fod');%一阶保持器
G3=c2d(G,0.02,'tustin');%双线性
G4=c2d(G,0.02,'matched');%零极点匹配方法
G5=c2d(G,0.02,'imp');%脉冲响应不变法
Gk1=feedback(G1,1);Gk2=feedback(G2,1);
Gk3=feedback(G3,1);Gk4=feedback(G4,1);
Gk5=feedback(G5,1);
figure;margin(G1);grid
figure;margin(G2);grid
figure;margin(G3);grid
figure;margin(G4);grid
figure;margin(G5);grid
figure;step(Gk1,Gk2,Gk3,Gk4,Gk5);legend('zoh','fod','tustin','matched','imp';grid
4.连续,离散单位阶跃输入响应比较
(1)连续系统的阶跃响应
Ds=tf(10*[16.512],[111.499]);
Ghs=tf(100,[1100]);%保持器采用一阶惯性环节
Gs=tf(10,[150]);
Close_S=feedback(Ds*Ghs*Gs,1);
Step(Close_S,'b');
holdon
(2)离散系统的阶跃响应
Ts=0.02;i=100;
Dz=c2d(Ds,Ts,'tustin');%双线性变换
Gz=c2d(Gs,Ts,'zoh');%零阶保持器
Close_Z=minreal(feedback(Dz*Gz,1));
Y=dstep(Close_Z.num{1},Close_Z.den{1},i);
plot(Ts*(1:
i),Y,'-.r');
holdoff
5.讨论采样周期的不同选择对系统控制性能的影响;
Ds=tf(10*[16.512],[111.499]);
Gs=tf(10,[150]);
%离散系统的阶跃响应
Ts=0.02;i=100;%把Ts=0.02,0.04,0.06,0.08分别代入
Dz=c2d(Ds,Ts,'tustin');%双线性变换
Gz=c2d(Gs,Ts,'zoh');%零阶保持器
Close_Z=minreal(feedback(Dz*Gz,1));
Y=dstep(Close_Z.num{1},Close_Z.den{1},i);
plot(Ts*(1:
i),Y,'-.r');
holdoff
三、实验报告要求
1、提交所有仿真结果图;
2、分析实验内容1中系统稳定性;给出原系统截止频率和相角裕度。
3、分析实验内容3中各种离散化方法的动态性能;
4、比较实验内容4中仿真结果;根据曲线图比较两系统的超调量、调节时间和峰值时间;
5、分析实验内容5中采样周期的不同选择对系统控制性能的影响。
实验四控制系统的MATLAB时域分析
一、实验目的
1.学习控制系统时域分析的MATLAB实现。
2.掌握控制系统的时域响应及性能指标。
二、相关知识
常用的典型输入信号如下:
常用时域分析函数如下:
三、实验内容及要求
1、利用help命令学习上述函数命令的用法,自行练习。
2、生成任意信号函数
生成任意信号函数gensig()的调用格式为
[u,t]=gensig(type,Ta)
或[u,t]=gensig(type,Ta,Tf,T)
其中:
第一式产生一个类型为type的信号序列u(t),周期为Ta,type为以下标识字符串之一:
’sin’—正弦波;’square’—方波;’pulse’—脉冲序列;第二式同时定义信号序列u(t)的持续时间Tf和采样时间T。
实验内容:
生成一个周期为5秒,持续时间为30秒,采样时间为0.1秒的方波。
Matlab窗口中执行以下命令:
[u,t]=gensig(’square’,5,30,0.1);
plot(t,u)
axis([0,30,–0.5,1.5])
3、连续系统的单位阶跃响应
单位阶跃响应函数step()的调用格式为
[y,x,t]=step(num,den,t)
或[y,x,t]=step(A,B,C,D,iu,t)
式中:
t为选定的仿真时间向量,函数返回值y为系统在各个仿真时刻的输出所组成的矩阵;而x为自动选择的状态变量的时间响应数据。
如只想绘制出系统的阶跃响应曲线,则可以由如下的格式调用此函数
step(num,den,t)
step(A,B,C,D,t)
实验内容:
在同一个坐标系中绘制典型二阶系统、具有零点的二阶系统和三阶系统的阶跃响应曲线,并比较它们的性能。
系统的传递函数分别为:
(1)
(2)
(3)
解:
num1=3.2;%系统1分子多项式系数
den1=conv([1,0.8+1.6*j],[1,0.8-1.6*j]);%系统1分母为两个一阶因子的乘积
num2=num1;
den2=conv(den1,[0.33,1]);
num3=conv(num1,[0.33,1]);
den3=den1;
step(num1,den1)
grid
holdon%保留屏幕上原有图形
step(num2,den2)
step(num3,den3)
gtext('系统1')%用鼠标在图形窗口定位添加文本
text('系统2')
gtext('系统3')
分析:
系统2和系统3分别是在系统增加闭环极点和闭环零点构成的,全部的响应曲线如图所示。
由于增加的闭环零点或闭环极点与一对复数极点距离相对较近,复数极点的主导作用不明显。
根据响应曲线可知:
与系统1比较,系统2超调量降低,调整时间延长;系统3的超调量增加,调整时间缩短。
4、离散系统的单位阶跃响应
离散系统的单位阶跃响应函数dstep()的调用格式为
[y,x]=dstep(num,den,n)
或[y,x]=dstep(G,H,C,D,iu,n)
式中:
n为选定的取样点个数,当n省略时,取样点数由函数自动选取,其余参数定义同前。
实验内容:
已知二阶离散系统
,试求其单位阶跃响应。
解:
MATLAB程序为
%Test1.m
num=[2-3.41.5];
den=[1-1.60.8];
dstep(num,den);
title(‘PiscreteStepResponse’)
5、任意输入函数的响应
连续系统对任意输入函数的响应可利用MATLAB的函数lsim()求取,其调用格式为
[y,x]=lsim(num,den,u,t)
或[y,x]=lsim(A,B,C,D,iu,u,t)
其中:
u为给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等。
其他用法同step()函数。
实验内容:
已知单位反馈控制系统,u(t)为其输入,y(t)为输出,系统的开环传递函数为
,求系统的闭环传递函数。
在同一个坐标系中绘制输入信号为
和
时,系统的时域响应曲线y1(t)和y2(t)。
解:
编写如下所示的MATLAB程序
numk=25;denk=[1,4,0];
[num,den]=cloop(numk,denk);
printsys(num,den)%显示闭环传递函数
t=0:
0.1:
5;%产生时间向量
u1=1+0.2*sin(4*t);
u2=0.3*t+0.3*sin(5*t);
y1=lsim(num,den,u1,t);
y2=lsim(num,den,u2,t);
plot(t,[y1,y2])%在同一个坐标系中绘制响应曲线
grid
xlabel('t(s)');%标注横坐标
ylabel('y(t)');%标注纵坐标
gtext(0.6,1.1,'u1');%给图形添加文本
gtext(0.7,1.5,'y1');
gtext(4.5,1.3,'u2');
gtext(4.2,1.5,'y2');
三、实验报告要求
1、提交所有仿真结果图;
2、分析实验内容3中三种系统的性能差异;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 仿真 CAD 实验