数字PID积分分离.docx
《数字PID积分分离.docx》由会员分享,可在线阅读,更多相关《数字PID积分分离.docx(17页珍藏版)》请在冰豆网上搜索。
数字PID积分分离
扬州大学
水利与能源动力工程学院
课程设计报告
题目:
数字PID控制系统设计(IV)
课程:
计算机控制技术课程设计
专业:
电气工程及其自动化
班级:
电气1102
姓名:
奥巴马
学号:
1117888888
第一部分
任
务
书
《计算机控制技术》课程设计任务书
一、课题名称
数字PID控制系统设计(IV)积分分离
二、课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
三、课程设计内容
设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象,构成的计算机单闭环反馈控制系统。
1.硬件电路设计:
89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。
2.控制算法:
带积分分离的增量型PID控制。
3.控制算法仿真:
在simulink中建立控制系统仿真图,编写S-function,对算法进行仿真。
四、课程设计要求
1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2.模入电路用两个通道分别采集被控对象的输出和给定信号。
3.每个同学选择不同的被控对象:
4.PID参数整定,带有积分环节的对象用扩充临界比例度法,无积分环节的对象用扩充响应曲线法。
5.对象输出端加上扰动:
扰动可选择小幅度正弦信号、小幅度阶跃信号、小幅度的脉冲信号。
扰动的出现时刻选择在系统进入稳态后的适当时刻。
6.对采样信号加上滤波算法。
算法可选择滑动平均值法,复合滤波,惯性滤波等。
7.simulink仿真采用ode4定步长,仿真步长可取0.1-1ms。
采样周期可取20-100ms,由实验结果确定。
8.S-function的函数名由各人姓名拼音缩写+学号后3位数组成。
有关的设计资料可参考《计算机控制实验指导书》的相关内容。
五、课程设计实验结果
1.simulink控制系统仿真能正确运行。
2.正确整定PID参数后,系统阶跃响应超调<10%,调节时间尽量短。
3.对比有滤波与无滤波时,扰动对系统的影响。
六、进度安排
序号
内容
天数
1
布置任务,熟悉课题要求
0.5
2
总体方案确定,硬件电路设计
1.5
3
学习matlab及simulink的使用,研读范例程序
1
4
控制算法设计
1
5
Simulink编程,调试
1
6
仿真实验
1
7
总结,撰写课程设计报告
1
七、课程设计报告内容:
总结设计过程,写出设计报告,设计报告具体内容要求如下:
1.课程设计的目的和设计的任务。
2.课程设计的要求。
3.控制系统总框图及系统工作原理。
4.控制系统的硬件电路原理图(含被控对象),电路的工作原理。
5.控制算法原理与控制器设计。
6.Simulink仿真图及S-function的算法实现说明。
7.实验结果及其分析。
8.电路设计、仿真调试中遇到的问题及解决方法。
9.体会。
第二部分
课
程
设
计
报
告
1课题简介
1.1课题的目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
1.2课题的任务及要求
1.模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2.模入电路用两个通道分别采集被控对象的输出和给定信号。
3.选择被控对象:
4.PID参数整定:
要求用扩充临界比例度法
5.对象输出端加上扰动:
扰动选择小幅度正弦信号。
扰动的出现时刻选择在系统进入稳态后的适当时刻。
6.对采样信号加上滤波算:
选择滑动平均值法。
7.simulink仿真采用ode4定步长,仿真步长可取0.1-1ms。
采样周期可取20-100ms,由实验结果确定。
8.S-function的函数名由各人姓名拼音缩写+学号后3位数组成。
2数字PID控制系统设计(IV)方案设计
2.1控制系统总体介绍及系统框图
该闭环控制系统的被控对象为数字PID控制系统框图如下图所示:
图2.1数字PID控制系统方框图
其中被控对象由两个惯性环节串联而成。
首先利用模数转换单元对两路信号(给定和输出)进行采样,经过A/D转换器进行转换后,由单片机进行计算偏差,控制器采用的是增量型数字PID控制,由比例(P)、积分(D)和微分(I)叠加而成。
经过A/D转换的数字信号再通过PID程序进行增量型计算,输出的信号值经过D/A转换得到控制信号,在D/A转换器中利用双运放实现双极性输出,经过被控对象得出被控量Y。
2.2闭环工作原理
由图2.1可知,被控对象的响应Y(t)经采样电路离散为Y(k)。
偏差E(k)=R(k)-Y(k),作为PID调节的输入,经过PID运算输出,得到控制输出U(k)。
控制输出U(k)经采样保持器产生连续的控制输出信号U(t),作用于控制对象,使控制输出值U(t)达到给定值R,消除偏差E(k)。
3数字PID控制硬件电路设计
3.1A/D转换单元
模数单元采用ADC0809芯片,主要包括多路模拟开关和A/D转换器两部分。
其主要特点为:
单电源供电、工作时钟CLOCK最高可达到1200KHz、8位分辨率、8个单端模拟输入端(IN0~IN7)、TTL电平兼容等,可以很方便地和微处理器接口。
图3.1A/D转换单元
如图3.1,通过三端地址译码A、B、C多路开关可选通8路模拟输入的任何一路进行A/D转换。
其中IN0对地接500欧电阻,构成温度控制实验中的温度传感器专用输入通道;IN1~IN5的模拟量输入允许范围;0V~4.98v,对应数字量00H~FFH,2.5V对应80H;IN6、IN7两路由于接上了上拉电阻,所以模拟输入允许范围-5V~+4.96V,对应的数字量为00H~FFH,0V对应80H。
这样就实现了双极性电压的输入。
本课程设计中采用的ADC0809,其输出8位数据线已连接到计算机控制系统的数据线。
由于89C51外部时钟为12MHz,其ALE端输出6分频时钟(2MHz),再经过D触发器分频得到所需的应用时钟1MCLK(1MHz),输入CLOCK端。
在本课程设计中要求模入电路用两个通道分别采集被控对象的输出和给定信号,并且要双极性电压输入,所以选择ADC0809的IN6、IN7两个通道采集输入模拟信号。
3.2D/A转换单元
数模转换单元采用TLC7528芯片,它是8位、并行、两路、电压型输出数模转换器。
其主要参数如下:
转换时间100ns,满量程误差1/2LSB,参考电压-10V~+10V,供电电压+5V~+15V,输入逻辑电平与TTL兼容。
输入数字范围为00H~0FFH,80H对应0V,输出电压为-5V~+4.96V。
本课程设计中采用的TLC7528,其输入数字量的八位数据线、写线和通道选择控制线已接至控制计算机的总线上。
片选线预留出待实验中连接到相应的I/O片选上,具体接线图如下:
图3.2D/A转换单元
3.3被控对象的实现
本课程设计中选取的被控对象为:
(修改了一些参数,便于和同学区分开)
电路如图3.3。
图3.3控制对象
3.4硬件设计图
图3.4硬件设计图
4数字PID控制控制算法设计
4.1数字PID增量型积分分离控制算法
对于连续系统,PID控制规律为:
(4.1.1)
其中,KP为比例增益,KP与比例带δ成倒数关系即KP=1/δ,TI为积分时间常数,TD为微分时间常数,u(t)为控制量,e(t)为偏差。
在计算机控制系统中,PID控制规律的实现必须用数值逼近的方法。
当采样周期相当短时,用求和代替积分、后向差分代替微分,使模拟PID离散化为差分方程,得数字PID位置型控制算式:
(4.1.2)
为了便于编写程序,避免积分累加占用过多的存储单元,我们需对式(4.1.2)进行改进。
由式(4.1.2)易写出u(k-1)的表达式,即
(4.1.3)
将式(4.1.2)和式(4.1.3)相减,即得数字PID增量型控制算式为
(4.1.4)其中:
KP称为比例增益;KI=KPT/TI称为积分系数;KD=KPTD/T称为微分系数。
为了编程方便,可将式(4.1.4)整理成如下形式:
(4.1.5)
其中:
,
,
(4.1.6)
最后输出为:
(4.1.7)
积分分离的算法设计
当偏差e(k)>β时,采用PD控制,
当偏差e(k)<β时,采用PID控制,
积分分离阀值β应根据具体对象及控制要求确定。
若β值过大,达不到积分分离的目的;若β值过小,一旦被控量y(t)无法跳出各积分分离区,只进行PD控制,将会出现残差。
为实现积分分离,编写程序是必须从数字PID差分方程式中分离出积分项,进行特殊处理。
4.2采样周期的选择
(1)首先,香农采样定理给出了采样周期的上限。
根据采样定理,采样周期应满足
T≤π/ωmax
其中,ωmax为被采集信号的上限角频率。
采样周期的下限为计算机执行程序和输入输出所耗的时间,系统的采样周期只能在Tmax与Tmin之间选择。
(2)其次,要综合考虑给定值的变化频率、被控对象的特性、执行机构类型和控制回路等因素。
具体就本次课程设计的课题来说,一方面,给定方波的周期为10~20s间可调,且控制对象时间常数接近1s,变化较慢;另一方面,A/D转换时间在100μs左右,D/A转换时间在100ns左右,而程序执行时间估计在100μs左右。
故综合考虑上述因素,对于我的控制对象,我选择的采样周期为20ms。
5数字PID控制Simulink仿真设计
5.1仿真系统图
主程序设计图如图5.1所示,其中两个输入(一个给定,一个反馈),一个输出U。
本次课程设计重点在于对控制算法的原理,控制器设计,控制算法计算机实现的公式推导,采样周期选择进行研究。
图5.1仿真系统图
5.2主程序设计
functionsys=mdlOutputs(t,x,u,Kp,Ti,Td,T)
globalukek_1ek_2d_ukuk_1βykyk_1nd_yk
β=1;//积分分离阀值
ek=u
(1)-u
(2);
P=ek-ek_1;
I=ek;
D=ek-2*ek_1+ek_2;//增量型算法
ek_2=ek_1;
ek_1=ek;
Ki=Kp*T/Ti;
Kd=Kp*Td/T;
ifabs(ek)>β//采用PD算法
d_uk=Kp*P+Kd*D;
uk=uk_1+d_uk;
uk_1=uk;
end
ifabs(ek)<β//采用PID算法
d_uk=Kp*P+Ki*I+Kd*D;
uk=uk_1+d_uk;
uk_1=uk;
end
ifuk>umaxuk=umax;end//限幅,最大输出为5V
ifuk<-umaxuk=-umax;end//限幅,最小输出为-5V
sys=[uk];
5.3滤波程序设计
采用滑动滤波方法,取20个数据
xk20=xk19;
xk19=xk18;
xk18=xk17;
xk17=xk16;
xk16=xk15;
xk15=xk14;
xk14=xk13;
xk13=xk12;
xk12=xk11;
xk11=xk10;
xk10=xk9;
xk9=xk8;
xk8=xk7;
xk7=xk6;
xk6=xk5;
xk5=xk4;
xk4=xk3;
xk3=xk2;
xk2=xk1;
xk1=u
(2);
yk=(xk1+xk2+xk3+xk4+xk5+xk6+xk7+xk8+xk9+xk10+xk11+xk12+xk13+xk14+xk15+xk16+xk17+xk18+xk19+xk20)/20;
u
(2)=yk;
6实验与结果分析
6.1PID参数整定
无积分环节,按要求采用扩充响应曲线法
在模拟控制系统中,可用响应曲线法代替临界比例读法一样,用扩充响应曲线法整定T和Kp、Ti、Td的步骤如下:
1数字控制器不接入控制系统,让系统处于手动操作状态下,将被调量调节到给定值附近,并使之稳定下来。
然后突然改变给定值,给对象一个阶跃输入信号。
2用仪表记录被调量在阶跃输入下的整个变化曲线,如图6.1所示。
3在曲线最大斜率处做切线,求得滞后的时间τ,被控对象时间常数Tτ以及它们的比值,查表即可得数字控制器的Kp、Ti、Td及采样周期T。
图1被调量在阶跃输入下的变化过程曲线
6.2实验结果分析
①控制器的输出范围应符合设计要求-5V~+5V
图2控制器的输出
②未加干扰整定后的PID调节效果图
整定参数:
Kp=2Ti=0.8Td=0.18T=0.005
图3PID调节输出图
4加入随机干扰后输出
图4加入随机滤波后的输出入
5加入滑动滤波程序后的输出图
图5加入滑动滤波程序后的输出图
7小结与体会
这次计算机控制技术课程设计采取了分组模式,6-8人一组,每组课题各不相同,这样寻求帮助的范围小了很多,讨论圈也缩小。
所以相比以往的几次全班相同的课程设计,自己感觉这次难度比以前提高了很多,而从最后做的情况来看的确如此。
通过这课程设计,我学到了许多在课堂上学不到的东西。
不仅对课本上所学的理论知识有了更进一层的了解,并且增加了实际动手操作能力。
我感觉本次课程设计与以往最大的不同之处就是学生思考和实践的独立性更强,老师只提供一些指导和建议通过这一次的课程设计,我对计算机控制的相关知识有了深刻的认识、同时加深了对SIMULINK仿真及编程调试等知识的了解和掌握,同时通过实践,对以上内容有了更深刻的认识,有效地将书本知识和实际情况联系起来。
虽然课程设计的过程中遇到很多困难,但也收获了很多。
因为很多细节地方不懂,那么就得上网查资料,以及分析学习自己需要的,这间接锻炼了个人的查阅整理以及归纳能力。
而且在这个过程中学习巩固了许多计算机控制的相关知识,使得自己对于理论与实践的统一有了新的认识。
当然这个过程是一个团队来完成的,大家在做的过程中分工合作,我带头尽力去理解去查阅信息,让后把我们的课程设计分为几个板块,大家各负责一个板块,这样最后发现效率提高了不少。
当然协调很重要,我深深体会到了这一点,团队合作协调统一很重要,但是更重要的是人心,一个人如果心态消极怠慢,那么效率自然就会低很多,并且会给整个团队带来很多负面影响。
这是我这次体会到的关于团队合作的一些心得。
本次课程设计用到了专业软件MATLAB的SIMULINK模块,在用的过程中深深感到了自己许多方面的不足,比如熟悉程度,一些指令自己完全不知道是什么。
而且让我感到无奈的是MATLAB软件的所有指令是英文,在实际应用到英语时候才发现,真是书到用时方恨少。
这次的合作让我想到了许多,现代社会很多工作需要合作,因为你一个人根本胜任不了,而合作时难免会出现矛盾,这些矛盾是组织管理者必须重视的吧。
所以以自己的观点来看,每个人都可以学学心理学。
很多时候你觉得你出力最多,而其他人觉得自己出力也多,而实际上团队的合作少了任何一环节都是不行的。
所以我是真的体会到为什么许多大公司团队大力宣传奉献精神,当然自我观点认为这是在强调人文素养吧。
虽然最后经历了几番波折,实验终于完成,实验数据也在老师的指导下进行了验证,并确保了实验的正确性。
但是实验内容纵然结束了,但是课程设计还远没有完成,因为还要写课程设计报告,这个过程让我体会了到了合作的重要性,因为查找资料相当的费时间,还得整理筛选各个数据,而且还得加上分析总结,这并不是之前想的那样简单的复制粘贴,有些事看起来容易,可当自己亲自去做的时候你才回真正体会到难易。
这次课程设计的结论得出过程、查阅资料、分析结果等就让我深深体会到了这一点。
最后我总结了许多,首先感谢老师的指导,其次这次课程设计我收获了很多,尽管只有短短几天,但是这几天的时间里让我对知识的学习,团队的合作,自我的认知有了更进一步的体会。
参考文献
[1]于海生主编,微型计算机控制技术(第2版),北京:
清华大学出版社,2009
[2]张艳兵等编著,计算机控制技术,北京:
国防工业出版社,2008
[3]张毅刚主编,单片机原理及应用,北京:
高等教育出版社,2004
[4]陈涛编著,单片机应用及C51程序设计,北京:
机械工业出版社,2008
[5]楼然苗,李光飞编著,单片机课程设计指导,北京:
北京航空航天大学出版社,2007