MATLAB环境下的模型预测控制理论的应用

MATLAB环境下的模型预测控制理论的应用
MATLAB环境下的模型预测控制理论的应用

MATLAB环境下的模型预测控制理论的应用

丛爽邓娟

(中国科学技术大学自动化系,合肥230027)

E-mail:scong@ustc.edu.cn

摘要从模型预测控制的原理出发。介绍利用MA7ⅡAB模型预测控制工具箱进行模型预测控制器设计的全过程。就被控对象的不同模型。以及备类模型形式之间的转换做了具体的系统的阐述。在控刺器的设计过程中,给出不同情况下的控制器的设计方法,并且对控制器设计申的参数选择对系统控制性能的影响进行了分析与总结。最后通过数值实例说明了如何进行了模型预测控制器的设计。

关键词模型预测控制模型辨识阶跃响应模型系统仿真

文章编号l002—8331一(2005)16-0196—03文献标识码A中圈分类号TPl3

ModelPredictiveControlTheoryandApplicationunder

MATLABEnvironment

(Dept.ofAutomation,UniversityofScience&TechnologyofChina,Hefei230027)

Abstract:Basedontheprincipleofmodelpredictivecontrol,thepaperintroducesthewholeprocessofmodelpredic—fivecontrollerdesignwithmodelpredictivecontroltoolboxinMATLAB.Systematicallyrepresentthedifferentmodelsofcontrolledplant,aswellastheconversionsofthosemodels.Intheprocedureofthecontrollerdesign,differentcontrollerdesignmethodsaleintroduced.Atthe8alTletime,theanalysesandconclusionofeffectstosystemcontrolperformancein

theaspectofparametersselection啪done.Atlast.annumerical

exampleofthemodelpredictivecontrollerdesignis

given.

Keywords:modelpredictivecontrol,modelidentification,stepresponsemodel,systemsimulation

1引言

以状态空间法为基础的现代控制理论从20世纪60年代提出到70年代在理论上日趋完善,并且在许多方面得到了成功的运用。不过,在将其运用于工业控制过程时,效果却远远不及预期的好。由于现代控制理论要求建立被控过程的精确数学模型,而实际存在的工业过程往往具有复杂的结构和外部环境,不确定性因素较多,通常难以获得精确的数学模型,即使建立的是被控过程的近似模型,由于工业过程具有的时变和非线形等因素,使得基于近似模型设计的最优控制在实际运行中往往并不能保持在最优点,有时甚至会引起控制系统品质的严重下降。基于这种情况,控制界开始寻求新的控制方法以解决实际中所存在的问题。模型预测控制就是针对上述问题所提出的一种控制策略。与其他控制策略不同,预测控制需要分3步来解决问题。首先进行模型预测:每个“当前采样时刻”,预测未来某段时间内的过程输出,这种预测基于与过程动态相关的模型,由此获得的未来输出序列不仅与设定信号、已施加的控制输入和已产生的系统输出有关,而且还是尚未加入系统控制输入的函数;其次进行最优控制:对给定的性能指标进行极小化,得到未来的最优控制序列,该序列将使得未来的输出在性能指标“最优”的意义下达到设定值;最后是滚动优化:在当前时刻,仅采用第一个最优控制输入,在下一个采样时刻,重复上述过程。预测控制采用了滚动优化,这是与传统的最优控制最大的区别,传统的最优控制是用一个性能函数来判断全局最优化,预测控制的优化不是一次离线完成,而是反复进行的,因此适合哟用于动态特性变化和存在不确定因素的复杂工业过程。

传统的控制方法多是采用参数模型,如微分方程、传递函数、状态方程等。由于工业过程具有机理复杂、工况多变、参数漂移等不利于建模的特点,使得建立参数模型存在确定模型结构的困难。所以早期的预测控制所采用的是非参数模型,即利用被控过程的脉冲响应系数或阶跃响应系数来建立被控过程的模型,从而避免了确定模型结构的困难,其代表成果有1978年Richalet等人提出的模型测控启发控制(MPHC)t11后来被称为模型算法控制(MAC)田,以及Culter和Remaker在1980年提出的动态矩阵控制(DMC)嘲。

不过非参数模型自身也有局限性。首先,只有开环稳定的系统才能用有限的响应序列近似地描述,因而限制了预测控制的适用范围;其次,非参数模型不如参数模型简洁,且不易分析。80年代Astrom等人在所提出的自校正思想的基础上,结合预测控制中多步预测和滚动优化的思想,形成了以自适应控制为主要目的新型预测控制算法。这些新型预测控制算法和早期算法的一个显著区别是采用了参数模型。由于参数模型描述系统简洁,需要在线确定的参数少,故有利于实现自适应控制。这

基金项目:国家自然科学基金资助项目(编号:50375148)

作者简介:丛爽(1961-),女,博士,教授,博士生导师,主要研究方向为人工神经网络。模神经糊系统,运动控制,智能控制等。邓娟(1981-),女,硕士生,主要研究方向为预测控制,自校正控制,先进控制策略的设计与应用等。

1962005.16计算机工程与应用;

些算法以Clark提出的广义预测控制(GPC)t4,目最具代表性、影响最大。在结构建模没有误差、且噪声强度不很大的条件下,GPC不但能保证闭环稳定性,而且是一种性能优良的、适用面广的自适应算法。

虽然已有MATLAB环境下专门进行模型预测控制的工具箱(MvcToolbox),但要想很好地应用模型预测控制,必须并不是一件简单的事情。如何利用工具箱去设计好一个所期望的模型预测控制器,也必须很好地将工具箱与模型预测控制理论结合起来,只有对理论融会贯通,同时结合工具箱所具有的子程序,才能发挥工具箱的功效。该文利用MAlrIAB模型预测控制工具箱,就如何进行系统模型的辨识,控制器的设计与系统性能的分析给与详细的解读,其主要目的是根据理论具体分析利用模型预测控制工具箱进行各过程的设计、分析以及求解过程。文章最后给出实例。

2系统模型的辨识

为进行模型预测控制器的设计,首先需要进行系统模型的辨识,即根据系统的输入输出数据建立开环系统的模型。系统模型辩识的主要步骤分为两步:对输入输出数据进行预处理和根据处理后的输入输出数据进行系统模型的辩识。MATLABMPC工具箱中对输入输出数据进行预处理提供的相应函数有:autosc.m,scal.m,rescal.Ill,wrtreg.m。前三个函数用于对输人数据进行有关归一化的处理,wrtreg.m用于将从系统中获得的输入输出数据进行预处理。预处理的目的是:在获得输入输出数据之后,可采用最小二乘或部分最小二乘等线形回归方法计算系统的脉冲响应模型的系数。

MPC工具箱中提供的根据处理后的输入输出数据进行系统模型辩识的函数有:mlr.m与plsr.m。它们分别是利用最小二乘法与部分最/]、--乘法来获得多输入单输出系统(MISO)的脉冲响应系数模型。函数的输出均为脉冲响应模型系数矩阵theta。

在得到辨识结果theta后,MPC工具箱提供了其它的函数将theta转换为其他的模型,如阶跃响应模型,MPCrood模型等。由于在MPC工具箱中,模型预测控制器的设计主要基于系统的阶跃响应模型,因此,在完成脉冲响应辨识以后,往往需要转换为阶跃响应模型。用imp2step.m完成这样的转换。在完成辨识以后,可以用新的数据对辨识所得的模型进行校验,这通过函数validmod.m来完成。

3模型之间的转换

在MPC工具箱中有5种模型:状态空间模型,传递函数模型、阶跃响应模型、MPCmod模型、MPC传函模型。其中,状态空间模型与传递函数模型为MATLAB通用格式。MPC工具箱中提供了各种模型之间的转换函数,它们的转换关系与相应的函数如图1所示。

圈1各种模型之阃的转换函数3.1阶跃响应模型

