控制系统数字仿真实验报告Word文件下载.docx
《控制系统数字仿真实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《控制系统数字仿真实验报告Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
仿真时间
2s,取步长h=0.1o
dy2
—=y-t
dt
y(0)=1
、
脚本m文件rkrk.m
clear
to=o;
yO=l;
h=O・l;
n=2/h;
y(l)=l;
t
(1)=0;
fori=0:
n-1
kl=y0-t0*t0;
k2=(y0+h*kl/2)-(tO+h/2)*(t0+h/2);
k3=(y0+h*k2/2)-(tO+h/2)*(t0+h/2);
k4=(y0+h*k3)-(tO+h)*(tO+h);
yl=yO+h*(kl+2*k2+2*k3+k4)/6;
tl=tO+h;
yO=yl;
tO=tl;
y(i+2)=yl;
t(i+2)=tl;
yi
ti
figure
(1)
plot(tzy,»
r'
);
xlabel('
t*);
ylabel('
y*);
运行
(三)试求示例3分别在周期为5s的方波信号和脉冲信号下的响应,
仿真时间20s,采样周期Ts=0.1o
1.脚本m文件t3.m
%Createsystemmodel
A=[-0.5572-0.7814;
0.78140];
B=[l;
0];
C=[1.96916.4493];
D=0;
sys=ss(A,BzCzD);
%Pulseresponseofthesystem
subplot(221)
[u,t]=geri5ig(1pulse1z5,20,0.1)
plot(t/u);
holdon
lsim(sys,uzt);
ylabel(*Y*);
tPulseresponseofthesystem1);
holdoff
grid
%Squareresponseofthesystem
subplot(222)
[u,t]=geri5ig(1square1z5,20,0.1)
plot(t,u);
titleLSqumreresponseofthesystem'
2.
四、实验体会
这是控制系统数字仿真课程的第一次实验,我熟悉了matlab软件的基本操作,学会了如何运用数值积分方法中常用的函数(如ode45)去解常系数微分方程,虽然存在一定的误差,但在误差允许的范围内,而且相对于Euler法,代码明显大幅度简化。
通过第三个小实验我还学会了如何运用离散相似法去解常见的状态参数方程。
实验二SIMULINK动态仿真
一、实验目的
1.掌握SIMULINK动态仿真;
2.熟悉MATLAB语言及应用环境。
二、实验环境
三、实验内容
(一)Simulink的基本操作
(1)运行Simulink
(2)常用的标准模块
(3)模块的操作
(二)系统仿真及参数设置
(1)算法设置(Solver)
(2)工作空间设置(WorkspaceI/O)
(三)学会运用SIMULINK建立仿真模型,进行仿真。
1.某系统框图如图所示,试用SIMULINK进行仿真,并比较在无饱和非线性环节
下系统仿真结果。
建立系统模型:
实验结果:
示波器1
Timeoffset:
0
示波器2
2.己知系统结构图如下:
图.含饱和非线性环节系统方框图
己知输入为信号电平从1~6,非线性环节的上下限为±
1,取步长h=0.1,仿真时间为10秒,试绘制系统的响应曲线。
输入信号为1・6的节约信号时,实验响应曲线如下:
通过本次试验,我体会到了MATLAB里的Simulink模块强大的建模仿真功能。
通过Simulink动态仿真,我们能实时观测部分模块对系统整体的影响,从而可以很好地设法调节系统元件环节参数,改善系统性能,因此MATLAB的Simulink动态仿真适用于模拟系统,调节系统的部分参数。
实验三PID控制器设计
1.了解PID控制原理,掌握相应PID控制器设计仿真程序的应用;
2.掌握计算机辅助系统瞬态性能指标的计算;
3.掌握计算机辅助系统频率性能分析;
已知如图所示单位反馈系统
500s+5000
s'
+33$“+337?
+1775s'
+4950s+5000
►
要求:
编写主文件:
clc
sys=tf([5005000],[133337177549505000]);
nyquist(sys)
[Re,Imzwl]=nyquist(sys);
gridon
figure
(2)
bode(sys)
[mag,phase,w2]=bode(sys);
sysclose=feedback(sys,1);
[z,p,k]=zpkda1v1)
运行结果:
CommandWindow
-19.9388
-5.146942.ol03i
-5.1469-2.51081
-1.3837十3.6577i
-1.3837-3.6577i
k=
500
由运行结果知,系统的极点全位于复平面的左半平面,故该闭环系统是稳定的。
2.应用Ziegler-Nichols方法设计P控制器、PI控制器和PID控制器。
编写函数m文件pidmargin.m
function[sysc,KpzTizTd]=pidmargin(sys,type)margin(sys)
[Gm,PmzWg,Wc]=margin(sys);
Kcr=Gm;
Wcr=Wg;
Tcr=2*pi/Wcr;
switchtype
case1
disp(1PControler1)
Kp=0•5大Ker
Ti=!
NoDesign1
Td=!
sysc=Kp;
case2
disp(1PIControler1)
Kp=0.4大Ker
Ti=0•8大Ter
sysc=Kp*(1+tf1[Ti,0]));
case3
disp(1PIDControler1)
Kp=0•6大Ker
Ti=0.5大Ter
Td=0.12*Tcr
sysc=Kp*(1+tf(1,[Tiz0])+tf([Td0],1));
编写脚本m文件:
elf
sysgroup=feedback(sys,1);
fori=l:
3
type=i;
[sysc,KpzTi,Td]=pidmargin(sys,type);
sysopen=sysc大;
sys;
sysclose=feedbmck(sysopen,1);
sysgroup=appenci(sysgroup,sysclose);
endelf
4
subplot(2,2,i)
step(sysgroup(i,i))end
运行结果如下:
»
Trial_3_2
PControler
1.7849
Ti=
NoDesign
Td=
PIControler
Kp=
1.4279
1.0882
PIDControler
2.1419
0.6801
0.1632
3・计算比较原系统与P控制系统、PI控制系统、PID控制系统的瞬态性能指标。
编写函数m文件pidmargin.m(同2中的pidmargin.m)
编写脚本m文件
[sysc,KpzTi,Td]=pidmargin(sys,type);
sysopen=sysc*sys;
sysclose=feedback(sysopen,1);
sysgroup=append(sysgroup,sysclose);
step(sysgroup(i,i));
[num,den]=tfdatn(sysgroup(i,i),1v1);
Finalvalue=polyval(num,0)/polyval(den,0)
[y,t]=step(sysgroup(「i));
[Ymax,k]=max(y);
Peaktime=t(k)
OvershootPercent=100大(Ymax-Finalvalue)/Finalvalue
n=l;
whiley(n)<
0.1大Finalvalue,n=n+l;
m=l;
whiley(m)<
0•9大Finalvalue,m=m+l;
RiseTime=t(m)-t(n)
r=length(t);
while(y(r)>
0.98*Finalvalue&
y(r)<
1•02大Finalvalue)
r=r-l;
SettlingTime=t(r)
Finalvalue=
0.5000
Peaktime=
1.1632
OvershootPercent
22.9899
RiseTime=
0.4653
SettlingTime=
2.9527
0.6409
1.0187
OvershootPercent=
44.5805
0.3661
5.0297
1.1921
12.8370
0.5356
4・2673
1
0.8881
23.5012
0.3714
3.0357
在第二个实验中主程序通过调用函数m文件pidmargin.m,实现了PID控制器的设计,并在单位阶跃函数作用下的系统输出,列于同一张表,便于分析;
第三个实验在第二个实验的基础上,将系统在阶跃函数作用下的状态参数返回,从而实现经PID控制器修正后的系统与原系统进行量化对比,显示校正效果。
本次实验,我学会了如何运用matlab画系统的Bode图和Nyquist图,很大程度上简化了系统稳定性、动态特性等相关问题的求解。
实验四模糊逻辑控制器设计
1•了解模糊逻辑控制原理;
2.掌握MATLAB辅助模糊逻辑控制器设计流程;
三、实验内容设有前后两车(目标车与本车),其速度y与油门控制输入u间的传递函数均为
心)_4
+2*0.7*25+4
现要求设计一模糊控制器,使得
1)控制汽车(本车)由静止启动,追赶200m外时速90km的汽车(目
标车)并与其保持30m距离。
2)目标车速度改为时速110km时,仍与其保持30m距离。
3)目标车速度改为时速70km时,仍与其保持30m距离。
第一步利用simulink构造系统仿真模型。
根据题意,可做出系统结构图如图1所示。
图中,为了控制系统设计方便,将两
车的距离相减后再减掉30,用模糊控制使其趋于0。
图1系统结构图
进一步,利用simulink构造了系统仿真模型,如图2所示。
考虑到实际的汽车速度存在极限,系统模型中加入了饱和非线性模块进行模拟。
图中的e和u除以20是为了使输出量限定在10左右。
然后,将系统模型以文件f-car.mdl保存。
图2系统simulink仿真模型
第二步设计模糊逻辑规则
以误差量(两车距离)及误差对时间的变化量作为输入进行模糊规则设计。
本例采用位置型模糊控制器,即控制规则的条件为:
ife为AandAe为Bthenu为Co按一般方法,可得一套控制规律[]如表1所示
表1控制规律
e
NB
NM
ZE
PM
PB
Ae
表中P=POSITIVEN=NEGATIVEZE=ZERO表1所示的控制规则库中尚有一些空缺,为了防止受控对象因为无效条件而失控,可以将(e,Ae)按下式转换为极坐标(厂,0)
r=+△,,0=cos-1(-)
r
而将规则库填满,从而得到表2所示极坐标形式的模糊控制规则:
表2极坐标形式的模糊控制规则
Y
由上表可知,此例中,我们分别将
y分为PBZENB
e分为PBPMZENMNB
y分为PBPMZENMNB
因此,根据该表可以写出15条规则。
如,对应表中第二行、第三列的规则为:
if(/isPB)and(0isPM)then(yisPB)
等等。
第三步设计隶属函数
对输入量匚。
和输出量y,均取三角形的隶属函数,具体范围与大小如图3和4
所示:
图3input的隶屈度函数
第四步,根据前面的隶属度函数、控制规则,利用Toolox\FuzzyLogic中的模糊推理系统编辑器,建立模糊推理系统(即生成FIS文件)。
第五步,将FIS文件添加到第一步建立的模型文件中,完成汽车模糊逻辑控制系统的设计。
然后仿真分析,输出曲线。
4.实验体会
本次实验设计的模糊控制器在完全符合题目的要求,在10秒内将两车距离控制在了30km以内,故本次试验基本成功。
模糊逻辑工具箱使得我们可以通过简单的逻辑规则设置便可以实现模糊控制,可以看到其还是基于反馈控制的。