最少拍控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
能源与动力工程学院课程设计报告
题目:最少拍控制系统设计
课程:计算机控制技术课程设计专业:
班级:
姓名:
学号:
《计算机控制技术》课程设计任务书
一、 课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。
二、 课程设计内容
设计以89C51单片机、ADC 、DAC 等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。
1. 硬件电路设计:89C51最小系统加上模入电路ADC0809和模出电路DAC0832;由运放构成的被控对象。
2. 控制算法:最少拍控制、PID 。
3. 软件设计:主程序、定时中断程序、A/D 转换程序、滤波程序、D/A 输出程序、最少拍控制程序等。
三、 课程设计要求
1. 模入电路能接受双极性电压输入(-5V~+5V ),模出电路能输出双极性电压(-5V~+5V )。
2. 被控对象每个同学选择不同:
5
10
(),
()(1)(0.81)(1)(0.41)G s G s s s s s =
=
++++
4
5
(),
()(0.41)
(0.81)G s G s s s s s =
=
++
5
8
(),
()(1)(0.21)
(0.81)(0.21)
G s G s s s s s s s =
=
++++
5
5
(),
()(0.81)(0.31)
(0.81)(0.21)G s G s s s s s =
=
++++
3. 设计无纹波最少拍控制器。
被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。
4. 定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。
5. 滤波方法可选择平均值法,中值法等。
四、课程设计实验结果
1. 控制系统能正确运行。
2. 按设计信号下的系统输出响应。
3. 其他典型输入信号下的系统输出响应。
五、进度安排
六、课程设计报告内容:
总结设计过程,写出设计报告,设计报告具体内容要求如下:
1.课程设计的目和设计的任务。
2.课程设计的要求。
3.控制系统总框图及系统工作原理。
4.控制系统的硬件电路连接图(含被控对象),电路的原理。
5.软件设计流程图及其说明。
6.电路设计,软件编程、调试中遇到的问题及分析解决方法。
7.实验结果及其分析。
8.体会。
七、参考文献
(列出你所利用的参考文献。
格式参见下。
)
[1] 于海生主编,微型计算机控制技术,北京:清华大学出版社,1999
[2] 张艳兵等编著,计算机控制技术,北京:国防工业出版社,2008
[3] 张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004
[4] 陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,2008
[5] 楼然苗, 李光飞编著, 单片机课程设计指导, 北京: 北京航空航天大学出版社, 2007
[6] 控制、电子技术类杂志、报刊
第二部分
课
程
设
计
报
告
目录
1.课题简介
1.1 课程设计内容 (5)
1.2课程设计要求 (5)
2.方案设计
2.1设计步骤 (5)
2.2 控制系统总框图及系统工作原理 (6)
3.硬件电路设计
3.1 被控对象设计 (8)
3.2硬件电路连接图 (9)
4.控制算法设计 (10)
5.软件编程设计
5.1 流程图 (11)
5.2 程序设计 (12)
6.实验结果与分析 (14)
7.心得体会 (14)
1 课题简介(宋体4号加粗)
1.1 课程设计内容
设计以89C51单片机、ADC、DAC等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。
1. 硬件电路设计:89C51最小系统加上模入电路ADC0809和模出电路TLC7528;由运放构成的被控对象。
2. 控制算法:最少拍控制。
3. 软件设计:主程序、定时中断程序、A/D转换程序、滤波程序、D/A输出程序、最少拍控制程序等。
1.2课程设计要求
1. 模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2. 被控对象
s 10
G=
s s+
(+1)(0.41)
3. 设计无纹波最少拍控制器。
被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。
4. 定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。
5. 滤波方法可选择平均值法,中值法等。
2 方案设计
2.1设计步骤
先进行硬件设计,根据Gz改造被控对象
进行最少拍控制算法计算
读范例程序,画出流程图,进行修改
调试实验结果
2.2控制系统总框图及系统工作原理
最小拍双通道采样的闭环系统框图如上所示,在该系统中对给定值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)对包含零阶保持器的被控量进行控值进而达到要求的最小拍控制的目的。
误差E=R-C 经运放运算得到,并由模数转换器采集。
最少拍控制算法由软件程序和单片机实现。
输出U 经数模转换器和零阶保持器转换成模拟信号送至被控对象。
被控对象由两只运放及阻容元件构成。
3 硬件电路设计
3.1 被控对象s 10
G =
s s+(+1)(0.41)
由运放及阻容元件搭建,电路图如下:
U33288RT
1
2
5
4
3
U43288RT
1
2
5
4
3
VCC
12V
VCC
12V
VCC 12V
VCC
12V
R1200kΩR2
200kΩC15uF
2uF
R3
200kΩ
R420kΩ
VCC VCC
VCC
VCC 0
3
4
1
2
3.2硬件电路原理图
4 控制算法设计
4.1 1111
2.146(10.5785)
()(1)(10.2865)
z z G z z z ----+=-- 被控对象含有一个积分环节,采用单位速度输入信号,q=2 D=0,q=2,v=1,w=1,j=1
m=w+d=1 n=v-j+q=2
110
()Z[G ][.](1)(0.4s 1)
Ts s e G z Z s s --==++
110
(1)[
](1)(0.4s 1)
Z Z s -=-++
4.2 1
1
2()(10.5785)(1.49920.8657)z z z
z φ---=++
121()(1)(10.5)e z z z φ--=--
11110.466(10.2865)(1.49920.8657)
()(1)(10.5)
z z D z z z ------=-+
1212()0.5()0.5()0.466()0.6036(1)0.1156(2)U z z U z z U z E z z E z z E z ----=++--+-
()0.5(1)0.5(2)0.466()0.6036(1)0.1156(2)u k u k u k e k e k e k =-+-+--+-
5 软件编程设计
5.1 流程图
5.2 程序
#include <reg51.h> #include <absacc.h> #include <math.h>
/***************************************** 宏定义
*****************************************/ #define uchar unsigned char #define uint unsigned int #define ADC_7 XBYTE[0x0600] //定义模数转换IO 地址 #define DAC_1 XBYTE[0x0640]
//定义D/A 第一路的IO 地址
全局变量定义
*****************************************/
sbit str = P1^7; //定义A/D启动信号
sbit DIN0 = P1^0; //声明同步信号
uint data time; //声明变量,用于定时
uchar data t0_h,t0_l; //用于存储定时器0的初值
char TK = 5; //声明采样周期变量,//采样周期=TK*10ms char TC; //TK的变量
float kp =1.8; //比例系数
uint ti =80; //积分系数
char td = 2; //微分系数
char IBAND = 120; //积分分离值
char EK; //当前采样的偏差值
char EK_1; //上一次采样的偏差值
char AEK; //偏差的变化量
char UK; //当前时刻的D/A输出
char AEK_1;
char BEK;
char CEK;
float ZEK;
主函数
*****************************************/
void main(void)
{
TMOD = 0x01;
time = 10; //定时10ms
t0_h = (65536 - 1000 * time) / 256; //计算定时器0初值
t0_l = (65536 - 1000 * time) % 256;
t0_l = t0_l + 70; //修正因初值重装而引起的定时误差TH0 = t0_h;
TL0 = t0_l;
IT1 = 1; //边沿触发中断
EX1 = 1; //开外部中断1
ET0 = 1; //开定时中断0
TR0 = 1; //启动定时器
TC = 1;
DAC_1= 0x80; //D/A清零
EK = EK_1 = 0; //变量清零
AEK =BEK=AEK_1=CEK= UK = 0;
ZEK = 0;
str = 1;
EA = 1; //开总中断
while(1);
}
/**********************************************
函数名:INT1
功能:1号外部中断服务程序
参数:无*
返回值:无*
***********************************************/
void int1() interrupt 2 using 2
{
float P,D,I,TEMP,TEMP1;
DIN0 = 1; //读取输入前,先输出高电平if(DIN0) //判同步信号到否
{
EK = EK_1 = 0; //变量清零
UK = AEK = BEK=CEK=AEK_1=0;
ZEK = 0;
DAC_1 = 0x80; //D/A输出零
TC=1;
}
else
{
TC--; //判采样周期到否
if(TC == 0)
{
EK = ADC_7 - 128; //采样当前的偏差值,并计算偏差的变化量AEK = EK - EK_1;
BEK =(EK+EK_1)/2;
CEK =AEK-AEK_1;
EK_1= EK;
AEK_1=AEK;
if(abs(EK)> IBAND) I = 0; //判积分分离值
else
{
ZEK=EK+ZEK;
I= BEK * TK;
I= I / ti;
}
P =AEK;
D = CEK * td; //计算微分项
D = D / TK;
TEMP = (P + I + D) * kp; //计算比例项
TEMP1=(EK_1 + ZEK*TK/ti+AEK_1*td/TK)*kp;
TEMP=TEMP+TEMP1;
if(TEMP > 0) //判控制量是否溢出,溢出赋极值
{
if(TEMP >= 127)
UK = 127;
else
UK = (char)TEMP;
}
else
{
if(TEMP <- 128)
UK = -128;
else
UK = (char)TEMP;
}
DAC_1 = UK + 128; //D/A输出控制量
TC = TK; //采样周期变量恢复}
}
}
/**********************************************
函数名:Timer0
功能:定时器0中断服务程序
参数:无
返回值:无
***********************************************/
void Timer0() interrupt 1 using 1
{
TH0 = t0_h; //重新装入初值TL0 = t0_l;
str = 0;
str = 1; //产生A/D启动信号}
6 实验结果与分析6.1 示波器图形
6.2结果分析
经过对PID参数的调节,最终实现的波形较好的实现了控制的要求,使得阶跃超调小于10%,而且相应时间较快,控制算法及程序是可靠的。
7 小结与体会
作为大学最后一次课程设计,时间紧,任务重,同时也为毕业设计的开始做了一些知识准备,本次课程设计是设计一个最少拍控制系统,课程设计分为硬件电路设计、研读范例程序、控制算法设计、软件编程调试、实验等几个阶段。
最终在整个小组同学的共同努力和小组其他成员的帮助下,完成了此次课程设计的任务并收获甚多。
感谢吴远网老师的耐心指导,让我在整个课程设计的过程中学到了很多。
也要感谢我们小组的组员,正是有了大家的共同努力,我们的各项任务,包括前期资料的借阅,中期接线程序的编写与调试,后期资料的汇总,都在大伙合作的前提下顺利的完成。
本次课程设计是和期末考试一起进行,所以时间很紧,在编写程序和接线图的设计方面出现了很多错误,也很烦躁,调试时候总是不能出现想要的结果,还好,小组同学比较团结,在复习考试之余,一起讨论,最终完成了设计。
虽然计算机控制课程设计的时间很短,但我们过的很充实,学会了原硬件电路设计、研读范例程序、控制算法设计、软件编程调试,加深了对计算机控制技术的认识,锻炼了自己吃苦耐劳和不怕困难的优良作风。
我们在实际的操作中更深刻的掌握学过的知识,在参观实习中开阔了眼界,拓宽了视野,对我们日后走上社会有非常大的帮助。
参考文献
(列出你所利用的参考文献。
格式参见下。
)
[1] 于海生主编,微型计算机控制技术,北京:清华大学出版社,1999
[2] 张艳兵等编著,计算机控制技术,北京:国防工业出版社,2008
[3] 张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004
[4] 陈涛编著,单片机应用及C51程序设计,北京:机械工业出版社,2008
[5] 楼然苗, 李光飞编著, 单片机课程设计指导, 北京: 北京航空航天大学出版社, 2007 [7] 控制、电子技术类杂志、报刊。