对于一个渐进稳定的线性系统,它的单位阶跃响应序列{嘶}最终会随着时间趋于常值口Ⅳ(这个常值是阶跃响应的稳态值),即单位阶跃响应可以表示为:

A(g-I)=口#一1+叼’2+…+aszm+a—r‘(肌1’+…

因此,这里可以用序列{口t,a2,…甜来表示渐进稳定线性系统。

在MA-11.AB中,阶跃响应模型是一个包含了系统的单位阶跃响应系数以及系统输出维数‰采样周期delt、输出稳定性nout(i)的矩阵。当系统的第i个输出为稳定输出时,nout(1)=1;否则hour(1)=0。

3.2MPCmod模型

设一个系统如图2所示,它包含有未测量和可测量的扰动信号,以及测量噪声。该系统的离散状态空间描述为:x(k+1)=apx(k)+r。脚(I|})+I-d(七)+r∥(.j}),

y(k)可(.|})切(_j})

=C知(矗)+D皿(后)州(蠡)+占L印(而)+岳(矗)

定义:D=哦,Da,训,r=叽,L,瑚

MPCmod模型是一种特殊的状态空间形式。MPCmod模型是一个包含了矩阵①,r,C,D以及一些其它信息的矩阵,它有(n+n产1)行,max{7,l+叶n一时¨列。其中心和‰分别为测量扰动信号和未测量扰动信号的个数。

圈2MPCmod模型的包含的系统结构圈

4控制器的设计

MPC控制器的设计可以采用两种方法:基于阶跃响应模型进行控制器的设计及仿真与基予mpcrood模型进行控制器的设计及仿真。

4.1基于阶跃响应模型的控制器的设计及仿真这种方法的特点是:采用了工程上易于获取的对象阶跃响应模型,算法较为简单,鲁棒性较强,适用子纯延时、开环渐进稳定的非最小相位系统。

(1)输入输出有约束的模型预测控制器设计与系统仿真

所谓输入输出有约束是指系统的输入输出变量满足一定的上下界要求。MPC工具箱提供了函数cmpc.m来用于对输入输出有约束的系统进行设计与仿真。通过设置cmpc.m中的输入参数ulimt与ylimt,就可以规定你所希望的输入输出变量上下界及变化率。cmpc.m是图3所示系统进行模型预测控制器的设计与闭环系统的仿真。

圈3横型预测控制嚣的设计与系统仿真的结构圈

crapc.m的格式为:

y--cmpc(1,step,model,ywt,ttwt,M,P,tend,r)

计算机工程与应用2005.16197;

陟,M,ym]=cmpc(pstep,model,ywt,tttot,肘,P,tend,r,ulim,ylim,tfilter,dplant,dmodel,d)

对应的二次性能指标为:

Pn村~

J兰∑∑X删;2[ri(||}可)i(忌呵)】2+∑[uwt,fj)AM(矗呵)】2』;1/,dj;1虹1

其中,,,,(.|}呵)表示在第k步时对第f个输出在第.『步的预测值。

一般地,在用crape.nl完成设计与仿真后,再用函数plotall.m来画出仿真结果,在图形上能看到Y,u,ym的每一步的值。

(2)输入输出无约束的模型预测控制器设计

MPC工具箱提供的函数是mpccon.m。格式为:

Kmpc=mpccon(model,ywt,uwt,M,P)

二次性能指标与crape.m所采用的二次性能指标相同。输入参数同前。输出Kmpc为模型预测控制器的增益矩阵。MPC工具箱中提供了函数mpcsim.m对输入输出无约束的模型预测控制系统进行仿真,还提供了函数mpccl.In来计算闭环系统的MPCmod模型和控制器的MPCmod模型。

4.2基于状态空间模型的预测控制器设计

(1)输入输出有约束的状态空间模型预测控制器设计与闭环系统的仿真

用scrape.111进行输入输出有约束的状态空间模型预测控制器设计与闭环系统仿真。它针对图4所示系统进行模型预测控制器的设计与仿真。

它的格式是:

yp=scmpc(pmod,imod,ywt,ttwt,M,P,tend,r)

咖,“,ym]=scmpc(pmod,imod,ywt,UWt,M,P,tend,r,ulim,ylim,Kest,=,d,伽,wu)

测量扰动dI

每蔷糖田节出

,爿婴乎谓翌苎阡嚣。

№lfwI

测量输出硎量嗓声

圈4系统控制结构圈

(2)输入输出无约束的模型预测控制器设计

MPC工具箱提供的函数是8mpccon.m。格式为:

Ks=smpccon(imod,ywt,uwt,M,P)

输出骼为模型预测控制器的增益矩阵。

MPC工具箱提供了函数mpcsim.m对输入有约束输出无约束的模型预测控制系统进行仿真。若要对输入输出均无约束的系统进行仿真,只需将mpcsim.Ill的输人参数ulim设置为0或空矩阵。MPC工具箱还提供了函数smpccl.m来计算闭环系统的MPCmod模型和控制器的MPCmod模型。

在设计模型预测控制器的时候,需要设计的参数有预测时域长度P、控制时域长度肘、二次性能指标的输出误差加权矩阵ywt和控制量增量加权矩阵uwt。在实际应用中,这些参数的选取,主要是参照它们对控制性能的影响的定性趋势,根据被控对象的特性和控制性能要求,通过经验试凑来确定。

4.3数值实例

该节将通过数值实例来说明这几个参数对控制性能的影响。

一个双输入/单输出系统的传递函数为:

1982005.16计算机工程与应用

,=…一『5.72e1“1.52e。“]

””一I飞盯1玎J

采用基于系统的阶跃响应模型来设计模型预测控制器。

这个双输入/单输出.系统的输入输出数据在MPC工具箱demo下的数据文件mlr.mat中。用前面第二节中介绍的辨识函数mlr.1"11对这些输入输出数据进行辨识,设置其中的脉冲响应模型系数的个数为n=60,得到一个60xl的系统脉冲响应的系数矩阵。用imp2step.111将系统的脉冲响应转换成系统的阶跃响应模型。基于系统的阶跃响应模型,采用函数4.2节中的第2种情况:输入输出元约束的模型预测控制器设计中的mpccon(plant,ywt,uwt,M,P)函数来设计模型预测控制器。这里首先选取一组参数P=20,M=I,ywt=l,uwt=[11】,可求得一个2x20(输入个数xP)的模型预测控制器的增益矩阵。

为了观测所设计的模型预测控制器的控制效果,这里采用4.2节中介绍的mpcsim。m函数进行系统仿真。在仿真的过程

n一^一1,.

中,在系统的输出加上输入为l,传递函数为亲生牛e…的扰

l二S十l

动,设定系统的期望输出为1。控制系统仿真结果如图5(a)所示,其中上图为系统输出和期望输出,下图为系统的控制量。

下面通过对两幅图的比较来分析uwt的增大给系统的稳定性和响应速度带来的影响。

从图5(a)中可以看出:上升时间4<6秒;峰值ym=1.411;最大过调量Mp--.41.1%。输出曲线在期望值上下波动,经过25秒后,波动的最大范围为le—lO.05723。观测控制律的曲线可知:控制量“1(实线):M1曲=一0.1458;ul。=O.0713;变化范围是0.2171;控制量u2(虚线):l‘2m=0.0597;u2,。----O.9225;变化范围是0.8628。

