ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:308.35KB ,
资源ID:10036140      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10036140.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PID实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PID实验报告.docx

1、PID实验报告1、实习内容及其要求 通过温度或转速的设定值和反馈值,计算其偏差,并使用PID控制算法输出控制信号,整定PID参数,使被控的温度或转速达到设定值。具体实训内容包括AC6611过程卡的接线和测试、数据采集程序设计、PID算法程序设计、控制输出程序设计、人机界面程序设计、PID参数整定、实训报告。目的:通过实训,让学生了解计算机控制系统的基本组成,提出计算机控制系统的设计思路,初步学会计算机控制系统软硬件设计及调试的方法,具备技术实现能力;基本上能够处理实践过程中出现的问题并提出解决办法,进一步提高学生的计算机应用水平。要求:完成一个温度或转速单回路控制系统的设计和调试过程。2、AC

2、6611多功能过程通道卡2.1 功能特点与技术指标 功能:AC6611是一款廉价通用A/D、D/A板,AD工作在查询方式,采用PCI总线支持即插即用、无需地址跳线。AC6611具有16路单端模拟输入、32路开关量(16路输入及16路输出)、一路12位D/A。AC6611采用大规模可编程门阵列设计。 A/D转换指标:A/D转换器: 120KHZ 12位A/D ADS7816; 保持器:A/D芯片内置采样保持器;工作方式:软件查询;通道数:16路单端输入; 输入阻抗:1M, 最大输入耐压电压: +12V / 5.5V;瞬时输入耐压:-25V - +30V;双极性输入范围: 5V;单极性输入幅度:5

3、伏、10伏;连接器:DB25(孔式)。D/A转换指标:通道数:1路分辨率:12位精度:0.2%最大输出电流:5毫安。输出零点误差: 2.5V,低电压 0.5V最大输出电流 :8mA输入电流:2V,低电压:Text=FloatToStrF(En,0,4,4);DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if(Un100.0) Un=100.0;if(Un2048) da=2048;AC6611_DA(hDevice,da);5、控制算法程序设计5.1温度设定曲线的程序实现在进行温度设定曲线的绘制时,我们需要将温度的设定曲线和程序中的采样程序结合起来才能够

4、体现出程序的实时性,具体的程序如下:Image1-Picture-LoadFromFile(QUSHI.bmp);Image1- Canvas-Pen-Width=1;Image1- Canvas-Pen-Color=clBlack;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-sptrendi);Image1- Canvas-Pen-Color=clBlue;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-pvtrendi);Image1- C

5、anvas-Pen-Color=clGreen;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-mvtrendi);Edit15-Text=FloatToStrF(PV,0,4,4);Edit16-Text=FloatToStrF(Un,0,4,4);5.2 PID控制算法的程序设计在此加热器温度控制系统我们所采算法是标准的PID控制算法,程序设计如下(附流程图):AC6611_AD(hDevice,9, &ad);PV=(ad-819.0)*(HS-LS)/(4095.0-819.0);En=SP-PV;Edit2-T

6、ext=FloatToStrF(En,0,4,4);DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if(Un100.0) Un=100.0;if(Un0) Un=0;Un1=Un;En2=En1;En1=En;6、 控制程序的调试 6.1主要调试的内容在程序编写完成后,为验证系统的稳定性和可靠性,此时我们需要让系统运行起来,经过反复的操作和验证后的系统才是一个稳定可靠的系统。在系统的调试中,我们调试的主要内容包括:硬件调试、各个部分子程序的调试、PID参数的整定调试等。6.2调试方法硬件:在进行硬件调试的时候,我们可以让硬件在极限条件进行工作,观察其性能

7、是否稳定,其个方面的指标是否有较大的波动,以验证其性能的优劣。子程序:在操作界面上对开发的系统进行各种各样的试探性操作,观察程序是否存在没有考虑到的漏洞,以对其进行修改和调试。PID参数的整定:在这次实训中PID参数的整定是最重要的环节,也是系统调试的核心内容。其参数整定的方法是根据被控过程的特性来确定PID控制器的比例系数、积分时间和微分时间的大小。PID参数的整定的方法主要有两大类:一是理论计算整定法,主要是通过系统的数学模型进行理论计算得到控制器参数,但还必须通过工程实际进行相应的调整和修改。二是工程整定发,这种方法主要依靠的是操作者的经验直接在控制系统的试验中进行。PID控制器参数的工

