登录
首页 » Others » matlab模型预测控制

matlab模型预测控制

于 2020-12-02 发布
0 614
下载积分: 1 下载次数: 8

代码说明:

介绍MPC,简介预测控制动态矩阵能直接处理带有纯滞后的对象,对大惯性有很强的适应能力,又有良好的跟踪性能和较强的鲁棒性,并且对模型精度要求低,所以在工业过程中有很强的适用性。本文针对DMC算法进行研究,并在此基础上用matlab进行了系统仿真验证了该算法的优点。口经验交流口仪器仪表用户P已知的情况下,控制时域长度M越小,越难保证输出在各采能的 Window标准图形用户界面,使优化问题操作简单方便。样点紧密跟踪期望输出值,系统的响应速度比较慢,但容易得在 Matlab制作图形用户界而(GUI)的设计环境下,用M文件到稳定的控制和较好的鲁棒性;控制时域长度M越大,控制来进行CU编程,使GU设计变得简单、快捷。的机动性越强,能够改善系统的动态响应,增大了系统的灵活首先在Meab的命令窗下输人 guide命令或者利用文件性和快速性,提高控制的灵敏度,但是系统的稳定性和鲁棒性菜单中的new选项下的GUI,即可以进入CUI设计窗口。从变差。因此,控制时域长度的选择应兼顾快速性和稳定性。窗口的左侧工具栏中选取需要的控件,绘制在右侧锥形窗口;4)控制加权系数双击各控件图标,即打开该控件属性对话框,对其进行属性设控制加权系数主要用于限制控制增量的剧烈变化,使控置。保存图形界面时,系统将直动生成一个同名的m文件,打制量的变化趋于平缓,以防止超出限制范围或发生剧烈振荡,开此程序文件,对图形界面各控廾的回调函数 Callback()增减少对系统的过大冲击。增加控制值加权系数的值,控制作加所需的程序代码,以完成各种操作。设计完成之后的得到用减弱,闭环系统稳定,输出响应速度减慢,有益于增加系统的界面如图4所示。的稳定性;但过人的控制加权系数会使控制量的变化极为缓动态矩阵控制算法仿真慢,系统得不到及时的调节,反而会使动态特性变坏7。拴制牌出图积样周期预測时域斑度「F动态矩阵控制算法的优点I)直接在控制算法中考虑预测变量和控制变量的约束条控制时域长度M=1件,用满足约束条件的范围求出最优预测值输入戏象横型控淛权系数2)把控制变量与预测变量的权系数矩阵作为设计参数,系统设定值在设计过程中通过仿真调节鲁棒性好的参数值。3)预测变量和控制变量较多的场合,或者控制变量的的设定在给出的目标值范围内,只是具有自由度,预测变量的定图4动态矩阵控制算法界面设计常状态值被认为是有无数组组合。5结束语4)从受控对象动态特性设定到最后作为仿真来确定控制性由上述仿真结果可以知道,动态矩阵控制效果比传统能为止。DMC算法以直接作为控制量,在控制中包含了数字积PID的控制效果好。动态矩阵控制采用工程上容易得到的阶分环节,因此,即使在模型失配的情况下,也能得到无静差控制。跃响应作为数学模型、运算量小、算法简单、在线实时方便,具4仿真研究有良好的调节品质和很强的鲁棒性,能抑制被控对象的大迟针对被控对象C(s)=12滞特性,能够满足生产现场的需要,获得满意的控制效果,因17.2s+进行仿真,取采样周期而有良好的应用前景。同时基于 Matlab汝计实现了动态矩阵T=2s,模型时域长度为N=90,预测时域长度P=6,控制时控制算法图形用户界面,为动态矩阵控制算法提供了一个简域长度M=1,控制权系数A=1,系统设定值y,=1。对模型在单实用的平台。由于 Matlab具有良好、开放的可扩展性,在应用阶跃扰动下进行仿真,得到如图2所示的控制曲线,可以知道中,用户可以根据实际问题编写相应的函数文件,在CU平台输控制效果较好。入要修改的参数即可完成优化求解操作简单、非常实用。口与传统的PID控制器的控制效果进行比较,其中传统参考文献PD的参数采用工程整定法中的动态特性参数法(又称Z-NL1]李国勇.智能控制及其 MATLAB实现[M]北京:电子工业整定法),得到的参数为Kp=1.5,T1=1,T=0.5,仿真结果出版社,2005:285-289如图3所示。2]席裕庚预测控制[M].北京:国防工业出版社,1993[3]周福恩,毕效辉.动态矩阵控制算法在过程控制中的应用研究[J].南通航运职业技术学院学报,2005,4(1)4345[4]何同祥,常宁青.动态矩阵控制算法在工业电加热炉温度控制中的应用[J.仪器仪表用户,2011,(01):28-3004[5}李玉红,刘红军,王东风,韩璞.一种新型的动态矩阵控制算法及仿真研究[J]计算机学报,2005,22(2):103-1091015公23[6]周忠海,张涛,陈哓高.基于动态矩阵控制算法的电加热炉图2DMC仿真纬果图图3传统Pm仿真结果图温度控制系统[J].山东科学,2005,18(5):7073我们知道传统的PID控制超调量过大,稳定时间长,控制7]触晓红,周佳精通GUI图形界面编程[M].北京:北京大学模型和参数需要比较精确,否则控制性能不会很好,而采用动出版社,2003作者简介:杨丽华(1987-),女,在读硕士研究生,主要从事预测控制方态矩阵控制算法则大大地抑制了超调量,消除了振荡,也缩短面的研究工作;赵文杰(1969-),男,华北电力大学控制科学与工程学了平衡时间,控制效果好。院副教授,主要从事热工过程的信息融合与先进控制方面的研究根据上述动态矩阵控制算法的基本流程及其操作编制成工作相应的m函数文件。这个设计包含动态矩阵控制算法优化功收稿日期2012041866EcVo.192012No,4欢迎光临本刊网站http://www.yqybyh.com

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • otsu算法和改进的otsu算法
    在MATLAB下实现OTSU算法,另外还有关于此算法的改进形式,对图像的阈值进行最佳的计算,提高二值化的效果
    2020-12-05下载
    积分:1
  • 心电信号检测分类
    心电信号 QRS MATLAB,心电信号的波形检测以及基于神经网络的分类
    2020-12-10下载
    积分:1
  • 倒计时 多功能抢答器
    带答题倒计时的多功能抢答器带答题倒计时的多功能抢答器
    2020-11-30下载
    积分:1
  • 基于单片机的WIFI手机端显示图像控制小车上位机源码
    基于单片机的WIFI手机端显示图像控制小车上位机源码
    2020-07-03下载
    积分:1
  • 基于ITK、VTK与MFC读取DICOM图像
    基于ITK,VTK以及MFC读取DICOM图像的文献@ErtoRwww.crter.org吕哧琪,等于1K、K和MC的DCOM图像读写及显示文章是在视类的构造函数及其析构函数中实现它们的初始化及善后工作的。其次,改写视图类的虚函数Ocrea(),以下为关键代码ren Win->AddRenderer(ren);renWin->Setwindowld(m hWnd)iren->SetRenderWindow(ren Win)最后,在视图类的 OnDraw函数中添加绘制代码Render()当然窗口的尺寸也可以在这里进行调整。Figure 5 Unintegrated display effect此,可以在MFc应用稈序视图区域中实现与VTK图5未集成显示效果渲染对象的父互和鼠标响应操作,并可以利用MFC界面控件来进行参数控制,本文程序中鼠标按下会弹出一个对于VTK与MFC的集成已有相关文献介绍,分为快显示图像上象素坐标及象素值的消息框(见图7,8)借以速集成和深度集成两种集成方式。图6是作者将图5对应说明鼠标响应交互操作的实现,至此完成了TK与MFC序做了怏速集成后 DICOMA像的显示。集成过程只需的深度集成。读者也可以参考ⅤTK工具包 Examples设置 vtk RenderWindow类中的 SetParent函数为当前 GUlIn32MFC下的例程,实现更丰富的集成。该视图或对话框句柄即可,关键代码如下所示和集环覓下的面显示将结合后续DCOM文件显示tkRenderwindow部分给出。FrenWin=vtkRenderWindow: NewovtkRenderWindowlnteractoriren=vtkRenderWindowInteractor Newothis->renWin->SetParentld(this->m hWnd);this->iren->SetRenderWindow(this->renIn);Figure 7 Display effect of vik depth integration图7深度集成环境下VTK显示效果Figure 6 Display effect of fast integration图6快速集成显示效果快速集成屏蔽」MFC的鼠标响应和消息传递,不便于后续编程实现更复杂的功能。VTK与MFC集成的请为:0007000根本目的是实现更实用、更灵活的交互界面,以弥补VTK自身在该方面的缺憾,那么就要求不仅要将TK的渲染窗口嵌入于MFC应用程序视图区域,而且还要Figure 8 Display effect after flipping图8翻转后VTK显小效果使其融为一体,即拥有一个统一的具有友好交互能力的界面。在此,重点介绍下作者尝试实现VTK与MFC深度集成的另一种方法,具体步骤如下:首先,在视类中增2D|cOM图像的读写与显示加可视化管道中会用到的类,用这些类实例化对象,文章用到的对象有:渲染对象ren)、渲梨窗口( renin)、2.1DCOM图像的读写文章中的数据对象是一维交互对象(ren)、演员( BrainActor)、映射( Brain Map)等, DICOM图像。读与DCOM文件的功能使用∏TK提供的范o1994-2011ChinaAcadcmicJournalElcctronicPublishingHousc.Allrightsroscrved.http://www.cnki.nctcn.zglckf.com2418P.O. Box 1200, Shenyang 110004吕烧琪,等干K、VTK和MFC的DCOM图像读写及显示CRTOR Ww. cRTER org函功能来实现,在∏K中,DCOM的范函性由GDCM厍写DcOM文件是一件非常精密的操作,因为所要处理的提供。这个开放的源码厍由INSA_Lyon的 creats团队发是大量重要的有关患者详细而精确的数据,并且涉及到展的。实验使用: GDCMImagelO类来建立与GDCM库患者的隐私问题。所以在写的过程中,一定要核实出你的连接,实现读取 DICOM图像的功能。|TK数据处理管的代码所生成的头文件信息不会给患者的治疗和诊断道中的三种处理对象具休为:Sσurce采用带来风险,要确休沿着数据处珄管道正桷地传递DC○Mik: itklmage SeriesReader类; Filter来用了ik∷文件的细节信息,从而才能保证正确地将原D|COM文件Curvature FlowImage Filter; Mapper采用了itk:的这些信息写入新的DcOM序列图像文件。以下便是实itkImageFileWriter类。现该部分内容的主要代码:单张二维DCOM图像的读写:本部分实现单张二维首先定义图像类型,并明确所选象素类型和维度,p|c○M图象以 DICOM格式读入与以DCOM格式写入从而定义序列图像读取类型。的工作。首先声明象素类型和图像的维数,以它们作为typedef signed short PixelType模板参数来实例化读入图像的类型,用该图像类型作为const unsigned int Dimension=3;模板参数再实例化读取器 Reader的类型并创建一个typedef itk: Image< PixelType, DimensionReader,将读入图像的文件路径和文件名作为参数传给 mage Type;Reader,并为 Reader关联 GDCMImagelO对象,调用typedef itk: Image SeriesReader< Image TypeUpdate(函数更新读取过程,DcOM图像就已读入内存 ReaderType中。用 Reader的 Getoutput()方法可以获得图像数据的接下来声明并实例化实际读写DCOM图像的指针。月前的焦点是如何再一次将图像在新文件中保存k: GD CMImagelC对象和为所有切片生成文件名并排成DCOM格式。具体的,先实例化一个 Image File Writer序的tk: GDCMSeries fileNames对象,并创建相应智能类型,并创建指针 Writer,将写入的图像的文件路径和指针 gdcmIO和 names Generator。文件名作为参数传给 Writer,并为其关联ImageloType: PointerGDCM| magelo对象,这个对象是知道DCOM格式的内 gdcmIo= magelOType:New()部结构的,最后用 Update()来触发写入程序。文章在读Names Generator Type: Pointer写过稈中对图像进行了保留边缘的平滑去噪处珥,以下 names Generator= Names GeneratorType:|New()为主要代码names Generator->SetInputDirectory(argvImageloType: Pointer生成读入文件的文件名gdcmImagelo=ImageloType: NeW(const ReaderType: FileNames Containerreader->Setlmagelo(gdcmImagelO)filenames=namesGenerator->GetInput FileNames():reader> SetFileName(argv):∥参数为文件路径实例化 Reader Type对象并创建智能指针 reader,读及文件名取DcOM格式序列图像。writer->Setlmagelo(gdcmImagelO)reader->Setlmagelo(gdcmlO)rwriter->SetFileName(argv2);∥将平滑后图像以reader->SetFileNames(filenames )D|COM格式写入到参数所指定的文件中。最后用 reader的 Update()触发读取程序,最好放在try/catch问询块中,在此不再赘述。CurvatureFlowImageFilterType: Pointer至此,可以开始写数据了。首先把确定存在的输出smoother= rvatureFlowlmageFilterType:|New();∥目录传给 outputDirectory指针。实例化一个平滑滤波器的对象const char outputDirectory=argv;smoother-> SetNumberoflterations(5):W平滑滤波然后,实例化 SeriesWritertype对象并创建智能指器的迭代次数设为5针 series writer,将 reader的输出写为D|COM格式序列smoother-> SetTime Step(0.125);∥平滑滤波器的像时间步长设为0125series Writer->SetInput(reader->Getoutput()smoother->SetInput(reader->Getoutputo)series Writer->Setlmagelo(gdcmIO)writer->Setlnput(smoother->GetOutputO)现在可以设置 G DCMSeriesFileNames在至此完成DCOM单张图像的读写。outputDirectory下产生新的文件名,然后将最新生成的序列二维DCOM图像的读写:这部分}要实现以文件文件传递给 seriesWriter集的方式读取一个DCOM序列图像,并在保持头文件信namesGenerator->SetoutputDirectoryoutputDire息不变的情况下保存为另一个DCOM序列图像的工作。 ctory);/S SN 1673-8225 CN 21-1539/R CODEN: ZLKHAH2419C1994-2011ChinaAcadcmicJOurnalElcctronicPublishingHousc.Allrightsrcscrved.http://www.cnki.nct@RterwWw.crtEr. org吕晓琪,等基于1K、VK和MFC的DCOM图像读写及显示seriesWriter->SetFileNames(names Generator->GetOutputFileNames();3结论最后一步也是最关键的一步,用 reader读取MetaDataDictionary并传递给 seriesWriter。之所以关键TK是算法设计者的一个有力助手,是医学图像处是因为 Meta Data Dictionary包含」所有输入的DcoM理工作者的案例研究算法仓厍,遺憾的是不提供Ul文件的头文件。VTK软件开发包强大的图形处理和可视化功能,却缺乏seriesWriter> SetMetaData Dictionary Array( reade实用、灵活的交互界面,而MFC具有强大的U开发能力。r->GetMetaData DictionaryArray ()结合三者的特点,作者通过对DCOM医学图像的读取与末了调用 seriesWriter的 Update)触发写程序,放在显小,将TK、VTK和MFC有机的结合起来,扬长避短,try/catch问洵块中,在此不再赘述。为三者集成环境下的软件开发做了一个初步的尝试,而22DCOM图像的显示本部分主要介绍在前述方法对于在此基础之上一者更强大功能的实现(诸如医学图实现的∨TK、ITK和MFC集成环境卜DCoM图像的显示像的分割与准、三维可视化、虚拟手术导航等)有待方法。在此,将利用丨TK读取的DC○M文件用VTK显示深入探讨与研究。在MFC单文档视图区,因为旨在说明方法所以未给出复杂的交互界面。4参考文献VTK薮据处理管道中采用了vkD|cOM|mageReader:类、 teNderer类、 vtkRenderwindow类、[1 Kitware Inc. NLM Insight Segmentation and registration ToolkitEB/OL」2005.http:/www.itκOrgtkRenderwindowInteractor类、 traCtor2D类、[21 Ackerman MJ. the visible human project. Proceedings of thelEEE,1998;863):501-504.v+ < Mapper类,并实例化各个类的对象并创建相21/mD(Q小用m时应智能指针。图7为显示效果,相应关键代码如下计算机技术发,200816(4=515 NEMA. The DICOM standard. Technical report, NEMA,Brain Map->SetInput(vtkreader->Getoutput()http://medial.nemaorg,2004[61http:/www.itk.org/courseWare/training/gettIngstartedl-webpageBrainActor->SetMapper (BrainMap);ren->AddActor(BrainActor)http:ww.kitwvare.comiproducts/books/vtkquide.htmlBenoit Regrain EricBoix, Mathieu and Jean Pierre roux. the「TK所读取的图像一经VTK显示后图像发牛了翻GDCM Library. CNRS, INSERM, INSALyon, UCBLyonhttp://www-creatis.insa-lyon.fr/publIc/gdcm转,并且是上下翻转而左右并不发生翻转,原因是ITK的坐标系统和VTK的坐标系统Y轴是相反的,所以为了来自本文课题的更多信息能正确显示图像还需要将Y轴进行翻转,可见这种翻转墓金资助:国家自然科学基金资助项目(60761002)可以发生在两种情形,一种是在K读入图像的时候翻作耆贡:笫一作者进行实验设计及评估,实验实施转即改变文件的读取方式,该种方式可参考∏TK的为笫二作者,资料收集为笫三作者,第二作者成文,第FliplmageFilter类,该类可以实现翻转任何坐标轴中的作者审校并对文章负责图像,对于本文屮情形可以使用一个[0,们翻转排列,列益冲突:课题未涉及任何厂家及相关雇主或其灺经表示X轴保持不变时对Y轴进行翻转;另一种是在K图济组织直接或间接的经济或利益的赞助像薮据凵经转换为ⅥTK图像数据后将新的TK图像数本文创新性:于201101以文章关键词为检索关键词据Y轴鄱转,这也正是本文实现的图像翻转方法。相应在CNK丨欻捃库、维普中文科技期刊数据库、万方学位论关键代码:文全文数据库, ELSEVIER数据库等多个数据库中检索未flipY->SetFilteredAxis(1)见具有相同创新点文章flipY->SetInputConnection(vtkreader->Getoutput方法创新:为医学图像读写及显示后一系列的玉学Eort()像处理工作搭建了灵活实用的实验平台,进而得到相关基BrainMap->SetInput(flipY->GetOutput():金资助。以上便是集成环境下的D|COM图像显小。o1994-2011ChinaAcadcmicJournalElcctronicPublishingHousc.Allrightsroscrved.http://www.cnki.nctCn.zg/ckf.com2420P.O. Box 1200, Shenyang 110004
    2020-12-01下载
    积分:1
  • 图像去雾 darkchannel MATLAB实现.zip
    【实例简介】1暗通道先验,2导向滤波算法。图像去雾 darkchannel MATLAB实现。
    2021-12-04 00:53:15下载
    积分:1
  • HDL-Coder详细教程
    HDL-Coder详细教程,有详细例子,源于官方例程,中文教程
    2020-12-05下载
    积分:1
  • 高精度捷联惯性导航系统Matlab工具箱
    高精度捷联惯性导航系统Matlab工具箱
    2020-12-18 16:29:10下载
    积分:1
  • Unity UGUI自定义树形菜单(TreeView)GitHub配套.UnityPackage
    .UnityPackage5.5.0版本Open_csdn文章名为_Unity UGUI自定义树形菜单(TreeView)解决“当把所有的二级菜单折叠后,再展开,本来属于第一个二级菜单的三级菜单的内容就会显示全部显示在最后一个二级菜单的尾部。”
    2020-12-02下载
    积分:1
  • Java的oauth2.0 服务端与客户端的实现 (完整源码、demo)
    Java的oauth2.0 服务端与客户端的实现.zip封装了oauth2.0的基本架构和实现,对照我的博客http://blog.csdn.net/jing12062011/article/details/78147306使用该源码。下载项目压缩包,解压,里面两个maven项目:oauthserver和oauthclient01,分别对应oauth服务端和客户端。服务端对应的数据库sql文件在源码压缩包里可以看到。两个项目分别用8082端口(服务端端口)和8081端口(客户端端口)部署并启动。输入客户端地址:http://localhost:8081/oauthclient01/
    2020-12-05下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载