另外选取一参数为:氏20,M=I,ywt=l,uwt=[551。仿真结果如图5(b)所示。

叫10

锯0

1.O

删0

舶(秒)40

2040

时闻(秒1

(a)控制系统仿真结果1

(b)控制系统仿真结果2

圈5

从图5(b)中可以看出:上升时间t两秒,与图5(a)的上升时间t,<6秒相比,增加了;峰值),。=1.203,与图5(a)的峰值

(下转212页)

30帧,取0=33ms,D。ffi=240ms,在10/100Mbit/s的以太网上传输,每个多媒体包平均长度为10kbyte,令Dm=10ms,由定理2得到:7≤B≤14。预先选取日为10,在实际监控过程中根据信息包传输到达的时间及其抖动时间估算D。,并令D。-D。,而此时氏可以按照下式进行计算阎:

Dn庐一个多媒体信息包长度/网络实际传输速率

这样动态改变用户缓冲区大小,以保证此时存储内容是最新的,从而保{芷当网络中出现传输抖动时从缓冲区取出数据不缺乏也不冗余,避免出现图形跳跃或者图形重复的现象。通过多用户同时访问服务器上这幅图象来模拟线路忙启动用户缓冲区的情况。对于加入与不加入该算法动态更新用户缓冲区中的内容,从同时支持的用户数以及播放质量两方面做了比较,所得结果如下:

裹1对比结果

该实验结果表明该算法能有效改善系统传输特性,通过用户缓冲区中的数据保证播放的连续性,具有较强的适用性,可以进一步完善与推广。3结论

该文针对电子化图书馆海量分布多媒体信息资源的特点,研究了分步式多媒体信息在网络环境中同步传输的管理方案,给出了传输连续性的充要条件,给出了用户端缓冲区的配置方法以及传输抖动时间的预测方法,解决了多媒体对象同步传输时播放连续性的问题。在局域网环境下对该方案进行了测试,测试结果验证了该方案的实用性与合理性,在未来工作中将进一步完善该方案,提出了一种更为完善的基于Intemet等的大型网络环境中分布多媒体信息资源的同步传输管理机制。

(收稿日期:2004年8月)

参考文献

1.BlueBook(FY2000).HighPerformanceComputingandCommunica-tions:InformationTechnologyFrontiersforaNewMillenium.1999-042.中国电子图书馆技术研讨会论文集【C】.In:国家教委图书馆工作委员会,复旦大学,1997-11

3.郑庆华,李人厚.分布式多媒体同步中表现质量的参数计算叨.通信学报,1999;10(20)

4.王雷,蔡安妮。孙景鳖.延时估计和实时数据的同步控制【J】.1999;20(2)

5.宋军,顾冠群.多媒体通讯媒体间同步技术综述【J】.电信科学,1996;12(9)

6.ChenTMeta1.DesignandImplementationofadasktopcomputersupportedcooperativeworksystem[J].mEETransactionsonComputerElectronics,1994;40(4):827-835

(上接198页)

Ymt=1.411相比减少了;这两项对比说明增大uwt,系统动态响应速度降低。经过25秒后,波动的最大范围为le。ffil=0.01604,与图5(a)的leml=0.05723相比,降低了;这说明增大uwt,系统的稳定性增强。观测控制量的曲线可知:控制量u1(实线):ulf0.0244;l‘1。=0.2024;变化范围是0.1781;控制量u2(虚线):M2曲10.0459;H2。=0.1331;变化范围是0.0872;比较两次的控制量可以看出:增大uwt以后,系统的控制量有所降低。

由于系统本身有2阶延时,模型预测控制算法不具有消除延时的功能,所以输出曲线有2阶延时。

5控制器设计中参数选择对控制性能的影响下面就这几个参数的选择对系统控制性能的影响做简要说明和总结,供设计时参考。

(1)预测时域长度P:增大P有利于增强控制系统的稳定性和鲁棒性,但是系统的动态响应速度将变慢;减小P有利于增加系统的动态响应速度,但同时会降低系统的稳定性和鲁棒性。在动态响应速度基本满足的条件下,P应当适当选取的大一些。一般取P=-N/3,N为脉冲响应模型的长度。

(2)控制时域长度彪:肘应小于等子Po一般取胁(P。膨的大小对系统性能影响与P的影响近似相反。减小M有利于改善系统的稳定性和鲁棒性,但动态响应速度减慢。增大肘有利于提高系统的动态响应速度,但是系统的稳定性和鲁棒性随之降低。为调整参数方便,设计时可先根据被控对象的控制要求选初值M,然后通过仿真实验确定P。

(3)输出误差加权矩阵ywt:增加ywt,动态响应速度增加,2122005.16计算机工程与应用系统稳定性也将减弱。

(4)控制量增量加权矩阵ttwt:uwt和ywt的大小对系统性能的影响作用是相反的。增加uwt,系统稳定性增强,动态响应速度降低。

6结束语

文章从模型预测控制的原理出发,介绍了MAlrIAB模型预测控制工具箱的应用,具体可以概括将控制器的设计过程以分为三步:将被控对象转换成设计所需的模型,阶跃响应模型或rapcrood模型;根据设计的要求选取相应的函数设计控制器,最后用了实例展示如何使用MPC工具箱。同时说明参数的一般选取原则以及参数与系统性能之间的关系。

(收稿日期:2004年12月)

参考文献

1.RiehaletJ,RaultA,TestudJLeta1.Modelpredictiveheuristiccon—

trol:applicationtoindustrialprocess叨.Automatica,1978;14:415-4282.MehraRK,RouhaniR,RauhAeta1.,Modelalgorithmiccontrol

(MAC):basictlleoreticalresultsonrebustness[C].In:PrecJACC。1979:387-392

3.CulterCR.BemakerBC.Dynamicmatrixeontrel-acomputercon-trolalgorithm.JACC,SanFrancisco,paperWP5-B

4.ClarkeDW,MohtadeC。TuftsPS.Generalizedpredictivecontrol-part1:the

basicalgoritlIm[J].Automatiea,1987;23(2):137-148

5.ClarkeDW,MohtadeC。TuftsPS.C,erneralizedproductivecontrol-part2:extensionsandinterpretations[J].Automatica,1987;23(2):149—160

MATLAB环境下的模型预测控制理论的应用

作者:丛爽, 邓娟, CONG Shuang, Deng Juan

作者单位:中国科学技术大学自动化系,合肥,230027

刊名:

计算机工程与应用

英文刊名:COMPUTER ENGINEERING AND APPLICATIONS

年,卷(期):2005,41(16)

引用次数:1次

参考文献(5条)

1.Richalet J.Rault A.Testud J L Model predictive heuristic control:application to industrial process 1978

2.Mehra R K.Rouhani R.Rault A Model algorithmic control (MAC): basic theoretical results on robustness 1979

3.Culter C R.Remaker B C Dynamic matrix control-a computer control algorithm

4.Clarke D W.Mohtade C.Tuffs P S Generalized predictive controlpart 1:the basic algorithm 1987(2)

5.Clarke D W.Mohtade C.Tuffs P S Gerneralized productive controlpart2:extensions and interpretations 1987(2)

相似文献(10条)

1.学位论文李灿军液位系统的辨识与预测控制研究2007

本文根据预测控制的三大机理,在分析基本的预测控制算法的基础上,重点研究了单容液位系统基于多模型的非线性系统建模与预测控制。

论文首先针对非线性系统建模与控制的发展现状,确定了本文的研究内容为多模型预测控制研究。紧接着介绍了多模型的产生、发展与研究现状;同时对预测控制产生的历史背景,发展历程和研究现状,预测控制的发展趋势和存在的问题进行了简要的综述。论文通过对单输入单输出线性离散模型的辨识说明了系统辨识问题的表示形式、基本原理、辨识的内容和步骤。在针对非线性系统多模型建模思想进行说明的基础上,重点对非线性系统多模型辨识子模型集辨识算法、非线性系统多模型辨识进行了研究。针对三种典型预测控制算法的基本结构和原理,深入分析了它们的预测模型、反馈校正与滚动优化方法,并对多模型预测控制进行了研究。接着对非线性系统的预测控制问题进行了探讨。并在此基础上,根据预测控制的三大机理,用多模型作为预测模型,论述了基于多模型的预测控制。 论文离线辨识单容液位系统的多模型预测控制的预测模型,并实现了对系统的预测控制器的设计。仿真研究表明基于多模型的非线性系统预测控制算法不论是局部还是全局的控制效果都优于常规的P工D控制,为解决非线性系统预测控制问题提供了一种可行的方法。 对全文进行总结的基础上,指出一些可深入研究或有待解决的问题。如智能控制与多模型的结合;辨识模型集的选择;非线性系统预测控制算法中主要设计参数对稳定性、鲁棒性及其他控制性能的影响;存在建模误差及干扰时预测控制系统的鲁棒性;如何选取优化策略,设计出控制效果好、适应性、鲁棒性强的新型预测控制器等。

2.学位论文刘超刚工业模型预测控制理论、算法及应用2008

模型预测控制是一种基于模型的先进控制技术。它产生于工业过程控制的实际需要,并在与工业应用的紧密结合中不断发展和进步。相对于其他传统的控制策略,预测控制具有相当大的优势:对于大范围多变量对象具有处理输入和状态约束的能力,处理变量耦合的能力和具有较强的运行鲁棒性等。这些优点使得预测控制能够有效地用于复杂工业过程的控制,并且已在炼油、化工、冶金、机械等工业部门的过程控制系统中得到了成功的应用。

本文主要内容包括: 1.系统地回顾了工业模型预测控制技术的发展历史,并对主要模型预测控制算法进行了简要的介绍和分析。 2. 介绍了模型预测控制技术中的模型辨识、控制器设计、参数调整等环节。并总结了国内外模型预测控制技术的应用软件。 3. 进一步分析了广义预测控制的原理,给出了广义预测控制参数的工程化调整规则。 4. 建立了固体氧化物燃料电池的动态机理模型,并在此基础上采用了动态矩阵控制算法。仿真结果表明了这种预测控制算法的有效性和实用性。

3.期刊论文张建明.王树青.Zhang Jianming.WANG Shuqing基于数据库的模型辨识及DMC控制器设计-吉林大学学

报(工学版)2004,34(z1)

过程模型的获取是模型预测控制的关键技术之一.随着计算机技术的广泛使用,工业过程中积累了大量的数据,从中可获取对象特性的有关信息.本文采用数据库技术进行了对象模型的辨识,并进行了动态矩阵控制器的设计研究.针对一个球罐液位系统的控制仿真实验表明本文采用的辨识方法具有较好的精度,在此基础上设计的DMC控制器具有令人满意的性能.

4.学位论文李玮间歇过程模糊预测学习控制方法研究2006

间歇生产过程是以顺序的操作步骤进行批量产品生产的过程,广泛应用于精细化工、药品生产、生物制品、现代农业等领域,并随着工业生产柔性化的趋势和市场对产品多样化的要求,受到越来越多的重视。传统的间歇生产过程中人工操作占很大的比重,自动化水平普遍较低,因此,迫切需要运用先进的控制策略和优化方法来提高生产效率、节约生产成本。 由于许多间歇过程单元存在非线性、大滞后、时变和数学模型不确定等特征,采取传统的PID控制,难以达到理想的控制效果;同时,又由于间歇过程的运行一般是在没有稳态工作点的过渡状态下进行,其控制和优化问题十分复杂,采用简单的智能控制策略效果欠佳。因此非常有必要研究新的智能控制策略。考虑到间歇过程具有一个鲜明的特点,即过程运行是分批重复进行的

,且每次的运行时间有限,这恰好与迭代学习控制(ILC)的适用特征相吻合。但是,传统的ILC是针对单输入单输出系统设计的,而且对过程控制中经常遇到的约束、耦合等问题的求解并不太适合。而模糊模型、预测控制在这些问题上具有各自的优势。因此,本课题在对上述三种方法进行综合应用并加以改进的基础上,给出了一种预测迭代学习新算法;研究了一种在无模型和无先验知识的情况下设计基于模糊预测迭代学习控制器的方案。编制了实现这种控制器算法的程序,通过仿真研究,验证了该控制器的性能。最后,考虑到农药生产属于典型的间歇过程,因此将本课题的研究结果应用于氧乐果合成反应温度过程的控制,较好的满足了控制要求。 本课题主要工作和研究内容如下:(1)分析了模糊控制、预测控制和迭代学习控制的发展现状。 (2)研究了模型预测控制的基本原理,深入分析了T-S模糊模型辨识方法,并将其与预测控制相结合,给出了模糊预测控制的两种结构。

(3)研究了迭代学习控制的基本原理,针对工业间歇过程常用的反馈-前馈迭代学习控制,分析比较了已有的两种反馈-前馈迭代学习控制存在的缺陷,在此基础上,研究了预测控制与迭代学习控制的结合技术,在迭代学习控制中引入预测的思想,给出了一种改进的迭代学习算法。 (4)将模糊模型辨

识技术、预测控制和迭代学习控制三者相结合,设计了一种新的基于模糊预测的迭代学习控制器。 (5)以参数时变时滞后过程为被控对象,仿真研究了本文设计的控制器性能。 (6)分析氧乐果合成反应对象的特性,利用所设计的控制器对合成反应温度过程控制进行仿真研究。然后,将该控制器用于氧乐果合成反应温度过程的控制。

5.学位论文李继文间歇过程模糊预测控制方法的研究2007

间歇生产过程是以顺序的操作步骤进行批量产品生产的过程,广泛应用于精细化工、药品生产、生物制品、现代农业等领域,并随着工业生产柔性化的趋势和市场对产品多样化的要求,受到越来越多的重视。传统的间歇生产过程中人工操作占很大的比重,自动化水平普遍较低,因此,迫切需要运用先进的控制策略和优化方法来提高生产效率、节约生产成本。 由于许多间歇过程单元存在非线性、大滞后、时变和数学模型不确定等特征,采取传统的PID控制,难以达到理想的控制效果;同时,又由于间歇过程的运行一般是在没有稳态工作点的过渡状态下进行,其控制和优化问题十分复杂,采用简单的智能控制策略效果欠佳。因此非常有必要研究新的智能控制策略。考虑到间歇过程具有一个鲜明的特点,即过程运行是分批重复进行的

,且每次的运行时间有限,这恰好与迭代学习控制(ILC)的适用特征相吻合。但是,传统的ILC是针对单输入单输出系统设计的,而且对过程控制中经常遇到的约束、耦合等问题的求解并不太适合。而模糊模型、预测控制在这些问题上具有各自的优势。因此,本课题在对上述三种方法进行综合应用并加以改进的基础上,给出了一种预测迭代学习新算法;研究了一种在无模型和无先验知识的情况下设计基于模糊预测迭代学习控制器的方案。编制了实现这种控制器算法的程序,通过仿真研究,验证了该控制器的性能。最后,考虑到农药生产属于典型的间歇过程,因此将本课题的研究结果应用于氧乐果合成反应温度过程的控制,较好的满足了控制要求。

6.学位论文孙磊模拟移动床分离过程的建模及预测控制策略研究2007

近年来,模拟移动床(Simulated Moving Bed,简称SMB)吸附分离技术在石油化工、精细化工和制药等领域得到广泛的应用。目前对模拟移动床的研究主要集中在过程建模和操作优化方面,而如何实现模拟移动床过程的先进控制正逐渐成为研究的热点。 模拟移动床工艺机理复杂,运行过程中影响分离性能的因素众多,利用常规控制策略已难以达到良好的控制效果。模型预测控制在处理复杂多变量控制问题时具有较大的优势,将其用于模拟移动床生产过程的控制有望获得良好的控制效果。本论文在模拟移动床模型化研究工作的基础上,利用子空间辨识方法建立了该过程的预测模型,并进一步研究了基于此模型的预测控制策略。针对实际生产中存在的吸附剂老化等过程的时变特性,提出了一种基于递推子空间辨识的自适应预测控制策略。仿真研究表明,该控制策略具有良好的控制性能。本论文的主要工作包括: (1)介绍了模拟移动床的发展历史、工作原理和工业应用。从模拟移动床的建模和控制两方面综述了目前模拟移动床研究的现状。 (2)通过对建模方法的分析研究,选择扩散柱塞流模型作为过程的数学模型。将此模型应用于联萘酚对映体的分离和C<,8>芳烃吸附分离对二甲苯两个分离过程。分析了芳烃吸附分离过程中影响吸附性能的参数与分离性能之间的关系,并且研究了模拟移动床吸附分离过程中参数变化和扰动对分离性能的影响。 (3)在简述预测控制原理和子空间模型辨识方法的基础上,以分离联萘酚对映体的模拟移动床吸附分离过程为研究对象,在考虑传质阻力的情况下,提出了一种基于子空间模型辨识的预测控制方法,并通过仿真试验考察了该控制策略在定值调节和随动调节下的控制性能以及对象时变情况下控制系统的鲁棒性。 (4)针对模拟移动床分离过程的时变特性,提出了一种基于递推子空间辨识的自适应预测控制策略。通过在线计算过程的输入和输出,实时更新R阵,进而使预测模型得到更新,利用一个模型匹配函数作为在线辨识模型和离线辨识模型间切换的标准。仿真结果表明即使在过程参数发生变化后,这种自适应预测控制器仍然具有良好的控制性能。

7.会议论文张建明.王树青基于数据库的模型辨识及DMC控制器设计2004

过程模型的获取是模型预测控制的关键技术之一.随着计算机技术的广泛使用,工业过程中积累了大量的数据,从中可获取对象特性的有关信息.本文采用数据库技术进行了对象模型的辨识,并进行了动态矩阵控制器的设计研究.针对一个球罐液位系统的控制仿真实验表明本文采用的辨识方法具有较好的精度,在此基础上设计了DMC控制器具有令人满意的性能.

8.学位论文李田鹏工业过程鲁棒PID整定及多变量预测控制研究2005

本文从工业控制的实际问题出发,对PID控制器参数整定以及鲁棒PID控制器参数整定进行了深入研究.为了获得鲁棒PID参数整定所需的过程模型,进行了闭环频域模型辨识的研究.针对乙醛精制装置实际工业过程,分析给出了基于多变量模型预测控制的控制方案并进行了应用研究.本文的主要成果及创新包括:1.针对常规PID控制系统,研究了基于标称对象的PID控制器参数整定技术,提出了一种能够同时满足无超调快速跟踪和PID控制器的输出约束的性能指标,并以该性能指标为目标,采用粒子群优化算法进行寻优,得到符合工业应用实际的最优PID控制器参数.2.针对实际工业过程存在被控对象参数变化和干扰等不确定性因素,导致基于标称对象的常规PID参数整定方法往往难以获得满意的控制效果的问题,研究了被控对象模型参数存在不确定边界下的鲁棒PID参数整定方法.提出了一种利用粒子群优化算法在MiniMax意义下进行鲁棒PID参数优化整定的方法,保证在被控对象在模型参数域内保持一致的性能和稳定性,在系统的鲁棒性能和稳定性之间取得了较好的折衷.3.提出一种基于继电反馈技术的闭环模型辨识方法,将被控对象近似为一个一阶加纯滞后过程,采用非对称继电器对被控对象进行一次继电器激励测试,在频域中可以辨识到准确的模型.该方法不仅可以辨识过程模型,而且可以辨识在预测控制中使用的由DCS层的PID控制器和被控过程组成的闭环广义对象.4.提出了乙醛精制装置的多变量预测控制控制与优化策略.乙醛精制装置由脱轻组分塔与成品塔两个精馏塔组成,由于存在耦合问题,导致该精制装置的操作不易稳定,该策略应用自主开发的多变量预测控制软件将该装置两个精馏塔统一考虑实施多变量预测控制,减小了成品塔温度的波动.优化策略保证了该精制装置能够始终运行于最优的稳态工作点上.

9.学位论文陆冬娜基于神经网络的非线性模型预测控制2007

预测控制自20世纪70年代提出以来,无论是在广度上还是深度上都有了长足的进步和发展,但是随着工业过程对象的日益复杂化,传统的线性预测控制方法已经不能满足当今工业控制需求了。工业过程中广泛存在的非线性特性使得非线性模型预测控制成了当今控制理论研究的重点及热点。非线性模型预测控制继承了传统预测控制的特点,摆脱了原有线性数学模型的束缚,强化了模型的预测功能,使控制性能得以改善。 神经网络自20世纪40年代提出以来,由于它能够充分逼近复杂的非线性映射关系,能够学习与适应不确定系统的动态特性,被广泛地应用于各种控制策略中。因此将神经网络的非线性特性引入预测控制,势必会为预测控制在工业过程中的应用带来新鲜的血液与生命力。本文正是在这样的背景下,提出了基于神经网络的非线性模型预测控制方法,首先采用神经网络模型辨识过程对象,然后通过神经网络控制器滚动计算并优化控制输出。 本文在DCS装置上,针对实验室水箱液位对象,尝试了基于神经网络的非线性模型预测控制,得到了良好的控制效果。同时,考虑到实际工业对象的复杂性,将此方法用于TE模型的控制仿真,同样取得了良好的控制效果。

10.学位论文周芦文基于聚类分析方法的非线性系统多模型预测控制算法研究2006

非线性系统模型辨识和控制问题是非线性系统研究中非常困难,但又十分重要的课题。基于聚类算法的多模型建模方法从系统的输入输出数据出发,充分地挖掘数据间的相关信息,合理地将其划分为具有明显特征的多个子空间集来表征系统的非线性特性,并且具有算法结构简单、收敛速度快且动态特性跟踪效果好等优点,而预测控制则是工业过程广泛应用的一种先进控制算法。研究基于聚类算法的多模型策略以及与预测控制方法相结合的多模型预测控制方法具有重要的理论研究意义和广泛的应用前景。 本文针对复杂非线性系统的建模问题,利用分解-合成的多模型策略,针对聚类初值选取问题,对K-means聚类算法进行改进,然后结合PLS建模方法辨识多模型参数,并引入基于模态变化的切换策略,提出了一种基于改进K-means聚类算法的多模型建模方法。通过对自定义非线性系统与PH中和过程的多模型建模仿真研究,表明该方法降低了原有聚类算法对初始值的依赖,提高了算法的收敛速度和建模精度。 由于子模型个数k在多模型建模精度以及系统的稳定性等方面发挥着重要作用,因此,在改进K-means聚类算法的基础上

,本文提出了两种优化k值的算法:一是将多尺度理论引入密度分布聚类算法,采用了一个动态阈值来融合相似类,从而确定最优k值以及最优的密度参数值;二是提出了一种聚类效果评价函数,以此来确定最优k值以及最优的密度参数值。通过对自定义对象的聚类以及pH中和过程的多模型建模仿真研究,表明了两种优化算法的有效性。最后,对多因变量PLS的建模方法进行了初步探讨,针对MIMO系统进行了建模效果分析。 针对多变量系统的多模型预测控制问题,本文在前面所提出的基于改进聚类算法的多模型建模方法的基础上,设计了具有约束的MIMO多模型预测控制器,针对多模型的切换问题,提出了基于模态切换、多步预测误差以及模糊区间判断的三种切换方式,通过对多输出pH中和过程的控制仿真表明了该控制算法是有效的,三种切换策略不同程度地改善了系统的暂态响应特性以及稳定性。

引证文献(1条)

1.李玲非线性时延对象智能控制算法的研究[学位论文]硕士 2005

本文链接:https://www.360docs.net/doc/7f18199158.html,/Periodical_jsjgcyyy200516060.aspx

下载时间:2010年4月29日

MatLab在中学数学教学中的应用

MatLab在中学数学教学中的应用 摘要:多媒体教学受到人们的日益重视,制作多媒体课件的能力日趋成为衡量一个教师教学能力的标准之一。MatLab功能强大且简单易用,本文首先对MatLab的发展历史和基本组成框架进行了简单介绍。在此基础上,利用MabLab函数绘制了学数学教学过程中常见的二维和三维函数。并得出结论认为,MatLab适用于中学多媒体课件的制作。 关键词:多媒体教学中学数学MatLab 1 引言 随着计算机技术的发展,多媒体教学越来越受到人们的重视。现代教育理论认为[1]:全面实施素质教育,传统教学陈旧的教学手段和简单的教学技术在当今世界的多层次教学、演示教学、实验教学等现代化课堂教学中就显得力不从心。实验心理学家赤瑞特拉通过大量的实验证实:人类获取的信息83%来自视觉,11%来自听觉,1.5%来自触觉,这三个加起来达到95.5%。可见如何充分利用这三者来提高教学质量是人类认知心理学的要求。 多媒体计算机辅助教学是指利用多媒体计算机,综合处理和控制符号、语言、文字、声音、图形、图像、影像等多种媒体信息,把多媒体的各个要素按教学要求,进行有机组合并通过屏幕或投影机投影显示出来,同时按需要加上声音的配合,以及使用者与计算机之间的人机交互操作,完成教学或训练过程。Matlab 是美国MathWorks 公司自20 世纪80 年代中期推出的数学软件,具有优秀的数值计算能力和卓越的数据可视化能力。尽管MatLab 并不是一专门的教学软件,但其强大的绘图功能使得数学教学中的抽象概念直观易解。 2 多媒体教学特点 多媒体技术的特性主要包括信息载体的多样化、集成性和交互性三个方面[2]。信息载体的多样化指的就是信息媒体的多样化多媒体就是要把机器处理的信息多样化或多维化, 使之在信息交互的过程中, 具有更加广阔和更加自由的空间。多媒体的集成性主要表现在两个方面,即多媒体信息媒体的集成和处理这些媒体的设备的集成,。对于前者而言,各种信息媒体尽管可能会是多通道的输入或输出,但应该成为一体。对于后者而言,指的是多媒体的各种设备应该成为一体。多媒体的交互性则是指用户在使用多媒体过程中可以与之进行交互,输入目标参数,从而得到理想中的多媒体信息输出。 多媒体技术的特性决定了多媒体教学如下特点: 1)教学手段集成化 多媒体计算机集激光唱盘、录像机、电视机和计算机控制于一体, 即可以充分利用语音和电视教学的优势, 又有计算机交互式教学的特点,克服了传统教学手段三个“一”(一支粉笔、一本书、一张嘴)的单一性缺点。 2)教学方式多样化

Matlab+灰色预测模型模型GM(1,1)

GM(1,1)灰色预测模型 Introduction Initial 给定原始序列: x(0) =(x(0)(1), x(0)(2), x(0)(3)…, x(0)(n)) Step 1 一次AGO(1-AGO)生成序列,以弱化原始序列的随机性和波动性:x(1) =(x(1)(1), x(1)(2), x(1)(3)…, x(1)(n)) Matlab Program clear syms a b; c=[a b]'; fid=fopen('.\Grey Model\test.txt'); x0=fscanf(fid,'%f');x0=x0'; fclose(fid); x1=cumsum(x0); %原始数据累加 n=length(x0); for i=1:(n-1) z(i)=(x1(i)+x1(i+1))/2; %生成累加矩阵end %计算待定参数的值 Y=x0;Y(1)=[]; Y=Y'; B=[-z;ones(1,n-1)];B=B'; c=inv(B'*B)*B'*Y; c=c'; a=c(1);b=c(2); %预测后续数据 %预测之后10个时间单位的数据 xx1=[];xx1(1)=x0(1); for i=2:(n+10) xx1(i)=(x0(1)-b/a)/exp(a*(i-1))+b/a; end xx0=[];xx0(1)=x0(1);

Step 2 (1) dx (1) dt +ax1t=u,式中a, u为待定系数。 灰微分方程模型为: x0k+az1k=u,z为背景值 z1k=1/2(x1k+x1k?1) (2) 构造矩阵B和数据向量Y n Y n=Ba Y n=x02 x03 ? x0n , B= ?1/2(x11+x12), ?1/2(x12+x13), ? ?1/2(x1n?1+x1n), 1 1 ? 1 a=a u=(B T B)?1B T Y n Step 3 模型响应函数 x1k+1= x01?u e?ak+ u x0k+1=x1k+1?x1k Step 4 检验和判断GM(1,1)模型的精度(1) 残差检验for i=2:(n+10) xx0(i)=xx1(i)-xx1(i-1); end %关联度检验 for i=1:n e(i)=abs(x0(i)-xx0(i)); end mmax=max(e); for i=1:n ee(i)=0.5*mmax/(e(i)+0.5*mmax); end r=sum(ee)/n; %后验差检验 x0bar=sum(x0)/n; s1=0; for i=1:n s1=s1+(x0(i)-x0bar)^2; end s1=sqrt(s1/n); s2=0; ebar=sum(e)/n; for i=1:n s2=s2+(e(i)-ebar)^2; end s2=sqrt(s2/n); C=s2/s1; p=0; for i=1:n if abs(e(i)-ebar)<0.6745*s1

灰色预测模型的Matlab程序及检验程序(精)

灰色预测模型的Matlab 程序及检验程序 %灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3];% 原始序列 B=cumsum(A);%累加n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C; ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function [ q,c,p ] = checkgm( x0,x1 ) %GM 检验函数 %x0 原始序列

%x1 预测序列 %·返回值 % q –- 相对误差 % c -- ·方差比 % p -- 小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i)) < 0.6745*s1) p=p+1; end end p=p/len; end

