版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上数字PID的计算机仿真课程名称: 计算机控制技术 学 院:电子信息与电气工程学部专 业: 自动化 班 级: 1102 学 号: 学生姓名: 一. 数字PID的计算机仿真一、 目的加深理解PID调节器的特性及参数设定。二、 算法u(k)=q0*e(k)+q1*e(k-1)+q2*e(k-2)u(k)=u(k-1)+u(k)初始条件:u(k-1)=u(k-2)=0, e(k-1)=e(k-2)=0, y(k-1)=y(k-2)=0,R(k)为单位阶跃,且控制系统的结构图为:PIDG(z)R(k)e(k)u(k)y(k)-三个被控对象:二阶振荡环节其中:=-1.5,=0.7
2、,=1.0,=0.5,T=2s具有非最小相位特性的过程 其中:=-1.68364,=0.70469,=-0.07289,=0.09394,T=1s具有低通特性和纯滞后的过程其中:d=4,=-2.48824,=2.05387,=-0.56203,=0,=0.00462,=0.00169,=-0.00273,T=1s三、仿真要求:1、 采用matlab计算40步以上的y(k) u(k),并画图显示。2、 对三个对象,在T=1或2时,整定出最佳的PID参数。3、 整定法,凑试法。(程序中要有上升时间,超调量和收敛时间的计算)在此,我们选取T=2S,约定超调量poss<5%, 上升时间tr<
3、;25, 调整时间 ts<40。不符合条件的PID参数均舍弃。四、被控对象的PID参数整定过程:(1) 二阶振荡环节a)、实验程序Kp=?;Ti=?;Td=?;T=2;q0=Kp*1+T/Ti+Td/T;q1=-Kp*1+2*Td/T;q2=Td*Kp/T;b1=1;b2=0.5;a1=-1.5;a2=0.7;e=zeros(1,60);u=zeros(1,60);y=zeros(1,60);du=zeros(1,60);for k=3:1:60 e(1,k)=1-y(1,k-1); du(1,k)=q0*e(1,k)+q1*e(1,k-1)+q2*e(1,k-2); u(1,k)=u(
4、1,k-1)+du(1,k); y(1,k)=-a1*y(1,k-1)-a2*y(1,k-2)+b1*u(1,k-1)+b2*u(1,k-2);end %迭代步骤 t=1:60; subplot(2,1,1) plot(t,y) xlabel('t'); ylabel('y'); title('y(k)图形'); subplot(2,1,2) plot(t,u) xlabel('t'); ylabel('u'); title('u(k)图形'); yp,tp=max(y);num=length(t)
5、;yss=y(num) ;poss=100*(yp-yss)/yss %计算超调量 for i=length(t):-1:1 if (y(i)>1.02*yss) ts=t(i); break elseif (y(i)<0.98*yss) ts=t(i); break else ts=0; endendts %显示调整时间 for i=1:length(t) if(y(i)<0.9*yss) tr1=t(i); elseif(y(i)=yp) break endend for i=1:length(t) if(y(i)<0.1*yss) tr2=t(i); elseif
6、(y(i)=yp) break endend tr=tr1-tr2 wucha=1-y(60)b)、参数选择Kp=0.03,Ti=3.55,Td=0.1c)、仿真图像d)、40步仿真数据u(k)0 0 0.1900 0.0800 0.0689 0.0635 0.0743 0.0898 0.1049 0.11630.1230 0.1259 0.1266 0.1264 0.1265 0.1273 0.1287 0.1303 0.1317 0.13280.1334 0.1336 0.1335 0.1333 0.1332 0.1331 0.1331 0.1332 0.1333 0.1333 0.133
7、4 0.1334 0.1334 0.1334 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333 0.1333Y(k) 0 0 0 0.1900 0.4600 0.6659 0.7748 0.8021 0.7878 0.77000.7723 0.8006 0.8478 0.9008 0.9474 0.9803 0.9978 1.0028 1.0003 0.9954 0.9915 0.9903 0.9917 0.9946 0.9978 1.
8、0003 1.0016 1.0019 1.0014 1.00060.9999 0.9995 0.9994 0.9995 0.9998 1.0000 1.0002 1.0002 1.0002 1.0001 1.0000 1.0000 0.9999 0.9999 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000Poss=0.2801ts=15tr=10 wucha =-1.3850e-006(2) :二阶振荡环节a)、实验程序Kp=?;Ti=?;Td=?;T=1;q0=Kp*1+T/Ti+Td/T;q1=-Kp*1+2*Td/T;q2=Td*Kp/T;b1=-0.
9、07289;b2=0.09394;a1=-1.68364;a2=0.70469;e=zeros(1,60);u=zeros(1,60);y=zeros(1,60);du=zeros(1,60);for k=3:1:60 e(1,k)=1-y(1,k-1); du(1,k)=q0*e(1,k)+q1*e(1,k-1)+q2*e(1,k-2); u(1,k)=u(1,k-1)+du(1,k); y(1,k)=-a1*y(1,k-1)-a2*y(1,k-2)+b1*u(1,k-1)+b2*u(1,k-2);end %迭代步骤 t=1:60; subplot(2,1,1) plot(t,y) xlab
10、el('t'); ylabel('y'); title('y(k)图形'); subplot(2,1,2) plot(t,u) xlabel('t'); ylabel('u'); title('u(k)图形'); yp,tp=max(y);num=length(t);yss=y(num) ;poss=100*(yp-yss)/yss %计算超调量for i=length(t):-1:1 if (y(i)>1.02*yss) ts=t(i); break elseif (y(i)<0.98
11、*yss) ts=t(i); break else ts=0; endendts %显示调整时间 for i=1:length(t) if(y(i)<0.9*yss) tr1=t(i); elseif(y(i)=yp) break endend for i=1:length(t) if(y(i)<0.1*yss) tr2=t(i); elseif(y(i)=yp) break endend tr=tr1-tr2 %显示上升时间,是从10%到90%axes(handles.axes2) ; plot(t,y); xlabel('t');ylabel('y
12、9;);grid axes(handles.axes4) ; plot(t,u); xlabel('t');ylabel('u');grid;b)、参数选择Kp=0.67,Ti=11.5,Td=0.95c)、仿真图像d)、40步仿真数据u(k)0 0 1.3648 0.7865 0.9805 0.9774 1.0343 1.0646 1.0934 1.11371.1286 1.1383 1.1437 1.1454 1.1442 1.1406 1.1351 1.1282 1.1202 1.1115 1.1024 1.0930 1.0837 1.0746 1.065
13、8 1.0574 1.0494 1.0420 1.0352 1.0290 1.0233 1.0183 1.0138 1.0098 1.0064 1.0034 1.0009 0.9988 0.9971 0.99570.9947 0.9939 0.9933 0.9929 0.9927 0.9927 0.9927 0.9929 0.9931 0.9934Y(k)0 0 0 -0.0995 -0.0966 -0.0901 -0.0628 -0.0258 0.0204 0.0728 0.1298 0.1895 0.2507 0.3121 0.3727 0.4318 0.4887 0.5429 0.594
14、1 0.6420 0.6864 0.7274 0.7648 0.7988 0.8294 0.8567 0.8810 0.9024 0.9212 0.93740.9513 0.9632 0.9732 0.9816 0.9884 0.9939 0.9983 1.0016 1.0042 1.0059 1.0071 1.0078 1.0080 1.0079 1.0076 1.0071 1.0064 1.0056 1.0048 1.0040Poss=1.0387 ts=33 tr=17(3) 具有低通特性和纯滞后的过程a)、实验程序Kp=?;Ti=?;Td=?;T=1;q0=Kp*1+T/Ti+Td/T
15、;q1=-Kp*1+2*Td/T;q2=Td*Kp/T;a1=-2.48824;a2=2.05387;a3=-0.56203;b1=0.00462;b2=0.00169;b3=-0.00273;e=zeros(1,60);u=zeros(1,60);y=zeros(1,60);du=zeros(1,60);for k=8:1:60 e(1,k)=1-y(1,k-1); du(1,k)=q0*e(1,k)+q1*e(1,k-1)+q2*e(1,k-2); u(1,k)=u(1,k-1)+du(1,k);y(1,k)=-a1*y(1,k-1)-a2*y(1,k-2)-a3*y(1,k-3)+b1*
16、u(1,k-5)+b2*u(1,k-6)+b3*u(k-7);end %数字PID增量型控制算法迭代步骤 t=1:60; subplot(2,1,1) plot(t,y) xlabel('t'); ylabel('y'); title('y(k)图形'); %显示输出曲线 subplot(2,1,2) plot(t,u) xlabel('t'); ylabel('u'); title('u(k)图形'); %显示控制量曲线 yp,tp=max(y);num=length(t);yss=y(num)
17、; %稳态值poss=100*(yp-yss)/yss %计算超调量 for i=length(t):-1:1 if (y(i)>1.02*yss) ts=t(i); break elseif (y(i)<0.98*yss) ts=t(i); break else ts=0; endendts %显示调整时间 for i=1:length(t) if(y(i)<0.9*yss) tr1=t(i); elseif(y(i)=yp) break endend for i=1:length(t) if(y(i)<0.1*yss) tr2=t(i); elseif(y(i)=y
18、p) break endend tr=tr1-tr2b)、参数选择Kp=0.62,Ti=15,Td=1.1c)、仿真图像d)、40步仿真数据u(k)0 0 0 0 0 0 0 1.3433 0.7027 0.74400.7853 0.8267 0.8680 0.9010 0.9265 0.9510 0.9723 0.9907 1.0064 1.01951.0302 1.0389 1.0456 1.0506 1.0541 1.0563 1.0572 1.0572 1.0562 1.05461.0523 1.0495 1.0464 1.0429 1.0393 1.0355 1.0316 1.027
19、7 1.0239 1.02021.0165 1.0131 1.0098 1.0067 1.0038 1.0011 0.9986 0.9964 0.9944 0.9927y(k)0 0 0 0 0 0 0 0 0 00 0 0.0062 0.0210 0.0404 0.0638 0.0908 0.1209 0.1534 0.18800.2241 0.2613 0.2992 0.3374 0.3756 0.4134 0.4508 0.4873 0.5229 0.55730.5905 0.6222 0.6526 0.6814 0.7087 0.7343 0.7584 0.7809 0.8019 0.
20、82130.8393 0.8558 0.8709 0.8847 0.8973 0.9086 0.9189 0.9280 0.9362 0.9435Poss=0 ts=52 tr=26五、实验体会: 通过此次数字PID的仿真实验,首先掌握了PID控制规律及控制器的实现,同时对MATLAB的运用也更加熟练。此次实验最大的收获就是通过自编写程序来实验PID的控制算法。而不仅仅局限于用Simulink模块实现PID算法。通过程序的编写,使得对PID的调节作用有了更深入的了解,尤其是对三个参数的改变对控制系统的影响有了更深刻的理解。而在整定参数的过程中,学会了整定法,凑试法的方法,而非理论计算,使得更加
21、贴近于工程。温度智能控制器课程名称: 计算机控制技术 学 院:电子信息与电气工程学部专 业: 自动化 班 级: 1102 学 号: 一.设计说明书1.技术参数与指标:检测元件:热电偶(K 、E、 S、 R、 N等),测量精度0.2级热电阻:Pt100:-200800、Cu50:-40140;控制对象:窑炉、锅炉等;控温手段:控制能源(煤、煤气、重油、过热蒸汽等)的流量(通过阀门)来控制炉内的温度;也可以通过电加热来控制温度,具体方法为,通过脉宽调制来调节电功率控制继电器的输出方式,或者是通过调节控制角来调节电压控制420mA方式;显示部分:实测温度值PV;设定温度值SV;OUT100%;电源指
22、示灯;通讯指示灯;故障指示灯;报警指示灯(包括上限、下限);操作部分:键盘按键;通讯:RS-485 Mod BUS协议;电源:220V交流;控制方式:PID饱和不完全积分法。2.实现的功能:本设计主要是测量系统的温度,并对其进行控制,在要求的温度范围内,保证了准确度。可以根据不同的温度范围和精度要求选择不同的检测元件,可以使测温范围更加广。将温度控制器通过RS-485 Mod BUS协议与计算机连接,对温度进行集中分析和控制。在操作部分,通过按键设定上下限,确定了温度的范围。同时,利用数码管同时现实设定值和实测值,正常工作时,电源指示灯和通讯指示灯亮,。当出现故障时,故障部分指示灯亮。当温度超
23、过上下限时,报警指示灯亮,并且蜂鸣器响。实现智能化。3.简单的操作使用说明:l 根据不同的测温范围和精度要求选择不同的检测元件;l 根据选定的检测原件设定温度值以及上下限:选择相应的工作方式,按SET键进入模式选择,按移位键选择合适的模式,并在该模式下通过上下键设定设定温度值和上下限,最后按回车使其进入正常工作状态;l 在无故障过程中计算机分析当前温度并进行合理的控制,并输出设定值和实测值。二.系统设计温度控制是工业生产中经常遇到的过程控制,在很多工艺生产中,温度控制效果直接影响到产品的质量,因而设计一种比较理想的温度控制系统是非常有价值的。日常生活中,温度值也是一个重要的参考量。此外,对温度
24、信息的采集,检测,控制,步进保证产品质量,还节约能源,安全生产方面有积极作用。1.系统总体设计:硬件系统以单片机为检测控制系统中心,温度控制采用改进的PID数字控制算法,显示采用4位LED实时显示。系统的结构框图如下:温度采集和控制对象 420mA电流输出通道51单片机A/D转换器温度测量通道 显示模块按键输入微处理器监控电路温度控制输出通道 报警电路2.控制方法描述:不完全微分数字PID:若输入为单位阶跃:即,若此时:,则下一个周期:-+PID 得到差分方程: 3.硬件模块设计:3.1热电阻测温电路系统电路图中共有4路热电偶、1路热电阻,可循环接收5路的温度信号(通过P20P24引出的5根地
25、址线完成选择),并将电信号转换为对应代表的温度值(运用分段线性化方法),最后5组温度的均值(或根据实际情况加权平均)即为现场的实际温度。实际过程如下:首先,热电阻的电路如下:其中比较器输出为2、3引脚的电压差,再经运放放大后送入选择开关(热电偶电压信号经仪用放大电路接至选择开关),由于热电阻等器件的温度-阻值存在非线性,在将单片机接收的电信号转换为对应的热电偶的阻值后,再将阻值对应成相应温度时,要运用分段线性化的方法,即将温度-阻值的非线性曲线划分为若干段,每一段内近似成线性关系,将实际的阻值对应找到其所在的段,则根据段内的线性关系,可得出阻值对应的温度。3.2温度测量通道1路热电阻、4路热电
26、偶和多路选择开关CD4052、CD4051的组合,可实现5路温度测量的随意切换(;由热电偶、热电阻产生的电压信号经仪用放大电路放大、线性光耦隔离后,送入模数转换器ICL7135;ICL7135与单片机的连接采用了不常用的串行接收方式,而ICL7135的串行接法是通过计脉冲数的方法来获得测量转换结果的。由其时序分析可知,在ICL7135工作过程中的去积相,其脉冲数与转换结果具有一一对应关系。通过单片机的定时器T0来计脉冲器。由于,定时器T0所用的CLK频率是系统晶振频率的1/12。因此可利用单片机的ALE信号作为ICL7135的脉冲(CLK)输入。至此,便可找到定时器所使用的频率与单片机系统晶振
27、频率的关系,以及ICL7135所需的频率输入与单片机系统晶振频率的关系。为了使定时器T0的计数脉冲的ICL7135工作所需的脉冲同步,可以将ICL7135的BUSY信号接至P3.2(INT0)引脚上,并且将定时器T0的选通控制信号GATE倍1。此时定时器T0是否工作将受BUSY信号的控制。当ICL7135开始工作时,也就是ICL7135的BUSY信号跳高时,定时器T0才开始工作,且定时器T0的TH0、TL0所记录的数据与ICL7135的测试脉冲存在一定的比例关系。要得到测量脉冲的个数,只需将定时器所记录的脉冲个数除以2即可。而要得到A/D转换结果所对应的脉冲数则应用测量脉冲的个数减去10001
28、。在温度测量通道,模拟信号与A/D转换器之间加入了线性光耦,起到隔离作用,线性光耦隔离部分如下:同样,在多路开关的选通线与地址线之间也加入了普通光耦,确保测量电路与单片机之间良好的电气隔离,电路如下: 3.3 4到20mA电流输出模块由P0口输出,经DAC0832转换成模拟电压输出,通过线性光耦隔离,进行V/I变换,转换成标准的420mA电流输出;模块的电路图如下:其中V/I变换部分的电路如下:通过设置Rc阻值及调整滑动变阻器阻值,可使输出电流为420mA,输出电流的表达式为:I=(Vin+Vrf)/Rc在420mA标准电流输出通道,D/A转换器与后续电路之间也加入了线性光耦,确保两边的电气隔
29、离,其隔离部分的电路图与温度曾两通道的线性光耦隔离完全相同,不再重复。3.4 温度控制输出通道 将输出的pwm脉冲经光耦隔离,三极管的驱动放大后,控制继电器的开、关,进而控制功能电路的开、关。3.5 显示模块3.6 按键输入模块本系统的四个按键,通过光耦隔离,经过74LS244三态缓冲器,连至单片机的PI0P13口;按键与单片机输入缓冲器间加入普通光耦进行电气隔离,电路图如上面的按键接收模块的电路图;为了去除按键抖动,在硬件上,按键后面加入了RC滤波电路,减少抖动的影响,如下图:在软件中,当判断按键按下后调用延时程序(几十毫秒),然后再判断开关的状态是否还是按下,是则代表确实开关被按下,否则不
30、做相应的响应。3.7 报警模块控制输出与报警输出中都加入普通光耦进行隔离,继电器两端并入二极管,防止开关过程中反向电流的损害,如下:3.8 通讯模块 RS232通讯电路4、软件功能分析软件主要功能:数据采集,数字滤波,标度变换,PID控制,显示,报警,通讯。1) 数据采集按顺序采集4个点的温度信号,共采集多次并存储起来,采样周期T=1s。2) 数字滤波将每个信号的测量值排序,去掉一个最大值和一个最小值,剩余求平均值即为该信号的测量结果,即采用中位值滤波法与平均值滤波法相结合来实现数字滤波3) 标度变换测温回路和控温回路,都是用420mA 信号进行控制。将测量允许的上限和下限进行分段线性化,上限温度时对应电压输出转化为20mA 电流输出,下限温度对应电压输出转化为4mA电流输出。标度变换的公式为:Y=Ymin + (Ymax-Ymin)(D-Dmin)/(Dmax-Dmin)4) PID控制采用增量型PID控制算式:u(k)=q0*e(k)+q1*e(k-1)+q2*e(k-2)u(k)=u(k-1)+u(k)采样周期为1S5) 显示LCD 显示实测值PV、设定值SV、状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 接地极检修规程
- 2026年物流运输企业财务考核试题及答案
- 软化水设备检修规程
- 2026年遂宁市安居区网格员招聘笔试备考试题及答案解析
- 2026年萍乡市安源区网格员招聘笔试参考试题及答案解析
- 2026年襄樊市襄阳区网格员招聘笔试备考题库及答案解析
- 2026年陕西省渭南市网格员招聘考试备考试题及答案解析
- 2025年南京市雨花台区网格员招聘考试试题及答案解析
- 2026年浙江省温州市网格员招聘考试参考题库及答案解析
- 2026年云南省昭通市网格员招聘考试备考试题及答案解析
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 特种设备使用管理新版规则
- 鲲鹏架构入门与实战
- 平面等厚干涉仪校准规范
- 火力发电厂消防培训课件
- 四年级数学下册运用平移知识解决面积问题教学设计
- 大班科学《鸡蛋的沉浮》
- GB/T 4942.1-2006旋转电机整体结构的防护等级(IP代码)分级
- 禁毒学-毒品犯罪案件侦查
- GA 802-2019道路交通管理机动车类型
- 金融反诈理论考试题库(浓缩500题)
评论
0/150
提交评论