您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于Simulink实现的数模混合控制系统仿真新方法-单泽彪
第43卷第*期吉林大学学报(工学版)Vol.43No.*2013年*月JournalofJilinUniversity(EngineeringandTechnologyEdition)*.2013收稿日期:2013年3月13日.基金项目:国家自然科学基金项目(51075175).作者简介:单泽彪(1986.4),男,博士研究生.研究方向:阵列信号处理,系统仿真.E-mail:zbshan@126.com通信作者:高兴泉(1976.8),男,副教授,博士.研究方向:非线性系统控制,预测控制.E-mail:xqgao_jl@126.com基于Simulink实现的数模混合控制系统仿真新方法单泽彪1,石要武1,高兴泉2(1.吉林大学通信工程学院,长春130022;2.吉林化工学院信息与控制工程学院,吉林吉林132022)摘要:提出了一种采用SIMULINK实现数模混合控制系统的仿真方法。控制系统中实际的被控对象用连续SIMULINK模块构建的非线性连续系统来描述,同时采用SIMULINK模块与M函数相结合的形式,用信号上升沿触发子系统模拟闭环控制系统中的数字处理单元即数字滤波与控制器部分,从而可真实地模拟周期性采集数据并处理数据的过程,最终实现了数模混合控制系统的仿真。以连续搅拌反应釜基于卡尔曼滤波的状态反馈控制问题为实例,阐述了该仿真方法的具体实现过程。闭环仿真结果验证了该方法的有效性。关键词:自动控制技术;数模混合控制;卡尔曼滤波;触发子系统;仿真实现中图分类号:TP273文献标志码:ANewsimulationmethodofdigital-analoghybridcontrolsystembasedonSimulinkSHANZe-biao1,SHIYao-wu1,GAOXing-quan2(1.CollegeofCommunicationEngineering,JilinUniversity,Changchun130022,China;2.CollegeofInformationandControlEngineering,JilinInstituteofChemicalTechnology,Jilin132022,China)Abstract:AsimulationmethodofKalmanfilterforcontinuoussystemsfulfilledbytriggersubsystemisproposed,inwhichtheformofSimulinkblocksiscombinedwithM-functionstosimulatetheprocessofperiodicsamplingandprocessingbymicro-computers,accordinglythefunctionsofD/AandA/Dandtheonlinefilterprocessingareachievedperfectly.Itsimplementationprocessisintroducedindetail,andsimulationresultsfortheapplicationintheCSTRsystemshowtheefficiencyoftheproposedmethod。Keywords:automaticcontroltechnology;digital-analoghybridcontrol;Kalmanfilter;triggersubsystem;simulationimplementation0引言随着大规模集成电路和计算机的迅猛发展,数字处理技术已经广泛应用于各个领域。控制系统的一些重要环节如数据滤波、控制器求解等可以借助于数字处理系统来实现。另一方面,客观世界中的绝对多数控制对象都是模拟系统[1],因此,在工程中大量地采用“数字系统”来处理模拟信号,显然,带有数字信号处理环节的控制系统是一个能处理模拟和数字信号的混合系统。这样的一个系统进行模拟仿真对进行实际控制系统预设计来说是非常有意义的,即实际的控制对象是模拟系统,信号处理借助数字处理系统,其处理过程主要包括周期性的采样、A/D转换、实际运算、D/A转换以及信号保持等过程。MATLAB/Simulink是目前应用最广的系统建模、分析与仿真等问题的理想工具[2]。对于混合2013-06-1318:00偶数页页码吉林大学学报(工学版)第43卷系统仿真,一般常有两种实现的思路,一种是完全由Simulink模块搭建的离散控制系统[3,4],即先将连续被控对象数学模型离散化,用Simulink离散模块进行单纯的离散系统仿真,这样不可避免的会造成失真,越加偏离生产实际的情况;第二种方法完全由程序编写的连续系统仿真[5,6],这样又不如由Simulink搭建模块仿真直观形象。虽然利用S函数亦可实现对连续系统的数字滤波,但是S函数的编写比较复杂,在滤波的工程实现、现场调试及通用型方面都存在着局限性。本文提出一种基于Simulink的混合系统的仿真方法,即用触发子系统模块来模拟数字处理器,用周期性的方波来触发该系统,从而实现差分求解等数字信号处理的过程。本文以卡尔曼滤波为例,介绍了一种基于Simulink对连续系统实时数字滤波仿真实现的方法,即把Simulink模块与M函数通过触发子系统模块相结合的方式。其中主程序由Simulink模块搭建,滤波器由M函数编写,通过触发子系统模块来模拟计算机离散采样、周期计算的过程,同时利用外部全局变量来存储历史数据,以达到实时计算并估计状态的目的;触发子系统模块具有的零阶保持器的特性[7],又使滤波输出转换为连续信号,可以直接予以示波观测或送至控制器进行控制。整个过程实现了D/A及A/D转换的功能,从而逼真地反映出实际生产中采集数据及处理数据的过程。控制算法的研究一直都是控制界研究的主流,仿真是信息时代从理论分析到科学实验的桥梁方法,控制算法在应用到实践前,往往都得先进行理论研究,而判断理论算法是否正确就是对其进行仿真验证,而仿真方法的好坏就成为了一个判断算法正确与否的关键因素,对于众多基于实际控制模型如汽车、机器人及双容系统等生产过程被控对象的算法仿真问题[5,8,9],均可采用本文方法进行仿真验证。文中最后给出了该方法对连续搅拌反应釜(CSTR)进行卡尔曼滤波的仿真应用。1数模混合控制系统考虑一个连续系统的状态反馈控制问题。当利用状态反馈控制器确定执行机构动作时,需要用传感器测量状态变量以便实现反馈。但在很多情况下,只有部分状态可以直接测量得到,其它状态不易测得或测量的成本很高,这时候就需要采用状态估计器如卡尔曼滤波器针对系统的某些状态量来估计出不易测量的状态,并利用所有得到的状态根据状态反馈控制律获取执行机构的控制动作大小,从而形成一个闭环的状态反馈控制。其中要求所有的数据滤波和处理过程在数字处理系统例如单片机、计算机或DSP中实现,那么该系统涉及的信号既包括实际被控对象输出的模拟信号,也包括数据的数字处理过程,因此它是一个典型的数模混合控制系统,其结构示意图如图1所示。采样、A/D转换数字控制器D/A转换保持被控对象(连续系统)执行机构系统状态数字滤波/估计器()xt系统状态()xk系统状态ˆ()xk控制量()uk控制量()ut数字处理单元图1典型数模混合控制系统方框图Fig.1Digital-analoghybridcontrolsystem该控制系统工作过程如下:从连续系统测量得到的模拟信号()xt输入至采样器,每隔一定时间(采样周期)对()xt进行采样,再经A/D转换器转换成数字量()xk,数字滤波器根据测量输出估计出系统的状态ˆ()xk,数字控制器根据状态反馈控制律利用估计出来的状态量求出控制量()uk即决定执行机构动作的大小,后经D/A转换器及保持器转换为模拟量()ut,最后送至执行机构,并对实际的被控对象进行控制。下面以连续搅拌反应釜的状态反馈控制为例介绍一种基于Simulink的数数模混合控制统仿真实现方法。2数模混合控制系统的实现2.1连续搅拌反应釜考虑一个工业生产中广泛应用的连续搅拌反应釜(CSTR)控制问题,其运动特性可以用以下非线性方程来描述[10]:第*期单泽彪,等:基于SIMULINK实现的数模混合控制系统仿真新方法奇数页页码2013AAAAARdCVCCkTCkTCdtV(1)12BBABRdCVCkTCkTCdtV(2)02123()()1()()()ABBCADRKRpRARBRARpkAdTVTTTTdtVCVkTCHkTCHkTCHC(3)1()KKRKKPKdTQkATTdtmC(4)其中AC和BC分别是组分A与组分B的浓度,T和KT分别是反应温度和冷却温度,可以用这4个变量作为系统的状态。该系统的控制问题是通过实时调整系统的两个操作变量即物料进给率RVV和冷却套中的散热量kQ,使组分B的浓度达到预定要求的值,这里反应器的进料温度0T和组分A的初始浓度0aC可以作为系统的外部干扰。其它参数的物理或化学意义可详见文献[10]。该系统是个连续的系统,所以可以用连续Simulink模块根据运动方程进行搭建。现在考虑构建一个状态反馈控制系统。该状态反馈需要知道系统的四个状态即进料浓度、进料温度、物料进给率和冷却套散热率,但从现在的工艺条件或经济方面考虑,在此采用卡尔曼滤波的方法通过实时测量反应温度和冷却温度来在线估计浓度值并经控制器后得到状态值。2.2卡尔曼滤波器在Simulink中的仿真实现卡尔曼滤波方法由R.E.Kalman建立[11],是其在Wiener平稳随机过程的滤波理论基础上建立的一种递推式滤波方法,可借助与前一时刻的滤波结果,递推出下一时刻的状态估计量,因而大大提高了下一时刻的滤波精度。卡尔曼滤波的数据处理过程实际上是离散的状态空间方程叠代求解的过程,需要借助混合控制系统中的数字处理单元来实现。在本文提出的仿真中,卡尔曼滤波器的运算过程以及数字控制器的处理过程通过周期性的调用M函数文件完成,而触发调用动作的模块由Simulink中带有脉冲信号发生器的触发子系统模块来实现。在编写M函数文件时利用外部全局变量来实现对历史数据的存储,并且运用evalin与assignin两函数对历史数据进行读取与存储。具体实现过程如下:(1)选用端口与子系统(Ports&Subsystems)模块库中的触发子系统(TriggeredSubsystem)模块模拟数字处理单元,如图2所示。它是一个执行外部输入触发的子系统模块,其中的触发端口决定着该模块是否执行。图2添加脉冲信号发生器模块的触发子系统Fig.2TriggeredSubsystemwithpulsesignalgenerator(2)触发端口的触发信号选用信号源(Sources)模块库中的脉冲信号发生器(PulseGenerator)模块输出的信号。在该外接输入下,可模拟采样量化的特性,实现A/D转换的功能,其中矩形脉冲的周期近似为数字处理单元的采样周期,其大小往往根据具体的问题进行经验性设定[12]。(3)在触发子系统输入输出端之间添加用户自定义函数(User-DefinedFunctions)模块库中的MATLAB函数(MATLABFun)模块,如图3所示。在MATLAB函数模块中可以填写欲调用的函数名称或M函数文件名称,本文中该处由两个串联的函数组成,一个是卡尔曼滤波M函数,另一个是数字控制器M函数。图3触发子系统模块的内部结构Fig.3Internalstructureoftriggeredsubsystem卡尔曼滤波过程即是周期性采集系统输入信号,并进行叠代求解的过程。因此在MATLAB实现时需要先进行某些变量的初始化。这里,编制M文件初始化状态估计的初值0ˆx,协方差矩阵0P。假设连续系统离
本文标题:基于Simulink实现的数模混合控制系统仿真新方法-单泽彪
链接地址:https://www.777doc.com/doc-4891667 .html