灰色预测MATLAB程序

作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end

for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,: );%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列 alpha %显示输出参数数列 var %显示输出预测值 error %显示输出误差 c %显示后验差的比值 作用:数据处理判断是否可以用灰色预测、求级比、求累加数列、求a b的值、求预测方程 clc,clear x0=[ ]'; %注意这里为列向量 n=length(x0); lamda=x0(1:n-1)./x0(2:n) %计算级比 range=minmax(lamda') %计算级比的范围 x1=cumsum(x0) %累加运算 B=[*(x1(1:n-1)+x1(2:n)),ones(n-1,1)]; Y=x0(2:n); u=B\Y %拟合参数u(1)=a,u(2)=b x=dsolve('Dx+a*x=b','x(0)=x0'); %求微分方程的符号解

灰色系统新陈代谢模型源码(matlab)

function g(x); %定义函数gm(x) for j=1:10 clc; %清屏,以使计算结果独立显示 format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换x=x'; end; n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋与矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=-0.5*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B.'*B)*B.'*y; %计算参数α、μ矩阵 for i=1:n+1 %计算数据估计值的累加数列,如改n+1为n+m可预测后m-1个值ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:); end var(1,:)=ago(1,:) for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=var(i,:)-x(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列 alpha %显示输出参数α、μ数列 var %显示输出预测值 error %显示输出误差 c %显示后验差的比值c var=fix(var);

