大規模非線性動態優化算法代碼生成系統的製作方法
2023-04-23 02:46:36 1
大規模非線性動態優化算法代碼生成系統的製作方法
【專利摘要】大規模非線性動態優化算法代碼生成系統,涉及一種算法代碼生成系統,本系統進行非線性動態優化模型的輸入、編輯、輸出,以及完成非線性動態優化模型的離散化自動處理、執行控制算法C語言代碼的自動生成。進行非線性動態優化問題控制算法程序設計時,使用模型編輯功能將非線性動態優化問題輸入系統得到NDOML模型,最後使用系統的算法代碼自動生成功能產生離散化後的NDOML模型的算法C語言代碼,該算法C語言代碼可用於對優化問題進行仿真和評估,也可集成到控制系統應用中去。不僅極大地提高了控制算法代碼設計人員的工作效率,而且解決了人工難於完成的較大規模和大規模非線性動態優化問題的控制算法程序設計。
【專利說明】大規模非線性動態優化算法代碼生成系統
【技術領域】
[0001] 本發明涉及一種算法代碼生成系統,特別是涉及一種大規模非線性動態優化算法 代碼生成系統。
【背景技術】
[0002] 近年來隨著大規模非線性規劃理論、算法及軟體系統的不斷發展,基於大規模非 線性規劃(十萬個決策變量以上)的模型預測控制日益受到重視。這類方法的一個顯著優點 是可以直接使用在運籌學領域廣泛使用和研究的各類規划算法,通過在高效能計算機上實 施這些搜索-推理-鬆弛等數值優化算法,完成大規模控制系統狀態的在線估計及最優控 制序列的計算。
[0003] 在解決具體領域的動態優化控制問題時,解決方案都可以表達成一類動態優化控 制問題的求解。變分法是求解這類問題的經典方法,屬於先最優化再離散化的思路。近年 來廣泛研究把非線性規劃解題器直接用於最優控制問題的求解,即先離散化再最優化,實 施方法可以是全部離散狀態變量與控制變量,並使用多點打靶法來完成最優控制系列的計 算。在採用這種方法完成大規模非線性動態優化控制設計時,研究人員將會碰到以下三個 方面的棘手問題: 一是非線性對象模型多種多樣,如何採用規範、標準的格式來描述非線性動態優化模 型,以便於模型的輸入、控制設計的便利及研究人員或工程人員的交流等; 二是大規模複雜過程具有大量的狀態變量和控制變量,在對此類問題進行離散化處理 時,狀態變量和控制變量的規模、約束條件和目標函數的規模將隨著離散粒度的增大急劇 增加,手工完成離散化工作將變得困難重重,如何採用規範、標準的方法自動完成問題的離 散化,以便降低工作難度、減少設計時間及錯誤機率; 三是在使用非線性規劃解題器求解離散化完成後得到的非線性規劃問題時,研究人員 需要完成使用非線性規劃解題器的算法程序的編程設計,一般需要給出非線性規劃實施計 算所需的一些矩陣代碼,例如雅克比矩陣、梯度矩陣、海森矩陣等。問題規模小時研究人員 勉強可以完成算法程序的設計,當變量較多、問題規模稍大時,手動或半自動幾乎不可能完 成算法程序的設計。
[0004] 因此,如何把一個個具體的大規模動態優化控制問題表達成標準的大規模數學規 劃問題,進一步編輯、調整、仿真和定製化,已經成為制約這類先進控制技術實施的瓶頸問 題。
【發明內容】
[0005] 本發明的目的在於提供一種大規模非線性動態優化算法代碼生成系統,該系統採 用微分代數約束非線性動態優化問題的模型描述方法,以及基於該模型的控制算法代碼的 自動生成功能,極大提高了控制算法代碼設計人員的工作效率,而且解決了人工難於完成 的較大規模和大規模非線性動態優化問題的控制算法程序設計。
[0006] 本發明的目的是通過以下技術方案實現的: 大規模非線性動態優化算法代碼生成系統,所述系統由模型編輯器、模型離散化處理 器、算法代碼自動生成器組成,程序如下: (1) 、使用模型編輯器輸入非線性動態優化問題,得到該問題的ND0ML模型; (2) 、離散化處理輸入的冊01〇4莫型,得到新的離散化後的冊01〇4莫型; (3) 、根據離散化後的ND0ML模型生成原優化問題控制算法C語言程序代碼。
[0007] 所述的大規模非線性動態優化算法代碼生成系統,所述程序定義了一種基於XML 語言的描述非線性動態優化模型的語言ND0ML。
[0008] 所述的大規模非線性動態優化算法代碼生成系統,所述非線性動態優化的ND0ML 模型可使用圖形用戶界面的模型編輯器產生。
[0009] 所述的大規模非線性動態優化算法代碼生成系統,所述ND0ML模型的離散化處理 由模型離散化處理器自動完成。
[0010] 所述的大規模非線性動態優化算法代碼生成系統,所述ND0ML模型的控制算法C 語言程序代碼由算法代碼自動生成器自動生成。
[0011] 本發明的優點與效果是: 本發明由於採用了自定義的規範模型描述語言ND0ML,離散化及算法代碼均採用了自 動生成處理技術,不僅極大地提高了控制算法代碼設計人員的工作效率,而且解決了人工 難於完成的較大規模和大規模非線性動態優化問題的控制算法程序設計。
【專利附圖】
【附圖說明】
[0012] 圖1為NBase元素定義圖; 圖2為Ndoml元素定義圖; 圖3為Model元素及相關列表元素定義圖; 圖4為IndependentVariable兀素定義圖; 圖5為Parameter兀素定義圖; 圖6為Expression元素定義圖; 圖7為PInitialAssignment兀素定義圖; 圖 8 為 DiffDecisionVariable 兀素定義圖; 圖9為AlgDecisionVariable兀素定義圖; 圖 10 為 CtlDecisionVariable 兀素定義圖; 圖11為AlgConstraint兀素定義圖; 圖12為目標函數元素定義圖; 圖13為本系統的結構框圖; 圖14為ND0ML模型離散化處理流程圖; 圖15為ND0ML模型算法代碼生成處理流程圖。
【具體實施方式】
[0013] 下面結合附圖所示實施例,對本發明作進一步詳述。
[0014] 本系統的具體程序包括: (1)、定義了一種基於XML語言的描述非線性動態優化模型的語言NDOML (Nonlinear Dynamic Optimize Markup Language,非線性動態優化標記語言),可用來描述DAE約束非 線性動態優化問題(DAE-Constrained Nonlinear Dynamic Optimization,簡稱 DAE-ND0) 和 AE約束非線性動態優化問題(AE-Constrained Nonlinear Dynamic Optimization,簡稱 AE-NDO); (2) 、實現NDOML模型的編輯器,用於非線性動態優化問題的輸入輸出; (3) 、使用聯立法和多點打靶法對ND0ML模型進行自動離散化處理,產生新的離散化完 成後的ND0ML模型; (4) 、實現ND0ML模型控制算法代碼自動生成器,生成算法要求的矩陣程序代碼、函數 程序代碼、調用接口程序代碼等。生成的代碼採用C語言。
[0015] 具體使用本系統設計DAE約束非線性動態優化問題或AE約束非線性動態優化問 題時,按如下步驟進行: (1 )、按照ND0ML語言的規則將優化問題描述成一個ND0ML模型。可使用兩種方法完成 該步驟,一種方法為人工轉換後用文本編輯器輸入;另一種方法為使用ND0ML模型編輯器 輸入優化問題即可得到ND0ML模型; (2) 、調用本系統的自動離散化處理器將第1步中得到的ND0ML模型進行離散化處理, 得到離散化後的ND0ML模型; (3) 、使用第2步中得到的離散化後的ND0ML模型調用本系統的算法代碼自動生成器, 生成優化問題控制算法代碼。
[0016] 按照上述步驟生成優化問題控制算法代碼後,用戶可使用該代碼對優化問題進行 仿真和評估,也可集成到用戶的控制系統應用中去。
[0017] 本系統通過其使用的技術方案,其定義的ND0ML語言方便了優化問題模型的輸 入、保存、輸出,便於本系統擴展功能,便於與其他控制系統設計工具協調完成設計任務;非 線性優化問題的自動離散化處理代替人工完成非線性優化問題離散化,解決了設計人員在 離散化大規模非線性優化問題時面臨的巨大困難;算法代碼自動生成器代替人工完成算法 程序的編程設計,不僅極大的提高了設計人員的工作效率,而且可以完成人工難於完成的 變量多、規模大的非線性動態優化問題的算法程序編程設計。
[0018] 下面對本系統自定義的ND0ML語言做進一步的詳細描述。
[0019] 1、ND0ML 概述 下面是一個典型的DAE約束非線性動態優化問題描述:
【權利要求】
1. 大規模非線性動態優化算法代碼生成系統,其特徵在於,所述系統由模型編輯器、模 型離散化處理器、算法代碼自動生成器組成,程序如下: (1) 、使用模型編輯器輸入非線性動態優化問題,得到該問題的NDOML模型; (2) 、離散化處理輸入的冊01〇4莫型,得到新的離散化後的冊01〇4莫型; (3) 、根據離散化後的NDOML模型生成原優化問題控制算法C語言程序代碼。
2. 根據權利要求1所述的大規模非線性動態優化算法代碼生成系統,其特徵在於,所 述程序定義了一種基於XML語言的描述非線性動態優化模型的語言NDOML。
3. 根據權利要求2所述的大規模非線性動態優化算法代碼生成系統,其特徵在於,所 述非線性動態優化的NDOML模型可使用圖形用戶界面的模型編輯器產生。
4. 根據權利要求3所述的大規模非線性動態優化算法代碼生成系統,其特徵在於,所 述NDOML模型的離散化處理由模型離散化處理器自動完成。
5. 根據權利要求4所述的大規模非線性動態優化算法代碼生成系統,其特徵在於,所 述NDOML模型的控制算法C語言程序代碼由算法代碼自動生成器自動生成。
【文檔編號】G06F9/44GK104298497SQ201410133666
【公開日】2015年1月21日 申請日期:2014年4月4日 優先權日:2014年4月4日
【發明者】袁德成, 黃明忠, 潘多濤, 王國剛 申請人:瀋陽化工大學