英语原文共 15 页,剩余内容已隐藏,支付完成后下载完整资料
摘 要
本文介绍了一个可以实现自动控制和动态优化的工具包,该工具包是软件环境和算法的集合。它为各种直接最优控制算法的使用提供了一个通用的框架,包括模型预测控制以及状态和参数估计。当面向对象的设计允许方便地耦合现有的优化包并通过用户来扩展它的时候,工具包可以被视为一个自成一体的C 代码。本文详细讨论了该工具包1.0的软件设计,并对其主要软件模块进行了描述。除此之外,本文还强调了一些算法特性,特别是它处理符号表达式的功能。以最优控制和参数估计问题这两个教程为例,说明了该工具包的用户友好语法可以用于优化问题。
关键词:动态优化; 模型预测控制; 参数估计; 优化软件
1.介绍
在过去的几十年中,基于动态优化的控制技术使应用性能得到了改善,其数量也在迅速增加。这些技术使用被控制过程的微分方程形式的数学模型来预测其未来的行为,并计算出最优的控制行为。这可以在进程运行时之前脱机执行一次,从而形成一个开环控制器。或者,可以在流程运行期间在线执行优化以获得反馈控制器。在这两种情况下,最优控制问题(OCPs)的数值解是这种先进控制器的主要算法步骤。因此,在嵌入式硬件上执行这一步骤,高效和可靠的优化算法会是很多人的兴趣所在。
通过查阅文献,我们可以找到一些已经实现的求解OCPs的优化算法。我们只能讨论一些最常见的包:让我们从开源包IPOPT开始,它最初是由Andreas Wachter和Larry Biegler开发的,它实现了求解大规模微分代数系统优化的内点算法。它可以与连续动态系统离散化的配置方法相结合,而滤波策略则是一种全球化技术。IPOPT是用C/C 和Fortran语言编写的,但是使用Ampl或MATLAB等建模语言来提供用户界面并允许自动区分。。
此外,一个名为PROPT的MATLAB软件包越来越受到人们的关注。PROPT是一个商业工具,由Tomlab优化公司开发。的最优控制问题。 配置技术,同时使用现有的NLP解决程序,如KNITRO、CONOPT、SNOPT或CPLEX。由于使用matlab语法,在同等价位之下该软件包PROPT比IPOPT更方便用户,因为其不是开源的。
最近,BrianC.Fabien发布了另一个开源代码。DSOA该软件包是用C/C 编写的,并将基于Nge-Kutta方法的微分代数系统离散化。不幸的是,这个包只实现了一次射击方法,这对于非线性OCPs来说通常是不可取的。在优化层次上,采用了序列二次规划技术。
类似于 Dsoa,专有包 MUSCOD-II,最初由Daniel Leineweber[5]开发,适用于解决OCPs。MUSCOD-II基于向后分化公式(BDF)或龙格库塔积分方法对微分代数系统进行离散,并使用Bock的直接多重射击。用序贯二次规划法求解得到的NLP问题。在MUSCOD-Ⅱ中实现的算法是用C/C和Fortran编写的,似乎比dsoa-in parti的算法更详细。因为其使用多次射击而不是一次射击。虽然MUSCOD-Ⅱ实现了高效的代码,但它的软件设计使代码难以扩展。
最后,在过程工业中有专门用于非线性模型预测控制(MPC)的软件包,如OptCon或NEWCON,它们都是基于多次射击的。
上述每一个软件包都有其独特的优点,而且所有这些软件包都在特定的应用程序范围内被证明是成功的。因为它们都是为特定的基本数字选择量身定做的。 通常情况下,问题依赖于哪一种算法最适合。此外,他们的专业软件设计使得很难将来自不同包的算法思想结合起来,或者用新的数学概念来扩展它们。
为了克服这些问题,在,ACADO工具包中,除了实现的必要功能和效率外,还设计了以下四个关键属性 ORS的观点对于基于动态优化的自动控制软件包至关重要。在讨论这些问题时,我们还概述了如何在学术界工具包中处理这些问题:
开放源码:该软件包至少需要向学术用户免费提供,以便让研究人员复制所有结果,检查所有内容是否按规定执行,并尝试ou。 没有自己的修改。该工具包是在GNU小通用公共许可证(LGPL)下分发的,该许可证甚至允许将软件包与专有软件连接起来。该工具包可在http://www.acadotoolkit.org.免费获得。
用户友好性: 制定OCPs的语法应该尽可能直观。对于有经验的用户来说,这可能只是一个方便的问题。然而,考虑到动态优化更多、更有价值的广泛应用于不同的工程应用中,非专业人员也应该能够在合理的时间内制定出自己的控制问题。在用户不提供算法设置和初始化的情况下,软件还应尽可能自动做出一致的默认选择。
深入使用C的面向对象功能时,特别是操作符重载,它允许以一种非常接近于通常的数学方法来声明OCPs。这使得设置优化问题变得更加直观,即使是对于没有C/C编程经验的用户也是如此。
代码可扩展性: 软件设计应允许扩展程序包,以满足以下要求:第一,应该容易连接现有的算法;第二,设计应该作为一个平台。一旦有新的发展,同时应避免代码的重复。在一定程度上,只要不影响效率,模块化就可以实现。
该研究院工具包通过精心设计接口来实现这些需求,保证几乎所有算法部件也可以在其文档完整的独立版本中使用。这里应用了成熟的面向对象的软件设计概念,如抽象基类和继承。
自容器: 如果这是不可避免的,软件只能依赖于外部包;外部包的使用应该是可选的,主包应该提供独立运行的模式。这个对于嵌入式硬件上的应用来说,尤为重要,因为它们通常发生在模型预测控制器中:一方面,它甚至可能无法与这些包连接。 例如,它们依赖于给定硬件无法使用的不同编译器,或者仅仅是因为不支持外部包的链接。另一方面,即使链接是可能的,包括通常较大的外部包,也会显著增加可执行文件的大小和软件维护工作量。最后,当组合不同的软件包时,可能会出现一些重要的软件许可问题
ACADO工具包是以完全独立的方式编写的。外部用于图形输出或专用线性代数运算(例如稀疏解算器),而内部用于非线性系统。
本文的结构如下: 第二节简要描述了当前版本1.0版本的应用于优化问题的分类。之后,第三节详细地介绍了解决这些问题类的算法特性以及主要底层软件模块的设计和目标激励和描述。在第四节中给出了两个教程示例,说明如何使用该工具包的语法。第5节总结并列出了目前正在开发的工具包的进一步算法特性,并将成为未来发行版的一部分。
2.构成软件范围的问题类别
ACADO工具包1.0突出三个重要的问题类。第一个问题类是离线动态优化问题,目标是找到一个开环控制,最大限度地减少给定的目标功能。第二类是参数和状态估计问题,其中参数或未知的控制输入应该通过测量给定的非线性动态系统的输出来确定。第三类是在线估计和MPC问题相结合的问题,其中参数化的动态优化问题必须反复求解才能得到动态反馈控制律。
2.1.最优控制问题
ACADO工具包可以解决的基本问题类之一是标准最优控制问题。这些问题通常由具有微分状态的动态系统组成,X:R→Rnx。一个可选的时变控制输入u:R→Rnu和时间常数参数pisin;Rnp。在某些情况下,动态系统的制定也需要代数状态,例如:线性代数库LAPACK的版本3的编译大小几乎为4MB。
一般最优控制问题的制定 (OCP):
使用 ACADO 实现的最佳控制问题公式示例:
公式1,一个最优控制问题的一般数学公式和 ACADO 示例。在这张图片中,我们设z:R→Rnz,公式1清楚的描述了OCPs的标准配方。对于标准OCPs,目标函数通常是形式的Bolza泛函数。
这些算法目前已在该工具包中实现,这些算法假设右方函数f是光滑的,或者至少根据特定的离散方法的不同而有足够的可微性。此外,我们还假定函数f/(x·,z)总是规则的,即Dae的指数应该是1。在他们所有的论点中,其余的函数,即Lagrange项L,Mayer项M,边界约束函数r,以及路径约束函数s,被假定至少连续地相差两次。
请注意,公式1显示了一般的数学公式,也显示了一个学术界的实现示例。此示例演示如何使用工具箱的自然语法来实现 标准的OCPs。
请注意,上述公式的某些部分从数学角度来看是多余的:例如,Mayer项总是可以被表述为拉格朗日项,反之亦然。另外,在上述公式中可以忽略时间视界T和常数参数p,因为它们总是可以通过引入辅助微分态来消除。然而,从数字的角度来看,尽可能多地使用结构是有意义的,因此上述表述似乎是自然的。最后,我们提到OCPs包含标准非线性程序(NLP),它去掉了“ocp.Subject to(F)”约束。
2.2.参数和状态估计
需要特别注意的一类重要的OCPS状态和参数估计问题。OCPs的这个子类也具有以下形式。然而,正如将在第三节中解释的那样,具有最小二乘目标项的参数估计问题可以用一种专门的算法来处理—广义高斯牛顿法。
在这里,H 被称为测量函数,而eta;1hellip;hellip;eta;n是在时间点t1hellip;hellip;tnisin;[0,T]的测量值.请注意,最小二乘项在这个公式中是用正半定加权矩阵s1,.,sn加权的,它们通常是方差协方差矩阵ass的逆。 与测量误差有关。在学术界OCP.MinimizeLsq(S,h,eta)可用于定义最小二乘目标。
2.3.基于模型的反馈控制
基于模型的反馈控制构成了第三个可以用ACADO工具包解决的主要的问题类,可以用ACADO工具包。它包括两种在线动态优化问题: 找到最优控制动作的 MPC 问题反馈到控制过程和移动视界估计(MHE)使用其输出的测量估计当前进程状态的问题。MPC 问题是(OCP)的特殊情况,目标通常采用以下形式:
其中,yref是输出函数y的跟踪引,yrefend是对终端权重的引用。矩阵S和R是具有适当维数的加权矩阵。与OCPs相比,MPC问题被假定在固定的T范围上,并且采用了上述的跟踪目标函数。
如果不能直接测量过程的所有微分状态,则必须使用在线状态估计器获得估计值。这通常是由许多滤波中的一个完成的,或通过解决MHE问题来完成。MHE问题与参数估计问题的形式基本相同。在运行过程中,基于环的反馈控制器。MPC和MHE问题都会反复得到解决,从而得到模型和优化结果。
3.软件模块和算法特性
现在,我们开始讨论该工具包软件设计的细节,并描述它的主要软件模块。除此之外,我们还强调了一些算法特性,特别是处理符号表达式的功能,这些特性产生了该工具包的独特功能。
3.1.工具包的基本结构
图2概述了该研究院的基本结构。在这个图中,显示了第六个最重要的基类。从图的底部开始,为基本操作提供一个较低级别的接口。 如“加法”、“乘法”等,其基础继承名称为“Expression”的类。此类结构用于建立功能评估树。请注意,在3.2节中将解释学术界这一低级别部分的功能。
在下一个主级别上,引入了基类“函数”。例如,函数可以由符号表达式树、链接C代码、用户编写的模型规范等组成。但是,这个基类的主要概念是高级算法。 例如,在此背景下,集成例程不需要知道内部发生了什么,即它们可以计算或区分一个函数,而不依赖于一个符号表达式树还是一个C函数。该工具包的功能自动与高级算法通信,无论它们是否提供自动微分。
虽然基类“Integrator”是任何类型的集成例程的接口,但“动态离散化”类在最优控制TEC的上下文中组织了离散化技术注意,类lsquo;Integratorrsquo;也可以用作接口外部集成例程的基础。同样,类lsquo;DynamicDiscrealizationrsquo;在泛型中隐藏特定的离散化模式方法。例如,SQP算法不需要知道微分方程是通过配置还是通过射击方法来离散。此外,“动态离散化”类可以 还可用于接口PDE离散化工具。请注意,这种模块化的组织方式不影响效率,也就是说,如果附加的话,优化方法总是可以要求离散化模块提供细节。 信息需要通过适当的数据结构传递。然而,这种方法的细节超出了本文的范围。
在更高级的NLP求解器上,可以通过基类lsquo;NLPsolverrsquo;进行接口。在“优化算法”中使用NLP求解器,自动选择和初始化算法子模块。“OptimizationAlgorithm”的具体实现继承自此基类,为所选算法提供量身定做的驱动程序。例如,类lsquo;Real-TimeAlgorithmrsquo;继承自 “OptimizationAlgorithm”并实现驱动程序,例如运行带有实时迭代的SQP方法。最后,我们提到的所有上述类也可以单独使用,在附带的教程代码中演示和解释。在这个意义上,用户和开发人员可以选择在他们想要的部分和抽象级别上,使用或扩展工具包。
图 2.ACADO工具包的主要算法基类。
表1:符号函数的维度和凸性检测。
3.2.符号表达式
最优控制包的基本要求之一是目标函数、微分方程的右侧、约束函数等以方便的方式提供用户使用。实现这一点的一种方法是用户链接,例如,一个简单的C函数。然而,该工具包实现了更强大的功能:其思想是使用符号表达式作为基类,通过广泛使用C 来建立复杂的模型方程以允许操作过量。这种函数实现方法的优点是:依赖关系和维数的自动检测、符号的区分、凸性的检测等。
为了解释这个概念,我们考虑了表1中的学术教程代码。用标准的C编译器编译和运行这段简单的代码,如预期的那样,表明定义函数f的维数是2,它依赖于一个微分状态。此外,还认识到f的分量的凸性。请注意,开发人员通常需要这些自动检测例程。在大多数情况下,用户唯一剩下的工作是 定义他/她的功能
全文共10356字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[208],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- 2.3港口吞吐量预测外文翻译资料
- 使用多标准移动通信分层遗传算法的阻抗 匹配网络的宽带优化外文翻译资料
- 移动RFID标签阅读与非重叠串联阅读器在输送带的应用外文翻译资料
- 利用数字图像进行的全场应变测量方法外文翻译资料
- 自然灾害中并发事件的多种应急资源的分配外文翻译资料
- 基于主机的卡仿真:开发,安全和生态系统影响分析外文翻译资料
- 实现基于Android智能手机的主机卡仿真模式作为替代ISO 14443A标准的Arduino NFC模块外文翻译资料
- 探索出行方式选择和出行链模式复杂性之间的关系外文翻译资料
- 信息系统研究、教育和实践的基本立场及其影响外文翻译资料
- 仓储和MH系统决策模型的设计优化与管理外文翻译资料