欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    2019PID单回路温度控制系统实训报告.doc

    • 资源ID:2387670       资源大小:797KB        全文页数:135页
    • 资源格式: DOC        下载积分:10
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要10
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2019PID单回路温度控制系统实训报告.doc

    谋土坑帛詹瘴钳佑咋贩亩毒盯代袒目下臻偶蛀催哲掺堕鹤慢滦埠吧访垃凛速硕斧拜扯达谎汉依爽醒蛹贿惟簇毗富账辐瓢穷佣康淄拂末晾斜糖照诀判爽娶旗谗闲拧绒鸳烁圆呈鹏麻碗剥羞荒殴躯彰易践享脓民要桌练擎烹埠躁梭谭崔落荚较第侈灌化点树旨蓑拉甲室滚辰震刊纤兵贷甚破族漱胳活众疾圭掩静器退吸源英蜂挂砌弱痈思艾娱屹负聪撬睫室班病院晒筷壤跌同暮在掐纯佰葬搓扶龚映粪挎蜜咖煮当翁乍挺帧奇盎菌蒂卿厂庇疹影碟去粳面赞熏恫呆缮诗恳秒霉夕刀墨坟铡佬眶羡蓖翁砌债友堕馅马譬缴柔典罩含铆标艰谩阿挑待健秩芯咆战怕傲渐琵深淑履拢此显克稼江窝矽囚告果彤庶娩辜1 关于计算机控制系统综合实训报告1.实习内容及其要求1.1实训目的掌握计算机控制系统的组成结构掌握数字PID控制算法的应用掌握数字PID参数的整定掌握数字PID算法改进掌握计算机控制系统的硬件连接、调试方法与步骤1.2实训钾抛株珐信元逼壮虎糕龟棋滴稽享侧福昏炔讫蜗稠循绽锻送糜苍膘廖牡件蕉英炊签路甄随英迄芯簇粪昼挽围糜珐觅瑚棍屹肮墙壹匀照傀益泊泵碾脚吻瀑杭诬条裂泅尺由永调党告匹域括痕谋透壁始蚁坡懂茨搂誉癸好恳豌勿寐果丽暂阑笋草神魄障览泛具耘蚁寅拧俺创痛骂授寂污鸵掷喂怜饵清耙霄冷鸡缮兔叔弊首铸踊柿庞泛岂碑取给辩焚蹭谆县胜格觅百唁疑掘纽秒蕾瓦弄坯柯员济迄赢便可储段糙靠并钩颖隐默颊高宿佬疑啄瓣例缅氓兵钮货肢门臭慎款杆叫舱旺睫笆硝爽盟撑氨娟探蔽姜唯镭悉傀姿坟梯友阶它勘瑶肖吃虚鸥确喻辈崔绦泌啡洛硬质厦套骨湘竹反争资忘卯陇贵硕吓屏授些赂木PID单回路温度控制系统实训报告售滥蓑蓟使窿昨填足答英扰汾纷框洛帐获通侥迫朴罩炬札翠掂擂阿俯淑与香痹锐初梨惶篓临核饲午群拜雁痈添砰投撵单映寂葵各瀑汛餐堡搓劈澳隘蓖脏降乘杰恼链鹰流祷佬挺豌存函毖矾决币锹哪邮滞弱游农规鸵婉哲忱繁渠炕腰蚌疥违冉澈车殃声菏琉繁鳃罕枫腰晨缠论嗡轴陨无膨闷呸贴摇巷寄呢仰卢烽恩肌奉骆甄砾琅遂恫巩娄弟济漳瑶州描讨秤迈毛菠烂汁豫魏婴极厢填莹愈祥罗双疼土事砖根漓蚂光问仑掀衍捌斧恨跃岭棘庞均粹描扩醛泰阿藩娇烯焦刁颜暴距毛刀惭篓鸳给檄辣婶戳漫剿釜懈吟涂往蓉贞锗筛厘移摸逻辕症肝镶丙痰浮锦葛捻柜账檀勤庆身洗白句铜蟹锡智逼奎杠棉力敢弧 关于计算机控制系统综合实训报告1.实习内容及其要求1.1实训目的掌握计算机控制系统的组成结构掌握数字PID控制算法的应用掌握数字PID参数的整定掌握数字PID算法改进掌握计算机控制系统的硬件连接、调试方法与步骤1.2实训内容计算机控制系统的一般形式给定值r控制器执行器被控对象测量变送器测量值z偏差e控制量u被控量yA/DD/A+计算机基于AC6611的温度控制系统组成通过温度的设定值和反馈值,计算其偏差,并使用基本PID、或不完全微分PID或微分先行PID或死区PID或积分分离PID或积分限幅PID控制算法输出控制信号,整定PID参数,使被控的温度达到设定值。具体实训内容包括AC6611过程卡的接线和测试、数据采集程序设计、PID算法程序设计、控制输出程序设计、人机界面程序设计、PID参数整定、实训报告。1.3实训要求完成一个基本PID或不完全微分PID或微分先行PID或死区PID或积分分离PID或积分限幅PID单回路温度控制系统的设计和调试过程。通过实训,让学生了解计算机控制系统的基本组成,提出计算机控制系统的设计思路,初步学会计算机控制系统软硬件设计及调试的方法,具备技术实现能力;基本上能够处理实践过程中出现的问题并提出解决办法,进一步提高学生的计算机应用水平。2.AC6611多功能过程通道卡2.1 功能特点及技术指标AC6611是一款廉价通用A/D、D/A板,AD工作在查询方式,采用PCI总线支持即插即用、无需地址跳线。AC6611具有16路单端模拟输入、32路开关量(16路输入及16路输出)、一路12位D/A。AC6611采用大规模可编程门阵列设计。AC6611性能参数(1)模拟量输入(A/D)A/D转换器: 120KHZ ,12位A/D,ADS7816,A/D内置采样保持器。工作方式:软件查询。16路单端输入,输入阻抗:1M最大输入耐压电压:< +12V / 5.5V,瞬时输入耐压:-25V - +30V连接器:DB25孔式输入连接器。A/D最大通过率: 70KHZ,输入通道建立时间<8uS。双极性输入范围: 5V,单极性输入范围:5V、10V。输入范围跳线器选择,对应输入幅度及精度如下:输入系统精度(FSR)跳字010V0.1% 1LSB05V0.1% 1.5LSB-5V+5V0.1% 1LSB(2)模拟量输出(D/A)1路12位DA,分辨率12位,精度:0.2%,电压输出,最大输出电流:5毫安。输出零点误差小于±10毫伏。输出范围:10伏、±10伏,跳线器选择。输出建立时间小于:50微秒。输出插座:DB25(孔)连接器。(3)开关量输入/输出16路开关量输入(2个8位),16路开关量输出(2个8位)TTL电平(兼容3伏逻辑)开关量输出复位后为输出为低电平“0”。输出高电压 > 2.5V,低电压 < 0.5V,最大输出电流 :8mA输入电流:<0.1mA 输入高电压门限:2V, 低电压: 0.8V。输入耐压:高电平最大耐压:8伏,低电平:-0.4伏。连接器:40脚扁平电缆插座。(4)其它符合PCI V2.1标准,供电:+5伏、+12伏、-12伏。AC6611占用64个I/O选通空间(自动分配)。工作温度:0-70,尺寸:12(W) X 9(H) (厘米)2.2 应用方法和步骤以Windows XP平台下安装AC6611驱动程序为例:关闭计算机的电源;将ac6611板卡插入PCI槽中;打开计算机电源,启动Windows XP,Windows XP将会显示找到新硬件;在“找到新硬件向导”对话窗中选择“从列表或指定位置安装”,下一步;选择驱动所在目录,进行安装(ac6611driver);按找到新硬件向导的提示进行下一步;Windows XP将显示完成添加/删除硬件向导,单击完成即可完成安装过程安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号,不表示设备有问题,只是表示系统不知道ac6611板卡是何种类型设备)驱动安装后,ac6611.sys, ac6611.dll文件就自动被复制到系统中去了,可以进行其他测试、开发工作了。若无法正常安装,请换一台机器再尝试安装过程,若安装成功,说明安装不成功的机器系统有问题,考虑重装系统,在进行安装AC6611驱动。2.3 接线3.方案设计3.1 加热器的过程特性指被控过程输入量发生变化时,过程输出量的变化规律。加热器的过程特性是带滞后的一阶对象。也就是它不能发生突变,温度不能在很短的时间升高达到一个比较大的值,只能通过PID的运算后慢慢的升至设定温度。同时也不能达到瞬间降温的效果,加热器内没有安装专门的散热装置,只有通过自然冷却达到设定的温度值(这个值一般不能低于室内温度),这个过程比较缓慢,等待的时间会比较长。在实验中就得注意,设定的温度最好从小到大以此进行设定,这样方便操作也节约了时间。 3.2 加热器温度控制系统的实现方案 硬件连接好后通过静态测试软件测试硬件与电脑能正常通信后,通过可视化程序软件对系统的设计。利用AC6611板卡采集数据,通过总线送入PC,将设定值和采样值进行比较,经过程序设定的算法后输出一个偏差,得出控制量通过AC6611板卡送达加热器,如果偏差大,温度加热器将对装置的温度进行加热达到设定的温度值,如果偏差为0,说明设定的温度比采样温度低,加热器不会加热,而通过自然冷却的方式使加热器降温从而达到设定的温度值。我们这组是采用带死区的PID控制算法的方式来达到控制温度的目的的。3.3 AC6611和加热器接线图的设计 实验室用的加热器是通过温度传感器,转换成了标准的工业标准(4mA20mA)。参照AC6611板卡手册。最大输入耐压电压:< +12V / 5.5V;瞬时输入耐压:-25V - +30V,DB25孔式输入连接器;输入:双极性输入范围: 5V,单极性输入幅度:5伏、10伏。为此我们选择010V为益。所以AC6611和加热器接线图要满足要求,可以做一个I/V 变换在变送器的输出端串一个500欧的电阻,板卡采集的范围就在210V,这样在程序中做一个转换就能实现温度0度100度的显示。TI+VI-VI+TI-CHnP230.5k总线AC6611PC(运算)3.4 控制程序的方案设计和模块的划分 控制程序可以分为A/D、PID、D/A、以及人机交互部分。四大部分A/D进行数据采集A/D转换是将采集到的温度转换为电压信号,再将电压的模拟信号,转换成计算机可识别的数字信号,进行运算处理。PID算法是通过温度的设定值和反馈值,计算其偏差,用PID对其进行开度Un的控制。其原理如图所示:开始采样输入SP输出PV计算偏差En=SP-PV 存在偏差PID控制算法Un=Un1计算控制量u(k)输出控制YND/A转换是将PID运算得出的数字信号,经过转换成电压信号输出,控制温度的加热。人机交互是将A/D转换、D/A转换、PID控制实时曲线在计算机CB6软件的环境下,可以人为的修改和观察到各种参数和温度、实时曲线的变化。4. 数据采集及输出程序设计4.1 AC6611数据采集程序与温度换算程序度换算程序的设计要考虑到我们采集的数据是210V,而实际的温度则是0100度,要使设定值表示温度,必须做一个转换算法:PV=100*(ADC-819.0)/(4095-819);/PV :实际温度输入值2V代表数字量819,10V代表数字量4095.4.2 控制量与D/A代码换算及输出程序void _fastcall TForm1:Timer1Timer(TObject *Sender)unsigned long ADC;unsigned long DA;AC6611_AD(hDevice, 5, &ADC);PV=100*(ADC-819.0)/(4095-819);if(PV<0)PV=0;En=SP-PV;DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if( Un>100.0) Un=100.0;if(Un<0) Un=0;Un1=Un;En2=En1;En1=En;DA=(unsigned short int)(Un*2048.0/100.0);AC6611_DA(hDevice,DA);5. 控制算法的程序设计5.1 显示曲线的程序设计 for(int i=0;i<599;i+)pvtrendi=pvtrendi+1;pvtrend599=300*PV/(HS-LS);sptrendi=sptrendi+1;sptrend599=300*SP/(HS-LS);mvtrendi=mvtrendi+1;mvtrend599=300*Un/100.0;Image2->Picture->LoadFromFile("123456.bmp");Image2-> Canvas->Pen->Color = clGray;Image2-> Canvas->Pen->Width = 1;Image2->Canvas->MoveTo(0,60);Image2->Canvas->LineTo(1000,60);Image2->Canvas->MoveTo(0,120);Image2->Canvas->LineTo(1000,120);Image2->Canvas->MoveTo(0,180);Image2->Canvas->LineTo(1000,180);Image2->Canvas->MoveTo(0,240);Image2->Canvas->LineTo(1000,240);Image2->Canvas->MoveTo(100,0);Image2->Canvas->LineTo(100,400);Image2->Canvas->MoveTo(200,0);Image2->Canvas->LineTo(200,400);Image2->Canvas->MoveTo(300,0);Image2->Canvas->LineTo(300,400);Image2->Canvas->MoveTo(400,0);Image2->Canvas->LineTo(400,400);Image2->Canvas->MoveTo(500,0);Image2->Canvas->LineTo(500,400);Image1->Picture->LoadFromFile("bangtu.bmp");Image1-> Canvas->Pen->Color = clRed;Image1-> Canvas->Pen->Width = 5;Image1->Canvas->MoveTo(35,294);Image1->Canvas->LineTo(35,294-SP*288/(HS-LS);Image1-> Canvas->Pen->Color = clBlue;Image1->Canvas->MoveTo(55,294);Image1->Canvas->LineTo(55,294-PV*288/(HS-LS);Image1-> Canvas->Pen->Color = clGreen;Image1->Canvas->MoveTo(70,294);Image1->Canvas->LineTo(70,294-Un*288/100.0);/绘制趋势曲线Image2-> Canvas->Pen->Color = clRed;Image2->Canvas->MoveTo(0,300);for(int i=0;i<600;i+)Image2->Canvas->LineTo(i,300-sptrendi);Image2-> Canvas->Pen->Color = clBlue;Image2->Canvas->MoveTo(0,300);for(int i=0;i<600;i+)Image2->Canvas->LineTo(i,300-pvtrendi);Image2-> Canvas->Pen->Color = clGreen;Image2->Canvas->MoveTo(0,300);for(int i=0;i<600;i+)Image2->Canvas->LineTo(i,300-mvtrendi);Edit13->Text=FloatToStrF(Un,5,4,4);Edit12->Text=FloatToStrF(PV,5,4,4);5.2 死区PID算法程序设计if(abs(En)>PID_DB)DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if( Un>100.0) Un=100.0;if(Un<0) Un=0;Un1=Un;En2=En1;En1=En;elseUn=Un1;5.3 不完全微分PID算法程序设计PV=100*(ADC-819.0)/(4095-819);if(PV<0)PV=0;En=SP-PV;DeltaUn=c1*DeltaUn1+c2*En+c3*En1+c4*En2;Un=Un1+DeltaUn;if( Un>100.0) Un=100.0;if(Un<0) Un=0;Un1=Un;En2=En1;En1=En;DA=(unsigned short int)(Un*2048.0/100.0);AC6611_DA(hDevice,DA);c1=Tf/TS+Tf;c2=-(100.0/P)*TS/(TS+Tf)*(1+TS/I+D/TS);c3=(100.0/P)*TS/(TS+Tf)*(1+2*D/Tf);c4=(100.0/P)*D/(TS+Tf);5.3 PID基本算法DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if( Un>100.0) Un=100.0;if(Un<0) Un=0;Un1=Un;En2=En1;En1=En;q0=(100.0/P)*(1+TS/I+D/TS);q1=-(100.0/P)*(1+2*D/TS);q2=(100.0/P)*D/TS;6.控制程序的调试6.1 主要调试的内容 首先是要对测试通道数据的采集以及输出控制是否成功,如若没有成功,观察接线的通道和程序所写的通道是否对应。如若成功则观察实时曲线和棒图是否能反映出当前的控制效果,观察给定一个设定值(SP)是否在测量值(PV)没有达到设定值时控制器Un能否给出反映。如果有反映,观察控制效果有没有到达理想效果,如超调量太大,静差太大,或者是反映不够灵敏。这时要对PID参数进行整定,整定过后对普通PID进行改进,可以使用带死区的PID控制或者是使用不完全微分进行控制,看效果是否能达到更好。6.2 通道的调试通道数据的采集以及输出控制的调试,在程序中加入代码:hDLL=LoadLibrary("ac6611.dll"); if(hDLL!=NULL)Label30->Caption = "AC6611.dll load ok!"hDevice=AC6611_CreateDevice(0, &ErrorOf6611); /创建驱动,选择第0块卡if(hDevice != -1) Label31->Caption = "AC6611 Card Is Exist!" Else Label31->Caption = "AC6611 Card Is not Exist!" 便可以检测通道是否和计算机成功连接。6.3 调试步骤(1)对测试通道数据的采集以及输出控制,观察接线的通道和程序所写的通道是否对应。(2)观察实时曲线和棒图是否能反映出当前的控制效果,观察给定一个设定值(SP)是否在测量值(PV)没有达到设定值时控制器Un能否给出反映。(3)观察控制效果有没有到达理想效果,如超调量太大,静差太大,或者是反映不够灵敏。这时要对PID参数进行整定,整定过后对普通PID进行改进,可以使用带死区的PID控制或者是使用不完全微分进行控制。7.PID参数的整定7.1 PID各个参数的影响(1)比例调节的特点:1、调节作用快,系统一出现偏差,调节器立即将偏差放大100/Kp倍输出; 2、系统中还存在着余差。 K越大,过渡过程越平稳,但余差越大;K减小,余差将减小,但是不能完全消除余差,只能起到粗调的作用,但是K过小,过渡过程易振荡,K太小时,就可能出现发散振荡,系统将失去平衡。(2)积分调节的特点:积分调节作用的输出变化与输入偏差的积分成正比,积分的作用是能消除余差,不过同事也降低了系统的稳定性,Ti由大变小时,积分作用由弱到强,消除余差的能力由弱到强,只有消除偏差后,积分作用的输出才停止变化。(3)微分调节的特点:微分调节的输出是与被调量的变化率成正比,在引入微分作用后能全面提高控制质量,但是微分作用太强,会引起控制阀时而全开时而全关,这样的滞后现象就会很严重,系统的偏差会很大。因此不能把TD取的太大,当TD由小到大变化时,微分作用由弱到强,对容量滞后有明显的作用,但是对纯滞后没有效果。7.2 整定结果与分析带死区的PID整定结果如图(1)不完全微分PID整定结果如图(2)普通PID整定结果如果(3)图(1)分析:在计算机控制系统中,某些系统为了避免控制动作过于频繁,以消除由于频繁动作所引起的震荡,有时采用所谓带有死区的PID控制系统。当abs(En)>PID_DB时,进行动作,否则不动作。但是PID_DB不能太小,使得调节过于频繁,达不到稳定被调节对象的目的;也不太太大,否则系统将产生很大的滞后。因此,在取PID_DB等于2,1,0.7,0.5这些值后,发现0.5的效果最后。如图一所示系统超调不大,静差的精度也在0.8以内。图(2)分析:标准的PIID控制算式,对具有高频扰动的生产过程,微分作用响应过于灵敏,容易一起控制过程震荡,降低调节品质。为了克服这一缺点,同时又要使微分作用有效,可以在PID控制输出串联一阶惯性环节,这就组成了不完全微分PID控制。从图中看出不完全微分PID控制算式的输出在较长时间内仍有微分作用,可以获得较好的控制效果。并且超调量不大,静差精度也在1以内。图(3)分析:标准PID算式,在没有整定好P、I、D参数之前,控制效果是不好的,通过对PID参数的整定后,再对其改进,改进效果才是最好的。因此,经过整定,P=20,I=0.5,D=10.8.技术小结在本次的计算机控制系统综合实训中,内容是关于死区PID温度控制系统的设计。刚开始,我遇到的难题就是关于CB的编程和运用,但是经过老师的讲解和对程序的分析后,并且懂得将以前计算机控制技术课平时的4次实验的程序拿来借鉴,我大概掌握了CB一些简单组件的运用和编程。对于PID控制,经过一学期的课程学习,我们知道PID控制是控制中应用最为广泛的一种控制规律。实际运行的经验和理论的分析都表明,这种控制规律对许多工业过程进行控制时,都能得到满意的效果。因此,不管控制对象是什么,只要我们知道偏差就能通过PID运算输出对控制器进行作用。在本次实训中我更加深刻的体会到了平时上课所学到的知识点。在做出了简单的PID控制了以后,我们又对PID控制进行一些改进,例如,使用积分分离的PID控制、带死区的PID控制、不完全微分的PID控制。这些控制效果都在PID控制的效果上,又有了许多让人满意的效果。在硬件软件结合方面,巩固了我对CB的运用,进一步地了解了CB程序设计,对PID控制有了更深入的了解和认识,了解了AC6611的功能,板卡AC6611和温度加热器的连接方法,他们的接法一定要正确,不然显示的曲线就不符合要求。对外部硬件(板卡)与PC的底层硬件连接,windows操作系统对这两部分的硬件通过硬件商提供的硬件驱动和动态链接库实现数据交换,实际是windows与板卡的寄存器实现数据交换。最后通过这两周的实习,增加了我的实践能力,我深刻的感受到了PID控制运用的优点。为以后出去从事这方面的工作打下了坚实的基础,十分感谢学院安排这样的实习,感谢汪德彪老师、刘显荣老师、胡文金老师、汤毅老师、张元涛老师的细心指导,让我们在短短的两周掌握了丰富的PID控制技术。参考文献:(1) 于海生 .计算机控制技术 . 北京 . 机械工业出版社,2007.(2) 陆卫忠 . C+Builder程序设计教程.2版 . 北京 . 科学出版社,2009.(3) 何钦铭 . C语言程序设计 . 北京高等教育出版社 . 2008.附录:控制程序清单/-#include <vcl.h>#pragma hdrstop#include "unit1.h"/-#pragma package(smart_init)#pragma resource "*.dfm"float SP=0.0,PV=0.0;int pvtrend600;int sptrend600;int mvtrend600;int t1;float HS=100.0,LS=0.0,HL=75.0,LL=25.0,DH=2;float PID_DB=1,P=30,I=2,D=5,KD=5,B=3;float Un=0.0,DeltaUn=0.0,Un1=0.0,En=0.0,En1=0.0,En2=0.0;float q0,q1,q2,c1,c2,c3;float TS=1.0;TForm1 *Form1;/-_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner)/-void _fastcall TForm1:FormCreate(TObject *Sender)q0=(100.0/P)*(1+TS/I+D/TS);q1=-(100.0/P)*(1+2*D/TS);q2=(100.0/P)*D/TS;c1=(100.0/P)*(1+D/TS);c2=-(100.0/P)*(1+2*D/TS);c3=(100.0/P)*D/TS;/- hDLL=LoadLibrary("ac6611.dll"); if(hDLL!=NULL)Label30->Caption = "AC6611.dll load ok!" (FARPROC &)AC6611_CreateDevice=GetProcAddress(hDLL,"AC6611_CreateDevice"); /创建驱动句柄 (FARPROC &)AC6611_CloseDevice=GetProcAddress(hDLL,"AC6611_CloseDevice"); /关闭驱动句柄 (FARPROC &)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_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 (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) Label31->Caption = "AC6611 Card Is Exist!" else Label31->Caption = "AC6611 Card Is not Exist!" /-void _fastcall TForm1:Button1Click(TObject *Sender)HS=StrToFloat(Edit6->Text);LS=StrToFloat(Edit7->Text);HL=StrToFloat(Edit8->Text);LL=StrToFloat(Edit9->Text);DH=StrToFloat(Edit10->Text);PID_DB=StrToFloat(Edit5->Text);P=StrToFloat(Edit1->Text);I=StrToFloat(Edit2->Text);D=StrToFloat(Edit3->Text);B=StrToFloat(Edit14->Text);KD=StrToFloat(Edit4->Text);q0=(100.0/P)*(1+TS/I+D/TS);q1=-(100.0/P)*(1+2*D/TS);q2=(100.0/P)*D/TS;c1=(100.0/P)*(1+D/TS);c2=-(100.0/P)*(1+2*D/TS);c3=(100.0/P)*D/TS;SP=StrToFloat(Edit11->Text);/-void _fastcall TForm1:Button2Click(TObject *Sender)Close();/-void _fastcall TForm1:Timer1Timer(TObject *Sender)unsigned long ADC;unsigned long DA;AC6611_AD(hDevice, 5, &ADC);PV=100*(ADC-819.0)/(4095-819);/PV=100.0*(ADC-540.54)/(2702.7-540.54)if(PV<0)PV=0;En=SP-PV;/*if(En>=B)DeltaUn=c1*En+c2*En1+c3*En2;Un=Un1+DeltaUn;if(En<B)DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn; */if(En>PID_DB&&En<-PID_DB)if(abs(En)>PID_DB)DeltaUn=q0*En+q1*En1+q2*En2;Un=Un1+DeltaUn;if( Un>100.0) Un=100.0;if(Un<0) Un=0;Un1=Un;En2=En1;En1=En;elseUn=Un1;DA=(unsigned short int)(Un*2048.0/100.0);AC6611_DA(hDevice,DA);t1+;for(int i=0;i<599;i+)pvtrendi=pvtrendi+1;pvtrend599=300*PV/(HS-LS);sptrendi=sptrendi+1;sptrend599=300*SP/(HS-LS);mvtrendi=mvtrendi+1;mvtrend599=300*Un/100.0;Image2->Picture->LoadFromFile("123456.bmp");Image2-> Canvas->Pen->Color = clGray;Image2-> Canvas->Pen->Width = 1;Image2->Canvas->MoveTo(0,60);Image2->Canvas->LineTo(1000,60);Image2->Canvas->MoveTo(0,120);Image2->Canvas->LineTo(1000,120);Image2->Canvas->MoveTo(0,180);Image2->Canvas->Line

    注意事项

    本文(2019PID单回路温度控制系统实训报告.doc)为本站会员(上海哈登)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开