大规模非线性动态优化算法代码生成系统的利记博彩app

文档序号:6599793阅读:257来源:国知局
专利名称:大规模非线性动态优化算法代码生成系统的利记博彩app
技术领域
本发明涉及优化控制设计技术,特别是大规模非线性动态优化算法代码生成系统。
背景技术
近年来随着大规模非线性规划理论、算法及软件系统的不断发展,基于大规模非 线性规划(十万个决策变量以上)的模型预测控制日益受到重视。这类方法的一个显著优 点是可以直接使用在运筹学领域广泛使用和研究的各类规划算法,通过在高效能计算机上 实施这些搜索_推理_松弛等数值优化算法,完成大规模控制系统状态的在线估计及最优 控制序列的计算。在解决具体领域的动态优化控制问题时,解决方案都可以表达成一类动 态优化控制问题的求解。变分法是求解这类问题的经典方法,属于先最优化再离散化的思 路。近年来广泛研究把非线性规划解题器直接用于最优控制问题的求解,即先离散化再最 优化,实施方法可以是全部离散状态变量与控制变量,并使用多点打靶法来完成最优控制 系列的计算。在采用这种方法完成大规模非线性动态优化控制设计时,研究人员将会碰到 以下三个方面的棘手问题一是非线性对象模型多种多样,如何采用规范、标准的格式来描 述非线性动态优化模型,以便于模型的输入、控制设计的便利及研究人员或工程人员的交 流等;二是大规模复杂过程具有大量的状态变量和控制变量,在对此类问题进行离散化处 理时,状态变量和控制变量的规模、约束条件和目标函数的规模将随着离散粒度的增大急 剧增加,手工完成离散化工作将变得困难重重,如何采用规范、标准的方法自动完成问题的 离散化,以便降低工作难度、减少设计时间及错误几率;三是在使用非线性规划解题器求解 离散化完成后得到的非线性规划问题时,研究人员需要完成使用非线性规划解题器的算法 程序的编程设计,一般需要给出非线性规划实施计算所需的一些矩阵代码,例如雅克比矩 阵、梯度矩阵、海森矩阵等。问题规模小时研究人员勉强可以完成算法程序的设计,当变量 较多、问题规模稍大时,手动或半自动几乎不可能完成算法程序的设计。因此,如何把一个 个具体的大规模动态优化控制问题表达成标准的大规模数学规划问题,进一步编辑、调整、 仿真和定制化,已经成为制约这类先进控制技术实施的瓶颈问题。

发明内容
本发明的目的在于提供一种微分代数约束非线性动态优化问题的模型描述方法, 以及基于该模型的控制算法代码的自动生成功能。本发明为解决这个问题提供了系统的自
动化工具。本发明的目的是通过以下技术方案实现的大规模非线性动态优化算法代码生成系统,由模型编辑器、模型离散化处理器、算 法代码自动生成器组成,定义了一种大规模非线性动态优化算法代码生成的方法,包括如 下步骤(1)、使用模型编辑器输入非线性动态优化问题,得到该问题的NDOML模型;
(2)、离散化处理输入的NDOML模型,得到新的离散化后的NDOML模型;(3)、根据离散化后的NDOML模型生成原优化问题控制算法C语言程序代码。所述的大规模非线性动态优化算法代码生成系统,定义了一种基于XML语言的描 述非线性动态优化模型的语言ND0ML。所述的大规模非线性动态优化算法代码生成系统,非线性动态优化 问题的NDOML 模型可使用图形用户界面的模型编辑器产生。所述的大规模非线性动态优化算法代码生成系统,NDOML模型的离散化处理可由 模型离散化处理器自动完成。所述的大规模非线性动态优化算法代码生成系统,NDOML模型的控制算法C语言 程序代码可由算法代码自动生成器自动生成。


