计算机控制课程设计最小拍无波纹

上传人:无*** 文档编号:97151890 上传时间:2022-05-26 格式:DOC 页数:24 大小:467.50KB
返回 下载 相关 举报
计算机控制课程设计最小拍无波纹_第1页
第1页 / 共24页
计算机控制课程设计最小拍无波纹_第2页
第2页 / 共24页
计算机控制课程设计最小拍无波纹_第3页
第3页 / 共24页
点击查看更多>>
资源描述
.计算机控制课程设计报告题目: 最小拍控制设计 姓名: 学号: 2014年7月4日精品.计算机控制课程设计任务书学 号班 级学 生指导教师题 目最小拍控制设计设计时间2014年 6 月 27 日 至 2014 年 7 月 4 日 共 1 周设计要求设计任务: 设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为,采样周期T=0.1s,设计数字控制器,要求系统在单位斜坡输入时实现最小拍无波纹控制。方案设计:1. 完成控制系统的分析、设计;2. 选择元器件,完成电路设计,控制器采用MCS-51系列单片机(传感器、功率接口以及人机接口等可以暂不涉及),使用Protel绘制原理图;3. 编程实现单片机上的控制算法。报告内容:1. 控制系统仿真和设计步骤,应包含性能曲线、采样周期的选择、数字控制器的脉冲传递函数和差分方程;2. 元器件选型,电路设计,以及绘制的Protel原理图;3. 软件流程图,以及含有详细注释的源程序;4. 设计工作总结及心得体会;5. 列出所查阅的参考资料。精品.指导教师签字: 系(教研室)主任签字:2014年 6 月 27 日一、题目分析根据题目要求,设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为,采样周期T=0.1s,设计数字控制器,要求系统在单位斜坡输入时实现最小拍无波纹控制。二、设计最小拍控制器1、控制系统总体介绍最小拍闭环控制系统包括给定值,输出值,D/A转换环节,数字控制器,被控对象,零阶保持器等环节。在数字随动控制系统中,要求系统的输出值尽快地跟踪给定值的变化,最少拍控制就是为满足这一要求的一种离散化设计方法。所谓最少拍控制,就是要求闭环系统对于某种特定的输入在最少个采样周期内达到无静差的稳态,且闭环脉冲传递函数具有以下形式:式中N是在可能情况下的最小正整数。这一形式表明闭环系统的脉冲响应在N个采样周期后变为0,从而意味着系统在N拍之内达到稳态。2、控制系统框图及闭环工作原理精品.图1 控制系统框图 最小拍双通道采样的闭环系统框图如图1所示,在该系统中对给定值r(t)进行D/A转换采样,得到离散化的r(z),并且对输出值c(t)也进行D/A转换,得到c(z),然后计算有e(k)=c(k)-r(z)。D(z)为计算机控制系统的脉冲传递函数,U(z)为输出的控制量,然后经过A/D转换后得到模拟控制量U(t)对包含零阶保持器的被控量进行控值进而达到要求的最小拍控制的目的。3、最少拍无纹波系统控制算法设计 (1)带零阶保持器的广义被控对象为通过matlab,z变换程序为np=0 0 10;dp=1 1 0;hs=tf ( np, dp);hz=c2d(hs,0.1)结果为Transfer function: 0.04837 z + 0.04679-z2 1.905 z + 0.9048精品. Sampling time:0.1 seconds即 (2)无波纹最小拍控制器D(z) 根据G(z),对象有一个纯迟后因子v=1,一个零点,两个极点,输入函数为单位斜坡信号, ,m=2,则闭环脉冲传递函数为由 得系数,则系统脉冲传函为 (3) 误差脉冲传函为 (4)由得设计的控制器为 (5)4、无波纹最小拍控制系统simulink仿真精品.图2 控制系统整体框图仿真结果为: ()系统输入及系统输出曲线c(t)图形如图3所示:图3 系统输入及系统输出曲线c(t)(2)系统误差e(t)曲线如图4所示:精品.图4 系统误差e(t)曲线(3)控制器输出u(k)曲线如图5所示:图5 控制器输出u(k)曲线通过仿真曲线看出: 控制器D(z)满足设计要求,系统在第三拍之后系统达到无差,输出响应从第三个采样周期开始完全跟踪输入,且没有波纹。最后控制器输出恒定(),因此系统输出不会产生波纹,调节时间为精品.。将得系统的差分方程为: (6)三、硬件电路设计及元件选型1、AD转换器选择AD0808 由于51 单片机大部分不带AD 转换器,所以模拟量的采集就必须靠A/D实现。我们选择8位精度的AD 转换器AD0808。ADC0808 是8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成,内部具有锁存功能,故不需要加地址锁存器。ALE脚为地址锁存信号,三根地址线固定接地,由于地址信号已经固定,故将ALE接高电平。START脚为AD转换启动信号,高电平有效,程序控制。AD采样值为系统的偏差信号,故选择ADC0808的为5V。由于ADC0808的时钟所限,AD转换器的时钟信号,由单片机P2.1脚产生,将CLOCK脚接单片机的P2.1。由单片机产生300khz的时钟信号。单片机晶振可选择为12MHz。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。设计将其接单片机P2.2脚由程序读入,判断AD是否转换完成。AD转换结果由P0口读入,故将AD转换器的输出与单片机P0口相连,高低位依次相连。精品.图6 AD转换器硬件电路接线图2DA转换器选择DAC0832。具有8位并行、中速(建立时间1us)、电流型、低廉(1020元)的特点。DAC0832的引脚接法下:CS:片选端,直接接低电平ILE:数据锁存允许控制端,直接接高电平。WR2:DAC寄存器写选通控制端,故直接接低。XFER:数据传送控制,低电平有效,故直接接地。WR1;第一级输入寄存器写选通控制,低电平有效。其输入为上升沿时,将输入数据锁存到DAC寄存器,故将该脚与单片机P2.3口相连,由程序控制DA转换的时间。D10D17:与单片机P0P7相连。精品.图7 DA转换器硬件电路接线图3、控制器控制器选择AT89C51单片机,根据ADC0808和DAC0832的特性,及上述分析,设计单片机与AD、DA的接口电路如下图所示。精品.图8 数字控制器硬件接线图4、被控对象如图9所示,左边的积分环节通过选取500K的输入电阻和2UF的并联电容来实现,右边的 放大器上并联了R=500K和C=2uF实现时间常数=1S,然后再通过=10实现放大系数Kp=10的要求。精品.图9 被控对象实现硬件电路图图10 整体实现硬件接线图四、 程序流程图及源程序1、流程图主程序主要通过调用子程序实现系统初始化和变量初始化的操作,包括设定定时器的工作状态、定时器装初值、开定时中断、启动定时器、D/A清零、变量清零等内容,完成上述操作后就等待进入定时中断。精品.主程序流程图如图11所示。图11 主程序流程图定时器1中断服务程序实现的功能有:是为AD转换提供脉冲信号,流程图如图12所示。图12 定时器1中断服务流程图定时器0中断服务程序实现了采样和计算输出控制量的功能。首先检查是否到了采样周期,如果到了,就把输出清零、变量初始化并给采样周期值,进行下一步的采样和计算,没到就就继续计时等待采样周期到来。根据之前算得的公式计算出控制输出u(k),然后检查控制量是否溢出,溢出了就取相应的最值。这之后精品.输出控制量。最后进行控制量和偏差的递推和采样周期恢复,就返回了,流程图如图13所示。精品.图13 定时器0中断服务流程图定时器T0的初值计算:机器周期:,采样周期T=0.1s设:需要装入T0的初值为X,则有:精品. X化为十六进制,即X=0x3cb0T0的初值为 TH0=0x3c; TL0=0xb0;2、源程序及注释#include定义变量及其初始化sbit start=P20; / AD启动信号sbit CLK=P21; / AD时钟信号输出口sbit EOC=P22; / AD转换完成信号sbit DA_W=P23; / DA转换信号sbit OE=P24;unsigned char ad_data ; / AD采样值unsigned char n=0; /定时标记量char e; /定义当前采样值char u; /定义DA输出量char u0=0; /char u1=0; /char e0=0; / char e1=0; /前二次采样值和前二次控制值float temp; /设置指针精品.AD采样函数void AD() start=0; /start=1; / 启动AD转换器,开始转换start=0; /while(EOC=0); / 转换未结束,空循环OE=1;ad_data=P0; / 转换结束后,读取AD输出值 OE=0; 定时器中断初始化程序void TimeInitial() IP=0x08; /设置中断优先级,定时器1为高优先级 TMOD=0x21; /定时器1采用方式2,定时器0采用方式1TH1=0xd8; /设置定时器1的初值 TL1=0xd8; TH0=0x3c; /设置定时器0的初值 TL0=0xb0; EA=1; /开放所有中断精品.ET1=1; /允许T1溢出中断 TR1=1; /启动定时器1 ET0=1; /允许T0溢出中断 TR0=1; /启动定时器0 主函数void main() TimeInitial(); start=0; /AD启动信号为0 DA_W=0; P1=0x80; DA_W=1; /控制器初始输出为零 while(1); /空循环,等待中断 定时器0中断函数void T0(void )interrupt 1 using 1 TH0=0x3c; TL0=0xb0; /重装初值 if (n=2)精品. n=0; AD(); /0.1s后,读取AD采样值 e=ad_data-128; /采样实际偏差值 temp=0.267*u1+0.733*u0+26.183*e-41.983*e1+16.552*e0; /差分方程 if(temp0) /当前输出值大于零 if(temp=127) u=127; /判断是否溢出,溢出取极值 else u=(char)temp; /控制器输出值 else /当前输出值小于零 if(temp=-127) u=-127; /判断是否溢出,溢出取极值 else u=(char)temp; /控制器输出值 P1=u+128; /DA输出值 u0=u1; /控制量递推赋值 u1=u; e0=e1; /偏差量递推赋值 e1=e; 精品. DA_W=0; DA_W=1; /上升沿DA输出 else n+; /定时不到0.1s,继续定时定时器1中断函数 void clk(void) interrupt 3 using 0 CLK=CLK; /产生时钟信号 五、设计小结 本次课程设计让我们进一步熟悉并掌握了数字控制器设计的一般步骤,以及使用MALAB、PROTEL、KEIL等软件进行设计、分析、仿真的过程。在设计过程中遇到的一些问题,比如控制器设计方案的选择,MATLAB仿真模型的建立、控制器程序的设计等,在调试的过程中,遇到的问题更多,调试的过程是一个让人思考的过程,也是熟悉稳态方法和实践动手的好机会,顺着模块的顺序依次排查接线,出现问题,想出各种可能的情况,测试解决。经过此次的课程设计,我对所学过的知识在应用方面有了初步认识,并且学到很多扩展方面的知识,且再对课题的仿真过程当中,能够熟练的使用Simulink软件。通过查资料了解了课本上没学到的知识,也知道了AT89C51与我们所学的80C51引脚,内部结构以及用途上的差别。还选择了ADC0808作为A/D转换器, DAC0832作为本系统的D/A转换器。通过模拟量经过输入通道进入A/D转换器进行转换,传输到单片机内,通过编程,对所录入的模拟信号进行编程,实现外扩电路的显示,以及D/A转换后传输给执行器进行控制。经过此次的课程设计,我对所学过的知识在应用方面有了初步认识,并且学到很多扩展方面的知识,且再对课题的仿真过程当中,能够熟练的使用Simulink软件。通过查资料了解了课本上没学到的知识,也知道了精品.AT89C51与我们所学的80C51引脚,内部结构以及用途上的差别。还选择了ADC0808作为A/D转换器, DAC0832作为本系统的D/A转换器。通过模拟量经过输入通道进入A/D转换器进行转换,传输到单片机内,通过编程,对所录入的模拟信号进行编程,实现外扩电路的显示,以及D/A转换后传输给执行器进行控制。六、参考文献1 刘建昌等编著,计算机控制系统,北京:科学出版社,20092 张艳兵等编著,计算机控制技术,北京:国防工业出版社,20083 张毅刚主编,单片机原理及应用,北京:高等教育出版社,20044 陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,20085 控制、电子技术类杂志、报刊如有侵权请联系告知删除,感谢你们的配合!精品
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!