灰色预测matlab程序

Matlab的灰色预测程序: y=input('请输入数据'); n=length(y); yy=ones(n,1); yy(1)=y(1); for i=2:n yy(i)=yy(i-1)+y(i) end B=ones(n-1,2); for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1; end BT=B'; for j=1:(n-1) YN(j)=y(j+1); end YN=YN'; A=inv(BT*B)*BT*YN; a=A(1); u=A(2); t=u/a; t_test=input('输入需要预测的个数'); i=1:t_test+n; yys(i+1)=(y(1)-t).*exp(-a.*i)+t; yys(1)=y(1); for j=n+t_test:-1:2 ys(j)=yys(j)-yys(j-1); end x=1:n; xs=2:n+t_test; yn=ys(2:n+t_test); plot(x,y,'^r',xs,yn,'*-b'); det=0; for i=2:n det=det+abs(yn(i)-y(i)); end det=det/(n-1); disp(['百分绝对误差为:',num2str(det),'%']); disp(['预测值为:',num2str(ys(n+1:n+t_test))]); 请输入数据[29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79] 输入需要预测的个数4

百分绝对误差为:14.5128% 预测值为:110.5718 120.8171 132.0116 144.2434

【方法】Matlab中常见数学函数的使用

【关键字】方法 给自己看的----Matlab的内部常数(转) 2008/06/19 14:01 [Ctrl C/V--学校 ] MATLAB基本知识 Matlab的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或inf 无穷大 Matlab的常用内部数学函数

