微分先行PID控制系统设计.docx
- 文档编号:7573101
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:18
- 大小:126.11KB
微分先行PID控制系统设计.docx
《微分先行PID控制系统设计.docx》由会员分享,可在线阅读,更多相关《微分先行PID控制系统设计.docx(18页珍藏版)》请在冰点文库上搜索。
微分先行PID控制系统设计
扬州大学能源与动力工程学院
课程设计报告
题 目:
微分先行PID控制系统设计
课 程:
计算机控制技术课程设计
专 业:
电气工程及其自动化
班级:
电气0703
姓 名:
高梁
学 号:
071301306
第一部分
任
务
书
ﻬ《计算机控制技术》课程设计任务书
一、课题名称
数字PID控制系统设计
二、课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义.
《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。
三、课程设计内容
设计以89C51单片机、ADC、DAC等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。
1.硬件电路设计:
89C51最小系统加上模入电路ADC0809和模出电路TLC7528;由运放构成的被控对象。
2.控制算法:
微分先行的PID控制算法。
3。
软件设计:
主程序、定时中断程序、A/D转换程序、滤波程序、D/A输出程序、PID控制程序等。
四、课程设计要求
1.模入电路能接受双极性电压输入(—5V~+5V),模出电路能输出双极性电压(—5V~+5V)。
2。
被控对象每个同学选择不同:
3. PID参数整定,根据情况可用扩充临界比例度法,扩充响应曲线法。
4.定时中断可在10-50ms中选取,采样周期取采样中断的整数倍,可取30—150ms,由实验结果确定。
5.滤波方法可选择平均值法,中值法等。
有关的设计要求可参考《计算机控制实验指导书》的相关内容.
五、课程设计实验结果
1。
系统正确运行
2。
正确整定PID参数后,系统阶跃响应超调<10%,调节时间尽量短.
六、进度安排
序号
内容
天数
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课题简介
1.1课程名称。
。
。
.。
.。
。
.。
..。
.。
...。
。
。
。
.。
.......。
.。
..。
...。
。
.。
.。
。
.。
。
。
.....。
.。
。
.。
........。
..。
。
...。
。
.。
.。
。
.。
。
。
..。
...。
。
.。
。
.。
....。
。
..。
.。
......。
。
..。
6
1.2课程设计目的。
。
。
...。
。
.。
.。
。
.。
。
。
。
。
.。
.。
..。
.。
.。
..。
.。
.。
.。
.。
。
...。
..。
.....。
...。
。
.。
.。
。
。
。
。
..。
...。
。
.。
...。
...。
。
...。
.。
.。
.。
。
。
.。
.。
..。
。
。
。
。
.。
.... 6
1.3课程设计内容。
..。
。
.....。
。
。
.。
.。
.。
.。
。
..。
.。
.。
。
。
。
。
.。
。
..。
。
。
.。
.。
...。
。
....。
。
。
.。
。
....。
。
......。
。
。
...。
。
。
。
..。
。
。
.。
.。
.。
。
....。
。
..。
.。
。
..。
.。
。
..。
。
6
1。
4课程设计要求。
.。
。
..。
.。
。
.。
..。
。
。
。
。
..。
。
。
.。
。
...。
..。
..。
..。
。
...。
.。
..。
。
.....。
..。
..。
.。
。
。
.。
。
.。
。
.。
.....。
。
.。
....。
..。
。
...。
..。
....。
..。
。
....。
.。
6
2方案设计
2。
1设计步骤。
.。
。
.。
......。
..。
。
。
.。
..。
.。
。
。
...。
.。
。
。
..。
。
。
。
...。
.。
.。
..。
..。
.。
....。
...。
...。
。
..。
....。
...。
。
..。
。
。
。
。
。
..。
。
。
.。
。
..。
。
。
..。
.。
..。
..。
..。
....。
. 7
2。
1 系统流程图及工作原理。
.。
.。
。
.。
...。
...。
。
.。
.。
。
。
..。
.。
....。
。
.。
...。
...。
.。
。
。
。
.。
...。
。
。
。
.。
。
。
。
。
。
..。
.....。
.。
。
。
。
。
..。
..。
。
.。
......。
。
.。
.. 7
3 硬件电路设计
3。
1被控对象设计....。
。
。
...。
.....。
.。
.。
。
.。
。
..。
..。
。
.。
。
..。
.。
..。
.。
..。
.。
。
。
。
。
.......。
。
......。
.。
.。
。
.....。
。
。
。
。
.。
.。
。
.。
.。
....。
。
.。
。
。
。
。
。
。
。
。
。
..。
。
。
..。
8
3。
2硬件电路图...。
..。
。
。
。
..。
.。
.。
。
。
。
....。
。
..。
。
。
。
...。
...。
。
。
。
..。
。
。
。
.。
....。
。
。
....。
。
。
.。
.。
。
..。
.。
。
......。
....。
.。
...。
..。
..。
。
。
。
..。
。
.。
。
..。
..。
。
.....。
. 8
4 控制算法设计.。
。
....。
.。
。
。
。
.。
..。
.。
..。
。
....。
。
..。
。
......。
.。
。
.。
。
....。
。
.....。
。
...。
...。
.。
。
..。
.。
。
.。
..。
.。
.。
。
。
。
..。
...。
.。
.。
。
。
.。
。
...。
.。
。
。
...。
。
。
。
。
..。
.。
。
9
5软件编程设计
5。
1设计流程图.。
。
。
。
。
..。
...。
。
..。
。
...。
..。
。
.。
.。
。
..。
.。
。
..。
...。
。
。
。
.。
。
.。
。
.。
。
。
............。
.。
。
..。
..。
。
。
..。
....。
。
。
....。
.。
。
。
。
。
。
..。
。
.。
...。
....。
。
。
..。
。
。
10
5。
2程序...。
。
.。
...。
.。
..。
..。
.。
.。
....。
。
。
。
。
。
...。
.。
。
.。
。
..。
..。
。
。
。
。
.。
。
。
.。
.。
...。
。
....。
。
。
。
。
.。
.。
..。
。
.。
。
。
。
。
..。
。
.。
...。
.。
。
。
。
。
。
.。
..。
.......。
。
。
.。
。
。
..。
.。
。
.。
...。
11
6实验结果与分析.....。
。
。
。
.。
。
。
。
。
。
..。
..。
....。
。
.。
。
.。
。
。
.。
。
。
。
。
.。
。
。
。
。
。
...。
。
。
。
.。
。
。
..。
....。
.。
..。
。
。
。
.。
.。
..。
。
。
.。
.。
。
。
。
.。
.。
。
。
。
..。
。
。
。
.。
.。
.。
。
。
.。
。
.。
.。
... 15
7小结与体会。
。
.。
。
。
。
。
.。
.。
。
。
。
...。
.。
.。
.。
.。
...。
...。
。
.。
。
。
.。
.....。
。
...。
。
.。
。
。
。
.。
。
。
。
.。
.。
。
。
..。
.。
.。
。
.。
。
.。
...。
。
..。
。
。
..。
。
。
..。
。
。
。
。
。
。
。
。
.。
...。
.。
。
.。
..。
..。
..。
。
..。
17
参考文献。
.。
。
。
..。
。
。
。
。
。
...。
。
........。
..。
。
。
.。
..。
...。
。
.。
..。
。
.。
...。
。
。
。
.。
。
。
。
.。
。
.。
。
.。
.。
...。
。
..。
.。
..。
........。
。
.....。
。
。
.....。
。
。
。
.。
...。
。
.。
.。
。
.。
.。
。
。
。
...。
.。
.....。
. 18
1课题简介
1。
1课题名称
微分先行PID控制系统设计
1。
2课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。
1。
3课程设计内容
设计以89C51单片机、ADC、DAC等电路和运放电路组成的被控对象构成单闭环反馈控制系统。
1。
硬件电路设计:
89C51最小系统加上模入电路ADC0809和模出电路TLC7528;由运放构成的被控对象.
2.控制算法:
PID控制加史密斯预估控制。
3。
软件设计:
主程序、定时中断程序、A/D转换程序、滤波程序、D/A输出程序、PID控制加史密斯预估控制程序。
1。
4 课程设计要求
1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(—5V~+5V)。
2。
被控对象
3。
定时中断间隔可在10-20ms中选取,采样周期T取采样中断间隔的整数倍,可取30—50ms。
4。
PID控制器用凑试法整定。
5。
滤波方法可选择平均值法,中值法等。
2 微分先行PID控制方案设计
2。
1设计步骤
1、进行硬件设计,根据G(Z)改造被控对象
2、进行微分先行控制算法计算
3、读范例程序,画出流程图,进行修改
4、连线,调试实验结果
2.2控制系统总框图及系统工作原理
图1系统框图
(1)采样y(t)
(2)计算
(3)计算
(4)进行PI计算u(k)
(5)输出u(k)
微分先行PID原理:
它和标准PID控制的不同之处在于,只对被控量y(t)微分,不对偏差e(t)微分,也就是说对给定r(t)无微分作用。
这样就可避免给定值的升降给控制系统带来冲击。
3微分先行PID控制硬件电路设计
3。
1被控对象设计
被控对象
由运放和电阻电容组成,如图2所示。
其中,
R1=100K, C1=2Uf , R2=20K
R3=100K, C2=4Uf , R4=200K
图2 被控对象电路图
3。
2硬件电路连接图
图3 硬件电路连线图
4微分先行PID控制控制算法设计
其中
而yd(k)可通过双线性变换法得到,过程如下
………………①
由①式变型、整理得
………②
将上式k变换得到
………③
5 微分先行PID控制软件编程设计
5。
1设计流程图
图4 设计流程图
5。
2 程序
/*****************************************
文件名:
PID。
C
功能描述:
实现数字PID调节器的功能。
*****************************************/
#include 〈reg51。
h〉
#include〈absacc.h〉
#include 〈math。
h>
/*****************************************
宏定义
*****************************************/
#defineucharunsigned char
#defineuintunsignedint
#defineADC XBYTE[0x0600]ﻩﻩ//定义模数转换IO地址
#defineDAC_1 XBYTE[0x0640]ﻩﻩ//定义D/A第一路的IO地址
#defineDAC_2 XBYTE[0x0641]//定义D/A第二路的IO地址
/*****************************************
全局变量定义
*****************************************/
sbit str= P1^7;ﻩ//定义A/D启动信号
sbitDIN0=P1^0;ﻩﻩﻩﻩﻩ//声明同步信号
sbitstr0=P1^4;ﻩﻩﻩﻩ//声明ADC信号
uint data time;ﻩﻩﻩ//声明变量,用于定时
uchardata t0_h,t0_l;ﻩﻩ//用于存储定时器0的初值
charTK =5;ﻩﻩﻩﻩ//声明采样周期变量,//采样周期=TK*10ms
char TC;ﻩﻩﻩ//TK的变量
floatT=0。
05;
float kp=0.9;ﻩﻩﻩﻩ//比例系数
uintti = 500;ﻩﻩﻩﻩﻩ//积分系数
floattd =8;ﻩﻩﻩ//微分系数
char IBAND=126;ﻩﻩ//积分分离值
floatV=1.1;
charEK;ﻩﻩﻩﻩﻩﻩ//当前采样的偏差值
char YK;
charYK_1;
charYDK;
charYDK_1;
char RK;
charEK_1;ﻩﻩﻩ//上一次采样的偏差值
charAEK;ﻩﻩﻩ//偏差的变化量
charUK;ﻩﻩﻩﻩﻩ//当前时刻的D/A输出
floatZEK;
/*****************************************
主函数
*****************************************/
voidmain(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=UK=0;
ﻩZEK=0;
str=1;
ﻩstr0=1;
EA= 1;ﻩﻩ//开总中断
ﻩwhile
(1);
}
/**********************************************
函数名:
INT1
功能:
1号外部中断服务程序
参数:
无*
返回值:
无*
***********************************************/
voidint1()interrupt2 using2
{
ﻩfloat P,A,B,C,I,TEMP;
inti;
DIN0=1;ﻩﻩﻩﻩﻩ//读取输入前,先输出高电平
if(DIN0)ﻩﻩﻩﻩ//判同步信号到否
{
YK=YK_1=0;
YDK=YDK_1=0;
ﻩ EK=EK_1=0;ﻩﻩ//变量清零
ﻩUK=AEK=0;
ZEK=0;
ﻩ DAC_1=0x80;ﻩﻩﻩ//D/A输出零
ﻩﻩDAC_2=0x80;ﻩﻩﻩﻩ//D/A输出零
TC=1;
ﻩ}
ﻩelse
{
ﻩTC—-;ﻩﻩﻩﻩﻩ//判采样周期到否
ﻩif(TC== 0)
{ﻩ
ﻩRK =ADC—128;ﻩﻩ//采样当前的偏差值,并计算偏差的变化量
ﻩ ﻩstr0=0;
ﻩﻩstr=0;
ﻩstr=1;
ﻩfor(i=0;i<15;i++);
YK=ADC—128;
ﻩﻩstr0=1;
ﻩ ﻩ
A=(2*V*td-T)/(T+2*V*td);
B=(T+2*td)/(T+2*V*td);
C=(T—2*td)/(T+2*V*td);
YDK=A*YDK_1+B*YK+C*YK_1;
ﻩ
ﻩEK=RK—YDK;
ﻩ
ﻩif(abs(EK)>IBAND)I=0;//判积分分离值
ﻩelse
ﻩ{
ﻩZEK=EK + ZEK;ﻩﻩ//计算积分项
ﻩﻩI= ZEK*TK;
ﻩﻩI=I/ti;
ﻩﻩﻩ}
ﻩP=EK;
TEMP =(P+I)* kp;ﻩ//计算比例项
ﻩﻩ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中断服务程序
参数:
无
返回值:
无
***********************************************/
voidTimer0()interrupt 1using 1
{
ﻩTH0=t0_h;ﻩﻩﻩﻩﻩ//重新装入初值
ﻩTL0 =t0_l;
ﻩstr=0;
str =1;ﻩﻩﻩ//产生A/D启动信号
}
6 实验结果与分析
①
kp=0。
8;ﻩﻩﻩﻩti=500;ﻩﻩﻩtd=8
此时,系统响应较慢,可以通过增大微分时间常数调节
②
kp =0。
8;ﻩ ti=500; td=9
此时,系统的响应性能得到改善,但是存在一定静差,可以通过调节比例增益kp来减小
③
ﻩ
kp =0。
9;ﻩti=500; ﻩtd=9
通过调节三个参数,系统性能基本达到要求
7 小结与体会
通过这次的课程设计,我对《计算机控制技术》这门课和课程设计有了一个全新的认识,也有了很多的体会和心得.
《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,我对控制算法设计有了一个更深的认识,也学会了控制算法的实际应用,从整体上了解了计算机控制系统的实际组成,掌握了计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。
按照老师给出的计划,先进行最少拍控制算法计算,接电路,读范例程序,画出流程图,进行修改,调试实验结果。
思路很清晰,目标很明确。
在设计的过程中虽然遇到问题,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,计算容易出错,软件使用不熟练,但我们几个小组同心协力、分工协作、互相探讨,保证了结果的正确性。
作为工科专业的一名学生,对于动手能力有很大的要求。
因此我们需要珍惜每次做实验的机会,尽可能的提高自己的实践操作技能。
也要利用各种机会,以及创造实践的机会,不断充实自己,为自己的将来增加更多砝码,短短一周的课程设计,使我明白了合作的重要性和力量,我还要加强自己的动手能力,我为将来走入社会做准备。
同时我也发现了自己所掌握的知识是真正如此的缺乏,自己综合应用所学的专业知识能力是如此的不足,我深深体会到干任何事情都必须耐心、细致,充满信心。
我懂得了不管做什么一定要养成一种高度负责、认真对待的态度.
这次的课程设计也使我认识到任何课程的学习都需要理论结合实际,这样才能更好地掌握所学的知识并将它很好地应用于实践中。
同时,在实践过程中,可以通过查找资料、分析资料和请教老师和同学,使一些不清楚的问题得以解决,这样的话,可以起到事半功倍的效果.当然,最关键的还是靠自己亲自去思考问题、解决问题,掌握独自面对各类的问题的方法.不少人抱怨在大学学不到东西,我不这样认为.我觉得无论是学习还是生活中,只有自己真正用心去学习和参与才可能有收获,这也算是本次课程设计给我的知识之外的一点小小的感悟吧。
总之,本次课程设计收获确实良多,和珍惜这种能够锻炼自己、提升自己的机会。
通过这次课程设计,我得到了一次难得的磨练,让我学到了很多,提高了自己的实验素养,也增强了自己的信心。
最后,我要感谢老师和我的同学对我的无私帮助,对我个人而言这次课程设计将会成为永远的回忆.
参 考文 献
[1]于海生主编,微型计算机控制技术,北京:
清华大学出版社,1999
[2]张艳兵等编著,计算机控制技术,北京:
国防工业出版社,2008
[3]张毅刚主编,单片机原理及应用,北京:
高等教育出版社,2004
[4] 陈涛编著,单片机应用及C51程序设计,北京:
机械工业出版社,2008
[5] 楼然苗, 李光飞编著,单片机课程设计指导,北京:
北京航空航天大学出版社, 2007
[7] 控制、电子技术类杂志、报刊
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分 先行 PID 控制系统 设计