8、程整定方法,主要有临界比例法、反应曲线法和衰减法。这些工程参数整定的方法对操作的经验依赖性大,一般只适用于有较长工作年限的操作者。但是不管事哪种参数整定的方法,都必须在实际的系统中进行相应的调试、修改和完善,才能够找到控制的最佳参数。6.3 PID参数整定PID参数整定的口诀:参数整定找最佳,先是比例后积分,自后再把微分加,曲线震荡很频繁,比例参数应增加,曲线偏离回复慢,积分时间往下拉,曲线波动周期长,积分时间再加长,曲线震荡频率快,先把积分降下来,动差大来波动慢,积分时间应加长,理想曲线两个波,前四后一不能多,一看二调多思考,从小到大顺序查,调节效果才会好。根据上面的口诀所诉的步骤我们依次对

9、PID控制器的参数进行整定,从而得到较好的控制效果。6.4 整定结果和分析在进行PID参数的整定过程中,我们将以P=20、I=10、D=5为一个参照的基本参数,来说明在整定的过程中P、I、D三个参数对控制器性能的影响,在此过程中,每次的整定都只将改变其中的一个参数,其他的参数不变,这样我们便能够清晰的从整定实时趋势曲线的输出直观的判断出各个参数在控制器中所扮演的角色。从而更加深刻的加强我们对PID控制器的认知。图一图二图三图四 通过以上我们对单一参数的调节,我们可以清楚知道,在PID控制器中:比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,比例系数的增大会系统的不稳定;积分控

10、制的作用是,只要系统存在误差,积分控制作用就不断的积累,输出控制量以消除误差,因而只要哟足够长的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现震荡;微分控制可以减小超调量,克服震荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。7、 技术小结在本次实训中,我们利用C+Builder编写的基于AC6611板卡的单回路加热器温度控制系统。在进行了PID参数的整定后各项指标基本上能够满足实训的要求。在数字PID控制器中采样周期越小,其控制效果就越接近于连续PID的控制效果。在系统的动态过程中,比例系数增加时,系统的动作灵敏,响应速

11、度加快,但是比例系数偏大,会导致系统的震荡次数增多,调节时间会加长,也就是当比例系数过大时会引起系统的不稳定;当比例系数太小时,又会使系统动作过于迟缓。积分控制可以消除稳态误差,提高系统控制的精度,但是当积分时间太大时,积分的作用过于微弱,以至于不能够完全的消除系统的稳态误差。微分作用可以改善系统的动态性能,但是当微分时间偏大或是偏小,都会导致系统的超调增大,从而使得系统的调节时间比较长。所以在PID参数整定的过程中一定要,严格的遵循参数整定的方法,以便达到高效率、高精度的控制。8、 心得体会在为期两周的计算机控制技术实训中,通过老师的讲解和我们自身的不断学习,我们顺利的完成本次实训的基本任务

12、。由于自己的基础较差,所以在本次实训中也遇到了不少的困难,很多东西都需要自己在实训中学习,不过在老师和同学的帮助下,在本次实训中我学到了很多的东西,使我受益匪浅。通过本次的实训,我对C+Builder开发软件有了一定的了解和掌握,也学会了一些简单的命令语言,对控制系统的硬件组成和组装连线等一些列的基本操作也有了很好的掌握。在进行PID参数整定的时候,我熟悉了PID各个参数对系统性能的影响。这加深了我对PID控制器的理解,在今后的学习和工作中都将给我带来相当的影响。在实训了,老师和同学给了我很多的帮助,这也是我能够顺利的完成实训的一个重要的前提。虽然说能够顺利的完成本次实训,大部分功劳在于自己的

13、努力,但和老师、同学的帮助是密不可分,在这里很感谢在此次实训中帮助过我的老师和同学。参考文献1于海生.微型计算机控制技术M.北京:清华大学出版社,1999.2王锦标.计算机控制系统M.北京:清华大学出版社,2004.3叶蓓华.数字控制技术M.北京:清华大学出版社,2002.4张晋格.计算机控制原理与应用M.北京:电子工业出版社,1995.5疏松贵.计算机控制系统理论与应用M.北京:科学出版社,1998.附录:控制程序清单/-#include #include #pragma hdrstop#include Unit1.h/-#pragma package(smart_init)#pragma

