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

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

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

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

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

#include

#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