没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下: 首先加载maple中的student函数库,加载方法为:maple(’with(student)’) 然后运行maple中的配方命令,格式为: maple(’completesquare(f)’)把f配方,其中f为代数表达式或代数方程 mapl e(’completesquare(f,x)’)把f按指定的变量x配方,其中f同上 maple(’completesquare(f,{x,y,...})’)把f按指定的变量x,y,...配方maple(’completesquare(f,[x,y,...])’)把f按指定的变量x,y,...配方, 如何用matlab进行多项式运算 (1)合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量factor(表达式) (3)展开 syms 表达式中包含的变量 expand(表达式) 我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’)

灰色预测模型matlab程序精确版

灰色预测模型matlab程序 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,mat lab6.5 ,使用本程序请注明,程序存储为gm1.m %x = [5999,5903,5848,5700,7884];gm1(x); 测试数据 %二次拟合预测GM(1,1)模型 function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=size(z1,2); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au

ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '('; rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,r ightbra,'+',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1 = size(ze1,2); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20

灰色预测模型matlab程序精确版

%x=[1019,1088,1324,1408,1601];gm1(x); 测试数据%二次拟合预测GM(1,1)模型 function gmcal=gm1(x) if nargin==0 x=[1019,1088,1324,1408,1601] end format long g sizex=length(x); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=length(z1); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au afor = au(1); ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '(';

rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+ ',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1=length(ze1); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20 Aval = au2(1); Bval = au2(2); %Aval,Bval %输出预测的 A,B的值 strcat(x1t1,'=',num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,'+',lef tbra,num2str(Bval),rightbra) %输出时间响应方程 nfinal = sizex-1 + 1;(其中+1可改为+5等其他数字,即可预测更多的数字) %决定预测的步骤数5 这个步骤可以通过函数传入 %nfinal = sizexd2 - 1 + 1; %预测的步骤数 1 for k3=1:nfinal x3fcast(k3) = constant1*exp(afor1*k3)+ua; end %x3fcast %一次拟合累加值 for k31=nfinal:-1:0 if k31>1 x31fcast(k31+1) = x3fcast(k31)-x3fcast(k31-1); else if k31>0

MATLAB数学软件在数学课堂中的应用

论文 摘要 MATLAB数学软件是集数值计算、图形处理等功能为一体的数学应用软件.传统的数学教学比较枯燥,而MATLAB数学软件应用于数学课堂中,给教学上带来了很大的方便,本文介绍利用MATLAB软件在运算、绘图方面的优势应用于基础数学教学里的数学分析、线性代数、概率统计、数值分析、运筹学、解析几何等.从而使得学生的积极性以及主动学习的兴趣大大增加. 关键词:MATLAB;数学教学;应用

MATLAB数学软件在数学课堂中的应用 The Application Of The Matlab in Mathematic Teaching ABSTRACT MATLAB is mathematical software capable of numerical computation, graphics pr -ocessing and so on. The traditional mathematical education is very boring while the ap--plication of MATLAB mathematical software in the mathematics class has brought gre -at convenience to teaching. This paper introduces how the strengths of the software, su-ch as operation and drawing, are used in mathematics teaching of mathematical analysi -s, linear algebra, probability statistics, numerical analysis, operational research, analyti-c geometry etc. As a result, it will enormously increase students’ enthusiasm and interes -t in study. Key words:MATLAB;mathematical education; application

灰色预测MATLAB程序

灰色预测 专设工⑼他QA—叫吋)为原始数列.其1次累 ?加生成数列为恥=妙①曲⑵,…卅何),其中 X° 仇)二工* ° (0.址=1=2= -:n 5-1 卷定义卫的决导数为 d(k) = *町(上)=x 叫咼-x cl)(Jt-l). 令为数列工①的邻值生成数列.即 却(去)=^(*) + (1- a)x0)(t-lX 于是定义GM (L 1)的灰微分方程模型为 d(k)-血⑴住)=K 即或严>(£) + “尹⑻=人⑴ 在式(1)中』。>(灼称为灰导数,我称为发展系数, 弧称为白化背景值,b称为灰作用量乜 将时刻表殳二2「3「/代入(1)式有 V!1「— a y=代⑶ B =I b*- : X闵0)-Z,:](K)1

于是G\I <1?1)複至可表示为Y = Bu. 現在问题归结为求sb 在值。用一元线性回归?即最小二秦法求它们的活计值 为 注二实陌上回归分析中求估计值是用软件计尊的?有标准程序求解,iOmaClab 等。 GM <1? 1>的白化晏 対于G\I <1> 1)的灰微分方程(1) >如果将灰导数打(Q 的时刻 视为连绫变里"则x°)视为时问(函数卅⑺,于是*〉(Q 対血于导数里级 心2 >白化背臬值申的对应于导数卅⑴。于是G\I (1,1)的坝徽 分方樂対应于的白微分 方程为 内?则数堀列X?可以塗互G\I <19 1) 且可以进行页 色预测。否朋,対数摄做适当的克换处理■如平移叢换: 取C 使得鞍据列 严伙)=工⑴伙)+ G 上=1,2,…, 的级比都華住可吝禎盖内。 心⑴⑴ + o?i> (r)二dr <2) GM mi )质色预测的步骤 1 ?教摇的枪绘与处連 为了ftilGAl (1,1)建複方法的可行性,亲要为已知期S 做必要的检蛉 处理。 设原始教据列为了 逛=(乂°(1)*6(2)严炉00; >计算数列的级比 如果所有的级比都落在可容覆盖区间 ? fc = A- 2,3"?

灰色预测模型的MATLAB 程序及检验程序

灰色预测模型的Matlab程序及检验程序%灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.232.626.723.020.018.917.516.3];%原始序列B=cumsum(A);%累加 n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C;ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function[q,c,p]=checkgm(x0,x1) %GM检验函数 %x0原始序列 %x1预测序列 %·返回值

%q–-相对误差 %c--·方差比 %p--小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i))<0.6745*s1) p=p+1; end end p=p/len; end 等级相对误差q方差比C小误差概论P I级<0.01<0.35>0.95 II级<0.05<0.50<0.80 III级<0.10<0.65<0.70 IV级>0.20>0.80<0.60

灰色预测MATLAB程序

灰色预测M A T L A B程 序 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

灰色预测 作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i- 1))+alpha(2,:)/alpha(1,:);%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列

MATLAB在数学中的应用

