《计算机控制》课程设计报告题目: Smith预估器控制设计姓名:《计算机控制》课程设计任务书指导教师签字:系(教研室)主任签字:2012年7月5 日Smith 预估器控制设计一、实验目的通过混合仿真实验,学习并掌握用于具有纯滞后系统的纯滞后补偿(Smith预估器控制)的设计及其实现。
二、实验内容被控对象为-512()2se G s s =+, 1.0s T =画出系统框图,设计Smith 数字预估器。
三、控制系统仿真 1.方案设计已知纯滞后负反馈控制系统,其中图1.其中D(s)为调节器传递函数,-512()2se G s s =+为对象传递函数,其中-5()sO G s e 包含纯滞后特性,纯滞后时间常数5τ=。
系统的特征方程为:5121()()1()02se D s G s D s s -+=+=+由于闭环特征方程中含有-5s e 项,产生纯滞后现象,/5/150.5m T τ==≥,采用常规的PID 控制会使系统稳定性变差,甚至产生振荡。
为了改善系统特性,引入Smith 预估器,使得闭环系统的特征方程中不含有-5s e 项。
Smith 纯滞后补偿的计算机控制系统:图 2.上图所示ZOH 为零阶保持器,传递函数为:se s G Tsh --1)(=,并且有:lT =τ(l为大于1的整数,T 为采样周期)。
由已知可知, 1.0T s =,则551l Tτ===。
2.负反馈调节器D(z)的确定D(z)为负反馈调节器,通常使用PID 控制规律。
使用扩充响应曲线法对数字PID 控制器进行参数整定。
扩充响应曲线法是在模拟PID 控制器响应曲线法的基础上推广应用到数字PID 控制器参数整定的方法。
扩充响应曲线法是用于具有纯滞后的一阶对象,由前面分析和已知: 1.0T s =,5τ=,5l =,1m T =,因此依据课本128页表4.2扩充响应曲线法整定PID 参数表选择数字PID 参数计算公式,由于1=0.25Tτ=,则选择控制度为1.20,控制规律为PI 控制,因此选定PI 参数为:0.78()pmK T τ=3.60iT τ=所以有:0.156p K = 18i T = 则控制器的传递函数为:i 110.1560.00867()(1)0.156(1)T 18p s D s K s s s+=+=+=⋅ 将得到的模拟控制器用一阶后向差分法离散化得到:1-1-1--1-10.7-717.0)-1(1|)()(1-z z z T T K s D z D i p Tz s =⋅+===】【 3.Smith 补偿器)z D (τ的确定Smith 纯滞后补偿的计算机控制系统的框图:图 3.sT Ks G m O ⋅+=1)( lT ≈τ spes G s G τ-)()(=s m Tsso h e s T s e K e s G s G s G ττ---)1()-1()()()(+==)-1)(()(-s p e s G s D ττ=)-11--11)(-1)(z -K(1 ])1(1[)-1)(z -K(1 )]-1()1()-1([)]([)(1--1--1--1---z ezz s T s Z z e s T s e K Z s D Z z D mT T lm ls m Ts =+=+==τττ令mT -T ea =,)-1(-mT T eK b =则有1--1--1)-1()(az z bz z D l =τSmith 预估器(纯滞后补偿器)的框图:图 4.)-1()()(-1l z z C z C =)()()az -(1)()z -(1c(k)1-11-1-l k u bz k c k c ==最后解得)1-()1-()()-(-)()(1111k ac k bu k c l k c k c k c +==由上一步所得的数据: 1.0T s =,5τ=,5l =,1m T =,12K =解得如下数据:1---110.368mT T a ee e ====1--1(1-)12(1-)7.584mT T b K e e ==⨯=则-1-5-17.584(1-)()1-0.368z z D z zτ=1111()()-(-5)()7.584(-1)0.368(-1)c k c k c k c k u k c k ==+由此可得到:11()7.584(-1)0.368(-1)-(-5)c k u k c k c k =+由此可见,Smith 补偿器的差分方程有1(-5)c k 项,即存在滞后5拍的信号,因此产生纯滞后信号对纯滞后补偿控制是至关重要的。
纯滞后信号可以用存储单元法近似产生。
4.采用Matlab 系统仿真本系统采用PI 控制算法,用matlab 下的Simulink 工具箱搭建闭环系统结构,加以1V 的阶跃信号,PI 控制器系数0.156p K = ,18i T =,取反馈系数为1.使用Smith 预估补偿器的仿真结构得到输出曲线分别如图所示: 系统仿真结构框图为:图 5. 系统仿真波形图为:图 6.2.使用不带Smith预估补偿器的仿真结构得到输出曲线分别如图所示:系统仿真结构框图为:图 7.系统仿真波形图为:图8.分析:通过比较前后两次仿真的波形图可以看出,采用带Smith预估器控制的设计与传统的PID控制设计相比,大大的减少了响应曲线的超调,同时也加快了系统的响应过程,增加了系统的稳定性,使系统逐渐趋于稳定,达到了预期控制的目的。
四、电路设计及元件选型控制器部分需要AD转换器,DA转换器,反相器,运算放大器,单片机。
1.AD转换器AD转换器选择ADC0809, ADC0809是一种逐次逼近式的8路模拟输入,8路数字输出的A/D转换器,可以与单片机直接连接。
逐次逼近式速度较高,比较简单,而且价格也不是很高,因此是微型计算机应用系统中最为常用的一种A/D转换器。
AD转换器的电路设计:(1) 由于只需要一路信号,只选择IN-0输入,三根地址线固定接地,选择IN-0通道。
(2) 由于ADC0809需要500KHz的时钟源,利用单片机AT89S52的ALE引脚输出的脉冲信号其频率为单片机工作晶振的六分之一,此处单片机采用12MHz的晶振,则需经过4分频后供给ADC0809的CLK端。
(3)START脚为AD转换启动信号,高电平有效,由程序控制,故与单片机的P2.0脚通过非门相连。
(4)AD采样值为系统的偏差信号,有正负两种情况,故选择ADC0809的参考电压为正负5V。
(5)AD转换结束后,EOC脚输出高电平,此时单片机接收EOC信号,读取AD 转换的结果,将EOC脚经反相器与单片机的INT0脚相连。
AD转换结果由P0口读入,故将AD转换器的输出与单片机P0口相连,高低位依次相连经以上分析,设计AD转换器的接口电路如图所示:图9.注意:ADC0809对输入模拟量要求信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入模拟量在转换过程中应保持不变,若模拟量变化太快则需在输入前加采样保持电路。
2.DA转换器DA转换器选择DAC0832,DAC0832是具有两个输入数据寄存器的8位DAC,它能直接与51单片机相连,其主要特性为:a)分辨率为8位b)电流输出,稳定时间为1sc)可双缓冲输入,单缓冲输入或直接数字输入,单一电源供电DA转换器的电路设计:(1)参考电压选择+5V,直接与供电电源相连。
(2)选择DAC为单缓冲方式,即输入寄存器工作于受控状态,DAC寄存器处于直通状态,由DAC0832的引脚特性,将DAC0832的引脚接发如下:CS:片选端,低电平有效,直接接低电平ILE:数据锁存允许控制端,高电平有效,直接接高电平。
WR2:DAC寄存器写选通控制端,低电平有效,由于其处于直通状态,故直接接低。
XFER:数据传送控制,低电平有效,故直接接地。
WR1;第一级输入寄存器写选通控制,低电平有效。
其输入为上升沿时,将输入数据锁存到DAC寄存器,故将该脚与单片机P2.1口相连,由程序控制DA转换的时间。
(3) DA的八路输入,与单片机的P1口相连,高低位依次对应。
经以上分析,设计DA转换器的接口电路如图所示:图10.3.控制器设计控制器选择AT89C51单片机,根据ADC0809和DAC0832的特性,及上述分析,设计单片机与AD、DA的接口电路如下图所示:图 11.总控制电路图如下图所示:图 12.五、采用直接程序法1.单片机程序算法1.将带Smith 预估器控制的控制器的传递函数转化为差分方程: 11()7.584(-1)0.368(-1)-(-5)c k u k c k c k =+由于已求得110.1650.156()1z D z z ---=-根据)]()([)()(z C z E z D z U -⨯= 可得()(1)0.165()0.156(1)0.165()0.156(1)u k u k e k e k c k c k =-+---+- 则控制器的算法为:(1),11()7.584(-1)0.368(-1)-(-5)c k u k c k c k =+(2),()(1)0.165()0.156(1)0.165()0.156(1)u k u k e k e k c k c k =-+---+-2.由于系统的采样周期 1.0T s =在52单片机通过选用定时器T0工作在方式1下来实现,即16位定时计数器。
单片机采用12M 晶振,则其机器周期为1us 。
由公式ms us X 501-216=⨯)( 得初值03015536CB X X ==再通过20次循环实现 1.0T s =的采样延时。
2.程序流程图图13. 主程序流程图图 14. 中断服务程序流程图3.AT89C51的单片机C语言程序51单片机C语言程序代码:#include<reg51.h>#include<math.h>#define uchar unsigned char#define uint unsigned int#define ADC0809 P0;//AD0809的端口部分,P0为AD的数据接口;sbit AD_Start=P2^0;//开始转换信号有T0定时来控制;sbit DA_WR=P2^1;#define DAC0832 P1;//DAC0832的端口部分;P1为DA的数据接口;uchar C1K0,C1K1,C1K2,C1K3,C1K4,C1K5;uchar CK0,CK1;//分别为k,k-1时刻smith预估器的输出uchar UK0,UK1;//分别为k,k-1时刻的控制器的输出uchar EK0,EK1;//分别为k,k-1时刻的AD的输入uint i=0;main(){C1K0=C1K1=C1K2=C1K3=C1K3=C1K4=C1K5=0;UK0=UK1=0;CK1=0;EK1=0;DA_WR=0;TMOD=0X01; //定时器0控制方式1,16位的定时器计数器TL0=0XE0; //定时器初始化;TH0=0XB1;TR0=0; //关闭T0计时;ET0=1;PT0=1; //T0中断允许优先级;EX0=1;IT0=1; //触发方式,跳沿触发;P1=0X00; //先清零DA;TR0=1; //定时器开始计时,20ms转换一次;EA =1; //总中断开;while(1); //等待中断}void int_0(void) interrupt 0 //单片机中断处理程序;{EA=0;AD_Start=1;P0=EK0;C1K0=7.584*UK1+0.368*C1K1;CK0=C1K0-C1K5 ;C1K5= C1K4;C1K4= C1K3;C1K3= C1K2;C1K2= C1K1;C1K1= C1K0;UK0=UK1+0.165*EK0-0.156*EK1-0.165*CK0+0.156*CK1;UK1=UK0;CK1=CK0;EK1=EK0;UK0=P1;EA=1;}void inter_timer0()interrupt 1 //定时器0溢出中断;{EA=0;i=20; //循环20次实现1.0S采样for(i;i>0;i--){TL0=0XB0;TH0=0X3C; //延时50ms}AD_Start=0; //启动AD;EA=1;}六、设计工作总结及心得体会七、参考文献1.刘建昌等主编计算机控制系统科学出版社20092.张晋格主编控制系统CAD—基于MATLAB语言机械工业出版社2004.63.张毅刚主编单片机原理及应用高等教育出版社2003.12。