14、resource *.dfmfloat adcsave100;float avg=0;float SP,PV=0.0;int pvtrend480;int sptrend480;int mvtrend480;float HS=100.0,LS=0.0,HL=7.5,LL=2.5,DH=0.2;float PID_DB=2,P=20,I=10,D=5,KD=5;float Un=0.0,DeltaUn=0.0,Un1=0.0,En=0.0,En1=0.0,En2=0.0;float q0,q1,q2;float TS=1.0;TForm1 *Form1;int trend480;/- _fast

15、call TForm1:TForm1(TComponent* Owner) : TForm(Owner)/- hDLL=LoadLibrary(ac6611.dll); if(hDLL!=NULL)Label2-Caption = AC6611.dll load ok!; (FARPROC&)AC6611_CreateDevice=GetProcAddress(hDLL,AC6611_CreateDevice); /创建驱动句柄 (FARPROC&)AC6611_CloseDevice=GetProcAddress(hDLL,AC6611_CloseDevice); /关闭驱动句柄 (FARP

16、ROC &)AC6611_DI=GetProcAddress(hDLL,AC6611_DI); /数字量输入,port=0-1两个通道,8位数据由DiData返回 (FARPROC &)AC6611_DO=GetProcAddress(hDLL,AC6611_DO); /数字量输出,port=0-1两个通道,8位数据由DoData输出(FARPROC&)AC6611_DiBit=GetProcAddress(hDLL,AC6611_DiBit); /数字量输入,port=0-1两个通道,指定位输入(FARPROC&)AC6611_DoBit=GetProcAddress(hDLL,AC6611

17、_DoBit); /数字量输出,port=0-1两个通道,指定位输出(FARPROC &)AC6611_DA=GetProcAddress(hDLL,AC6611_DA); /DA输出,0-4095(FARPROC&)AC6611_VoltageToDA=GetProcAddress(hDLL,AC6611_VoltageToDA);(FARPROC &)AC6611_AD=GetProcAddress(hDLL,AC6611_AD); /通用AD采样 (FARPROC&)AC6611_AD_CHN=GetProcAddress(hDLL,AC6611_AD_CHN); /设置AD通道0-15

18、(FARPROC &)AC6611_ADS=GetProcAddress(hDLL,AC6611_ADS); /直接AD采样,为单通道AD采样设计 (FARPROC&)AC6611_ADToVoltage=GetProcAddress(hDLL,AC6611_ADToVoltage);hDevice=AC6611_CreateDevice(0, &ErrorOf6611); /创建驱动,选择第0块卡 if(hDevice != -1) Label1-Caption = AC6611 Card Is Exist!; else Label1-Caption = AC6611 Card Is not

19、 Exist!; /-void _fastcall TForm1:Timer1Timer(TObject *Sender)HS=100.0,LS=0.0;unsigned long ad;unsigned long da;AC6611_AD(hDevice, 9, &ad);/Edit1-Text=IntToStr(ad);PV=(ad-819.0)*(HS-LS)/(4095.0-819.0);En=SP-PV;Edit2-Text=FloatToStrF(En,0,4,4);DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if(Un100.0) Un=

20、100.0;if(Un2048) da=2048;AC6611_DA(hDevice,da);if(PV=HL)Edit5-Color=clRed;elseEdit5-Color=clGreen;if(PVColor=clRed;elseEdit6-Color=clGreen;for(int i=0;iPicture-LoadFromFile(BT.bmp);Image2-Canvas-Pen-Color=clBlack;Image2-Canvas-Pen-Width=5;Image2-Canvas-MoveTo(30,294);Image2-Canvas-LineTo(30,294-SP*2

21、88.0/(HS-LS);Image2-Canvas-Pen-Color=clBlue;Image2-Canvas-MoveTo(55,294);Image2-Canvas-LineTo(55,294-PV*288/(HS-LS);Image2-Canvas-Pen-Color=clGreen;Image2-Canvas-MoveTo(70,294);Image2-Canvas-LineTo(70,294-Un*288/100.0);/绘制趋势曲线Image1-Picture-LoadFromFile(QUSHI.bmp);Image1- Canvas-Pen-Width=1;Image1-

22、Canvas-Pen-Color=clBlack;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-sptrendi);Image1- Canvas-Pen-Color=clBlue;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-pvtrendi);Image1- Canvas-Pen-Color=clGreen;Image1-Canvas-MoveTo(0,300);for(int i=0;iCanvas-LineTo(i,300-mvtrendi);Edit15-Text=FloatToStrF(PV,0,4,4);Edit16-Text=FloatToStrF(Un,0,4,4);/-void _fastcall TForm1:Button2Click(TObject *Sender)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1