图1为本系统的结构框图;图2为NDOML模型结构定义简图;图3为NDOML模型离散化处理流程图;图4为NDOML模型算法代码生成处理流程图。
具体实施例方式下面结合附图,对本发明做进一步的说明。(1)、本发明定义了一种基于XML语言的描述非线性动态优化模型的语言 NDOML(Nonlinear Dynamic Optimize Markup Language,非线性云力态优化标记语言), 可用来描述DAE约束非线性动态优化问题(DAE-Constrained Nonlinear Dynamic Optimization,简称 DAE-ND0)和 AE 约束非线性动态优化问题(AE-Constrained Nonlinear DynamicOptimization, AE-ND0);(2)、本发明实现NDOML模型的编辑器,用于非线性动态优化问题的输入输出;(3)、本发明使用联立法和多点打靶法对NDOML模型进行自动离散化处理,产生新 的离散化完成后的NDOML模型;(4)、本发明实现NDOML模型控制算法代码自动生成器,生成算法要求的矩阵程序 代码、函数程序代码、调用接口程序代码等。生成的代码采用C语言。具体使用本系统设计DAE约束非线性动态优化问题或AE约束非线性动态优化问 题时,按如下步骤进行(1)、按照NDOML语言的规则将优化问题描述成一个NDOML模型。可使用两种方法 完成该步骤,一种方法为人工转换后用文本编辑器输入;另一种方法为使用NDOML模型编 辑器输入优化问题即可得到NDOML模型;(2)、调用本系统的自动离散化处理器将第1步中得到的NDOML模型进行离散化处 理,得到离散化后的NDOML模型;(3)、使用第2步中得到的离散化后的NDOML模型调用本系统的算法代码自动生成 器,生成优化问题控制算法代码。按照上述步骤生成优化问题控制算法代码后,用户可使用该代码对优化问题进行仿真和评估,也可集成到用户的控制系统应用中去。本系统通过其使用的技术方案,其定义的NDOML语言方便了优化问题模型的输 入、保存、输出,便于本系统扩展功能,便于与其他控制系统设计工具协调完成设计任务;非 线性优化问题的自动离散化处理代替人工完成非线性优化问题离散化,解决了设计人员在 离散化大规模非线性优化问题时面临的巨大困难;算法代码自动生成器代替人工完成算法 程序的编程设计,不仅极大的提高了设计人员的工作效率,而且可以完成人工难于完成的 变量多、规模大的非线性动态优化问题的算法程序编程设计。本系统的结构如图1所示,其中虚框内为系统的内部结构及作用关系,虚框外部 为系统的输入模型数据、输出结果数据。进入系统内部的非线性动态优化模型使用特定的 数据结构表示,系统主要包括模型编辑器、模型离散化处理器、算法代码自动生成器三项功 能。模型编辑器用于将非线性优化模型输入系统,以及将软件系统内部模型输出保 存。设计人员可使用模型编辑器录入并编辑优化控制问题模型(数学方程表示),转换为系 统内部模型表示;模型编辑器还可自动读入NDOML描述的优化控制问题模型,将其转换为 内部模型表示,同时模型编辑器还可将内部模型表示输出为NDOML描述的优化控制问题模 型。模型离散化处理器将内部表示的非线性动态优化模型做自动离散化处理,生成内 部表示的离散化的非线性动态优化模型。算法代码自动生成器根据离散化的非线性动态优化模型,生成一些矩阵程序代 码、函数程序代码等算法程序代码。本系统定义的基于XML的NDOML语言,用于描述DAE约束非线性动 态优化问题和AE约束非线性动态优化问题。图2为NDOML模型结构定义简 图, 其 中 Model、IndepentVariable λ ListOfParameters Λ ListOfExpressions、 Parameter、 ListOfInitialAssignments、 ListOfAlgDecisionVariables、 ListOfDiffDecisionVariables、 Expression、 PInitialAssignment、 AlgDecisionVariable、DiffDecisionVariable、ListOfCtIDec is ionVariables、 CtlDecisionVariable、ListOfAlgConstraints、AlgConstraint、ObjFunction 为 XML 兀素, 每种元素均定义了一些属性。图中的NBase不是XML元素定义,其定义的属性为公共属性, 图中与NBase有继承关系的XML元素均自动定义了这些公共属性。Model是一个容器类型的元素,该容器元素中可容纳Ind印endentVariable、 Parameter、Expression、PI ηitia1Assignment、DiffDecisionVariab 1 e、 AlgDecisionVariabIeλ CtlDecisionVariableΛAlgConstraint、ObjFunction 这 些 类型的元素。其中,Model类元素中可直接容纳零个或一个Ind印endentVariable 类元素、至少一个且仅一个ObjFunction元素。Model容器中的Parameter、 Expression、PInitialAssignment、DiffDecisionVariable、AlgDecisionVariable、 CtlDecisionVariableλ AlgConstraint 类兀素则分别置于 ListOfParameters、 ListOfExpressions λ ListOfInitialAssignments、ListOfDiffDecisionVariables、 ListOfAlgDecisionVariables λ ListOfCtlDecisionVariables、ListOfAlgConstraints 这 些容器类元素中。NDOML描述一个完整非线性动态优化模型的一般形式如下
< ? xml version = “ 1.0〃 encoding = " utf-8 “ ? >〈model id = 〃 XXModel〃 ><independentVariable. . . />optional
<list0fParameters>optionalone or more<parameter>. . . </parameter></list0fParameters><list0fExpressions>optionalone or more<expression>. . . </expression></list0fExpressions><list0fInitialAssignments>optionalone or more PInitialAssignment</listOfInitialAssignments><liStOfDiffDecisionVariables>optionalone or more<diffDecisionVariable>. . . </diffDecisionVariable></list0fDiffDecisionVari ab1e s ><liStOfAlgDecisionVariables>optionalone or more<algDecisionVariable>. . . </algDecisionVariable></listOfAlgDecisionVariables><listOfCtlDecisionVariables>optionalone or more<ctlDecisionVariable>. . . </ctlDecisionVariable></listOfCtlDecisionVariables><listOfAlgConstraints>optionalone or more<algConstraint>. . . </algConstraint></listOfAlgConstraints>one elements of subclasses of ObjFunction</model>模型离散化处理器使用联立法和多点打靶法对NDOML模型进行自动离散化处理, 其离散化处理过程流程图如图3所示。在检查NDOML模型的有效性后,依次离散化NDOML 模型的变量、约束方程、目标函数,生成新的变量、约束方程、目标函数,并由这些新产生的 变量、约束方程、目标函数构成离散化后的NDOML模型。其中NDOML模型的输入、解析、输出 功能由模型离散化处理器调用模型编辑器完成。算法代码自动生成器根据NDOML模型,生成算法要求的矩阵程序代码、函数程序 代码、调用接口程序代码等,生成的代码为C语言代码。代码生成处理过程流程图如图4所 示,在检查NDOML模型的有效性后,根据模型及算法要求依次生成变量声明代码、目标函数 计算函数代码、约束方程计算函数代码、矩阵计算函数代码、调用接口函数代码,并将生成 的代码保存到以.c为后缀的文件中。设计人员使用该C语言源程序文件,可用于优化模型 的仿真、评估,或者集成到优化应用中去。下面是一段生成的C语言代码片段,省略号表示 中间省略的代码。#include<math. h>
const double_segment_t = 2. 0000000000000001e-001 ;......double Z_t_des, _div_Z_c, _div_Z_t, _civ_v, Z_c_des, v_des ;Number_s_x[170];....../*meyer function implement氺/Bool CSTR_Model_objfun(int n, double*x, Bool new_x, double*obj_value){double _c_v_0_l ;......^objvalue = _segment_t氺((pow (_d_Z_t_9_l_Z_t_des,2. 0) +............return TRUE ;}......
权利要求
大规模非线性动态优化算法代码生成系统,由模型编辑器、模型离散化处理器、算法代码自动生成器组成,其特性在于定义了一种大规模非线性动态优化算法代码生成的方法,包括如下步骤(1)、使用模型编辑器输入非线性动态优化问题,得到该问题的NDOML模型;(2)、离散化处理输入的NDOML模型,得到新的离散化后的NDOML模型;(3)、根据离散化后的NDOML模型生成原优化问题控制算法C语言程序代码。
2.根据权利1要求所述的大规模非线性动态优化算法代码生成系统,其特征在于定义 了一种基于XML语言的描述非线性动态优化模型的语言ND0ML。
3.根据权利1要求所述的大规模非线性动态优化算法代码生成系统,其特征在于非线 性动态优化问题的NDOML模型可使用图形用户界面的模型编辑器产生。
4.根据权利1要求所述的大规模非线性动态优化算法代码生成系统,其特征在于 NDOML模型的离散化处理可由模型离散化处理器自动完成。
5.根据权利1要求所述的大规模非线性动态优化算法代码生成系统,其特征在于 NDOML模型的控制算法C语言程序代码可由算法代码自动生成器自动生成。
全文摘要
大规模非线性动态优化算法代码生成系统,涉及一种微分代数约束非线性动态优化问题的模型描述及基于该模型的控制算法代码自动生成系统,为大规模非线性动态优化问题控制器设计提供了一种算法代码生成自动化工具。使用本系统可进行非线性动态优化模型的输入、编辑、输出,完成非线性动态优化模型的离散化自动处理、控制算法C语言代码的自动生成。本系统定义了一种描述非线性动态优化问题模型的基于XML的NDOML语言,方便系统对模型的处理,且便于系统扩展功能;本系统的离散化处理及算法代码设计均采用了自动生成处理技术,极大提高了控制算法代码设计人员的工作效率,解决了人工难于完成的较大规模和大规模非线性动态优化问题的控制算法程序设计。
文档编号G06F17/50GK101814027SQ20101013313
公开日2010年8月25日 申请日期2010年3月26日 优先权日2010年3月26日
发明者潘多涛, 袁德成, 黄明忠 申请人:沈阳化工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1