为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机仿真大作业--matlab课程设计报告

2017-10-16 23页 doc 422KB 275阅读

用户头像

is_954223

暂无简介

举报
计算机仿真大作业--matlab课程设计报告计算机仿真大作业--matlab课程设计报告 . = 《计算机仿真》 MATLAB课程设计报告 学院: 自动化学院 专业: 自动化专业 班级: 姓名: 学号: 2013年12月27日 . . 计算机仿真大作业 摘要:本次计算机仿真大作业主要是利用Matlab进行操作的。 内容主要涉及对Matlab程序文件的写入和读出、函数式的表达、波形的绘制,应用Simulink建立子系统并对子系统进行封装,以及对PID控制器的参数进行整定这三个方面。 PID的参数整定要用到Simulink建立系统,并且要设计M文件,采...
计算机仿真大作业--matlab课程设计报告
计算机仿真大作业--matlab课程设计报告 . = 《计算机仿真》 MATLAB课程设计报告 学院: 自动化学院 专业: 自动化专业 班级: 姓名: 学号: 2013年12月27日 . . 计算机仿真大作业 摘要:本次计算机仿真大作业主要是利用Matlab进行操作的。 内容主要涉及对Matlab程序文件的写入和读出、式的达、波形的绘制,应用Simulink建立子系统并对子系统进行封装,以及对PID控制器的参数进行整定这三个方面。 PID的参数整定要用到Simulink建立系统,并且要设计M文件,采用编程法求取系统阶跃响应的性能指标。 关键词: PID整定法 Simulink 子系统封装 M文件 . . 目录 一、基本操作 .......................................................................................................... 1 1、写文件操作 ..................................................................................................... 1 2、读文件数据并画图操作................................................................................... 2 3、构造新函数并绘图操作................................................................................... 2 4、读取数据绘制传递函数波特图操作 ................................................................ 4 二、子系统封装....................................................................................................... 4 1、用Simulink建立系统...................................................................................... 5 2、观察输入输出波形 .......................................................................................... 6 3、数据导出......................................................................................................... 7 三、PID 控制器参数整定........................................................................................ 9 1、采用工程整定法分别设置控制器参数............................................................. 9 1.1先建立原控制系统的Simulink仿真模型..................................................... 9 1.2对原控制系统进行仿真 ............................................................................... 9 1.3在该控制系统中引入PID控制器 .............................................................. 10 1.4求取系统临界稳定增益并设置参数........................................................... 11 2、PID控制仿真并绘图..................................................................................... 13 2.1 P控制仿真 ................................................................................................ 13 2.2 PI控制仿真............................................................................................... 15 2.3PID控制仿真 ............................................................................................. 16 3、制作M文件求取系统阶跃响应性能指标 ..................................................... 17 四、................................................................................................................ 19 五、参考文献 ........................................................................................................ 20 . . 一、基本操作 1、写文件操作 程序实现: 1.1 自己定义一组数据,并将其保存到文件data.dat。要求第一列为时间t(t为等差数列,0?t?200);第二列为与t对应的201个幅值数据,作为信号f (t )的幅值;1第三列为按s的降幂排列的传递函数分子系数;第四列为按s的降幂排列的分母系数。第三列、第四列的数据个数不能超过5个。 MATLAB文本: >> a=0:1:200; >> b= random('Poisson',0:200,1,201); >> c=[9 8 6 2 1]; >> d=[7 5 4 3 1]; >> 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); 图1 data.dat 的读入 . . 2、读文件数据并画图操作 2.1读入data.dat数据,画出f 1 (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'); 图2 f1曲线图 3、构造新函数并绘图操作 . . 2*f(t)0,t,10,1,2f(t),f(t)10,t,100且f(t),15,3.1 211 ,(,3)其它ft1, 求取f (t ),将结果保存到result.mat文件,画出其时域波形。 2 MATLAB文本: for n=1:10 f2(n)=2*f1(n); end for n=11:100 if abs(f1(n))<15 f2(n)=f1(n)*f1(n); else f2(n)=f1(n-3); end end for n=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); 图3 f2曲线图 . . 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 = 9 s^4 + 8 s^3 + 6 s^2 + 2 s + 1 ------------------------------- 7 s^4 + 5 s^3 + 4 s^2 + 3 s + 1 Continuous-time transfer function. bode(Gs) 图4 系统波特图 二、子系统封装 . . 1、用Simulink建立系统 程序要求: 3 1.1用 SIMULINK 建立系统:y = ax + 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); >> hold on; >> plot(y); >> x=simout; >>y=simout1; >>plot(x,'r'); >>hold on; >>plot(y,'k'); >> grid on >> legend('x','y') 图10 输入输出导入工作空间 图11 导入工作空间的波形 . . 三、PID 控制器参数整定 10G(s),某控制系统的开环传递函数为,采用单位负反馈。 n32s,s,10s,1 程序要求: (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表示。 图17 Kp=0.9临界震荡波形 求此时震荡周期Tc: Matlab 文本: >> num=9; >> den=[1 1 10 1]; >> G1=tf(num,den); >> G=feedback(G1,1); >> step(G) . . 图18 matlab仿真临界震荡波形 Tcr=2s 根据整定法公式,计算所需参数。 表1 经验法公式 根据表1可以求得各个控制器的参数: P控制:K=0.45 PI控制:K=0.405 Ti=1.66 PID控制:K=0.54 Ti=1 Td=0.24 2、PID控制仿真并绘图 2.1 P控制仿真 将I,D连线断开,设置Pk为0.45,比例控制系统的单位阶跃响应波形如下: . . 图19 Kp=0.45(P) 波形(1) 图20 Kp=0.45(P) 波形(2) P值的改变只改变信号的增益而不影响其相位。 从图中可以看出,经过调整P值参数,系统的超调量和调节时间(动态性能)有很大的提高,但是造成了一定的稳态误差(因为此时Kp<1)。 . . 2.2 PI控制仿真 比例积分控制系统的单位阶跃响应: 图21 Kp=0.405 Ti=1.66 (PI) 波形(1) 图22 Kp=0.405 Ti=1.66 (PI) 波形(2) 从图中可以看出,在P控制的基础上加入I控制后,形成PI控制,系统稳. . 态误差有所减少,但是超调量和调节时间有所加大,这可以看出,PI控制适用于对系统稳态误差(稳态性能)要求精度大,但是对于调节时间(动态性能)要求精度小的实际模型。 2.3PID控制仿真 将仿真时间定为300秒,绘制整定后的系统的单位阶跃响应曲线(PID)。 比例积分微分控制下的单位阶跃响应: 图23 Kp=0.54 Ti=1Td=0.24(PID) 波形(1) 图24 Kp=0.54 Ti=1Td=0.24(PID) 波形(2) . . 由图形可以看出,PID控制后,无论是稳态误差(稳态性能)还是调节时间(动态性能)都有所加强,但是超调量超过了40%,不符合实际要求,再次调整PID参数,把PID中的参数Ti改为7,其它两个参数不变,得到如下阶跃响应曲线,可以看出调整后系统的阶跃响应的超调量小于20%,可以实现稳、准、快三大要求,也符合实际工程要求,因此PID联合控制适用于对动态性能和稳态性能都有要求的实际系统。 图25 调整后的PID阶跃响应曲线 3、制作M文件求取系统阶跃响应性能指标 PID控制后系统的传递函数为: G = 1.3 s^2 + 5.4 s + 0.77 ----------------------------------- s^4 + s^3 + 11.3 s^2 + 6.4 s + 0.77 Continuous-time transfer function. . . M文件如下: num=[1.3 5.4 0.77]; den=[1 1 11.3 6.4 0.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. 时光荏苒,感谢教给我人生道理的老师。 . . 结语: .
/
本文档为【计算机仿真大作业--matlab课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索