1.1 引言
预测控制是一种基于模型的先进控制技术,它不是某一种统一理论的产物,而是源于工业实践,最大限度地结合了工业实际地要求,并且在实际中取得了许多成功应用的一类新型的计算机控制算法。由于它采用的是多步测试、滚动优化和反馈校正等控制策略,因而控制效果好,适用于控制不易建立精确数字模型且比较复杂的工业生产过程,所以它一出现就受到国内外工程界的重视,并已在石油、化工、电力、冶金、机械等工业部门的控制系统得到了成功的应用。工业生产的过程是复杂的,我们建立起来的模型也是不完善的。就是理论非常复杂的现代控制理论,其控制的效果也往往不尽人意,甚至在某些方面还不及传统的PID控制。70年代,人们除了加强对生产过程的建模、系统辨识、自适应控制等方面的研究外,开始打破传统的控制思想的观念,试图面向工业开发出一种对各种模型要求低、在线计算方便、控制综合效果好的新型算法。这样的背景下,预测控制的一种,也就是模型算法控制(MAC -Model Algorithmic Control)首先在法国的工业控制中得到应用。同时,计算机技术的发展也为算法的实现提供了物质基础。现在比较流行的算法包括有:模型算法控制(MAC)、动态矩阵控制(DMC )、广义预测控制(GPC)、广义预测极点(GPP)控制、内模控制(IMC)、推理控制(IC)等等。
随着现代计算机技术的不断发展,人们希望有一个方便使用的软件包来代替复杂的理论分析和数学运算,而Matlab、C、C++等语言很好的满足了我们的要求。
1.2 预测控制的存在问题及发展前景
70年代以来,人们从工业过程的特点出发,寻找对模型精度要求不高,而同样能实现高质量控制性能的方法,以克服理论与应用之间的不协调。预测控制就是在这种背景下发展起来的一种新型控制算法。它最初由Richalet和Cutler等人提出了建立在脉冲响应基础上的模型预测启发控制 (Model Predictive Heuristic Control,简称“MPHC” ),或称模型算法控制(Model Algorithmic Control,简称“MAC” );Cutler等人提出了建立在阶跃响应基础上的动态矩阵控制 (Dynamic Matrix Control,简称 “DMC”),是以被控系统的输出时域响应(单位阶跃响应或单位冲激响应)为模型,控制律基于系统输出预测,控制系统性能有较强的鲁棒性,并且方法原理直观简单、易于计算机实现。它的产生并不是理论发展的需要,而是在工业实践过程中独立发展起来,即实践超前于理论它一经问世就在石油、电力和航空等领域中得到十分成功的应用。之后,又延伸到网络、冶金、轻工、机械等部门或系统。
80年代初期,人们为了增强自适应控制系统的鲁棒性,在广义最小方差控制的基础上,吸取预测控制中的多步预测、滚动优化思想,以扩大反映过程未来变化趋势的动态信息量,提高自适应控制系统的实用性。这样就出现了便于辨识过程参数模型、带自校正机制、在线修改模型参数的预测控制算法,主要有Clarke等提出的广义预测控制(GPC) Do Keyser的扩展时域预测自适应控制(EPSAC),广义预测极点配置控制(GPP)。Brosilow于1978年提出推理机制(1C), Garcia. Norari于1982年提出内部模型控制(简称内模控制,IMC ),从模型结构的角度对预测控制作了更深入的研究,分析出预测控制具有内模控制的结构。应用内模控制结构来分析预测控制系统,有利于理解预测控制的运行机理,分析预测控制系统的闭环动静态特性、稳定性和鲁棒性,找出各类预测控制算法的内在联系,导出它们的统一格式,有力推动了预测控制在算法研究、稳定性鲁棒性的理论分析和应用研究上的发展。但实际上,预测控制的理论还是落后于其实际应用的,因此在理论和应用方面,仍需得到进一步的研究和发展。
1.2.1 预测控制存在的问题
就目前的研究现状 来看,预测控制的研究中主要存在一下问题:
(1) 理论分析难以深入。目前的许多理论分析工作都是针对广义预测控制算法进行的。其分析方法与一般的自适应控制的方法类似,都是把主要精力放在寻找一种在线估计方法,然后与预测控制策略相结合,得到的分析结果也与一般的自适应算法结果相似,完全看不出预测控制的特点。所以,要得到对预测控制深入的理论分析结果,首先必须摆脱自适应控制的束缚,针对预测控制本身的机理特点,寻找新的分析方法。另外,对多变量预测控制算法的稳定性,鲁棒性的研究急需解决。
(2) 对非线性系统的预测控制还没有很好的解决。主要原因是如何解决滚动优化的问题。还有是在算法研究上应该紧扣预测控制的模型预测,滚动优化和反馈这三大机理 进行,主要包括以下几个方面:
a) 测模型的特点不是建立对象的最小化模型,而是在确定的优化性能指标和优化策略下预测未来的输出模型,所以重在功能而非结构.这能使我们不受传统的数学模型的束缚,大胆引进新思路新方法。一是充分利用对象的各种先验知识建立没有结构限制的高质量模型.二是利用对象过程中的有效信息建立多个不同结构和功能的预测模型,并进行预测,基于某种综合优化指标,确定某个时段的优化控制方案,根据多个并行预测控制结果综合确定预测值。
b) 优化策略的研究目前多为无约束的二次性能指标优化,实际问题则是多目标多自由度的优化问题,需要规范并能解决快速求解。当然,优化策略的选取要受到实际问题的限制,我们应研究怎样的优化策略才能将与之对应的先进的控制器结构或方法结合新的预测控制器结构中,从而得到适应性、鲁棒性和最优性都比有的算法更好的性的预测控制算法。
c) 建立有效的反馈校正方法。由于对象的验前信息的不充分性,基于此类信息集合得到的预测控制模型用于在线预测时,其预测值与实际值之间一定存在一个误差,这就是预测误差。引起预测误差的主要原因有两个:建立预测模型引起的误差和干扰引起的误差。若能将二者的预测误差分离开来,区别对待,对建模误差进行补偿校正,对干扰误差进行反馈校正,以求达到理想的校正效果。
1.2.2 预测控制的发展前景
(1) 系统的鲁棒性和稳定性
与常规PID控制、最小方差控制、自校正控制等自适应控制相比,预测控制具有较好的稳定性和鲁棒性,但系统的稳定性和鲁棒性分析与设计尚没有得到很好的解决。预测控制目前已有的算法中,主要设计参数与闭环系统的动静态特性。稳定性和鲁棒性之间的一般解析关系难以得到,因此对系统稳定性,鲁棒性的分析还远没有达到定量的程度,没有一个通用的参数设计选择原则。尤其是对于多变量系统的相应预测控制算法,其稳定性和鲁棒性的分析急需突破,这是今后仍需努力研究的一个主要方面 。
(2) 对非线性,不确定系统的研究
工业过程大量存在非线性,不确定系统,对这类系统的预测控制还没有很好的解决,非线性预测控制和将成为今后研究的重点,以满足过程控制工业的要求。
(3) 预测控制算法的发展和创新
进一步加强理论研究,在预测控制的三大机理:预测模型、反馈校正和滚动优化的策略上下功夫,全方面地去加以研究和突破,如引进先进理论,建立无结构限制的高效模型,选择合理的优化策略,研究更有效的反馈校正方法等等:注重学科的交叉研究,把其他学科的理论与现有预测控制方法相结合。
(4) 加强理论应用和软件开发
在工业实践中去挖掘和寻找预测控制需解决的,新出现的问题和研究方向和发展方向,由实践来促进理论的发展。同时,加强软件开发,促使其更好,更快的应用和发展。
综上所述,预测控制采用预测模型预测系统的未来输出,实现滚动优化控制,并不断根据系统的实际输出修正预测的准确性。预测模型的多样性,模型精度要求不高,这正符合了工业过程控制的特点,尤其是预测控制改进了最优控制,用滚动的有限时域,优化取代了一成不变的全局优化。这样不仅实现最优控制,而且克服了系统中不确定性的影响,具有更强的鲁棒性,这是预测控制能得到成功应用的根本原因。正因为预测控制具有复杂性生长过程控制的特点,可以预计,预测控制作为一类新型计算机控制算法,仍会显示它强大的生命力。
1.3 预测控制的研究方法
研究预测控制算法之间的内在关系以及它们的等价变换是深入了解算法本质机理、进一步研究算法的性质和对算法扩展的重要途径。到目前为止已有许多种类不同的预测控制方法 。最早提出的典型预测控制算法有模型预测启发控制(MPHC),模型算法控制(MAC),以及动态矩阵控制(DMC),广义预测控制(GPC)和推理控制(IC)等。被控对象的脉冲响应或阶跃响应一般称为非参数模型。这两类响应容易从现场检测到,且不需要事先知道过程模型的结构和参数等先验知识,也不必通过使用复杂的系统辨识技术便可设计控制系统,即所谓的滚动优化取代了传统的最优控制。由于在优化过程中利用测量信息不断进行反馈校正,所以这在一定程度上克服了不确定的影响,增强了控制系统的鲁棒性。此外,这些控制算法的在线计算比较简单。与传统的PID算法相比较,预测控制的优点是显而易见的。本文只介绍我们用到的GPC和DMC两种算法,并简单介绍传统的PID算法。
1.3.1 广义预测控制
广义预测控制 (GPC)是在自适应控制的研究中发展起来的另一类预测控制算法,是对对象输出做多步预测,这种算法是建立在将来时刻的控制量上,同时确定一个控制范围,并假设在这个范围外的控制量增量为零。目标函数为预测输出与设定值的误差和
控制增量的二次函数。它适用于不确定结构系统和复杂系统,如非最小相位系统就开环不稳和时滞变化的系统,对于模型失配也能获得稳定控制。在自校正控制系统中,由于有分灵敏,如果估计不准或是时变的,控制精度就会大大降低;而有些算法对系统的阶次十分灵敏,一旦估计不准,算法就不能使用。换句话说算法在滞后时对它们对系统的依赖性比较强。在此背景下,克拉克(Clarke) 等人在保持最小方差自校正控制的模型预测,最小方差控制,在线辨识等原理的基础上提出了广义预测控制.最为一种自校正控制算法,GPC是针对随机离散系统提出的.它的模型形式和反馈校正测量同DMC都有一定的差别。
1.3.2 动态矩阵控制
动态矩阵控制(DMC) 是预测控制中应用比较广的算法之一,它一种用被控对象的阶跃响应特征性来描述系统动态模型的预测控制算法。它有算法简单,计算量小,鲁棒性较强等特点。它适用于渐进稳定的线性对象。对于弱非线性对象,可在工作点处首先线性化:对于不稳定对象,可先用常规PID控制使其稳定,然后再使用DMC算法 ,在这里我们将作重点介绍。DMC控制包括模型预测、滚动优化和反馈校正三部分。
(1) 模型预测
它的功能是根据对象的历史信息和选定的未来输入预测其未来输出值,这里只强调模型的功能而不强调其结构形式。从方法角度讲,只要是具有预测功能的信息集合,无论它有什么样的表现方式,均可作为预测模型。因此,状态方程,传递函数这类传统的模型都可以作为预测模型。在DMC中,首先需要测定对象单位阶跃响应的采样值 (i=1,2,…),这样对象的动态信息就可以近似用 的集合表示了。这个集合就构成了模型向量 。同时还需确定一个我们预测范围的建模时域 。
(2) 滚动优化
DMC是一种以优化确定控制策略的算法。在每一个时刻 ,要确定从该时刻起的 个控制增量 ,使被控对象在其作用下的未来 个时刻的输出 预测值 尽可能接近给定的期望值 ,i=1,…, 。这里 , 分别成为优化时域和控制时域,通常规定 。
(3) 反馈校正
动态控制是一个闭环控制算法,在通过优化确定了一系列未来的控制作用后,为了防止模型失配或环境干扰引起控制对理想状态的偏离,若不及时利用实时信息进行反馈校正,进一步的优化就会建立在虚假的基础上。为此,在下一个采样时刻首先要检测对象的实际输出,并把它与以上时刻的模型预测输出进行比较,构成输出误差。再根据误差权矩阵 对其进行修正。
(一)DMC的主要特征
(1) 预测模型采用阶跃响应特征建模。
(2) 设计过程中固定格式是:用二次型目标函数决定控制增量最优值序列,但没 有考虑各种约束条件。
(3) 参数调整:用改变二次型目标函数中的权系数矩阵 , 来实现。
(二)DMC算法的优点
(1) 直接在控制算法中考虑预测变量和控制变量的约束条件,用满足约束条件的范围来求出最优预测值。
(2) 把控制变量与预测变量的权系数矩阵作为设计参数,在设计过程中通过仿真来调节鲁棒性好的参数值。
(3) 预测变量和控制变量较多的场合,或者控制变量的设定在给出的目标值范围内,这时具有自由度,预测变量的定常状态值被认为是有无数组组合的。
(4) 从受控对象动特性设定到最后作仿真来确定控制性能为止,这一系列设计规范已相当成熟。DMC算法以 直接作为控制量,在控制中包含了数字积分环节,因此,即使在失配的情况下,也能得到无静差控制。
显然,DMC在工业实际应用中之所以受到欢迎,并得到成功应用,除了算法简单、响应容易获得外,主要是因为它具有的预测模型、滚动优化和反馈校正三大特点。此外,由于它采用了多步预测的方式,扩大了反映过程未来变化趋势的信息量,因而能克服各种不确定性和复杂变化的影响,使动态矩阵控制能在各种复杂生产过程控制中获得很好的应用效果,并具有较高的鲁棒性。这些都是动态矩阵控制能得到成功应用的根本原因。
第2章 软件功能介绍
本文讨论的简单SISO预测控制系统,从理论上描述系统的控制性能并模拟系统进行软件设计。软件设计包括:界面、辨识、DMC、GPC及PID五部分,各部分系统通过界面来给定和修改参数模型,并且调用Matlab等其他软件的结果;系统辨识根据界面给定的对象得出参数,再送给DMC和GPC作为设计模型用;DMC、GPC和PID的设计是根据系统辨识来设计控制模型,再来控制实际对象。
(1) 界面软件功能介绍
作为一个控制系统,怎样实现人机联系是最主要的问题,也是最主要的目的。预测控制面对的对象大多都是工业过程,要求具有实时控制功能。本文所研究的是简单的SISO预测控制理论部分,为此我们设计的界面的功能是给定输入值,通过辨识和控制返回输出。由于建模采用的是Matlab编程语言,所以界面需要在Matlab在VC间进行通信转换。本文介绍了一种将Matlab编译成可执行程序的一种方法,它使得Matlab编写的程序能够完全脱离Matlab这个环境来执行,从而大大提高了程序的应用范围和使用价值。
众所周知,MATLAB是一套功能非常强大的商业数学软件,从信号处理,语音处理,数据采集,数值运算,图像处理,到电子仿真,金融分析等等,几乎在各个工业领域,他都已经得到了广泛应用,同时也取得了巨大的成功。但是,由于Matlab是用一种脚本语言,他的解释是逐行执行的,程序中所有的变量都是用MxArray来实现的,所以为了保证通用性,它的执行效率非常低,这就是我们常常看到的:在开发一些复杂的算法时,通常会发现程序执行得特别慢,虽然Mathworks公司已经在竭力提高m脚本文件(Scriptfiles)的运算速度,但目前为止效果仍然不能和实现同样功能的可执行程序相比。而且m脚本文件是不能脱离Matlab这个应用程序环境,这就大大制约了程序的可移植性和通用性。正是基于上述考虑,利用Matlab提供的C/C++编译器,将m文件编译成可执行的应用程序是重点工作,作者用的编译环境是:MS VC++ 6.0和Matlab6.5。
(2) 系统辨识软件功能介绍
辨识 的主要目的是建立动态系统的数学模型,以便对系统进行控制,或对系统的状态进行估计。是在对输入和输出观测的基础上,从一类系统中确定一个与观测系统等价的系统。它包括三个部分:1,选择适当的系统结构,即选取某一类系统;2,获取系统的输入输出测量值;3,确定评价值。在辨识当中会因为过程传递函数的阶数或参数的改变而及时进行修改模型。总之,一切与系统模型有关的应用,都可以发挥系统辨识的作用。最小二乘法是辨识当中使用最为广泛的一种,它是一种给予使误差平方和最小的方法。它简单、易于理解、便于应用,是学习其他参数设计估计方法的基础
辨识只考虑系统的输入输出特性,而不强调系统的内部机理。在输入输出数据的基础上,从一组给定的模型类中,确定一个与所测系统等价的模型。当模型确定以后,就需要进行基于输入输出数据的模型参数的估计。也即已知观测数据向量的情况在最小误差平方和的意义下求解回归参数,再将求解所得的回归参数送入控制模块,对系统进行控制。辨识系统的输入输出数据在一定程度上反映了系统的动态和静态特性和行为,一般在辨识中假定其是可直接测量的,它是辨识的基础。根据辨识目的及被辨识系统的先验知识或了解,确定系统所属的模型类。在控制领域中,常用的模型类有:线性的或非线性的,连续的或离散的,确定或随机的,时变的或时不变的等。
(3) DMC软件功能介绍
由辨识得到的被控对象的参数,经过预测模型、滚动优化和反馈校正建模和算法控制。由于我们用到的是输入的阶跃响应,所以在模型预测之前需对辨识得到的参数进行阶跃响应,以此来建立预测模型和算法的此时的模型是为下一步的实际控制做准备的。建立模型后,我们就要对由截面给定的实际输入进行控制,得到各种控制结果,输出返回给截面。在系统的输入端加上一个控制增量,各个采样时间分别可在系统的输出端测得一序列采样值,用动态系数来表示。经过阶跃响应下得到实际的输出值,再将期望值与实际测量值进行比较,得到误差。一般我们要求系统有强鲁棒性和稳定性,根据前面得到的误差进行校正,再实行下一时刻的计算,然后重复上述过程。
(4) GPC软件功能介绍
GPC的软件功能与DMC很相似,也是根据辨识得到的参数进行模型预测、滚动优化和反馈校正,再将控制的结果返回给界面的过程。根据系统辨识而设计的各种控制模型,我们可以通过其对实际对象的控制结果来分析其控制性能的好坏,特别是稳定性和鲁棒性的分析。
(5) PID软件功能介绍
PID由比例、积分和微分三部分组成 ,根据设定值和对由辨识得到的实际系统控制的输出值构成偏差 ,再经过比例、积分和微分的线性组合对被控对象进行控制。比例作用的引入是为了及时成比例地反映控制系统的偏差信号 ,以最快速度产生控制作用,使偏差向减小的方向变化。积分作用的引入主要是为了保证实际输出值 在稳态时对设定值 的无静差跟踪。假设闭环系统已经处于稳定状态,则此时控制输出量 和控制偏差量 都将保持在某个常数值上,不失一般性,我们分别用 和 来表示。微分作用的引入,主要是为了改善闭环系统的稳定性和动态响应速度。作为经典的控制理论,PID控制规律仍然是当今工控行业的主导控制方式,无论复杂、简单的控制任务,PID控制都能取得满意的控制效果。可以说,通过适当的PID参数,PID控制可以得到各种输出响应特性,也就是说,通过适当给定PID参数,大多数的控制任务都可以由PID完成。
第3章 算法实现及程序设计
无论是DMC算法的软件设计还是GPC算法的软件设计,大体上都可分为模型预测、滚动优化和反馈校正三部分。本文除动态矩阵控制(DMC)算法及其软件设计外,还将简略介绍其他算法的设计过程,以便于比较。此外,实现人机对话的界面和建模所需的辨识都是不可缺少的部分。
在DMC、GPC 和辨识算法中,有大量矩阵、向量、多项式的运算,相比较其它程序语言,我们使用Matlab可以很方便实现这些运算。本软件中使用的是Matlab 6.5。
无论DMC还是GPC控制器设计,都依据对象的传递函数。对于可控的对象,只要选择适当的输入,就会得到所希望的输出。DMC和GPC控制器设计的核心就是要通过一定得算法求得这个适当得输入。但对象的实际传递函数一般不可知的或者很难通过解析的方法得到,对于复杂的对象尤其如此。因此,对对象进行辨识就是需要最先解决的问题。在本软件中采用的最小二乘法进行系统辨识,用得到对象的传递函数进行控制器设计。为了简化设计,没有采用循环辨识,而是一次辨识。
由于是做仿真,不存在需要控制的实际对象,实际对象就用一个传递函数表示。考虑到对象固有的一阶时滞性,传递函数一般形式为 :
(3.1)
式中, 、 为对象的输入输出时滞。
我们就可以用两个向量来描述对象。在Matlab程序中,式(3.1)的分母、分子分别用向量 、 表示:
对象的实际传递函数用 、 表示。将式(3.1)展开,可以得到
(3.2)
其中k为当前时刻。这样,只要我们知道从 到 时刻的输入,以及从 到 时刻的输出,就可以得到 时刻对象的“实际”输出。式(3.2)用向量表示为
(3.3)
式中
将辨识得到的传递函数用A、B表示。有了传递函数A、B,我们就可以设计控制器了。
3.1 界面设计
界面是实现人机对话的平台,提供系统的给定输入,显示控制结果。由于本文中编程采用的是Matlab语言,我们利用Matlab提供的C/C++编译器,将m文件编译成可执行的应用程序,这样就可以将各分块联系起来了。具体的设计过程我们简单介绍如下:
(1) Matlab中的操作
由于Matlab的编译只能对函数M文件进行编译,所以如果原来的程序脚本文件,则程序应该成函数形式。本文中涉及的函数转换有与图形有关也有与图形无关的,首先建立的是图形无关的m 文件test1.m,再是建立图形有关的,我们用到的编译命令是mcc –p –B sglcpp test2.m(如果程序由许多文件组成,处理方法同上)。编译完成后得到与m文件名相对应的.hpp和.cpp文件、一个主函数文件、bin目录中的两个.fig文件以及一个.exe文件。我们需要的只是与m文件相对应的.hpp文件、.cpp文件以及bin目录中的两个.fig文件,本例中是test2.hpp、test2.cpp以及bin目录中的FigureMenuBar.fig和FigureToolBar.fig。
(2) VC中的操作
与Matlab中操作相比,VC中需要设置众多的编译选项,故显得比较复杂。另外,VC中可选的工程类型比较多,本文将说明Matlab编译得到的源程序在如下类型中的使用。
MFC Appwizard(exe) (Dialog Based)
Win32 Console Application
Win32 Application
其实在这几种类型的工程中大部分的操作都是相同的,本文先描述相同的操作,再说明不同的部分(程序部分)。第一步,用VC建立相应的工程,把第一步中得到的源程序拷贝到工程所在目录中;第二步,选用菜单Tools/Options,在属性页中选择Directories下拉框中选择Include Files,在其最后加入E:\MATLAB6P5\EXTERN\INCLUDE\CPP和
E:\MATLAB6P5\EXTERN\INCLUDE;再在下拉框中选择Library Files中加入
E:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC6和E:\MATLAB6P5\EXTERN\LIB\WIN32
第三步,选择菜单Project/Settings, 在属性页Link下拉列表中选择Input,在Object/library modules文本框中加入libmmfile.lib、libmatlb.lib,libmx.lib libmat.lib、libmatpm.lib、sgl.lib、libmwsglm.lib和libmwservices.lib;第四步选择C/C++属性页,在下拉列表中选择Preprocessor,在Preprocessor definitions中加入MSVC,IBMPC,MSWIND;第五步,菜单Project-Add To Project-Files把所有拷贝过来的cpp文件加入到当前工程中。
3.2 辨识设计
辨识 是在完全不明确控制模型情况下对系统进行判断,需要我们设定和建立模型。
1.设定数据长度 ,产生 序列。由于我们设计的是简单的SISO系统,一般长度不要求过于复杂,常取 -- ,在本文中我们采用的是 。
2.利用界面给定的实际对象的参数 确定模型的阶次。
3.由上步给出的阶次,给出辨识的输入输出模型。再将它代入最小二乘中算出输出参数。具体的设计流程如图3.1所示:
图3.1 辨识程序流
3.3 DMC算法的实现和程序设
从 年起,动态矩阵控制(DMC) 就作为一种有约束的多变量优化控制算法应用在美国壳牌石油公司的生产装置上。 年,卡特勒等在美国化工年会上首次介绍了这一算法。多年来,它已在石油、化工等部门的过程控制中获得了成功的应用。DMC算法是一种基于对象为阶跃响应的预测控制算法,它适用于渐近稳定的线性对象。对于弱非线性对象,可在工作点处首先线性化,对于不稳定的对象,可先用常规 控制使其稳定,然后再使用DMC算法。基于预测控制算法的多样性,我们通过分析研究来比较各中算法的控制性能。
(1)模型预测
在DMC中,首先需要测定对象的单位阶跃响应的采样值 , 。其中, 为采样周期。对于渐近稳定的对象,阶跃响应在某一时刻 后将趋于平稳,以致 与 的误差和量化误差及测量误差有相同的数量级,因而可以认为,已近似等于阶跃响应的稳态值 。这样,对象的动态信息就可以用有限集合 加以描述。这个集合的参数构成了DMC的模型参数,向量 称为模型向量, 则称为建模时域。
虽然阶跃响应是一种非参数模型,但由于线性系统具有比例和叠加性质,故利用这组模型参数 ,已足以预测对象在未来的输出值。在 时刻,假定控制作用保持不变时对未来 个时刻的输出有初始预测值 ,则当k时刻控制有一增量 时,即可算
出在其作用下未来时刻的输出值:
, (3.4)
其中,预测输出向量 的下标为 时表示 为还没有加入当前输入变量 时未来输出的预测值,当下标为1时表示加入当前输入变量 后未来输出的预测值。 表示在 时刻对 时刻的预测。显然,在任一时刻 ,只要知道了对象输出的初始预测值 ,就可根据未来的控制增量由预测模型式(3.4)计算未来的对象输出。
(2)滚动优化
DMC是一种以优化确定控制策略的算法。在每一时刻k,要确定从该时刻起的 个控制增量 ,使被控对象在其作用下未来 个时刻的输出预测值 尽可能接近给定的期望值 (如图(3.2)所示)。这里, , 分别称为控制时域与优化时域,它们的意义可从图(3.2)中直接看出。为了使问题有意义,通常规定 。
图3.2 动态控制矩阵的优化策略
在控制过程中,往往不希望控制增量 变化过于剧烈,这一因素可在优化性能指标中加入软约束。因此, 时刻的优化性能指标可取为:
(3.5)
(3.6)
其中 , 是权系数,它们分别表示对跟踪误差及控制量变化的抑制。
为期望值向量,式(3.5)中 为设定值,控制器的目标就是要使对象输出稳定在 。 表示 时刻对象实际输出值。
在不考虑软约束的情况下,上述问题就是以 为优化变量,在动态模型式(3.6)下使性能指标式(3.6)最小的优化问题。为了求解这一优化问题,首先可利用预测模型式(3.4)导出性能指标中 与 的关系,这一关系可用向量形式写为 (3.7)
其中
这里, 表示0时刻没有加入输入变量时的输出预测向量,向量维数为 。 的下标 表示假定未来有 个控制变量。 是由阶跃响应系数 组成的 阵,称为动态矩阵。
同样,性能指标式(3.6)也可写成向量形式
(3.8)
其中
由权系数构成的对角阵 、 分别称为误差权矩阵和控制权矩阵。
将式(3.7)代入式(3.8)可得
在 时刻, , 均为已知,使 取极小值,得 。可通过极值必要条件 求得
(3.9)
它还给出了 的最优值。但 并不把它们都当作应实现的解,
而只是取其中的即时控制增量 构成实际控制 作用于对象。到下一时刻,它又提出类似的优化问题求出 。这就是所谓“滚动优化”的策略。
根据式(3.9),可以求出
(3.10)
其中, 维向量
(3.11)
称为控制向量。 维行向量 表示取首元素的运算。一旦优化策略确定(即 、 、 、 已定),则 可由式(3.11)一次离线算出。这样,若不考虑约束,优化问题在线求解就简化为直接控制律(3.10),它只涉及到向量之差及点积运算,因而是十分简易的。
(3)反馈校正
当 时刻把控制量 加于实际对象时,相当于在对象的输入端加上了一个幅值为 的阶跃,由于对象固有一阶时滞,可利用预测模型式(3.4),可算出在其作用下未来时刻的输出预测值
(3.12)
它实际上就是式(3.4)向量形式。由于上一时刻所求的 的元素是未加入 时的输出预测值,故经过移位后得到 ,它可作为 时刻的初始预测值进行新的优化计算。然后,由于存在模型失配、环境干扰等未知因素,由式(3.12)给出的预测值有可能偏离实际值,因此,若不及时利用实时信息进行反馈校正,进一步的优化就会建立在虚假的基础上。通过式(3.12)求出 时刻的预测值,代入式(3.10),得到 时刻应加入的 , 加入对象后,会得到一个实际输出 ,而 时刻预测的加入 后得到的 时刻的实际输出 应该为 ,为此,在 中,到下一采样时刻首先要检测对象的实际输出 ,并把它与由式(3.12)算出的模型预测输出 相比较,构成输出误差
(3.13)
这一误差信息反映了模型中未包括的不确定因素对输出的影响,可用来预测未来的输出误差,以补充基于模型的预测。由于对误差的产生缺乏因果性的描述,故误差预测
只能采用时间序列方法,例如,可采用对 加权的方式修正对未来输出的预测:
(3.14)
得到校正后的输出预测向量,由权系数组成的 维向量 称为校正向量。
在 时刻,由于时间基点的变动,预测的未来时间点也将移到 ,因此,由式(3.14)得到 的元素还需通过移位才能成为 时刻的初始预测值 :
, (3.15)
这一初始预测值的设置可用向量形式表示为
(3.16)
其中
为移位矩阵。
有了 ,又可像 时刻那样进行 时刻的优化计算,求出 。整个控制就是以这种结合反馈校正的滚动优化方式反复在线进行的。
DMC是由预测、控制、校正三部分构成的。在每一采样时刻,未来 个时刻的期望输出 与初始预测输出 构成的偏差向量同动态控制向量 点乘 (见式(3.10)),得到该时刻的控制增量 。这一控制增量一方面通过数字积分(累加)运算求出控制量 并作用于对象,另一方面模型与向量 相乘并按式(3.12)计算出在其作用后的预测输出 。到下一采样时刻,首先检测对象的实际输出 ,并与预测值 相比较后按式(3.13)构成输出误差 。这一误差与校正向量 相乘作为误差预测,再与
模型预测一起按式(3.14)得到校正后的预测输出 ,并按式(3.16)移位后作为新的初始预测值 。整个过程将反复在线进行。
至此我们可以这样实现DMC算法:
离线准备工作包括以下三个方面:
1. 检测对象阶跃响应,得到模型系数 。在这里,应强调模型的动态响应
必须是光滑的,测量噪声和干扰必须滤除,否则会影响控制的质量,有时甚至会造成控
制系统的不稳定。
2. 利用仿真程序确定优化策略,根据
计算出控制系数 。
3.选择校正系数 。
这三组动态系数确定后,应置入固定的内存单元,以便实时调用。
DMC的在线计算由初始化模块与实时控制模块组成。初始化模块是在投入运行的第一步检测对象的实际输出 ,并把它设定为预测初值 。
从第二步起即转入实时控制模块,在每一采样时刻的在线计算流程如图3.3。注意,在这里,设定值是固定的,并事先存入内存。若需要跟踪时变的轨迹,则还应编制一设定值模块,用以在线计算每一时刻的期望值。
图3.3 DMC在线计算流程图
(4)程序设计
DMC算法需要设定的参数有:
预测时域
控制时域
误差权矩阵
控制量变化权矩阵
误差修正向量
设定值
速度因子
仿真步数
1. 求阶跃响应:
由于DMC是基于对象阶跃响应的预测控制算法,第一步要做的测定阶跃响应。可以定义式(1.3)初始时刻以前所有输入为0,初始时刻以后所有输入为1,且式中 、 改为 、 ,记录 时刻的输出,得到模型向量 。
2. 赋值动态矩阵 、移位 。定义初始时刻时的输入输出值 、 。
利用求得的模型向量 和设定的预测时域 和控制时域 即可赋值动态矩阵 、移位 。
3. 按式(3.5)计算期望值。式中 的值为
4. 按式(3.7)预测未来 个时刻的输出。
5. 按式(3.10)计算当前时刻的输入变量 ,与上一时刻的输入相加后作为当前时刻的输入。
6. 按式(3. 3)计算对象实际输出。
7. 预测输出修正并移位。
8. 时刻加一,返回第3步。
在仿真程序中,上述循环的步数为 。然后用Matlab显示输入输出图形,可以很直观的看到控制效果。对于稳定对象而言,调整各项参数,DMC都可以得到令人满意的控制效果。相应的程序框图如图(3.4)所示。
3.4 其他算法的实现及程序设计
3.4.1 广义预测控制算法的实现和程序设计
图3.4 DMC程序流程图
DMC和MAC是分别以阶跃响应和脉冲响应描述的非参数模型为基础的预测控制算法。随着自适应控制算法研究的不断发展,Clarke等人于1984年提出了基于参数化模型的广义预测控制算法 (GPC)。它是以受控自回归积分滑动平均模型为基础,采用了长时段的优化性能指标,并结合辨识和自校正机制,表现出良好的鲁棒性。1987年,Kinnaert等将其推广到多输入多输出系统(MIMO)中,提出了输入和输出维数相等的多变量广义预测控制。
(1) ARIMA预测模型
在广义预测控制中 ,采用CARIMA模型作为预测模型。对于随机干扰的被控对象,由CARIMA模型和式Diophantine方程可以得到系统的预测值
(3.17)
若把上式右边前三项看作是模型输出的预测值 ,则 是模型输出预测值和实际值之间的误差,并且与 相关,因此得到 时刻以后的 步提前预测输出值。
(3.18)
上式写成矢量形式有
(3.19)
,
其中,多项式 , , 和 中参数的求解,可由Diophantine方程的递推算法得到。
(2) 滚动优化
在GPC中, 时刻的优化性能指标通常取含有系统输出对期望值的误差,以及控制增量加权项的二次型目标函数的最小值
(3.20)
写成矢量形式为
(3.21)
其中 为数学期望, 为对象输出的期望值; 和P分别为初始值与终值。 为控制时域。其中 应大于对象的时滞。由于以多步预测代替了一步预测优化,即使对时滞估计不当或时滞发生变化,仍能从整体优化中得到合理的控制,这是GPC对模型不精确时具有鲁棒性的重要原因。
由预测控制滚动优化的原理可得当前时刻的最优控制,即对式(3.21)
,
有
( (3.22)
则当前时刻施加于被控对象的控制律为
(3.23)
(3)在线辨识与校正
GPC是在自校正控制基础上发展起来的,因此保持了自校正控制的原理,即在控制过程中,不断通过实际输入输出的信息在线估计模型的参数,并以此修正控制律。这是一种广义的反馈校正。与DMC、MAC相比,后者相当于用一个不变的预测模型,并附加一个误差预测模型共同保证对未来输出作出比较准确的预测 ,而GPC则只用一个模型,通过对其在线修正来给出较准确的预测。
(4)程序设计
将式(3.2)改写,并考虑对象收到随机干扰
式中
差分因子 , 表示零均值随机的噪声序列,本软件中取 。这样式(3.3)可写成
(3.24)
因为
引入Diophantin方程
(3.25)
(3.26)
式中
定义
式(3.24)与式(3.25)式(3.26)联立即可得到式(3.22)。这样,GPC控制器设计的关键在于求出 。在Matlab程序中 分别定义为
由式(3.25)可知 、 分别为 的商和余项。而下标 则可以理解为除法做的步数。如果用 ( 为 向量)表示第 步的被除多项式,那么 即为 的第一个元素, 等于 与 的差。如果第 步出现 首项为零的情况,按上述方法求得 、 ,且 改为 , 改为 与 的差,并且要进行相应的移位。
求得 后,按式(3.26), 与 内积的 次幂项到 次幂项系数即为 的各项元素, 到 次幂项系数即为 。
求出 ,控制器设计就已经完毕。循环控制程序流程与DMC几乎完全一样。只是少了输出预测、误差修正。原因是 已经将它们整合到 中,所以GPC需要设定的参数比DMC少了一个误差修正向量 。
3.4.2 PID设计
PID (Proportional, Integral and Differential)控制器 是一种基于“过去”,“现在”和“未来”信息估计的简单算法。常规的PID控制系统原理框图如图3.5所示,
图3.5 PID控制系统原理图
系统主要由PID控制器和被控对象组成。作为一种线性控制器,它根据设定值和实际输出值构成控制偏差 ,将偏差按比例、积分和微分通过线性组合构成控制量 对被控对象进行控制。控制器的输入输出关系可描述为:
(3.27)
式中
,
为比例系数, 为积分时间常数, 为微分时间常数。
下面我们来简单介绍 -整定法:
—整定法是处理大时滞过程对象的一种方法,又称Dahlin法,这种方法与史密斯预估器和内模控制器密切相关。
考虑过程对象传递函数为
假设期望的闭环传递函数为
其中: 为整定参数,当 =1时,开环和闭环系统的时间常数相同:当 <1时,闭环系统的响应速度比开环系统的响应速度快;当 >1时,闭环系统的响应速度比开环系统的响应速度慢。
因为
则有
故可得
(3.28)
控制器得输入和输出关系为:
(3.29)
即
(3.30)
其中, 是基于控制信号 在时间间隔 的时刻的预测值。这种控制器形式又称为预测比例积分控制器(PPI),对大滞后过程由(3.30)式给出的对输出超前控制作用比PID控制器中的微分作用好。
PPI控制器的形式又可写为
(3.31)
其中 的取值范围0.5-5。如果期望开环和闭环时间常数相同,则 =10,则有
(3.32)
其中
,
3.5 程序调试及仿真图形
3.5.1 仿真图形
DMC、GPC和PID三种算法的控制仿真图形如下图所示:
图3.6 DMC仿真曲线
图3.7 GPC仿真曲线
图3.8 PID仿真曲线
3.5.2 参数调整对DMC系统稳定性和鲁棒性的影响
动态矩阵控制(DMC)系统的稳定性 一般分为两种情况研究:一是在模型准确时的稳定性,二是在模型失配时的稳定性分析即所谓鲁棒性 。从算法的形成来看,在设计中真正要确定的原始参数应该是:采样周期 ;优化性能指标中的优化时域 、控制时域 、误差权矩阵 及控制权矩阵 ;校正参数 。在一般情况下,设计者不可能通过解析方法唯一确定上述参数以满足要求。因为这些参数是通过 、 、 间接影响控制系统的性能的,它们与控制的快速性、稳定性、鲁棒性、抗干扰性等并没有直接的解析关系可作为设计的定量依据 。通过对参数的简单调整我们得出了DMC的初步结论,至于其他的算法我们在此不作过多的说明 。
1. 采样周期 与模型长度
采样周期 的选择应满足香农定理,且与模型长度 有密切的关系要求在 后的阶跃响应近似接近稳态值, 减少将会导致 的增大,如果过小,不但加大了计算频率,
而且在很短的采样间隔内,计算量因 的增大而增大,因而影响控制的实时性。所以从
实时性的需要出发,我们选 在 。
2. 优化时域 和误差权矩阵
优化时域 和误差权矩阵 对应着优化性能指标(3.6)中的下述项:
它们的物理意义是显而易见的, 表示我们对 时刻起未来多少步的输出逼近期望值感兴趣,而 作为权系数,则反映了对不同时刻逼近的重视程度。 的大小对于控制的稳定性和快速性有较大的影响。当 足够小,例如只取1,这时优化问题退化为选择 使 的控制问题。如果预测模型足够准确,则它可使对象输出在各采样点紧密跟随期望值。当保持 而把 取得充分大,这时,优化性能指标中稍后时刻的输出预测值几乎只取决于这个 控制增量的稳态响应。前者快速性好但稳定性和鲁棒性极差,
后者稳定性好但动态响应缓慢,在这之间的稳定性的好坏随着 单调变化的。随 的增大系统的稳定性(鲁棒性)也变强。
3. 控制时域
控制时域在优化性能指标(3.6)中表示了所要确定的未来控制量改变的数目。在 已确定的情况下, 越小,越难保证输出在采样点紧密跟随期望值,所得到的性能指标也越差。例如 意味着只用一个控制增量 就要使系统在接下来的 时刻跟随期望值。 增大控制性能提高,使各点输出误差的最小化得到更大程度的满足。 越小,容易导致稳定的控制,并有叫好的鲁棒性;而 越大,稳定性和鲁棒性都会变差。
4. 制权矩阵
由性能指标(3.6)中可知, 与 的取值的相对的,一旦 取为 或 , 便成为一个可调参数。权矩阵 的作用是对 的剧烈变化加以适度的限制,它是作为一个软约束加入到性能指标中的。对于一阶对象,充分大和充分小的 均可导致无振荡的控制,但对于二阶对象,虽然在 充分大和充分小时都能得到稳定的控制,但 的某一区间却会使控制系统振荡发散。 对稳定性的影响不是单调的,不能简单地通过加大 来改善系统的稳定性。当 充分大是,闭环系统虽然稳定,但响应相当缓慢。所以对控制系统的稳定性调整,调节参数 是不明智的,我们应该通过调节 和 得到满足,而引入 的主要作用,则在于防止控制量过于剧烈的变化,所以我们用到的是一个很小的 值。
5. 校正参数
误差校正向量 中个元素 的选择独立于其他参数的,是DMC中直接可调的换算参数。经过调节可知,它对控制的动态响应没有明显的影响,对系统的抗干扰和鲁棒性都有一定的影响,系统的鲁棒性会随着 的减小而增强。区别于其他设计参数, 的优优点在于它的直接可选性,因而可在算法中在线设置和改变。
基于以上的分析,我们可以得出下列DMC控制的参数整定步骤:
(1)根据对象的类型和动态特性确定采样周期 ,获得相应的饿阶跃响应系数 。
(2)取优化时域 覆盖阶跃响应的主要动态部分,即在优化时域中阶跃响应的主要动态已有完全的表现,而不是要不 取到阶跃响应的动态变化全部结束。
(3)初选 。
(4)计算控制系数 ,仿真检验控制系统的动态响应,若不稳定或动态过于缓慢,可调节 直到满意为止。
(5)若对应于上述满意控制的控制量变化幅度偏大,可略为加大 值。
(6)在上述基础上,选择校正参数
第4章 算法比较及设计体会
4.1 算法的比较
由以上对两种预测控制算法的介绍和设计可以看出,两者都是针对单变量系统的,并且是在不考虑输入输出有约束时的基本算法。它们虽然在模型形式、优化性能指标及校正方法上各有特色,但却有共同的方法机理,即包含预测模型、滚动优化、反馈校正三项要素,这正是预测控制算法最本质的特征。另外,典型的PID控制在控制性能上也存在明显的不足之处,具体我们作如下介绍。
(1)GPC和DMC的比较
在GPC中
考察式
假定, 为当前时刻,初始时刻以前所有输入输出为0,初始时刻以后所有输入为1,也就是输入阶跃信号。注意到
, ,
,
那么在阶跃输入下,输出为
所以, 即为阶跃响应序列,将GPC中的矩阵 与DMC中的动态矩阵 比较
我们发现这两个矩阵完全一样。
DMC中,输入为
GPC中,输入为
并注意到 和 拥有相同的数学表达式,所以DMC与GPC的区别仅在于 与 的区别。
设对象传递函数
在GPC中,在 时刻以后输入量不变的情况下,即 时刻的初始预测输出为
由式 决定。
注意到 , ,可以证明
所以 就是GPC的初始预测值,它与DMC中的初始预测值有什么不同,为什么它能控制不稳定的对象呢?
注意到 ,并且
则 可以改写成
将上式定义为 , 表示在 时刻的输出值与预测值的差。
在DMC中,初始预测值为
式中 表示在 时刻的输出值与预测值的差。
显然,DMC的预测误差修正只考虑了当前时刻的误差,而GPC对每一个预测输出值都做作了滚动修正,这就是GPC能控制不稳定对象的原因。换句话说,GPC具有控制优越性的原因可总结为 :1,采用了CARIMA来描述被控对象。由于该模型比较接近实际的对象模型,且具有积分作用,因此它不仅能为自校正鲁棒控制器的设计莫定良好的基础,而且能有效地消除系统的静态偏差。此外,GPC的最小化参数模型,不仅参数数目较少,适合于在线实现,而且对模型阶次不甚敏感。2,采用有限时域的长时段多步预测,使GPC更适合用于带负载扰动、随机噪声和未知时滞或时变时滞的被控对象。(3)对于预测控制中为进行输出预测而引入的Diophantin方程,采用递推解法,由此更适用于计算机控制并节省大量的预测时间。
(2)传统的PID控制与预测控制的比较
PID控制的优点是: 1. 原理简单,使用方便。
2. 适应性强,可以广泛应用于化工,热工,冶金,炼油以及造纸建材等各种生产部门。按PID控制进行工作的自动调节器早已商品化。在具体实现上它们经历了机械式,液动式,气动式,电子式等发展阶段,但是始终没有脱离PID控制的范畴。即使目前最新式的过程控制计算机,其基本的控制功能也仍然是PID控制。 3,鲁棒性强,即其控制品质对被控对象特性的变化不大敏感。对于不同特性的被控对象,其控制效果基本上一样。尤其使用三阶离散对象。 而相比GPC和DMC来说,PID控制也存在许多不足: 首先,PID对系统基本线性和动态特性不随时间变化的系统有较好的控制,而实际上很多工业过程是时变和非线性的。 其次,PID参数必须在控制事先就整定的很好。如果过程对象的动态特性变化,PID参数就要重新整定,这再实际应用中是一个很麻烦的环节。 最后,PID在控制非线性、时变、耦合及结构不确定的复杂过程时得不到比较满意的效果。针对这一点,工业上现在提出了改进的自适应PID控制、自校正PID控制、模糊PID控制、非线性PID控制等高级控制策略来克服这些缺点。
4.2 设计体会
(1) 本次设计主要内容是使用最小二乘法辨识实际对象的传递函数,然后设计三种不同的控制器(DMC,GPC,PID)进行控制仿真,输入在界面上设定,并显示输入输出图形。
设计初期是熟悉软件的阶段,我用的是Matlab编写程序。初期总是被程序出错困扰。有时能顺利执行的程序改动输入参数后出错,将参数改回后依然不能执行;有时一个不能执行的程序在改变文件名后又可以执行了等等诸多看起来“不可理喻”的问题。在参阅Matlab书籍,请教高手,以及反复摸索明白该软件的工作空间、工作空间变量等等概念后,再也没有出现这种低级的“不可理喻”的问题了,也越来越体会到Matlab作为数学分析软件的强大,虽然我用到的只是它的冰山一角。
在度过了痛苦的熟悉软件的初期阶段后,就进入学习控制算法的阶段。程序虽然依然错误不断,但已经知道如何做相应的修改。这个阶段出错几乎都是向量、矩阵的维数出现错误,当然这也是很麻烦的问题,因为牵一发而动全身。有时甚至希望它出错,因为一个不出错但结果不正确的程序是最让人头疼的。开始总是以为囫囵吞枣的看看书上介绍的公式及步骤,然后用Matlab计算每个式子,出了错误就把它凑成没有错误,执行的时候双手合十就可以做出来了。
事实证明,在没有理解一个算法原理之前,是不可能正确的把它的仿真程序做出来的!
DMC方面,最重要的是理解线性系统的比例和叠加性质,只有理解了这一点,才能明白预测的原理;同时,时滞也是一个重要性和麻烦程度相当的概念。DMC最难理解的是时序,时间基点变动,很多向量都要移位、改变,理解了时序才能明白移位矩阵存在的意义。
GPC方面,在有了时序、时滞的概念后,GPC剩下的就是理解丢番图方程了。这两个方程与我们通常理解的方程不同,它的四个向量 、 、 、 都是通过对象传递函数凑出来的,其中 、 的阶次是变化的,并且是二维的;而 、 的阶次是固定的,而且是三维的。GPC原理介绍中有很多形如 的表达式, 是 维的矩阵,它的第 行记录的 的 次幂到 次幂的系数,所以这里 应理解为向量 ,这样才能在Matlab中计算这个表达式。
理解了算法以后,就是编写程序实现它们的阶段了。在Matlab程序中,多项式是用一维向量表示的,该向量的每一个元素是所对应的多项式的某一阶次的系数。本程序中,表示多项式的的向量的第一个元素是与 次幂的系数对应,第二个元素是与 次幂的系数对应,以此类推。这种对应原则在做程序之前就必须确定。在程序中,对这类向量赋值时必须要将对应阶次系数赋到相应的元素位上。例如在GPC程序设计中, 中的值赋到 时赋值位在特殊情况下是变化的。这点很重要。另外,在对如 的向量赋值时,应该把当前时刻的参量保存在 的第一元素位上,前一时刻的参量保存在第二元素位上,当然在保存之前应该将所有元素向后移。因为如果将第一时刻的参量保存存在第一位上,第 时刻的参量保存在第 位上,那么在时刻 时, 将不存在而出错。
(2) 设计的不足
1. 控制算法没有做外部接口,不能控制实际对象。
2. DMC,GPC设计没有随机干扰。
3. 没有理解GPC能控制不稳定的对象的原理。