




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/课程设计课程名称计算机控制技术题目名称高精度直流电机调速系统学生学院信息工程学院专业班级应用电子技术2班学号XXXXXXXXXXX学生姓名胡丛滟指导教师黄国宏20XX06月16日目录一、方案论证3PID算法3简易工程发整定PID参数3二、理论分析与计算32.1.系统设计方案32.2.数字PID控制器42.3.凑式法整定PID参数52.4.直流电机调速与测速6三、硬件电路设计63.1.电机驱动及传感器电路73.2.串口发送数据电路73.3.LCD1602显示电路7四、程序设计84.1.PID增量式算法84.2.系统程序流程图84.3.消除积分不灵敏的办法94.4.抗积分饱和的办法9五、调试过程105.1.只有比例环节105.2.加入积分环节115.3.加入积分分离115.4.加入微分环节13六、设计心得15七、参考文献15八、附录〔程序>16摘要本作品以单片机STC98C52为控制器.由电机、电机速度采集传感器和电机驱动组成主电路。控制器产生PWM脉冲送到电机驱动电路中.经过功率放大后控制直流电机转速.同时利用速度检测模块将当前转速反馈到控制器中.控制器经过数字PID运算后改变PWM脉冲的占空比.实现电机精确控制转速和改善系统运行目的。实验数据通过LCD1602显示并通过串口发送给PC机进行波形显示。ABSTRACTThisworkSTC98C52MCUasthecontroller,drivenbyamotor,motorspeedacquisitionsensorandthecompositionofthemaincircuit.ControllertogeneratePWMpulsemotordrivecircuit,afterpoweramplificationcontroldcmotorspeed,andspeeddetectionmoduleisusedtochangethecurrentspeedfeedbacktothecontroller,thecontrollerthroughadigitalPIDcomputationafterchangingthedutyratioofPWMpulse,itcanrealizeaccuratecontrolofmotorspeedandimprovethesystemoperationpurpose.TheexperimentaldatathroughtheLCD1602displayandwaveformdisplaythroughaserialportissenttothePC.方案论证1.1.PID算法方案一:采用位置式PID算法.该控制算法提供了执行机构的具体位置.PID输出与整个过去的状态有关.容易产生大的累加误差。方案二:采用增量式PID算法.增量算法不需要做累加.控制量增量的确定仅与最近几次误差采样有关.对控制量的计算影响较小.易于实现手动到自动的无冲击切换。方案采用:在本实验中采用增量式PID算法。主要原因是PWM占空比和转速不成线性关系.意思就是就算知道了现在电机速度.也无法准确改变占空比来达到期望速度.采用增量式的好处是只要有误差存在就可以不断增加或者减少占空比来达到期望速度。1.2.简易工程法整定PID参数方案一:采用扩充临界比例度法.只需选取一个足够短的采样周期.只采用比例作用.不断改小比例度〔δ=1/Kp.直到系统发生持续等幅振荡.记下使系统发生振荡的临界比例度δk及系统的临界振荡周期Tk.然后再通过选择控制度和根据表格查找参数就可以求得T、Kp、Ti、Td的值。方案二:采用凑试法.根据参数对控制过程的影响趋势.对参数实行先比例.后积分.再微分的整定步骤。方案采用:本实验采用凑试法。主要原因是扩充临界比例度法需要选择足够小的采样周期.但本系统的采样周期为1s.远大于纯滞后时间.因此不能采用扩充临界比例度法。理论分析与计算2.1.系统设计方案图2.1系统方案框图根据系统设计的任务和要求.设计系统方框图如图2.1所示。图中控制器模块为系统的核心部件.按键和显示器用来实现人机交互功能.其中通过按键将需要设置的参数和状态输入到单片机中.并且通过控制器显示到显示器上。在运行过程中控制器产生PWM脉冲送到电机驱动电路中.经过放大后控制直流电机转速.同时利用速度检测模块将当前转速反馈到控制器中.控制器经过数字PID运算后改变PWM脉冲的占空比.实现电机转速实时控制的目的。2.2.数字PID控制器模拟PID调节器的控制规律为〔2.1式中.为比例系数.为积分时间常数.为微分时间常数。当采样周期足够小时.在模拟调节器的基础上.通过数值逼近的方法.用求和代替积分、用后向差分代替微分.使模拟PID离散化变为差分方程。这样.式〔2.1便可离散化以下差分方程:〔2.2式中是偏差为零时的初值;式<2.2>第一项起比例控制作用,称为比例〔P项,即〔2.3第二项起积分控制作用,称为积分〔I项即〔2.4第三项起微分控制作用,称为微分〔D项即〔2.5式〔2.2的输出量u<n>为全量输出,它对于被控对象的执行机构每次采样时刻应达到的位置。因此,式〔2.2又称为位置型PID算式。由〔2.2可看出.位置型控制算式不够方便.这是因为要累加偏差e<i>,不仅要占用较多的存储单元.而且不便于编写程序.为此对式〔2.2进行改进。根据式〔2.2不难看出u<n-1>的表达式.即〔2.6将式〔2.2和式〔2.6相减.即得数字PID增量型控制算式为〔2.7式中:称为比例增益;称为积分系数;称为微分系数。2.3.凑试法整定PID参数增大比例系数Kp.一般将加快系统的响应.在有静差的情况下有利于减小静差。但过大的比例系数会使系统有较大的超调.并产生振荡.使稳定性变坏。增大积分时间Ti有利于减小超调.减小振荡;使系统更加稳定.但系统静差的消除将随之减慢。增大微分时间Td亦有利于加快系统响应.使超调量减小.稳定性增加.但系统对扰动的抑制能力减弱.对扰动有较敏感的响应。在凑试时.可参考以上参数对系统控制过程的影响趋势.对参数调整实行先比例、后积分.再微分的整定步骤。〔1首先整定比例部分.将比例系数由小变大.并观察相应的系统响应.直至得到反应快、超调小的响应曲线。如果系统没有静差或静差已经小到允许范围内.并且对响应曲线已经满意.则只需要比例调节器即可。〔2如果在比例调节的基础上系统的静差不能满足设计要求.则必须加入积分环节。将已经调节好的比例系数略为缩小<一般缩小为原值的0.8>.然后减小积分时间.使得系统在保持良好动态性能的情况下.静差得到消除。在此过程中.可根据响应曲线的好坏反复改变比例系数与积分时间.以期待得到满意的控制过程与整定参数。〔3如果在上述调整过程中对系统的动态过程反复调整还不能得到满意的结果.则可以加入微分环节。一般的系统D=0.1或2。只有部分滞后较大的系统.D值才可能调大些。PID参数修改后.可以适度修改设定值<人为的阶跃扰动>观察系统的跟踪响应.以判断PID参数是否合适。P值太小.I值太小或D值太大均会引起系统超调振荡。2.4.直流电机调速与测速调速:根据PWM控制的基本原理可知.一段时间内加在惯性负载两端的PWM脉冲与相等时间内冲量相等的直流电加在负载上的电压等效.可通过改变输出的占空比来改变电压从而改变速度。测速:在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较.通过偏差进行PID运算.因此速度采集电路是整个系统不可缺少的部分。本次设计中应用了比较常见的光电测速方法来实现.其具体做法是将电机轴上固定一圆盘.且其边缘上有N个等分凹槽如图3.5〔a所示.在圆盘的一侧固定一个发光二极管.其位置对准凹槽处.在另一侧和发光二极光平行的位置上固定一光敏三极管.如果电动机转到凹槽处时.发光二极管通过缝隙将光照射到光敏三极管上.三极管导通.反之三极管截止.电路如图3.4〔b所示.从图中可以得出电机每转一圈在P3.3的输出端就会产生N个低电平。这样就可根据低电平的数量来计算电机此时转速了。例如当电机以一定的转速运行时.P1.2将输出如图3.5所示的脉冲.若知道一段时间t内传感器输出的低脉冲数为n.则电机转速v=n/t。<a><b>图2.2电机速度采集方案硬件电路设计3.1.电机驱动及传感器电路图3.1电机驱动及传感器电路3.2.串口发送数据电路图3.2串口电路3.3.LCD1602显示屏电路图3.3LCD1602显示屏电路程序设计4.1.PID增量式算法本系统设计的核心算法为PID算法.它根据本次采样的数据与设定值进行比较得出偏差e<n>.对偏差进行P、I、D运算最终利用运算结果控制PWM脉冲的占空比来实现对加在电机两端电压的调节[10].进而控制电机转速。其运算公式为:4.2.系统程序流程图初始化包括对时钟.中断的初始化.检测完数据再进行PID调节.输出数据.显示并发送。开始计算e<n>初始化计算Ki*e<n>计算Kp*[e<n>检测-e<n-1>]PID计算Kd[e<n>调节-2e<n-1>+e<n-2>]输出显示计算出△U串口发送数据得出占空比speed=speed+△U图4.1系统程序流程图en2=en1en1=en返回图4.2PID增量式算法图4.3.消除积分不灵敏的办法在本实验.因为转速和占空比是要成正比例关系的.当比如占空比的最小单位是1/100的时候.可能一个最小单位对应的转速是〔3~4rps.那这样的话就消除不了静差.如果把最小单位改成1/400的时候.可能一个最小单位对应不了1rps.但是占空比会累加.从而使转速改变1rps。附上某个区域的对应关系如图4.3所示:012345678910000000111121112131415161718192021223344555711222324252627282930313216222733394449556064673334353637383940414243717578808285878990919344454647484950515253549495979899991001011021021035556104104图4.3红色代表占空比.比如1代表1/400占空比.白色代表转速.黄色代表线性关系的转速。4.4.抗积分饱和的办法如果执行机构机构已到达极限位置.仍然不能消除偏差时.由于积分作用.尽管计算PID差分方程式所得的运算结果继续增大或者减小.但执行机构已无相应动作.这就是积分饱和。当出现积分饱和时.势必使超调量增加.控制品质变坏。作为防止积分饱和的办法之一.可对计算出的控制量u<k>限幅.同时把积分作用切除掉。程序体现:if<speed>400>speed=400;if<speed<0>speed=0;调试过程5.1.只有比例环节Kp=1.8.超调量为3%.调节时间为4s.峰值时间为3s只有比例环节.Kp=2.5.超调量为4%.调节时间为14s.峰值时间为3s只有比例环节.Kp=3.0.波形振荡在此只举例三个图.其实作者测过很多种Kp了.根据上面三个图:选择Kp=1.8;5.2.加入积分环节PI:T=1;Kp=1.8;Ti=1.8;出现此现象原因:在一般的PID控制中.当有较大的扰动或大幅度改变给定值是.由于此时有较大的偏差.以及系统有惯性和滞后.故在积分项的作用下.往往会产生较大的超调和长时间的波动。为此.我采用积分分离措施.即偏差e〔k较大时.取消积分作用;当偏差e〔k较小时才将积分作用投入;程序有:en=set-count;if<en>=5&&en<=-5>{Un=Kp*<en-en1>+Ki*en;}elseUn=Kp*en;5.3.加入积分分离按Ti从大往小调情况有:T=1;Kp=1.8;Ti=8.0;T=1;Kp=1.8;Ti=1.8;超调量3%.3s内达到稳定值.波形与只有比例环节的图形有明显的改善只有比例环节.与上图进行比较5.4.加入微分环节系统只有比例和积分环节PI.当改变期望值时.通过下图可看出过度波动很大.对系统不利。T=1;Kp=1.8;Ti=1.8;为此采取积分环节Td按从小调到大的规则进行寻找合适值T=1;Kp=1.8;Ti=1.8;Td=1;[改变调速时.用了6s时间达到稳定.过度波动还是很大]T=1;Kp=1.8;Ti=1.8;Td=1.8;[改变调速时.用5s时间达到稳定.波动明显变小]T=1;Kp=1.8;Ti=1.8;Td=2.5;[用1s时间达到稳定.过度无波动.完全符合要求]设计心得为时两周时间的课程设计.不但让我对计算机控制技术有了更深的理解.而且熟悉了数字PID的编程办法.在做的过程中遇到的问题很多。比如一开始选PID参数整定办法时我们是用了扩充临界比例度法.但是在调试过程始终达不到理想效果.后来发现是我们采样周期太大的问题.远大于系统纯滞后时间.但是我们改变采样周期后.显示和采样效果均不理想.为此我们决定采用凑试法整定PID参数.在调试过程中.发现效果很明显.先只采用比例环节.待达到理想效果之后保持Kp值不变.继续加入积分环节.但是问题出现了.加入积分环节不但不能消除静差.反而使系统发生了较大超调和长时间的波动.为此我们查找了相关书籍.得出的结论是在一般的PID控制中.当有较大的扰动或大幅度改变给定值是.由于此时有较大的偏差.以及系统有惯性和滞后.故在积分项的作用下.往往会产生较大的超调和长时间的波动。为此我们采用了积分分离的办法.但达到设定误差时才启用积分环节.调试之后效果非常理想。接着再加入微分环节.此环节比较顺利.安照书上办法把Td值从小变到大从而找到合适值.从而使系统在期望值改变的时候不会出现超调或者波动.能实现平缓过渡。至此我们成功设计了直流电机调速系统.对学到知识感动非常开心与满足。参考文献[1]于海生.计算机控制技术.北京:机械工业出版社[2]郭天祥.新概念51单片机C语言教程.电子工业出版社[3]凑试法整定PID参数.百度文库[4]ULN2003A数据手册[DB/OL]..附录〔源程序#include<reg52.h>#include<stdio.h>//LCD//sbitRS=P2^6;sbitRW=P2^5;sbitEN=P2^7;sbitkey=P2^0;sbitkey1=P2^1;sbitkey2=P2^2;sbitkey3=P2^3;//motor//unsignedinttt0;unsignedinttt1;sbitA1=P1^2;sbitA2=P1^3;unsignedcharflag;//抽样时间unsignedintspeed=41;unsignedinta;unsignedcharreceive;unsignedintReData,sum=0,summ=0;//pidfloatKp,Ki,Kd,Ti,Td,T;//unsignedintset=100;inten,en1,en2,enx;doubleUn;voiddelay<unsignedintxms>{unsignedi,j;for<i=xms;i>0;i-->for<j=110;j>0;j-->;}bittest_busy<>{bitresult;P0=0xff;RS=0;RW=1;delay<1>;EN=1;delay<1>;result=<bit><P0&0x80>;EN=0;returnresult;}voidwrite_command<unsignedcharcommand>//写命令{while<test_busy<>>;RS=0;RW=0;P0=command;delay<1>;EN=1;delay<1>;EN=0;}voidwrite_date<unsignedchardate>//写数据{while<test_busy<>>;RS=1;RW=0;P0=date;delay<1>;EN=1;delay<1>;EN=0;}voidwrite_string<unsignedchar*s>{while<*s>{write_date<*s>;s++;}}voidlcd_initial<>//LCD初始化{RS=1;RW=1;EN=0;write_command<0x38>;//设置16X2显示.5X7点阵.8位数据接口delay<1>;write_command<0x01>;//显示清零.数据指针清零delay<1>;write_command<0x0c>;//设置开显示.不显示光标delay<1>;write_command<0x06>;//写一个字符后地址指针加1}voidkeyscan<>{if<key==0>{delay<10>;if<key==0>{set=set+1;if<set>=138>set=138;while<!key>;receive=1;}}if<key1==0>{delay<10>;if<key1==0>{set=set-1;if<set<=90>set=90;while<!key1>;receive=1;}}}voidkeyspeed<>{if<key2==0>{delay<10>;if<key2==0>{speed=speed+1;while<!key2>;}}if<key3==0>{delay<10>;if<key3==0>{speed=speed-1;while<!key3>;}}}voidinit<>{TMOD=0x23;//0010_0011定时器0:模式3定时器1:模式2SCON=0x50;//0101_0000串行口方式110位UART波特率可变PCON|=0x80;//SMOD=1串行口波特率加倍T2CON=0x02;//计数器2仅当定时器溢出时捕获和重装TH0=<256-100>;//驱动电机TL0=<256-250>;//定时0.00025sTH1=243;//256-2^1*11.0592/<384*9600>波特率为9600TL1=243;TH2=0;TL2=0;TR0=1;//启动定时器TR1=1;TR2=1;ET0=1;//允许T0中断ET1=1;ET2=1;ES=1;//串行口中断位EA=1;//中断允许位}//************************************************************************voidt_0<>interrupt1//定时100ms<抽样时间>{//unsignedcharnum;TL0=<256-250>;tt0++;if<tt0==400>{tt0=0;//num++;flag=1;}}//************************************************************************voidt_1<>interrupt3//驱动电机PWMspeed*发生一次中断时间=低电平.〔100-speed*中断时间=高电平{TH0=<256-100>;tt1++;if<tt1>=400>tt1=0;if<tt1<speed>//speed是控制占空比的{A1=1;A2=0;}else{A1=0;A2=0;}}/********************基本用不到,防止溢出而已****************************/voidt_2<>interrupt5//计数器{TH2=0;TL2=0;TF2=0;}/*********PID******************************************************/voidpid<unsignedintcount>//增量式{en=set-count;//Un=q0*en;//-q1*en1+q2*en2if<en>=5&&en<=-5>{Un=Kp*<en-en1>+Ki*en+Kd*<en-2*en1+en2>;}//elseUn=Kp*en;speed=speed+Un;if<speed>40
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 日用百货买卖合同
- 2025年泰安普通货运从业资格证模拟考试
- 公司内部沟通平台使用记录表格(电子版)
- 商场多经点位租赁合同
- 饭堂伙食承包合同
- 执行和解协议书范例8篇
- 2025年高中化学新教材同步 必修第一册 第1章 阶段重点突破练(一)
- 小额放贷公司合同范本
- 按揭车转让合同范本
- 液晶聚合物LCP战略市场规划报告
- 社保知识竞赛考试题及答案
- 华为HCSA-Presales-IT售前认证备考试题及答案
- 2024-2030年中国纤维板行业发展趋势与投资战略研究报告
- 小学二年级上册数学思维训练题100道及答案解析
- 2024年品酒师职业技能大赛理论考试题库及答案
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案)
- 2024至2030年中国细胞农业动向追踪与发展前景现状探索报告
- 2025初级社会工作实务考试要点速记
- 数据中心全生命周期绿色算力指数白皮书 2024
- 接触网工高级技师理论试题库及答案
- 初中美术备课组工作计划
评论
0/150
提交评论