微分先行PID控制系统设计.docx

上传人:b****5 文档编号:7633826 上传时间:2023-01-25 格式:DOCX 页数:18 大小:124.07KB
下载 相关 举报
微分先行PID控制系统设计.docx_第1页
第1页 / 共18页
微分先行PID控制系统设计.docx_第2页
第2页 / 共18页
微分先行PID控制系统设计.docx_第3页
第3页 / 共18页
微分先行PID控制系统设计.docx_第4页
第4页 / 共18页
微分先行PID控制系统设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

微分先行PID控制系统设计.docx

《微分先行PID控制系统设计.docx》由会员分享,可在线阅读,更多相关《微分先行PID控制系统设计.docx(18页珍藏版)》请在冰豆网上搜索。

微分先行PID控制系统设计.docx

微分先行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课程名称。

...。

.。

.。

.。

....。

..。

....。

..。

......。

..。

.。

.。

.....。

.。

..。

.。

.。

.。

......。

..。

.。

..。

....。

.。

.。

1。

2课程设计目的.。

..。

.。

..。

.。

.。

.。

.。

..。

.。

....。

...。

....。

...。

.....。

.。

...。

.。

.。

.。

.。

.。

..。

.。

.。

.。

.。

.。

......。

..。

.。

...。

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

h〉

#include

/*****************************************

宏定义

*****************************************/

#defineucharunsignedchar

#defineuintunsignedint

#defineADCXBYTE[0x0600]//定义模数转换IO地址

#defineDAC_1XBYTE[0x0640]//定义D/A第一路的IO地址

#defineDAC_2XBYTE[0x0641]//定义D/A第二路的IO地址

/*****************************************

全局变量定义

*****************************************/

sbitstr=P1^7;//定义A/D启动信号

sbitDIN0=P1^0;//声明同步信号

sbitstr0=P1^4;//声明ADC信号

uintdatatime;//声明变量,用于定时

uchardatat0_h,t0_l;//用于存储定时器0的初值

charTK=5;//声明采样周期变量,//采样周期=TK*10ms

charTC;//TK的变量

floatT=0。

05;

floatkp=0。

9;//比例系数

uintti=500;//积分系数

floattd=8;//微分系数

charIBAND=126;//积分分离值

floatV=1。

1;

charEK;//当前采样的偏差值

charYK;

charYK_1;

charYDK;

charYDK_1;

charRK;

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()interrupt2using2

floatP,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()interrupt1using1

{

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]控制、电子技术类杂志、报刊

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1