MATLAB在微分方程中的应用 12级通信一班张丹丹1202301039 摘要:MATLAB的强大功能也是大学的数学教育中是相当重视其学习重要性的原因之一。它能将运用者从繁杂的计算束缚中解救出来,把更多的精神投入到数学的基本含义的理解上,因此,它逐渐成为大学生们课程中的规范和重要工具。MATLAB在信息论、高等数学与代数中作图和教学中的应用,从而充分体现了MATLAB功能的强大,特别是绘图功能,矩阵运算,数值分析运算。借助MATLAB的运用,使学习者对数学的欣赏得以向群众普及,这对数学文明的传递具有重要意义。以下主要从数学中的解微分方程及其应用的角度来思考。 关键字:MATLAB介绍解微分方程绘图应用 一、MATLAB (一)MATLAB简介 MATLAB(Matrix Laboratory,矩阵实验室)是MathWorks公司开发的,目前国际上最流行,应用最广泛的科学与工程计算软件。它集成二维和三维图形功能,已完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言-M语言,利用M语言可以通过编写脚本或则函数文件实现用户自己的算法。MATLAB是目前发展最快的软件之一,其在多线程计算、视频图像算法等方面更加突出,能够从Symbolic math Toolbox 中生成Simscape语言方程,SimulMATLABink 中增加了Simulink PLC Coder。 (二)MATLAB的功能与特点 MATLAB集科学与工程计算机、图形可视化、多媒体处理于一体,并提供了Windows 图形界面设计方法。MATLAB语言有以下特点: 起点高 2.人机界面友好,编程效率高 3.强大而智能化的作图功能 4.智能化程度高 5.Simulink动态仿真功能 二.Matlab求解微分方程 求微分方程(组)解析解的命令 应用dsolve函数求解方程(‘方程1’,‘方程2’,…,‘方程n’,‘初始条件’,‘自变量’) 例1 求du/dt=1+u^2的通解. 输入命令:dsolve('Du=1+u^2','t') 结果:u = tg(t+c1) 例2.求微分方程的特解. x’(t)=2x-3y+3z y’(y)=4x-5y+3z Z’(t)=4x-4y+2z 输入命令: [x,y,z]=dsolve('Dx=2*x-3*y+3*z', 'Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z', 't'); x=simple(x) % 将x化简 y=simple(y) z=simple(z) 结果为:x = (c1-c2+c3+c2e -3t-c3e-3t)e2t y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t

灰色预测模型matlab程序精确版

灰色预测模型matlab程序 灰色模型预测是在数据不呈现一定规律下可以采取的一种建模和预测方法,其预测数据与原始数据存在一定的规律相似性 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,mat lab6.5 ,使用本程序请注明,程序存储为gm1.m %x = [5999,5903,5848,5700,7884];gm1(x); 测试数据 %二次拟合预测GM(1,1)模型 function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=size(z1,2); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN;

%B,au0,au afor = au(1); ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '('; rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,r ightbra,'+',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1 = size(ze1,2); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1;

MATLAB 在数学中的应用

MATLAB 在数学中的应用-中学数学论文 MATLAB 在数学中的应用 江苏苏州工读学校蔡宇白 数学作为一切科学的基础,能够用抽象的数学关系式描述客观规律。高等数学(简称高数)是理工科非常重要的必修课程,财经类专业则常常只需要涉及其中的微积分部分。高等数学课程中涉及到的数学思维、知识、方法为今后更深入的学习奠定了基础,也有利于学生创新思维、计算、空间想象、逻辑推理、抽象思维等能力的培养。数学学习的最根本目的是为人们的实际应用而服务,因此传统的围绕数学相关规则、定理、定义、公式、证明进行教学的教学模式已经难以适应时代要求,纯粹的数学定理学习、解题方式训练难以深入到数学的核心, 更难以做到在实际科研、生活中的灵活运用。 对于学生们的数学实际应用能力普遍不强的情况,数学实验课可以很大程度的改善这个问题,同时使学生能够学生参与到数学应用中来,而不是枯燥乏味的定理、定义证明。MATLAB 作为一种数学软件,它的使用能够有效提高学生的学习积极性,也能提高学生的创新及应用能力。 一、MATLAB 的特点及优势 MATLAB 软件具有强大的人机交互功能,早在1984 年就被美国的Mathworks 公司开发出来并得到了广泛推广应用,此软件主要特点是强大的矩阵计算能力,能够把程序设计、可视化、数值计算等功能融合起来,并能帮助用户实现绘图、仿真、运算等功能。MATLAB 也是目前科研人员、产品开发人员常用的一大软件工具,能帮助用户实现场景建模、仿真、参数调节等功能。因此在高数学习过程中结合使用MATLAB,能够让学生理解数学知识更加直观和透

彻,还能有效提高学生们的科研实践和动手能力。 MATLAB 发展至今,已经得到了成熟而广泛的应用,其特点与优势主要有以下几点: (一)语言简单,易于使用与理解 MATLAB 软件使用的语言结构及语法结构与C/C++ 等语言很相似,且近期出现的新型MATLAB 软件也都是基于C++语言而开发出来的,且比C/C++语言结构和语法结构更简单,比较符合人们日常语言使用习惯,易于科研人员使用。具有输入、输出、数据结构、函数、语句、面向对象等语言特点。 (二)编程环境友好 MATLAB 软件具有精致的编程界面,操作起来十分简单,具有较强的人机交互能力。软件中的Help可以供用户查询语句使用方法,软件还能直接运行程序不需像C/C++ 等软件一样需先进行编译。在运行中,能及时检查出程序中出现的语法错误,还等在程序中设置断点,使程序能够单步执行。执行程序过程中的数据能通过查看Workspace 中变量数据以方便分析。 (三)强大的数据处理及图形处理能力 MATLAB 具有强大的可视化、矩阵运算等数据处理能力,图形绘制有二维、三维、动画、图像处理等能力,常被用于工程制图与科学计算。MATLAB 中包含了大量的数学处理函数,能够实现各种所需的运算功能。 二、MATLAB在高等数学中的应用 (一)符号计算 高数中涉及到的计算主要有函数求微分、求积分、求极限、级数求和、傅里叶和幂级数展开等等。这些计算问题如果单纯依靠老师讲解分析很难使学生深刻

灰色理论预测模型及GM(1,1)matlab程序

灰色理论预测模型及GM(1,1)matlab程序灰色预测方法简介 灰色预测是一种对含有不确定因素的系统进行预测的方法。灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。其用等时距观测到的反应预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。通过对原始数据的整理寻找数的规律,分为三类: a、累加生成:通过数列间各时刻数据的依个累加得到新的数据与数列。累加前数列为原始数列,累加后为生成数列。 b、累减生成:前后两个数据之差,累加生成的逆运算。累减生成可将累加生成还原成非生成数列。 c、映射生成:累加、累减以外的生成方式。 建模步骤 a、建模机理 b、把原始数据加工成生成数; c、对残差(模型计算值与实际值之差)修订后,建立差分微分方程模型; d、基于关联度收敛的分析; e、gm模型所得数据须经过逆生成还原后才能用。 f、采用“五步建模(系统定性分析、因素分析、初步量化、动态量化、优化)”法,建立一种差分微分方程模型gm(1,1)预测模型。 GM(1,1)程序: % 本程序主要用来计算根据灰色理论建立的模型的预测值。 % 应用的数学模型是GM(1,1)。 % 原始数据的处理方法是一次累加法。 clear;clc; % load ('data.txt');

% y=data'; y=[3 4 5 4 7 7]; n=length(y); yy=ones(n,1); yy(1)=y(1); for i=2:n yy(i)=yy(i-1)+y(i); end B=ones(n-1,2); for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1; end BT=B'; for j=1:n-1 YN(j)=y(j+1); end YN=YN'; A=inv(BT*B)*BT*YN; a=A(1); u=A(2); t=u/a; t_test=input('请输入需要预测个数:'); i=1:t_test+n; yys(i+1)=(y(1)-t).*exp(-a.*i)+t; yys(1)=y(1); for j=n+t_test:-1:2 ys(j)=yys(j)-yys(j-1); end x=1:n; xs=2:n+t_test; yn=ys(2:n+t_test); plot(x,y,'^r',xs,yn,'*-b'); det=0; for i=2:n det=det+abs(yn(i)-y(i)); end det=det/(n-1); disp(['百分绝对误差为:',num2str(det),'%']); disp(['预测值为:',num2str(ys(n+1:n+t_test))]);

相关文档
最新文档