5.4 大林算法控制器的设计
- 格式:pdf
- 大小:470.86 KB
- 文档页数:27
课程名称 指导教师 实验时间 姓名: 班级: 学号: 成绩:实验五 基于达林算法的控制系统设计一、实验目的:1掌握达林算法数字控制器的设计方法。
2掌握达林算法设计的控制器产生振铃现象的原因。
3 掌握消除振铃现象的方法。
二、实验内容:已知某过程对象的传递函数为:期望的闭环系统时间常数 ,采样周期 。
要求:1采用达林算法设计数字控制器;2 在simulink 环境下,搭建控制系统模型,进行实验仿真; 3判断有无振铃现象,若有则修改控制器消除之,仿真并分析系统在单位阶跃响应下的输出结果; 三、 实验结果与分析1 达林算法设计数字控制器16.03)(5.0+=-s es G ss T 25.00=s T 5.0=被控对象为一阶惯性环节,则广义对象脉冲传递函数,闭环系统脉冲函数和数字调节器脉冲传递函数分别如下:()111111111TT Ts s N TT e Ke e G z Z Kz s T s e z τ-------⎡⎤--==⎢⎥+⎣⎦-()()()111111T T Ts s NT T e z Y z e e z Z zR z sT s ez ττττφ-------⎛⎫- ⎪⎡⎤-⎝⎭===⎢⎥+⎣⎦-()1111111z 111T T T T T T TT T T N e e D z K e e z ez τττ---------⎛⎫⎛⎫--⎪ ⎪⎝⎭⎝⎭⎡⎤⎛⎫⎛⎫---- ⎪ ⎪⎢⎥⎝⎭⎝⎭⎣⎦=由题意可得:0.5τ= 3K = 10.6T = 00.25T T τ== 0.5T = 1N =带入上述()D z 可得:()()()()()0.50.510.250.60.50.50.51110.60.250.25113111eezD z ee z e z -----------=⎡⎤----⎢⎥⎣⎦化简得:()220.86z 0.381.690.23 1.46zD z z z -=--2 基于达林算法的控制系统模型3 Matlab 仿真结果:4 判断有无振铃现象,若有则修改控制器消除之,仿真并分析系统在单位阶跃响应下的输出结果;由 ()()11111111T T T T u T TT T e e z z G z K e e z ττφφ------⎛⎫⎛⎫-- ⎪ ⎪⎝⎭⎝⎭==⎛⎫⎛⎫-- ⎪⎪⎝⎭⎝⎭求得极点T T z eτ-=恒大于零.所以该带纯滞后的一阶惯性系统环节组成的系统中,不存在振铃现象。
3.4大林(Dahlin )算法前面介绍的最少拍无纹波系统的数字控制器的设计方法只适合于某些随动系统,对系统输出的超调量有严格限制的控制系统它并不理想。
在一些实际工程中,经常遇到纯滞后调节系统,它们的滞后时间比较长。
对于这样的系统,往往允许系统存在适当的超调量,以尽可能地缩短调节时间。
人们更感兴趣的是要求系统没有超调量或只有很小超调量,而调节时间则允许在较多的采样周期内结束。
也就是说,超调是主要设计指标。
对于这样的系统,用一般的随动系统设计方法是不行的,用PID算法效果也欠佳。
针对这一要求,IBM公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯滞后对象的控制算法。
其目标就是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节。
该算法具有良好的控制效果。
3.4.1大林算法中D(z)的基本形式设被控对象为带有纯滞后的一阶惯性环节或二阶惯性环节,其传递函数分别为:(341)(少+1)(加+ 1)(3-4-2)其中「,为被控对象的时间常数,二二上三为被控对象的纯延迟时间,为了简化,设其为采样周期的整数倍,即N为正整数。
由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即一"由于一般控制对象均与一个零阶保持器相串联,所以相应的整个闭环系统的脉冲传递函数是(343)于是数字控制器的脉冲传递函数为(3-4-4) D(z)可由计算机程序实现。
由上式可知,它与被控对象有关。
下面分别对一阶或二阶纯滞后环节进行讨论。
342 —阶惯性环节的大林算法的D(z)基本形式当被控对象是带有纯滞后的一阶惯性环节时,由式(3-4-1 )的传递函数可知,其脉冲传递函数为二廃-吃[111- s Fjs + 1W 八汕丄^ ;] 1 —z i — e z-I ■ y / 斗=灯g ]_p—2 -r>, -i1亠£ z将此式代入(3-4-4 ),可得= (i“ 尹)(—”)厂「…「:_「.「「「「]( 3-4-5)式中:T ——采样周期:「被控对象的时间常数;闭环系统的时间常数。
计较机控制技巧课程设计之五兆芳芳创作2015/2016学年第二学期设计课题:基于大林算法的电路温度控制系统的设计专业:____班级:___学号:___ _______姓名:________ _____2016年5月目录第一章课题简介11.1.1 本机实现的功效11.1.2 扩展功效:1第二章系统计划设计22.1 水温控制系统的总体介绍22.2 系统框图22.3 闭环系统的任务原理2第三章系统硬件设计33.1 系统原理图33.2 单片机最小系统设计3第四章大林控制算法设计54.1 大林控制算法原理:54.2 控制器的设计及公式推导进程6 4.3 采样周期的选择:7第五章水温控制系统的仿真75.2 Matlab仿真95.2 大林算法控制系统编程设计:10第六章小结与体会15第七章参考文献16第八章附录17第一章课题简介课题的目的1.1.1 本机实现的功效(1)利用温度传感器收集到当前的温度,通过AT89S52单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示.(2)可以通过按键任意设定一个恒定的温度.(3)将水情况数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制.(4)当系统出现毛病,超出控制温度规模时,自动蜂鸣报警.1.1.2 扩展功效:(1)具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备. (2)采取适当的控制办法实现当设定温度或情况温度突变时,减小系统的调节时间和超调量.(3)温度控制的静态误差.1.2课题的任务及要求一升水由800W的电热设备加热,要求水温可以在一定规模内由人工设定,并能在情况温度下降时实现自动调整,以保持设定的温度根本不变.(1)温度丈量规模:10~100℃,最小区分度不大于1℃.℃以内,温度控制的静态误差小于1℃.(3)用十进制数码管显示实际水温.第二章系统计划设计2.1 水温控制系统的总体介绍本次设计采取采样值和键盘设定值进行比较运算的办法来复杂精确地控制温度.先通过键盘输入设定温度,保管在AT89S52单片机的指定单元中,再利用温度传感器DS18B20进行信号的收集,送入单片机中,保管在采样值单元.然后把采样值与设定值进行比较运算,得出控制量,从而调节继电器触发端的通断,来实现将水温控制在一定的规模内.当水温超出单片机预存温度时,蜂鸣器进行报警.单片机控制系统是一个完整的智能化的集数据收集、显示、处理、控制于一体的系统.由传感器、LED显示单片机及执行机构控制部分等组成2.3 闭环系统的任务原理本设计以AT89S52单片机系统进行温度收集与控制.温度信号由模拟温度传感器DS18B20收集输入AT89S52,利用温度传感器收集到当前的温度,通过AT89S52单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示.可以通过按键任意设定一个恒定的温度.将水情况数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制.当系统出现毛病,超出控制温度规模时,自动蜂鸣报警.用单片机控制水温可以在一定规模内设定,并能在情况温度变更时保持温度不变.第三章系统硬件设计在温度丈量控制系统中,实际温度值由PT100恒流任务调理电路进行丈量.为了克服PT100线性度欠好的缺点,在信号调理电路中参加负反应非线性校正网络;调理电路的输出电压经ADC0808转换后送入单片机AT89S51;对采样数据进行滤涉及标定处理后,由3位7段数码管显示.输入的设定值由4位独立按键电路进行设定,可辨别对设定值的十位和个位进行加1、减1操纵.设定值送入单片机后,由另外一组3位7段数码管显示.数码管的段码由74HC05驱动,位码由三极管2N2222A驱动.系统采取PID闭环控制计划.将预置初值与温度传感器反应信号比较得到偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率.由于水自己具有很大的热惯性,所以必须对水温的变更趋势作出预测,并且按照需要实时反标的目的抑制,以避免出现较大的超调量的动摇.在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该计划最终采取PD算法,能够很好的控制超调,并且稳态误差也很小.图3-1 系统原理图单片机最小系统设计根本的AVR硬件线路,包含以下几部分:(1)复位线路的设计AT89S52已经内置了上电复位设计.并且在熔丝位里,可以控制复位时的额定时间,故AVR外部的复位线路在上电时,可以设计得很复杂:直接拉一只10K的电阻到VCC便可(R6).为了可靠,再加上一只的电容(C0)以消除搅扰、杂波.D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R1(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位.当AVR在任务时,按下S0开关时,复位脚酿成低电平,触发AVR芯片复位.重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定任务.即这部分不需要任何的外围零件.图3-2 复位电路设计(2)晶振电路的设计Mega16已经内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率.不过,内置的究竟是RC振荡,在一些要求较高的场合,比方要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路.早期的90S系列,晶振两端均需要接22pF左右的电容.Mega系列实际使用时,这两只小电容不接也能正常任务.不过为了线路的标准化,我们仍建议接上.重要说明:实际应用时,如果你不需要太高精度的频率,可以使用内部RC振荡.即这部分不需要任何的外围零件.图3-3 晶振电路设计(3)电源设计AVR单片机最经常使用的是5V与两种电压.本线路以转换成5V直流电压,电路需要变压器把220交换电压转换成28V交换电,再通过整流器,把交换电转化成直流电,通过7809和7805三端正电源稳压电路转化成直流5V.电源如图3-4.图3-4电源电路设计图第四章大林控制算法设计4.1 大林控制算法原理:在许多产业进程中,被控对象一般都有纯滞后特性,并且经常遇到纯滞后较大的对象.美国IBM公司的大林,在1968年提出了一种针对产业生产进程中,含有纯滞后对象的控制算法,具有较好的效果.假定带有纯滞后的一阶、二阶惯性环节的对象为:K为缩小系数.,N为正整数.大林算法的设计目标是设计适合的数字控制器,使整个闭环系统的传递函数为具有时间纯滞后的一阶惯性环节,并且要求闭环系统的纯滞后时间等于对象的纯滞后时间.4.2 控制器的设计及公式推导进程采样周期T=1s,系统狭义对象的脉冲传递函数为:当输入为单位阶跃时,输出为:控制量的输出为:4.3 采样周期的选择:在本实验中,定时中断距离选取100ms ,采样周期T 要求既是采样中断距离的整数倍,又要满足,而由被控对象的表达式可知,所以取N=1,取T=1s.T=1s ,定时中断为1s ,就是说1个定时中断落后行采样.第五章水温控制系统的仿真直接用上述控制算法组成闭环控制系统时,人们发明数字控制器输出U(z)会以1/2采样频率大幅度上下摆动.这种现象称为振铃现象.振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系.振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几近无任何影响,但是振铃现象却会增加执行机构的磨损.在交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消除振铃现象.可引入振铃幅度RA来权衡振荡的强烈程度.振铃幅度RA的定义为:在单位阶跃信号的作用下,数字控制器D(z)的第0次输出与第1次输出之差值.设数字控制器D(z)可以暗示为:5-1)其中5-2)那么,数字控制器D(z)输出幅度的变更完全取决于Q(z),则在单位阶跃信号的作用下的输出为:5-3)按照振铃的定义,可得:5-4)上述标明,产生振铃现象的原因是数字控制器D(z)在z平面上位于z=-1邻近有顶点.当z=-1时,振铃现象最严重.在单位圆内离z=-1越远,振铃现象越弱.在单位圆内右半平面的顶点会削弱振铃现象,而在单位圆内右半平面的零点会加重振铃现象.由于振铃现象容易损坏系统的执行机构,因此,应设法消除振铃现象.大林提出了一个消除振铃的复杂可行的办法,就是先找造成振铃现象的因子,然后令该因子中的z=1.这样就相当于取消了该因子产生振铃的可能性.按照终值定理,这样处理后,不会影响输出的稳态值.本设计的被控对象是含有纯滞后的一阶惯性环节,大林算法求得的数字控制器为式:5-5)有可暗示为式3-14所示:5-6)可能引起振铃现象的因子是式3-15所示:5-7)其振铃的幅度为:5-8)按照r值的不合,有一下几种情况:(1)当r=0时,不存在振铃顶点因子,此时不产生振铃现象(2)当r=1时,存在一个顶点;当τz≈-1,存在严重的振铃.当r=2时,存在顶点当τ<<T时,z≈1时,存在振铃现象.对于r=2时的振铃顶点,令Z=1代入式中可得:此时就求得的消除振铃的数字控制器D(z)表达式为atlab仿真Matlab仿真图(无振铃现象)5.2 大林算法控制系统编程设计:按照系统的总体功效和键盘设置选择一种最适合的监控程序结构,然后按照实时性的要求,公道地安插监控软件和各执行模块之间地调度关系.本部分详细介绍了基于AT89S52单片机的多路温度收集控制系统的软件设计.按照系统功效,可以将系统设计分为若干个子程序进行设计,如温度收集子程序,数据处理子程序、显示子程序、执行子程序.采取Keil uVision3集成编译情况和C语言来进行系统软件的设计.本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一阐发各模块程序算法的实现,最终编写出满足任务需求的程序.收集到当前的温度,通过LED数码管实现温度显示.通过按键任意设定一个恒定的温度将水情况数据与所设置的数据进行比较.当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热.当系统出现毛病,超出控制温度规模时,自动蜂鸣报警并对温度进行实时显示.采取C语言编写代码,鉴于篇幅限制及DS18B20的应用已经标准和成熟,本文仅就主程序流程图和显示子程序流程图及其代码进行说明.通过定时器口的定时来实现,在此不再赘述.有关DS18B20的读写程序,编程时序阐发等请见附录三.功效主程序流程图主程序通过调用温度收集子程序完成温度数据收集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据.主程序(见附录二)调用四个子程序,辨别是温度收集程序、数码管显示程序、温度处理程序和数据存储程序.温度收集程序:对温度芯片送过去的数据进行处理,进行判断和显示.数码管显示程序:向数码的显示送数,控制系统的显示部分.温度处理程序:对收集到的温度和设置的上、下限进行比较,做出判断,向继电器输出关断或闭合指令.数据存储程序:对键盘的设置的数据进行存储.图1 系统总流程图设计主程序的主要功效是担任温度的实时显示、读出并处理DS18B20的丈量的当前温度值,温度丈量每1s进行一次.这样可以在一秒之内丈量一次被测温度,其程序流程见图2所示.通过调用读温度子程序把存入内存储中的整数部分与小数部分分隔存放在不合的两个单元中,然后通过调用显示子程序显示出来.图2 主程序流程图读出温度子程序的主要功效是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写.DS18B20的各个命令对时序的要求特别严格,所以必须依照所要求的时序才干达到预期的目的,同时,要注意读进来的是高位在后低位在前,共有12位数,小数4位,整数7位,还有一位符号位.DS18B20的数据读写是通过期序处理位来确认信息互换的.当总线控制器倡议读时序时,DS18B20仅被用来传输数据给控制器.因此,总线控制器在收回读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息.所有读时序必须最少60us,包含两个读周期间至少1us的恢复时间.当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放在总线控制器收回读时序后,DS18B20通过拉高或拉低总线上来传输1或0.当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态.从DS18B20输出的数据在读时序的下降沿出现后15us 内有效.因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态.图3 读出温度子程序本系统采取八位共阳极数码管,用模拟串口的动态显示数据.其流程图如图4所示:图4 数码管显示流程图基于单片机水温控制系统通过DS18B20温度传感器收集到的温度和设置的温度上、下限进行比较得出结果.如果低于下限温度或是高于上限温度,则报警器进行进行报警.第六章小结与体会这次的课程设计分派到两团体一组完成,虽然只有短短的两周时间,但是通过这些天的学习使我收获巨大,让我加倍深刻的温习了课本知识,使得自己在专业技巧和动手能力方面有了很大的提高,为以后自己进入社会打下了一个良好的根本.在这次的课程设计进程中,我与周航一组,我很感激老师对我的指导及同学的帮忙,我主要担任软件的仿真,周航担任硬件系统的设计.在大林控制算法的设计中,遇到了许多的难题,对于原理概念十分模糊,一些公式也忘了如何去使用,拿出了以前的课本对遗忘的知识进行了回首,在同学的帮忙下,与周航的讨论中一步一步的完成了控制器的设计和大林算法公式的推导.使得我能够顺利的完成此次的课程设计,通过完成这次的课程设计,使我深刻的体会到了团队的重要性,这次的课程设计很,但两人一组的团队的协作使课程设计复杂了许多,每团体都有明确的分工,这样,再加上自己的努力终能取得成功.感激此次的课程设计让我收获良多!第七章参考文献[1]于海生主编,微型计较机控制技巧[M],北京:清华大学出版社,2009[2]李小坚,赵山林,冯晓军,龙怀冰.Protel DXP电路设计与制版实用教程(第2版).北京:人民邮电出版社.2009选编(第一届-第五届).北京: 北京理工大学出版社.2004[4]张琳娜,刘武发.传感检测技巧及应用.北京:中国计量出版社.1999[5]沈德金,陈粤初. MCS-51系列单片机接口电路与应用程序实例.北京:北京航空航天大学出版社.1990[6]型80C51单片机速成与实战.北京:北京航空航天大学出版社.C语言应用程序设计.北京:北京航空航天大学出版社社.199[8]胡汉才.单片机原理及接口技巧.北京:清华大学出版社社.1996[9]李志全等.智能仪表设计原理及应用.北京:国防产业出版社.[10]何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社.1990.1第八章附录附录一:系统程序#include <reg52.h> //52系列头文件#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit ds=P3^4;sbit dula=P2^6;sbit beep=P1^4; //定义蜂鸣器sbit led=P1^1;sbit jdq=P1^0;uint temp,t,w; //定义整型的温度数据uchar flag;float f_temp; //定义浮点型的温度数据uint low; //定义温度下限值是温度乘以10后的结果uint high; //定义温度的上限值sbit led1=P1^0; //控制发光二极管sbit led2=P1^1; //控制发光二极管sbit s1=P3^5;sbit s2=P3^6;sbit s3=P3^7;uchar flag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6}; //共阳数码管段码表uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点的编码void delay(uchar z) //延时函数{uchar a,b;for(a=z;a>0;a--)for(b=100;b>0;b--);}void init(){EA=1;ET1=1;TR1=1;TMOD=0x10;TH1=(65536-4000)/256;TL1=(65536-4000)%256;flag=0;high=100;jdq=1;}void didi(){beep=0;led=0;delay(500);beep=1;led=1;delay(500);}void dsreset(void) //DS18b20复位,初始化函数{uint i;ds=0;i=103; //延时最短480uswhile(i>0) i--;ds=1; //等待16-60us,收到低电平一个约60-240us则复位成功i=4;while(i>0) i--;}bit tempreadbit(void) //读1位数据函数{uint i;bit dat;ds=0;i++;ds=1;i++;i++; //i++起到延时作用dat=ds;i=8;while(i>0)i--;return(dat);}uchar tempread(void) //读1字节的数据函数{uint i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样恰好一个字节在dat里}return(dat);}void tempwritebyte(uchar dat) //向DS18B20写一个字节的数据函数{uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //写1{ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else //写0{ds=0;i=8;while(i>0) i--;ds=1;i++;i++;}}}void tempchange(void) //DS18B20开始获得温度并转换{dsreset();delay(1);tempwritebyte(0xcc); //写跳过读ROM指令tempwritebyte(0x44); //写温度转换指令}uint get_temp() //读取存放器中存储的温度数据{uchar a,b;dsreset();delay(1);tempwritebyte(0xcc); //写跳过读ROM指令tempwritebyte(0xbe); //写温度转换指令a=tempread(); //读低8位b=tempread(); //读高8位temp=256*b+a;f_temp=temp*0.0625; //温度在存放器中为12位,分辩率为 temp=f_temp*10+0.5; //乘以10暗示小数点前面只取一位return temp; //temp是整型}void keyscan(){if(s1==0){P2=0xff;delay(5);if(s1==0){while(!s1);s1num++;if(s1num==1){flag=1;}if(s1num==2){s1num=0;flag=0;}}}if(s1num==1){flag=1;if(s2==0){delay(5);if(s2==0){while(!s2);high+=10;if(high==1000)high=100;}}if(s3==0){delay(5);if(s3==0){while(!s3);high-=10;if(high==0)high=100;}}}}void main() //主函数{init();while(1){tempchange(); //温度转换函数if(temp<high-10){jdq=0;didi();}if((temp>=high-10)&&(temp<=high)){jdq=0;beep=1;}if((temp>high)&&(temp<=high+10)){jdq=1;beep=1;}if(temp>high+10){jdq=1;didi();}}}void time1() interrupt 3{TH1=(65536-4000)/256;TL1=(65536-4000)%256;t++;keyscan();if(flag==0){if(t==4) t=0;switch(t){case 1:P0=table[get_temp()/100]; P2=0xfd;break;case 2:P0=table1[get_temp()%100/10];P2=0xfb;break; case 3:P0=table[get_temp()%10]; P2=0xf7;break;}}if(flag==1){if(t==4) t=0;switch(t){case 0:P0=0xff; P2=0xfe;break;case 1:P0=0xff; P2=0xfd;break;case 2:P0=table[high/100]; P2=0xfb;break;case 3:P0=table[high%100/10]; P2=0xf7;break; }}}班级:姓名:学号:1.扼要叙述系统的任务原理.2.简述复位电路设计原理.3.系统如何产生报警?4.简述大林算法的原理.5.采样周期如何确立?。
目录第1章引言 (1)1.1、Dahllin算法介绍 (1)1.2、Dahllin算法的内容 (1)1.2.1系统结构 (1)1.2.2 算法内容及公式 (2)第二章设计内容 (4)2.1 设计目的 (4)2.2 设计内容 (4)2.1.1 数字控制器D(z)的表达式 (4)2.2.2 振铃现象 (5)第3章 MATLAB仿真 (7)3.1 MATLAB的介绍 (7)基本应用 (8)MATLAB 产品族可以用来进行以下各种工作: (8)3.2 仿真及输出图像 (8)3.2.1 Dahllin算法的MATLAB程序 (9)3.2.2 u(k)的单位阶跃响应波形图 (11)第4章设计总结 (12)第1章引言1.1、Dahllin算法介绍一般具有较大的时间常数和一定的纯滞后时间,且滞后时间比较长的系统不利于现代化工业生产自动化水平提高,不利于产品质量和生产效率的提高。
在生产过程中,大多数工业对象具有较大的纯滞后时间,对象的纯滞后时间τ对控制系统的控制性能极为不利,它使系统的稳定性降低,过渡过程特性变坏。
对这样的系统在工业生产中要求没有超调量或超调量很小,调节时间希望在确定的采样时间内结束(虽然也希望尽快结束过渡过程,但是这是第二位的)。
因此超调试主要的设计目标,用一般的控制系统设计方法是不行的,用模拟仪表控制算法效果也欠佳。
当对象的纯滞后时间τ与对象的惯性时间常数T1之比,即τ/T1≥0.5时,采用常规的比例积分微分(PID)控制,很难获得良好的控制性能。
IBM公司的大林于1968年提出一种针对工业生产过程中含有纯滞后的控制对象的控制算法,即大林算法。
它具有良好的效果,采用大林算法的意义在于大林控制算法能在一些具有纯滞后环节的系统中兼顾动静两方面的性能,可做到小超调小稳态误差。
控制效果比较理想。
对工程实际应用具有很大的意义。
1.2、Dahllin算法的内容1.2.1系统结构大林算法要求在选择闭环Z传递函数时,采用相当于连续一节惯性环节的D (z)来代替最少拍多项式。
大林算法控制系统设计-V1"大林算法控制系统设计"是一种根据数据驱动的算法控制系统设计方法,它可以在系统设计和控制中利用数据,自动优化系统的运行效率和性能表现。
该算法的设计思想是,通过观察和分析系统内的数据集,从中提取出规律和特征,然后再利用这些数据,通过数学运算得到最优解,在系统设计的各个环节中实现自动化的控制。
下面分几个方面分别介绍大林算法控制系统设计的内容:1. 数据采集和分析大林算法控制系统的第一步是数据的采集和分析。
该系统通过采集内部的数据集,并运用统计学和机器学习的算法进行分析,从而得到更多的数据。
2. 数据的预处理和清洗得到数据后,需要进行数据的预处理和清洗。
这意味着去除噪点、缺失值和异常值,以及对数据进行归一化、标准化和编码等处理。
3. 特征抽取在对数据进行预处理和清洗后,需要进行特征抽取。
这一步是将复杂的数据集精简成简单的特征集合。
特征抽取可以通过多种算法进行实现,例如主成分分析、线性判别分析和单纯可分分类器等。
4. 模型的训练和调整经过特征抽取后,就可以开始模型的训练和调整了。
这个过程需要基于生成算法、决策树、神经网络和支持向量机等算法来实现。
5. 模型的运用和控制最终,经过训练和调整后的模型就可以在控制系统中得到应用和控制了。
通过不断的数据收集和分析,以及对模型的调整和优化,可以不断地提高系统的性能表现和运行效率。
总的来说,大林算法控制系统设计的目的是通过对系统内部的数据进行采集、分析、预处理和清洗、特征抽取、模型的训练和调整、以及模型的应用和控制,实现自动化的控制和优化。
是一种利用数据驱动的算法控制系统设计方法,能够大大提高系统的运行效率和性能表现。
教学模块5 数字控制器的直接设计方法教学单元5 大林算法工程应用中关键参数的选择大林算法在实际应用过程中常面临的问题:增加执行机构的磨损振铃现象:控制量振荡分数时滞:时滞不是采样周期的整数倍控制效果严重恶化,甚至使系统不稳定原因分析:大林算法是在时滞常数等于采样周期的整数倍的情况下推导得到的解决方法:选择合适的采样周期T 和闭环系统时间常数T0的方法削弱振铃现象解决分数时滞问题消除方法:令振铃因子中z=15.1 解决振铃现象中关键参数的选择目的:在尽量削弱振铃幅度的同时,不希望系统的动态性能有太大的改变。
与振铃幅度有关的参数:012///21RA T T T T T T c e e e c ---=-++(1)与T 1、T 2有关:被控对象固有参数,不能改变(2)与T 、T 0有关:设定的参数,可以改变解决振铃现象中关键参数的选择设计方法:(1)确定闭环系统的参数T 0,给出振铃幅度RA 的指标;(2)由下式确定采样周期T012///21RA T T T T T T c e e e c ---=-++如果T 有多解,则选择较大的采样周期为什么?解决振铃现象中关键参数的选择(3)确定N :/N Tτ=(4)计算对象的脉冲传递函数W d (z )及闭环系统的脉冲传递函数W B (z );(5)计算数字控制器的脉冲传递函数D (z )。
解决振铃现象中关键参数的选择1210()(201)(301)se W s s s -=++例5.1被控对象为:考虑振铃现象的影响,试用大林控制算法,通过关键参数选择来设计数字控制器D (z )。
解:(1)根据题意取010T =解决振铃现象中关键参数的选择解决振铃现象中关键参数的选择(2)选择采样周期T。
振铃幅度与采样周期的关系如下:RA=1.91,T=4s;RA=1.88,T=5s;RA=1.85,T=6s;……采样周期的加大,振铃幅度并没有明显地减小,因此,选取采样周期T=4s。
教学模块5 数字控制器的直接设计方法教学单元4 大林算法控制器的设计大林算法研究意义:最小拍控制:时间最优,其它动态指标无约束。
大林算法:约束超调量,对调节时间不加以严格限制。
大林算法纯滞后系统特例Smith预估PID控制适合于滞后较小的情况4.1 大林算法设计原理被控对象为带有纯滞后的一阶或二阶环节:1 (), 1s K W s e NT T s ττ-==+12 (), (1)(1)s K W s e NT T s T s ττ-==++大林算法的设计目标是设计一个合适的数字控制器,使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即:0 (), 1sB e W s NT T s ττ-==+T 0比T 1和T 2中最小的还要小。
滞后与被控对象相同思考:给定的闭环系统传递函数W B (s )的增益为何为1?大林算法设计原理整个系统的闭环脉冲传递函数为:00/(1)/10()1(1) ()()11T T Ts NTs N B T T Y z e e z e W z Z R z s T s e z ----+--⎡⎤--===⎢⎥+-⎣⎦为什么加零阶保持器?原因:(1)加入零阶保持器:保证离散前后的阶跃响应相等(2)不加零阶保持器:保证离散前后的脉冲响应相等大林算法设计原理得到控制器传递函数为:000/(1)//1(1)()11(1) ()()1()()1(1)T T N B T T T T N d B d W z z e D z W z W z W z e z e z--+----+-=⋅=⋅----被控对象模型的脉冲传递函数思考:该种形式的D (z )对被控对象有何要求?大林算法设计原理对象为具有纯滞后的一阶惯性环节时:11/(1)/111(1) ()11T T Ts NTs N d T T e Ke e z W z Z K sT s e z ----+--⎡⎤--==⎢⎥+-⎣⎦得到控制器传递函数为:1001//1///1(1)(1)(1) ()(1)[1(1)]T T T T T T T T T T N e z e D z K e e z e z --------+--=----大林算法设计原理对象为具有纯滞后的二阶惯性环节时:得到控制器传递函数为:121(1)12//1112()1 ()(1)(1)(1)(1)N Ts NTsd T T T T K c c z ze Ke W z Z sT s T s e z e z --+------⎡⎤+-=⋅=⎢⎥++--⎣⎦()21/2/112111 T T T T e T e T T T c ----+=()1221/2/112)/1/1(21 T T T T T T T e T e T T T e c --+---+=其中:01200///11//11(1)12(1)(1)(1) ()()[1(1)]T T T T T T T T T T N e e z e z D z K c c z e z e z ----------+---=+---大林算法设计原理例4.1已知某控制系统被控对象的传递函数为采样周期T=0.5s ,试用大林算法设计数字控制器。
()1se W s s -=+解:系统广义被控对象传递函数为0.51(1)()()(1)sT s sd e e e W s W s s s s -----==+大林算法设计原理求得广义被控对象的脉冲传递函数为:11/(1)0.533/10.511(1)10.3935 ()1110.6065T T N d T T e z e z W z K z e z e z z --+----------===---于是得到数字控制器D (z ):000/(1)//1(1)1351351531121(1) ()()1(1)10.6065(1) 2.524(10.6065) 0.39351(1)(1)(10.99330.9933)T T N T T T T N d z e D z W z e z e zz z e z z e z e z z z z --+----+-------------=⋅------=⋅=----++取00.1T =大林算法设计原理大林算法设计原理阶跃输入下系统控制信号序列和阶跃响应序列:例4.2被控对象为带有纯滞后的二阶惯性环节采样周期T=2s ,试用大林算法设计数字控制器D (z )。
1210()(201)(301)se W s s s -=++解:首先计算对象模型离散化后的参数()12//112211 10.00315T T T T c T e T e T T --=+-=-()1221(1/1/)//212211 0.00298T T T T T T T c e T e T e T T -+--=+-=-大林算法设计原理选取闭环传递函数中的时间常数:010T =得到数字控制器的传递函数模型:01200///11//11(1)12(1)(1)(1) ()()[1(1)]T T T T T T T T T T N e e z e z D z K c c z e z e z ----------+---=+---111175.7546(10.90484)(10.93551) (10.946)(10.818730.18127)z z z z z -------=+--大林算法设计原理阶跃输入信号下系统控制信号序列和阶跃响应序列:控制量振荡收敛振铃现象振荡周期:4s. 系统采用周期T=2s大林算法设计原理4.2 振铃现象及其消除方法振铃(Ringing)现象:指数字控制器的输出以1/2采样频率大幅度衰减的振荡。
结果:对系统的输出几乎无任何影响被控对象中惯性环节的低通滤波特性增加执行机构的磨损,还有可能影响到系统的稳定性思考题:振铃现象与纹波现象的区别与联系?振铃现象原因分析:控制器输出U (z ) 与参考输入R (z ) 之间的关系为:()() ()()()()()()B u d d W z Y z U z R z W z R z W z W z ===于是得到:()() ()()1()()B u d d W z D z W z W z D z W z ==+若W u (z )有或有接近于z =-1 的极点,则将引起输出序列u (k )的振荡。
振铃现象及其消除方法对于带纯滞后的一阶惯性环节有:0101//1//1()(1)(1) ()()(1)(1)T T T T B u T T T T d W z e e z W z W z K e e z --------==--大于零结论:不存在负实轴上的极点,因此不存在振铃现象。
振铃现象及其消除方法对于带纯滞后的二阶惯性环节,有0120///11/11211()(1)(1)(1) ()()(1)(1)T T T T T T B u T T d W z e e z e z W z c W z Kc e z z c -----------==-+大于零小于零,且1lim 120-=⎥⎦⎤⎢⎣⎡-→c c T 引起振铃现象结论:振铃现象及其消除方法振铃幅度RA :在单位阶跃作用下数字控制器第0拍输出与第1拍输出的差值来衡量振铃现象强烈的程度。
12121121212121212111111 ()()()111 1(1)() 1(1)u b z b z U z R z W z z a z a z b z b z a z a a z b a z ----------+++==-++++++=+-+-+=+-++归一化处理对于带纯滞后的二阶惯性环节:012///21RA T T T T T T c e e e c ---=-++0lim RA 2T →=振铃现象及其消除方法消除振铃现象的方法:找出D(z)中引起振铃现象的因子(z=-1 附近的极点),然后令其中的z=1。
结果:消除了振铃现象,不影响稳态值,改变了系统动态特性终值定理见下页01200///11//11(1)12(1)(1)(1) ()()[1(1)]T T T T T T T T T T N e e z e z D z K c c z e z e z ----------+---=+---0120///11/11211()(1)(1)(1) ()()(1)(1)T T T T T T B u T T d W z e e z e z W z c W z Kc e z z c -----------==-+对于二阶环节:目标:消除()1()()u d D z D z W z +方法:消除令z =1振铃现象及其消除方法消除振铃极点后控制器的形式为:0120012///11////1(1)(1)(1)(1) ()(1)(1)[1(1)]T T T T T T T T T T T T T T N e e z e z D z K e e e z e z -----------+---=-----例4.3对例4.2的被控对象,考虑消除振铃现象的影响,试用大林控制算法设计数字控制器D (z ).1210()(201)(301)se W s s s -=++解:根据例4.2,数字控制器传递函数模型为:111175.7546(10.90484)(10.93551) ()(10.946)(10.818730.18127)z z D z z z z -------=+--振铃因子,令z =1111711175.7546(10.90484)(10.93551) () 1.946(10.818730.18127)2.9571(10.90484)(10.93551) 10.818730.18127z z D z z z z z z z ----------=----=--于是控制器传递函数模型变为:振铃现象及其消除方法令振铃因子z =1 后系统的控制信号和输出信号曲线:效果:消除了振铃现象出现了超调,过渡过程时间变长振铃现象及其消除方法·教学单元四结束·。