精品计算机仿真大作业姚雷阳班.docx
- 文档编号:6053329
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:20
- 大小:1.53MB
精品计算机仿真大作业姚雷阳班.docx
《精品计算机仿真大作业姚雷阳班.docx》由会员分享,可在线阅读,更多相关《精品计算机仿真大作业姚雷阳班.docx(20页珍藏版)》请在冰豆网上搜索。
精品计算机仿真大作业姚雷阳班
【关键字】精品
《计算机仿真》
MATLAB课程设计报告
学院:
自动化学院
专业:
自动化专业
班级:
2011211410
*******
学号:
**********
2013年12月27日
计算机仿真大作业
摘要:
本次计算机仿真大作业主要是利用Matlab进行操作的。
内容主要涉及对Matlab程序文件的写入和读出、函数式的表达、波形的绘制,应用Simulink建立子系统并对子系统进行封装,以及对PID控制器的参数进行整定这三个方面。
PID的参数整定要用到Simulink建立系统,并且要设计M文件,采用编程法求取系统阶跃响应的性能指标。
关键词:
PID整定法Simulink子系统封装M文件
一、基本操作
1、写文件操作
程序实现:
1.1自己定义一组数据,并将其保存到文件data.dat。
要求第一列为时间t(t为等差数列,0≤t≤200);第二列为与t对应的201个幅值数据,作为信号f1(t)的幅值;第三列为按s的降幂排列的传递函数分子系数;第四列为按s的降幂排列的分母系数。
第三列、第四列的数据个数不能超过5个。
MATLAB文本:
>>a=0:
1:
200;
>>b=random('Poisson',0:
200,1,201);
>>c=[98621];
>>d=[75431];
>>fid=fopen('d:
\data.dat','wt');
>>fprintf(fid,'%4d',a);
>>fprintf(fid,'\n');
>>fprintf(fid,'%4d',b);
>>fprintf(fid,'\n');
>>fprintf(fid,'%4d',c);
>>fprintf(fid,'\n');
>>fprintf(fid,'%4d',d);
>>fclose(fid);
图1data.dat的读入
2、读文件数据并画图操作
2.1读入data.dat数据,画出f1(t)的时域波形。
MATLAB文本:
fid=fopen('d:
\data.dat','rt');
>>t=fscanf(fid,'%d',201);
>>f1=fscanf(fid,'%d',201);
>>fclose(fid);
>>plot(t,f1)
title('f1-t曲线图');
xlabel('t');ylabel('f1');
图2f1曲线图
3、构造新函数并绘图操作
3.1
求取f2(t),将结果保存到result.mat文件,画出其时域波形。
MATLAB文本:
forn=1:
10
f2(n)=2*f1(n);
end
forn=11:
100
ifabs(f1(n))<15
f2(n)=f1(n)*f1(n);
else
f2(n)=f1(n-3);
end
end
forn=101:
201
f2(n)=f1(n-3);
end
plot(t,f2)
title('f2-t曲线图');
xlabel('t');ylabel('f2');
fid=fopen('d:
\result.mat','wt');
fprintf(fid,'%4d',f2);
fclose(fid);
图3f2曲线图
4、读取数据绘制传递函数波特图操作
4.1按data.dat中的第三列、第四列,求取其对应的传递函数,绘制其bode图。
fid=fopen('d:
\data.dat','rt');
f=fscanf(fid,'%d',402);
num=fscanf(fid,'%d',5);
den=fscanf(fid,'%d',5);
fclose(fid);
num1=ctranspose(num);
den1=ctranspose(den);
Gs=tf(num1,den1)
Gs=
9s^4+8s^3+6s^2+2s+1
-------------------------------
7s^4+5s^3+4s^2+3s+1
Continuous-timetransferfunction.
bode(Gs)
图4系统波特图
二、子系统封装
1、用Simulink建立系统
程序要求:
1.1用SIMULINK建立系统:
y=ax3+bx+c,x为输入,y为输出,a、b、c为常数。
对该系统进行封装,要求通过对话框能修改a、b、c的值。
图5 未封装系统
图6封装后系统
图7参数更改界面
2、观察输入输出波形
2.1若输入x为幅度为5、频率为0.25Hz的锯齿波,采用示波器显示输出y及输入x的波形。
图8输入x波形
图9输出y波形
3、数据导出
3.1将输入x和输出y导入到工作空间,并采用plot命令,将两个波形在同一波形窗口显示,带网格线、图例。
Matlab文本:
>>x=simout;
>>y=simout1;
>>plot(x);
>>holdon;
>>plot(y);
>>x=simout;
>>y=simout1;
>>plot(x,'r');
>>holdon;
>>plot(y,'k');
>>grid on
>>legend('x','y')
图10输入输出导入工作空间
图11导入工作空间的波形
三、PID控制器参数整定
某控制系统的开环传递函数为
,采用单位负反馈。
程序要求:
(1)试采用工程整定法,设置合适的P、PI、PID控制器的参数。
(2)将仿真时间定为300秒,绘制整定后的系统的单位阶跃响应曲线。
(3)设计M文件,采用编程法求取系统阶跃响应性能指标:
超调量、调节时间。
1、采用工程整定法分别设置控制器参数
1.1先建立原控制系统的Simulink仿真模型
图12原系统仿真模型
1.2对原控制系统进行仿真
输入为单位阶跃函数,得阶跃响应如图13所示,可知原控制系统是不稳定的。
图13原系统仿真输出波形图
1.3在该控制系统中引入PID控制器
采用工程整定法中的临界比例度法来设置合适的P、PI、PID控制器参数。
引入PID控制器后的系统仿真模型如图14所示。
图14封装前的仿真模型
图15封装后仿真模型
通过下面的对话框可以修改个各比例系数的值。
图16修改比例系数截图
1.4求取系统临界稳定增益并设置参数
采用工程整定法进行PID调整。
具体做法是:
令Ti为无穷,Td为零,只有Kp控制系统;首先,随意设置一个增益Kp(初始值一般为1)并且不断加大或者减小Kp,直到系统出现等幅震荡,可以测出Kp=0.9的时候,系统恰好出现等幅震荡情况,此时的比例系数称为临界增益,用Kc表示。
图17Kp=0.9临界震荡波形
求此时震荡周期Tc:
Matlab文本:
>>num=9;
>>den=[11101];
>>G1=tf(num,den);
>>G=feedback(G1,1);
>>step(G)
图18matlab仿真临界震荡波形Tcr=2s
根据整定法公式,计算所需参数。
表1经验法公式
根据表1可以求得各个控制器的参数:
P控制:
K=0.45
PI控制:
K=0.405Ti=1.66
PID控制:
K=0.54Ti=1Td=0.24
2、PID控制仿真并绘图
2.1P控制仿真
将I,D连线断开,设置Pk为0.45,比例控制系统的单位阶跃响应波形如下:
图19Kp=0.45(P)波形
(1)
图20Kp=0.45(P)波形
(2)
P值的改变只改变信号的增益而不影响其相位。
从图中可以看出,经过调整P值参数,系统的超调量和调节时间(动态性能)有很大的提高,但是造成了一定的稳态误差(因为此时Kp<1)。
2.2PI控制仿真
比例积分控制系统的单位阶跃响应:
图21Kp=0.405Ti=1.66(PI)波形
(1)
图22Kp=0.405Ti=1.66(PI)波形
(2)
从图中可以看出,在P控制的基础上加入I控制后,形成PI控制,系统稳态误差有所减少,但是超调量和调节时间有所加大,这可以看出,PI控制适用于对系统稳态误差(稳态性能)要求精度大,但是对于调节时间(动态性能)要求精度小的实际模型。
2.3PID控制仿真
将仿真时间定为300秒,绘制整定后的系统的单位阶跃响应曲线(PID)。
比例积分微分控制下的单位阶跃响应:
图23Kp=0.54Ti=1
Td=0.24(PID)波形
(1)
图24Kp=0.54Ti=1
Td=0.24(PID)波形
(2)
由图形可以看出,PID控制后,无论是稳态误差(稳态性能)还是调节时间(动态性能)都有所加强,但是超调量超过了40%,不符合实际要求,再次调整PID参数,把PID中的参数Ti改为7,其它两个参数不变,得到如下阶跃响应曲线,可以看出调整后系统的阶跃响应的超调量小于20%,可以实现稳、准、快三大要求,也符合实际工程要求,因此PID联合控制适用于对动态性能和稳态性能都有要求的实际系统。
图25 调整后的PID阶跃响应曲线
3、制作M文件求取系统阶跃响应性能指标
PID控制后系统的传递函数为:
G=
1.3s^2+5.4s+0.77
-----------------------------------
s^4+s^3+11.3s^2+6.4s+0.77
Continuous-timetransferfunction.
M文件如下:
num=[1.35.40.77];
den=[1111.36.40.77];
t=0:
0.01:
100;
y=step(num,den,t);
plot(t,y)
G=tf(num,den);
C=dcgain(G);
[Y,k]=max(y);
chaotiao=(Y-C)/C
chaotiao=
0.0558
i=length(t);
while(y(i)>0.98*C)&(y(i)<1.02*C);
i=i-1;
end
ts=t(i)
ts=
16.4600
图26系统阶跃响应波形
四、总结
(1)校正方法总结
P控制器只改变信号的增益,而不影响其相位。
Kp增大可以减小系统的稳态误差,从而提高系统的控制精度,但会降低系统的相对稳定性,甚至可能造成闭环系统不稳定,所以,很少单独使用P控制规律。
PI控制器在系统中增加一个位于原点的开环极点和一个位于S左半平面的开环零点,只要积分时间常数足够大,PI控制器对系统稳定性的不利影响可大为减弱,主要用来改善控制系统的稳态性能。
PID在系统中增加一个位于原点的开环极点和两个负实零点,具有提高系统稳态性能的优点外,在提高系统动态性能方面有更大的优越性。
(2)总体体会
此次计算机仿真大作业,使我更加熟练地运用Matlab,特别是Simulink模块,实践出真知,只有在实践中才能真正明白如何运用Matlab解决实际中的问题。
这次大作业让我更加透彻地理解本学期所学习的知识,不仅仅是计算机仿真,还有自动控制原理,对我以后的学习和工作有着很大的帮助。
五、参考文献
[1]薛定宇. 控制系统仿真与计算机辅助设计. 机械工业出版社 2009.
[2]胡寿松. 自动控制原理. 国防工业出版社 2005.
此文档是由网络收集并进行重新排版整理.word可编辑版本!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 计算机仿真 作业 姚雷阳班