纯滞后系统的Smith控制算法研究.docx
《纯滞后系统的Smith控制算法研究.docx》由会员分享,可在线阅读,更多相关《纯滞后系统的Smith控制算法研究.docx(14页珍藏版)》请在冰豆网上搜索。
纯滞后系统的Smith控制算法研究
内蒙古科技大学
控制系统仿真课程设计说明书
题目:
纯滞后系统的Smith控制算法研究
学生姓名:
学号:
专业:
测控技术与仪器
班级:
2020级3班
指导教师:
内蒙古科技大学课程设计任务书
课程名称
控制系统仿真
设计题目
纯滞后系统的Smith控制算法研究
指导教师
时间
一、教学要求
1、学会收集和查阅资料,学会针对指定控制系统建立数学模型的方法;
2、学会使用Matlab/Simulink建模和仿真的方法;
3、掌握控制器的设计方法,以及控制器参数整定和优化的方法。
二、设计资料及参数
已知过程控制系统的被控广义对象为一个带延迟的惯性环节,其传递函数为
三、设计要求及成果
1、充分理解设计内容,并独立完成实验和综合设计报告。
2、分析系统,得到系统的动态响应曲线;
3、设计合适的控制器,尽量满足稳、准、快三原则;
4、设计Smith预估控制器;
5、比较PID控制器和Smith控制算法的优缺点;
6、完成5000字左右的课程设计报告(包括设计原理、设计过程及结果分析几部分),写清楚控制器的设计过程,给出设计的模型图和仿真曲线图。
四、进度安排
1、根据给定的参数或工程具体要求,收集和查阅资料(一天)
2、Matlab/Simulink建模(一天)
3、控制系统设计与优化(两天)
4、编写课程设计说明书(一天)
五、评分标准
1)工作态度(占10%);
2)基本技能的掌握程度(占20%);
3)方案的设计是否可行和优化(40%);
4)课程设计技术设计书编写水平(占30%)。
分为优、良、中、合格、不合格五个等级。
六、建议参考资料
1、李国勇.控制系统数字仿真与CAD[M],北京:
电子工业出版社,2003,9
2、王丹力,MATLAB控制系统设计仿真应用[M],北京:
中国电力出版社,2007,9
3、薛定宇.控制系统计算机辅助设计—MATLAB语言及应用[M].北京:
清华大学出版社,1996
4、闻新、周露、李东江等.MATLAB模糊逻辑工具箱的分析与应用[M].北京:
科学出版社,2001
5、易继锴.智能控制技术[M].北京:
北京工业大学出版社,2003,4
摘要
Matlab是一套高性能的数值计算和可视化软件。
它集数值分析、矩阵计算、信号分析与图形显示为一体,构成的一个方便的、界面友好的用户环境。
历经二十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件。
Matlab最突出的特点就是简洁、它用直观的、符合人们思维习惯的代码、代替C语言和FORTRAN语言的冗长代码。
为此,Matlab获得了对应用学科的极强适应力。
在国内外高校、Matlab已成为大学生,硕士生、博士生必须掌握的基本技能。
在设计研究学位和工业部门,Matlab已经成为研究和解决各种具体工程问题的一种标准软件。
Matlab软件广泛用于数字信号分析,系统识别,时序分析与建模,神经网络、动态仿真等方面有着广泛的应用。
利用Matlab这个最优秀的科技软件,把计算机技术与信号分析紧密地结合起来,对信号进行分析处理仿真研究,经实例验证,取得了非常好的效果,具有一定的实用价值。
本文控制系统为研究主体,提出一种Smith预估控制算法,通过设计自适应非线性反馈回路来自适应调节参数,从而满足对象参数大幅度变化的要求。
关键词:
Matlab;纯滞后;Smith预估控制器;Simulink
第一章绪论
一.1Matlab语言简介
MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能够满足所有的计算需求。
MATLAB为用户提供了具有条件控制、函数调用、数据输入输出及面向对象等特性的高层的、完备的编程语言。
MATLAB语言语法简单,程序调试和维护容易,其编程效率远远高于BASIC、PISCAL及C等高级语言。
新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
具有可移植性好、可扩展性极强等特点,是最为普遍的计算仿真工具之一,所以我们有必要了解和掌握MATLAB这门语言工具。
一.2Matlab包括五个主要部分:
(1)开发环境。
开发环境是帮助用户使用MATLAB函数和文件的工具的集合,这些工具中许多都是图形用户界面。
开发环境包括MATLAB桌面及其命令窗口、命令记录、帮助浏览器、工作平台、文件和搜索路径等。
(2)Matlab数学函数库。
该库收集了大量的从基本函数(求和、三角运算、复杂算术等)到复杂函数(矩阵求逆、求矩阵特征值、贝塞尔函数和快速傅立叶变换等)的计算算法。
(3)Matlab语言。
Matlab语言是一种包括流程控制语句、函数、数据结构、输入/输出和面向对象编程方式的高级矩阵/数组语言,该语言能够通过与其它Matlab系统组成部分之间的交互来完成非常复杂的计算任务。
(4)图形句柄。
图形句柄即Matlab的图形系统,该系统既包括二维和三维数据的可视化、图像处理、动画和图形描述等高级命令,又包括允许用户完全自定义图形,并在Matlab应用程序中建立自己的图形界面的低级命令。
(5)Matlab应用程序接口API是允许用户编写C、FORTIULN和Matlab接口程序的系统库,该库中包含一些调用工具,其它应用程序能够通过动态链接、作为计算引擎、读写MAT文件三种形式来使用这些工具以调用Matlab程序。
第二章Simulink介绍
Matlab下提供的Simulink环境是解决非线性系统建模、分析与仿真的理想的工具。
控制系统仿真研究的一种很常见的需求就是系统在某些信号的驱动下,观测系统的时域晌应,从中得出期望的结论。
对于简单的线性系统来说,可以利系统工具箱中的相应的函数对系统进行分析,对于更复杂的系统来说,单纯地采用上述方法有时难以完成仿真任务。
如果有一个基于框图地仿真程序,则解决这样地问题就轻而易举了。
Simulink环境就是解决这样的问题的理想的工具,它提供了各种各样的模块,允许用户用框图的形式搭建起任意复杂的系统,从而对其进行准确的仿真。
Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。
它支持连续、离散及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同采样率的多种采样速度的系统仿真。
Smith预估控制的特点是预先估计出过程在基本扰动下的动态特性,再由预估器进行补偿的过程控制技术。
它的基本思想是按过程特性设计出一种模型加入到反馈控制系统中,以补偿过程的动态特性,然后由预估器进行补偿,力图使滞后了的被控量超前反映到控制器,使控制器提前动作,从而明显地减少超调量,加速调节过程。
特别是对于那些被控对象具有不同程度的纯滞后,而被控对象又不能及时反映系统所承受的扰动的控制系统,Smith预估控制技术获得了广泛的运用。
二.1Simulink的基本模块
1.常用模块(CommonlyUsedBlocks)
图2-1常用模块库
2.连续系统模块库(Continuous)
连续系统模块是构成连续系统的环节,连续系统模块如图2-2所示。
图2-2连续系统模块库
3.接收模块库(Sinks)
接收模块是用来接收模块信号的,常用的接收模块如图2-3所示。
图2-3接收模块库
4.输入信号源模块库(Sources)
输入信号源模块是用来向模型提供输入信号。
输入信号源模块源如图2-4所示。
图2-4输入信号源模块
二.2Simulink的仿真过程
Simulink的仿真过程分为两个主要阶段。
第一个阶段为初始化,即对所有的模块进行初始化,这时模块的所有参数都已经确定下来。
初始化过后,进行仿真。
仿真过程是由求解器和系统交换控制的。
求解器的作用是传递模块的输出,对状态导数进行积分,并确定采样时间。
系统的作用是计算模块的输出,对状态进行更新,计算状态的导数,产生过零事件。
计算连续状态包括两个步骤:
首先,求解器为待更新的系统提供当前状态、时间和输出值,系统计算状态导数,传递给求解器;然后求解器对状态导数进行积分,计算新的状态值。
状态计算完成后,模块的输出更新再进行一次。
这时,一些模块可能会发出过零警告,促使求解器探测出发生过零事件的准确时间,如此不断循环,直至Simulink仿真结束。
二.3Simulink的仿真
在Simulink中建立系统模型框图以后,点击菜单栏上Simulation中的Start,就可以完成Simulink对模型的动态仿真。
如图2-5所示。
也可以直接点击工具栏的运行图标。
图2-5Simulink的仿真
第三章设计方案
在实际生产过程中,特别是过程控制系统中,由于物料的传递或者能量物质的转换及大惯性温度控制系统等使得系统中的被控制量往往具有时间纯滞后特性,如在石油、轻工、化工、造纸等行业的过程控制中存在许多具有纯滞后特性的被控对象,即当输入变量改变后,系统输出并不立即改变,而要经过一段时间后才反映出来,这段时间即为纯滞后时间。
电加热炉温度控制系统具有较为典型的纯滞后、大惯性的非线性特性。
该特性的存在往往使扰动不能被及时察觉,调节效果不能及时反映,从而造成系统稳定性下降或者不稳定、产生较大的超调或振荡。
而且,纯滞后占整个动态过程的时间越长,控制的难度越大。
在这些过程中,由于纯延迟的存在,使被控量不能及时反映系统所承受的扰动,只有在延迟t以后才能反映到被调量,控制器产生的控制作用也不能立即对干扰产生抑制作用,必然会使系统产生较明显的超调量和较长的调节时间。
三.1Smith预估控制
本设计的被控制对象为:
采用Smith控制方法,在PI控制中,取Kp=2,Ki=0.5,假设预测模型精确,阶跃指令信号取100。
Simulink仿真程序及仿真结果如图所示,仿真结果表明Smith控制方法具有很好的控制效果。
图3-1Simulink仿真程序
图3-2不用Smith补偿的阶跃响应
图3-3采用Smith补偿的阶跃响应
三.2PID控制器
在工业控制中,PID控制器是一种传统的控制方法,通过选取适当PID参数可以使系统获得满意的动态品质。
由于PID控制器调节规律简单、运行可靠、易于实现等特点,传统PID控制器仍是工业过程控制应用最广泛的一类控制器。
但对于纯滞后系统,由于时阃滞后特征的存在,控制作用不能及时地作用到被控对象上,整个过程出现“等待”状态,若采用常规PID控制,为了保证系统一定的稳定性,就不得不减小调节器的放大倍数,从而造成调节质量的大大下降。
纯滞后时间-会使系统的稳定性降低。
为此,不少学者在现代控制理论的基础上建立了一些新的控制算法,但许多算法在工程应用中比较复杂,特别是对被控对象具有不同程度的纯滞后,又不能及时反映系统所承受的扰动的控制问题,即使测量信号能到达控制器,执行机构接受信号后立即动作,也需要经过一个滞后时间,才能影响到被控制量,使之受到控制。
这样的过程必然会产生较大的超调量和较长的调节时间,使过渡过程变坏,系统的稳定性降低。
传统的PID控制一般也不能解决过程控制上的大滞后问题,因此具有纯滞后的过程控制被认为是较难的控制问题,成为过程控制研究的热点。
多年来,控制理论和控制工程界在对Smith预估器倾注极大热情地同时,也提出了众多其它可以用于时滞系统控制地控制方法,如:
Dahlin控制器,内膜控制器,偏差滞环模糊控制器,双环控
制器,增益预估自适应滞后补偿控制器以及预测控制器等,有关文献表明,这些控制方法对特定的工业对象都取得了理想的控制效果。
国外比较流行的控制方法是Dahlin控制器算法和Smith预估控制。
三.3.M文件的说明
M文件分为两类:
脚本程序(script)和函数程序(function)。
脚本程序是一种简单的M文件,它没有输入、输出参数,可以是一系列在命令中执行的命令的集合,仅可以操作工作空间中的变量或程序中新建的变量。
脚本程序在工作空间中创建的变量,该变量是MATLAB工作空间中的量,如果该M文件本身没有将其自己创建的变量删除,那么创建的变量依然在MATLAB工作空间中存在,在程序运行结束后仍可供其它程序、函数使用。
函数程序可以接受输入参数,并可返回输出参数,可操作函数空间中的变量,不同于MATLAB命令中访问的工作空间。
函数程序创建的变量除了全局变量之外,均为函数运行空间内的局部变量,当该M文件运行完后,这些变量就不存在了。
两者的区别方法是看它们是否以关键字function开头。
图3-编写M文件的过程
体会与心得
通过这次的课程设计,加强了我们动手、思考和解决问题和搜索查找有用信息的能力。
以前对Matlab并不了解,现在也加深了对Matlab知识的理解。
让我深层领会到了Matlab的强大的功能。
通过这次的课程设计,让我学会了一些基本的函数使用,MATLAB中变量、数组、向量等对象的生成方法,矩阵的生成和基本运算逆,图形的绘制;学会了连续时间系统响应的MATLAB编程求解方法来求解差分方程,来求相应的响应;学会了一些MATLAB在数字信号处理中的应用。
我本次课程设计的题目是纯滞后系统的Smith控制算法研究,这让我对PID、纯滞后、Simulink及Matlab的编程都有了更深的认识。
参考文献
[1]陈怀琛、吴大正、高西全:
《MATLAB及在电子信息课程中的应用》第三版.北京:
电子工业出版社,2006-3
[2]张志涌.精通MATLAB6.5版[M].北京:
北京航空航天出版社.2003.
[3]王沫然.SIMULINK4建模及动态仿真[M].北京:
电子工业出版社.2002.
[4]李国勇..控制系统数字仿真与CAD[M].北京:
电子工业出版社.2003.
[5]朱晓东.基于Smith预估的纯滞后系统的控制[D].郑州大学学报.2004/01
[6]薛定宇.控制系统计算机辅助设计-MATLAB语言及应用[M].北京:
清华大学出版社.1996.
[7]陈桂明、张明照.应用MATLAB建模与仿真[M].北京:
科学出版社.2000.
[8]刘川来.纯滞后串级控制系统的两级Smith预估补偿[J].青岛科技大学学报(自然科学版),2006/05
[9]王丹力.MATLAB控制系统设计仿真应用[M].北京:
中国电力出版社,2007.
[10]薛定宇.控制数学问题的MATLAB求解[M].沈阳工业大学出版社.2004
附录:
程序:
%BigDelayPIDControlwithSmithAlgorithm
clearall;closeall;
Ts=20;
%Delayplant
kp=2;
Tp=5;
tol=8;
sys=tf([kp],[Tp,1],'inputdelay',tol);
dsys=c2d(sys,Ts,'zoh');
[num,den]=tfdata(dsys,'v');
M=1;
%Predictionmodel
ifM==1%NoPreciseModel:
PI+Smith
kp1=kp*1.10;
Tp1=Tp*1.10;
toll=tol*1.0;
elseifM==2|M==3%PreciseModel:
PI+Smith
kp1=kp;
Tp1=Tp;
toll=tol;
end
sys1=tf([kp1],[Tp1,1],'inputdelay',toll);
dsys1=c2d(sys1,Ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;
e1_1=0;
e2=0.0;
e2_1=0.0;
ei=0;
xm_1=0.0;
ym_1=0.0;
y_1=0.0;
fork=1:
1:
100
time(k)=k*Ts;
s=2;
ifs==1
rin(k)=1.0;%TracingStepsingal
end
ifS==2
rin(k)=sign(sin(0.0002*2*pi*k*Ts));%TracingSquareWaveSingal
end
%Predictionmodel
xm(k)=-den1
(2)*xm_1+num1
(2)*u_1;
ym(k)=-den1
(2)*ym_1+num1
(2)*u_5;%WithDelay
yout(k)=-den
(2)*y_1+num
(2)*u_5;
ifM=1%NoPreciseModel:
PI+Smith
e1(k)=rin(k)-yout(k);
e2(k)=e1(k)-xm(k)+ym(k);
ei=ei+Ts*e2(k);
u(k)=0.50*e2(k)+0.010*ei;
e1_1=e1(k);
elseifM==2%PreciseModel:
yout(k)=ym(k),PI+Smith
e2(k)=rin(k)-xm(k);
ei=ei+Ts*e2(k);
u(k)=0.50*e2(k)+0.010*ei;
e2_1=e2(k);
elseifM==3%OnlyPI
e1(k)=rin(k)-yout(k);
ei=ei+Ts*e1(k);
u(k)=0.50*e1(k)+0.010*ei;
e1_1=e1(k);
end%Returnofsmithparameters
xm_1=xm(k);
ym_1=ym(k);
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_1=yout(k);
end
plot(time,rin,‘b’,time,yout,‘r’);
xlabel(‘time(s)’);ylabel(‘rin,yout’);