计算机控制系统课程设计最少拍控制系统设计.pdf
能源与动力工程学院课程设计报告题目:最少拍控制系统设计课程:计算机控制技术课程设计专业:电气工程及其自动化第 一 部 分任务书计算机控制技术课程设计任务书计算机控制技术课程设计任务书一、课题名称一、课题名称最少拍控制系统设计二、课程设计目的二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。计算机控制技术是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。三、课程设计内容三、课程设计内容设计以 89C51 单片机和 ADC、DAC 等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。1.硬件电路设计:89C51 最小系统加上模入电路(用ADC0809 等)和模出电路(用TLC7528 和运放等);由运放实现的被控对象。2.控制算法:最少拍控制。3.软件设计:主程序、中断程序、A/D 转换程序、滤波程序、最少拍控制程序、D/A 输出程序等。四、课程设计要求四、课程设计要求1.模入电路能接受双极性电压输入(-5V+5V),模出电路能输出双极性电压(-5V+5V)。2.模入电路用两个通道分别采集被控对象的输出和给定信号。3.每个同学选择不同的被控对象:5,(s 1)(0.8s 1)4G(s),s(0.4s1)5G(s),s(s1)(0.2s1)G(s)10(s 1)(0.4s 1)5G(s)s(0.8s1)8G(s)s(0.8s1)(0.2s1)G(s)G(s)5,(0.8s1)(0.3s1)G(s)5(0.8s1)(0.2s1)4.设计无纹波最少拍控制器。被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。5.定时中断间隔可在 10-50ms 中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。6.滤波方法可选择平均值法,中值法等。有关的设计资料可参考计算机控制实验指导书的相关内容。五、课程设计实验结果五、课程设计实验结果1.控制系统能正确运行。2.正确整定 PID 参数后,系统阶跃响应的超调15%六、进度安排六、进度安排序号1234567内容布置任务,熟悉课题要求总体方案确定,硬件电路设计熟悉实验箱及 C 语言开发环境,研读范例程序,控制算法设计软件编程,调试实验总结,撰写课程设计报告天数0.51.511111七、课程设计报告内容:七、课程设计报告内容:总结设计过程,写出设计报告,设计报告具体内容要求如下:1课程设计的目和设计的任务。2课程设计的要求。3控制系统总框图及系统工作原理。4控制系统的硬件电路连接图(含被控对象),电路的原理。5软件设计流程图及其说明。6电路设计,软件编程、调试中遇到的问题及分析解决方法。7实验结果及其分析。8体会。第 二 部 分课程设计报告目目录录1 课题简介-71.1 课程设计目的-71.2 课程设计内容-71.3 课程设计要求-72 最小拍控制方案设计-82.1 控制系统总体介绍-82.2 控制系统框图及闭环工作原理-83 最小拍控制系统硬件电路设计-93.1 总体硬件电路图-93.2 输入双极性的实现原理-103.3 输出双极性的实现原理-103.4 给定的被控对象的实现-114 最小拍无纹波系统控制算法设计-114.1 最小拍无纹波控制的基本原理-114.2 最小拍无纹波控制的算法实现-125 最小拍无纹波控制软件编程设计-135.1 主程序及中断程序的流程图-135.2 重要程序的作用与实现-135.2.1 任务的分配-135.2.2 重要程序的源码介绍-146 实验与结果分析-156.1 仿真的情况-156.2 上机调试过程-157 小结与体会-168 参 考 文 献-171 1 课题简介课题简介1.11.1 课程设计目的课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。计算机控制技术是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。1.21.2 课程设计内容课程设计内容设计以 89C51 单片机和 ADC、DAC 等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。1.硬件电路设计:89C51 最小系统加上模入电路(用ADC0809 等)和模出电路(用TLC7528 和运放等);由运放实现的被控对象。2.控制算法:最少拍控制。3.软件设计:主程序、中断程序、A/D 转换程序、滤波程序、最少拍控制程序、D/A 输出程序等。1.31.3 课程设计要求课程设计要求1.模入电路能接受双极性电压输入(-5V+5V),模出电路能输出双极性电压(-5V+5V)。2.模入电路用两个通道分别采集被控对象的输出和给定信号。3.每个同学选择不同的被控对象:4.设计无纹波最少拍控制器。被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。5.定时中断间隔可在 10-50ms 中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。6.滤波方法可选择平均值法,中值法等。有关的设计资料可参考计算机控制实验指导书的相关内容。2 2 最小拍控制方案设计最小拍控制方案设计2.12.1 控制系统总体介绍控制系统总体介绍数字控制器的连续化控制技术,是立足于连续控制系统控制器的设计,然后在计算机上进行数字模拟来实现的,这种方法在被控对象的特性不太清楚的情况下,人们可以充分利用技术成熟的连续化设计技术,并把它移植到计算机上予以实现。但是连续化设计技术要求相当短的采样周期,因此只能实现简单的控制算法。由于控制任务的需要,当所选择的采样周期比较大或对控制质量要求比较高时,必须从被控对象的特性出发,直接根据计算机控制理论(采样控制理论)来设计数字控制器,这类方法称为离散化设计方法。在数字随动控制系统中,要求系统的输出值尽快地跟踪给定值的变化,最少拍控制就是为满足这一要求的一种离散化设计方法。所谓最少拍控制,就是要求闭环系统对于某种特定的输入在最少个采样周期内达到无静差的稳态,且闭环脉冲传递函数具有以下形式:(z)1z12z2.NzN式中 N 是在可能情况下的最小正整数。这一形式表明闭环系统的脉冲响应在N 个采样周期后变为 0,从而意味着系统在 N 拍之内达到稳态。最小拍闭环控制系统包括给定值,输出值,D/A 转换环节,数字控制器,被控对象,零阶保持器等环节。2.22.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 3 最小拍控制系统硬件电路设计最小拍控制系统硬件电路设计3.13.1 总体硬件电路图总体硬件电路图图图 2 2 总体硬件电路图总体硬件电路图3.23.2 输入双极性的实现原理输入双极性的实现原理图图 3 3 双极性的输入电路双极性的输入电路由上图我们可以知道输入通道IN7 和 IN6 加了上拉电阻,5 号没加。IN1IN5 的模拟量的允许输入范围:04.98V。而加了上拉电阻的IN7 和 IN6 端口,当输入IN7 的电压为 0V 时,进入A/D 转换的电压为 2.5V;当输入 IN7 的电压为-5V 时,进入转换的电压为0V。就是说,输入到外端口的电压Uout 和进入转换的电压 Uin的关系是 Uin=(Uout+Vcc)/2,因此能够在 IN7 端口加上-5V+4.96V 的电压也可以实现转换的功能。3.33.3 输出双极性的实现原理输出双极性的实现原理图图 4 4 双极性的输出电路双极性的输出电路上图为双极性的输出电路,该电路通过放大器和电阻的一系列计算关系实现输出的双极性。具体的说,就是R2 左端的电压为转换输出的单极性电压Vdan,该电压的大小为Vdan Vref*D,这就是原本单极性输出的2n正常电压。但是加上如上的电路之后,我们设输出电压为Vout,因为右边的放大器 3 号端口接地,所以 2 号端口也虚地,即电压为 0V。又因为放大器 2 号端子向右可以认为是断路,没有电流。综上,于是有:VoutVdanVcc R3W102 R4R2所以Vout(R3RVcc3Vdan)W102 R4R2D1),由此可知,实现了D/A 转2n1只要调试 W102 是 W102 加上 R4 为 2K,那么输出的电压VoutVcc(换的双极性输出。3.43.4 给定的被控对象的实现给定的被控对象的实现课程设计任务书中有 8 个被控对象,我们取其中一个分析被控对象是如何实现的。比如,被控对象为的实现的硬件电路图为图图 5 5 被控对象实现硬件电路图被控对象实现硬件电路图在该图中,左边的积分环节通过选取500K 的输入电阻和 2UF 的并联电容来实现,右边的放大器上并联了 R=200K 和 C=2uF 实现时间常数 T2=0.4s,然后通过 R7/R8=4 实现放大系数 Kp=4 的要求。总之,通过这个例子我说明了积分环节、时间常数和放大系数是如何在接线中实现的。其他的被控对象依次类推。4 4 最小拍无纹波系统控制算法设计最小拍无纹波系统控制算法设计4.14.1 最小拍无纹波控制的基本原理最小拍无纹波控制的基本原理最小拍控制的闭环脉冲传递函数要求有如下的形式:(z)1z12z2.NzN这一形式表明经历有限个采样周期后输出能跟上输入的变化,系统在采样点没有静差。根据 z 变换的终值定理和系统的稳态误差的情况,要求系统的e(z)1(z)(1z1)qF(z)既有(z)1e(z)1(1z11 q)F(z)这里 F(z)是关于z的待定系数多项式。显然,为了使(z)能够实现,F(z)首项应为 1,即F(z)1 f1z1 f2z2.pzp1(z)1(1 z1)q因此最少拍控制器 D(z)为Dz1 qG(z)1(z)G(z)(1 z)最小拍无纹波控制系统要求在非采样时间的时候也没有偏差,因此必须满足:对阶跃输入,当 t NT 时,有 y(t)=常数。对速度输入,当 t NT 时,有 y(t)=常数。对加速度输入,当 t NT 时,有 y(t)=常数。因此,设计最小拍无纹波控制器时,对速度输入函数进行设计,则Gc(s)必须至少有一个积分环节,使得控制信号 u(k)为常值时,Gc(s)的稳态输出是所要求的速度函数。同理,若针对加速度输入函数设计的无纹波控制器,则 Gc(s)中必须至少有两个积分环节。最小拍控制的广义对象含有D 个采样周期的纯滞后G(z)B(z)dz所以A(z)U(z)(z)(z)(z)A(z)。其中A(z)R(z)(z)R(z)zdB(z)zdB(z)要使控制信号 u(k)在稳态过程中为常数或0,那么d(z)d只能是关于z的有限多项式。因此1(z)zB(z)F2(z)z(1biz1)F2(z)i14.24.2 最小拍无纹波控制的算法实现最小拍无纹波控制的算法实现对于具体的被控对象,如,要实现对它的计算机控制算法的设计需要经过一系列的计算。采样周期选择 1s,定时中断选择为 10ms,就是说 100 个定时中断后进行采样。首先广义对象的脉冲2.5313z1(10.4505z1)传递函数G(z),对于该式,输入速度信号,能满足无纹波控制的要求,且11(1 z)(10.0821z)D=0,q=2,v=1,w=1,且 j0)k-;选中7号通道DEFI=1;计算偏差EK=Cont-Set;偏差值递推启动定时器ND/A清零采样周期变量赋初值采样周期变量恢复TC=TK;计算UK值变量清零等待中断中断返回图图 6 6 主程序及中断程序的流程图主程序及中断程序的流程图5.25.2 重要程序的作用与实现重要程序的作用与实现5.2.15.2.1 任务的分配任务的分配如流程图所示,主程序的作用是实现系统初始化和变量初始化的操作,包括设定定时器的工作状态、定时器装初值、设定外中断类型、开外中断和定时中断、启动定时器、D/A 清零、变量清零等内容,完成上述操作后就等待进入定时中断。同样如图所示,定时中断程序实现的功能有两个:一是重新装入定时初值,二是启动D/A 转换进而能进入转换外中断。外中断服务程序实现了采样和计算输出控制量的功能。首先检查是否到了同步信号,如果到了,就把输出清零、变量初始化并给采样周期值,没到就检查是否到了采样周期。如果到了采样周期,就进行下一步的采样和计算。具体就是,依次采样7 号通道和 6 号通道,然后计算出偏差。根据之前算得的公式计算出控制输出 u(k),然后检查控制量是否溢出,溢出了就取相应的最值。这之后输出控制量。最后进行控制量和偏差的递推和采样周期恢复,就返回了。5.2.25.2.2 重要程序的源码介绍重要程序的源码介绍A/D 转换程序If(TC=0)While(k0)k-;EX1=1;cont=ADC_7-128;set =ADC_7-128;DEFI=0;DEFI=1;str =0;EK=cont-set;str =1;.EX1=0;k =200;从以上程序中我们可以知道,当采样周期到时,首先采样 7 号端口的数值然后选中 6 号端口,启动转换,等待 200uS 后,采样 6 号端口的数值,需要注意的一点是在6 号端口的数据转换完成后也会产生中断信号影响计算机的控制,因此在等待转换之前要先关掉外部中断,等转换完成后再打开。于是两通道都完成采样了。最少拍控制程序开始我们已经计算出最小拍的控制输出和偏差以及之前的控制输出之间的关系是:u(k)=0.593u(k-1)+0.4070u(k-2)+0.6294e(k)-0.4087e(k-1)+0.0293e(k-2)。于是首先定义一些变量 KK0、KK1、KK2、KK3、PP1、PP2、PP3,在主函数中赋给他们计算出的相应的数值,然后在中断服务程序里进行计算,对应的程序就是:float KK0=0.6294;/系数 kk0float KK1=-0.4087;/系数 kk1float KK2=0.0293;/系数 kk2float KK3=0;/系数 kk3float PP1=0.593;/系数 pp1float PP2=0.407;/系数 pp2float PP3=0;/系数 pp3float G =1;/增益调整.i=KK0*EK+KK1*EK_1+KK2*EK_2+KK3*EK_3;j=PP1*UK_1+PP2*UK_2+PP3*UK_3;UK=G*i+j;滤波程序的介绍为了实现滑动滤波的功能,要定义四个变量来保存采样值M,M_1,N,N_1。程序如下:cont=(ADC_7-128+M+M_1)/3;M_1=M;M=ADC_7-128;.set =(ADC_7-128+N+N_1)/3;N_1=N;N=ADC_7-128;通过滑动的方法,每次计算偏差 EK 时取本次和前两次的采样值取平均的方法,实现了滤波的功能,并且通过变量 M,M_1,N,N_1 的递推实现滑动的效果。6 6 实验与结果分析实验与结果分析6.16.1 仿真的情况仿真的情况为了验证我们计算的数据是否正确,我们首先利用老师给的 MATLAB 仿真程序对数据进行了仿真,得到的情况如下:图图 7 7 仿真效果图仿真效果图从图上的效果来看是能够满足控制的要求的,所计算的数据是正确的。6.26.2 上机调试过程上机调试过程以下为针对以上介绍的例子在成功时的输出波形图:图图 8 8 成功输出波形图成功输出波形图7 7 小结与体会小结与体会本学期一开学,我们就开始了为期一周的计算机控制课程设计,课程设计分为硬件电路设计、研读范例程序、控制算法设计、软件编程调试、实验等几个阶段。最终在整个小组同学的共同努力和小组其他成员的帮助下,完成了此次课程设计的任务并收获甚多。感谢夏扬老师和李敏艳的认真负责和对我们的耐心指导,让我在整个课程设计的过程中学到了很多。也要感谢我们小组的组员,正是有了大家的共同努力,我们的各项任务,包括前期资料的借阅,中期接线程序的编写与调试,后期资料的汇总,都在大伙合作的前提下顺利的完成。本次设计,令我印象最为深刻的当属上机程序的调试,那可是绞尽脑汁儿,一方面由于对程序编程本身的不太熟悉,另一方面由于对上学期计控知识的淡淡遗忘,上机调试在我们整个流程中占据了超过70%的时间。我们小组成员积极参与谈论,课后主动翻阅资料,在仍然没有结果的情况下,我们请教了老师,老师给我们讲明了程序可能出错的地方,并教给我们利用 Keil 软件的单步中断查询程序错误的方法,我们汲取了老师的教训,认真阅读程序,并采用单步中断的方式最终查出了程序出错的地方。虽然计算机控制课程设计的时间很短,但我们过的很充实,学会了原硬件电路设计、研读范例程序、控制算法设计、软件编程调试,加深了对计算机控制技术的认识,锻炼了自己吃苦耐劳和不怕困难的优良作风。我们在实际的操作中更深刻的掌握学过的知识,在参观实习中开阔了眼界,拓宽了视野,对我们日后走上社会有非常大的帮助。8 8 参参 考考 文文 献献1孙俊杰主编,微型计算机原理及应用,郑州大学出版社,20052于海生主编,微型计算机控制技术,北京:清华大学出版社,19993张艳兵等编著,计算机控制技术,北京:国防工业出版社,20084 张毅刚主编,单片机原理及应用,北京:高等教育出版社,20045 陈涛编著,单片机应用及C51 程序设计,北京:机械工业出版社,20086 楼然苗,李光飞编著,单片机课程设计指导,北京:北京航空航天大学出版社,20077 控制、电子技术类杂志、报刊资料仅供参考!