最少拍控制系统设计.docx
《最少拍控制系统设计.docx》由会员分享,可在线阅读,更多相关《最少拍控制系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
![最少拍控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-8/14/c4a68650-b650-4944-bc48-a02f6c26331d/c4a68650-b650-4944-bc48-a02f6c26331d1.gif)
最少拍控制系统设计
能源与动力工程学院
课程设计报告
题目:
最少拍控制系统设计
课程:
计算机控制技术课程设计
专业:
电气工程及其自动化
班级:
姓名:
学号:
第一部分
任
务
书
《计算机控制技术》课程设计任务书
一、课题名称
最少拍控制系统设计
二、课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
三、课程设计内容
设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。
1.硬件电路设计:
89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。
2.控制算法:
最少拍控制。
3.软件设计:
主程序、中断程序、A/D转换程序、滤波程序、最少拍控制程序、D/A输出程序等。
四、课程设计要求
1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2.模入电路用两个通道分别采集被控对象的输出和给定信号。
3.每个同学选择不同的被控对象:
4.设计无纹波最少拍控制器。
被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。
5.定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。
6.滤波方法可选择平均值法,中值法等。
有关的设计资料可参考《计算机控制实验指导书》的相关内容。
五、课程设计实验结果
1.控制系统能正确运行。
2.正确整定PID参数后,系统阶跃响应的超调<15%
六、进度安排
序号
内容
天数
1
布置任务,熟悉课题要求
0.5
2
总体方案确定,硬件电路设计
1.5
3
熟悉实验箱及C语言开发环境,研读范例程序,
1
4
控制算法设计
1
5
软件编程,调试
1
6
实验
1
7
总结,撰写课程设计报告
1
七、课程设计报告内容:
总结设计过程,写出设计报告,设计报告具体内容要求如下:
1.课程设计的目和设计的任务。
2.课程设计的要求。
3.控制系统总框图及系统工作原理。
4.控制系统的硬件电路连接图(含被控对象),电路的原理。
5.软件设计流程图及其说明。
6.电路设计,软件编程、调试中遇到的问题及分析解决方法。
7.实验结果及其分析。
8.体会。
第二部分
课
程
设
计
报
告
目录
1课题简介7
1.1课程设计目的7
1.2课程设计内容7
1.3课程设计要求8
2最小拍控制方案设计8
2.1控制系统总体介绍8
2.2控制系统框图及闭环工作原理9
3最小拍控制系统硬件电路设计10
3.1总体硬件电路图10
3.2输入双极性的实现原理11
3.3输出双极性的实现原理11
3.4给定的被控对象的实现12
4最小拍无纹波系统控制算法设计12
4.1最小拍无纹波控制的基本原理12
4.2最小拍无纹波控制的算法实现13
5最小拍无纹波控制软件编程设计14
5.1主程序及中断程序的流程图14
5.2重要程序的作用与实现14
5.2.1任务的分配14
5.2.2重要程序的源码介绍14
6实验与结果分析16
6.1仿真的情况16
6.2上机调试过程16
7小结与体会17
8参考文献18
1课题简介
1.1课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
1.2课程设计内容
设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。
1.硬件电路设计:
89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。
2.控制算法:
最少拍控制。
3.软件设计:
主程序、中断程序、A/D转换程序、滤波程序、最少拍控制程序、D/A输出程序等。
1.3课程设计要求
1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2.模入电路用两个通道分别采集被控对象的输出和给定信号。
3.每个同学选择不同的被控对象:
4.设计无纹波最少拍控制器。
被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号
设计控制器。
5.定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。
6.滤波方法可选择平均值法,中值法等。
有关的设计资料可参考《计算机控制实验指导书》的相关内容。
2最小拍控制方案设计
2.1控制系统总体介绍
数字控制器的连续化控制技术,是立足于连续控制系统控制器的设计,然后在计算机上进行数字模拟来实现的,这种方法在被控对象的特性不太清楚的情况下,人们可以充分利用技术成熟的连续化设计技术,并把它移植到计算机上予以实现。
但是连续化设计技术要求相当短的采样周期,因此只能实现简单的控制算法。
由于控制任务的需要,当所选择的采样周期比较大或对控制质量要求比较高时,必须从被控对象的特性出发,直接根据计算机控制理论(采样控制理论)来设计数字控制器,这类方法称为离散化设计方法。
在数字随动控制系统中,要求系统的输出值尽快地跟踪给定值的变化,最少拍控制就是为满足这一要求的一种离散化设计方法。
所谓最少拍控制,就是要求闭环系统对于某种特定的输入在最少个采样周期内达到无静差的稳态,且闭环脉冲传递函数具有以下形式:
式中N是在可能情况下的最小正整数。
这一形式表明闭环系统的脉冲响应在N个采样周期后变为0,从而意味着系统在N拍之内达到稳态。
最小拍闭环控制系统包括给定值,输出值,D/A转换环节,数字控制器,被控对象,零阶保持器等环节。
2.2控制系统框图及闭环工作原理
图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.1总体硬件电路图
图2总体硬件电路图
3.2输入双极性的实现原理
图3双极性的输入电路
由上图我们可以知道输入通道IN7和IN6加了上拉电阻,5号没加。
IN1~IN5的模拟量的允许输入范围:
0~4.98V。
而加了上拉电阻的IN7和IN6端口,当输入IN7的电压为0V时,进入A/D转换的电压为2.5V;当输入IN7的电压为-5V时,进入转换的电压为0V。
就是说,输入到外端口的电压Uout和进入转换的电压Uin的关系是Uin=(Uout+Vcc)/2,因此能够在IN7端口加上-5V~+4.96V的电压也可以实现转换的功能。
3.3输出双极性的实现原理
图4双极性的输出电路
上图为双极性的输出电路,该电路通过放大器和电阻的一系列计算关系实现输出的双极性。
具体的说,就是R2左端的电压为转换输出的单极性电压Vdan,该电压的大小为
,这就是原本单极性输出的正常电压。
但是加上如上的电路之后,我们设输出电压为Vout,因为右边的放大器3号端口接地,所以2号端口也虚地,即电压为0V。
又因为放大器2号端子向右可以认为是断路,没有电流。
综上,于是有:
所以
只要调试W102是W102加上R4为2K,那么输出的电压
,由此可知,实现了D/A转换的双极性输出。
3.4给定的被控对象的实现
课程设计任务书中有8个被控对象,我们取其中一个分析被控对象是如何实现的。
比如,被控对象为
的实现的硬件电路图为
图5被控对象实现硬件电路图
在该图中,左边的积分环节通过选取500K的输入电阻和2UF的并联电容来实现,右边的放大器上并联了R=200K和C=2uF实现时间常数T2=0.4s,然后通过R7/R8=4实现放大系数Kp=4的要求。
总之,通过这个例子我说明了积分环节、时间常数和放大系数是如何在接线中实现的。
其他的被控对象依次类推。
4最小拍无纹波系统控制算法设计
4.1最小拍无纹波控制的基本原理
最小拍控制的闭环脉冲传递函数要求有如下的形式:
这一形式表明经历有限个采样周期后输出能跟上输入的变化,系统在采样点没有静差。
根据z变换的终值定理和系统的稳态误差的情况,要求系统的
既有
这里F(z)是关于
的待定系数多项式。
显然,为了使
能够实现,F(z)首项应为1,即
因此最少拍控制器D(z)为
最小拍无纹波控制系统要求在非采样时间的时候也没有偏差,因此必须满足:
①对阶跃输入,当t≥NT时,有y(t)=常数。
②对速度输入,当t≥NT时,有y'(t)=常数。
③对加速度输入,当t≥NT时,有y''(t)=常数。
因此,设计最小拍无纹波控制器时,对速度输入函数进行设计,则Gc(s)必须至少有一个积分环节,使得控制信号u(k)为常值时,Gc(s)的稳态输出是所要求的速度函数。
同理,若针对加速度输入函数设计的无纹波控制器,则Gc(s)中必须至少有两个积分环节。
最小拍控制的广义对象含有D个采样周期的纯滞后
所以
其中
。
要使控制信号u(k)在稳态过程中为常数或0,那么
只能是关于
的有限多项式。
因此
4.2最小拍无纹波控制的算法实现
对于具体的被控对象,如
,要实现对它的计算机控制算法的设计需要经过一系列的计算。
采样周期选择1s,定时中断选择为10ms,就是说100个定时中断后进行采样。
首先广义对象的脉冲传递函数
,对于该式,输入速度信号,能满足无纹波控制的要求,且D=0,q=2,v=1,w=1,且j,
,因为
,故可以解得
.由此可知
于是求得
进一步可知
u(k)=0.593u(k-1)+0.4070u(k-2)+0.6294e(k)-0.4087e(k-1)+0.0293e(k-2),这就是计算机控制所要的控制式。
5最小拍无纹波控制软件编程设计
5.1主程序及中断程序的流程图
图6主程序及中断程序的流程图
5.2重要程序的作用与实现
5.2.1任务的分配
如流程图所示,主程序的作用是实现系统初始化和变量初始化的操作,包括设定定时器的工作状态、定时器装初值、设定外中断类型、开外中断和定时中断、启动定时器、D/A清零、变量清零等内容,完成上述操作后就等待进入定时中断。
同样如图所示,定时中断程序实现的功能有两个:
一是重新装入定时初值,二是启动D/A转换进而能进入转换外中断。
外中断服务程序实现了采样和计算输出控制量的功能。
首先检查是否到了同步信号,如果到了,就把输出清零、变量初始化并给采样周期值,没到就检查是否到了采样周期。
如果到了采样周期,就进行下一步的采样和计算。
具体就是,依次采样7号通道和6号通道,然后计算出偏差。
根据之前算得的公式计算出控制输出u(k),然后检查控制量是否溢出,溢出了就取相应的最值。
这之后输出控制量。
最后进行控制量和偏差的递推和采样周期恢复,就返回了。
5.2.2重要程序的源码介绍
A/D转换程序
If(TC==0)
{
cont=ADC_7-128;
DEFI=0;
str=0;
str=1;
EX1=0;
k=200;
While(k>0)k--;
EX1=1;
set=ADC_7-128;
DEFI=1;
EK=cont-set;
........
}
从以上程序中我们可以知道,当采样周期到时,首先采样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,在主函数中赋给他们计算出的相应的数值,然后在中断服务程序里进行计算,对应的程序就是:
floatKK0=0.6294;//系数kk0
floatKK1=-0.4087;//系数kk1
floatKK2=0.0293;//系数kk2
floatKK3=0;//系数kk3
floatPP1=0.593;//系数pp1
floatPP2=0.407;//系数pp2
floatPP3=0;//系数pp3
floatG=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.1仿真的情况
为了验证我们计算的数据是否正确,我们首先利用老师给的MATLAB仿真程序对数据进行了仿真,得到的情况如下:
图7仿真效果图
从图上的效果来看是能够满足控制的要求的,所计算的数据是正确的。
6.2上机调试过程
以下为针对以上介绍的例子
在成功时的输出波形图:
图8成功输出波形图
7小结与体会
本学期一开学,我们就开始了为期一周的计算机控制课程设计,课程设计分为硬件电路设计、研读范例程序、控制算法设计、软件编程调试、实验等几个阶段。
最终在整个小组同学的共同努力和小组其他成员的帮助下,完成了此次课程设计的任务并收获甚多。
感谢夏阳老师的认真负责和对我们的耐心指导,让我在整个课程设计的过程中学到了很多。
也要感谢我们小组的组员,正是有了大家的共同努力,我们的各项任务,包括前期资料的借阅,中期接线程序的编写与调试,后期资料的汇总,都在大伙合作的前提下顺利的完成。
本次设计,令我印象最为深刻的当属上机程序的调试,那可是绞尽脑汁儿,一方面由于对程序编程本身的不太熟悉,另一方面由于对上学期计控知识的淡淡遗忘,上机调试在我们整个流程中占据了超过70%的时间。
我们小组成员积极参与谈论,课后主动翻阅资料,在仍然没有结果的情况下,我们请教了老师,老师给我们讲明了程序可能出错的地方,并教给我们利用Keil软件的单步中断查询程序错误的方法,我们汲取了老师的教训,认真阅读程序,并采用单步中断的方式最终查出了程序出错的地方。
由于报名参加了3月11号的江苏省公务员考试,课程设计的最后几天我因为上公务员辅导班遗憾地错过了,感谢夏阳老师对我的理解和帮助,让我在不能从头至尾参加整个课程设计的情况下仍然掌握到了课程设计的主要内容和相关知识点。
虽然计算机控制课程设计的时间很短,但我们过的很充实,学会了原硬件电路设计、研读范例程序、控制算法设计、软件编程调试,加深了对计算机控制技术的认识,锻炼了自己吃苦耐劳和不怕困难的优良作风。
我们在实际的操作中更深刻的掌握学过的知识,在参观实习中开阔了眼界,拓宽了视野,对我们日后走上社会有非常大的帮助。
8参考文献
[1]于海生主编,微型计算机控制技术,北京:
清华大学出版社,1999
[2]张艳兵等编著,计算机控制技术,北京:
国防工业出版社,2008
[3]张毅刚主编,单片机原理及应用,北京:
高等教育出版社,2004
[4]陈涛编著,单片机应用及C51程序设计,北京:
机械工业出版社,2008
[5]楼然苗,李光飞编著,单片机课程设计指导,北京:
北京航空航天大学出版社,2007
[7]控制、电子技术类杂志、报刊