VDOC-01 PythonEquation

:bulb: 0. 目錄

:mega: 1. 老駱提醒

  • 請先確認,您已經閱讀 VDOC_00_Introduction 中的聲明。
  • 如果您是剛剛學習VisualDOC的朋友,建議先參考 VDOC_00_Introduction,裡面有一些VisualDOC的基本介紹、操作技巧及注意事項。
  • 本文將使用VR&DGetting Started Examples Manual第二章提供的範例做為說明。

:question: 2. 問題描述

Minimize Objective Function f(x,y):

f(x,y)=(x2+y2)10cos(x)cos(y)

Subject to the Constraint Equation g(x,y):

g(x,y)=(x2+y2)1.5

Design Variables (Side Constraints):

2x22y4

Initial Conditions:

x=2y=2

:mag_right: 3. VisualDOC操作細節

3.1 Work Flow

使用Quick Start->Direct Optimization->PythonEquation,快速搭建此問題的Work Flow,並將此task命名為Opt Using PythonEquation

101_work_flow

102_work_flow

103_work_flow

3.2 Component Editor

3.2.1 Component Editor內層

點選C欄 Component Editor內的PythonEquation,輸入xyfg。輸入順序並不影響求解,但建議照著Design variable->Objective Function->Constraint Equation的順序來輸入,會比較直觀一點。

其中xy為此問題的Design Variable,將其Input/Output設定為Input。嚴格來說,在這個問題中,並不需要指定xyInitial Value(但如果輸入的話,將有助於確認PythonEquation的設定是否正確,詳參下文)。因為對於VisualDOC而言,它所看到要求解的問題是定義於Component Editor外層Component Editor內層只是一個讓我們能與VisualDOC溝通的媒介,此處選擇內建的PythonEquationfg則為此問題的Objective FunctionConstraint Equation,將其Input/Output設定為Output

201_component_editor

在右邊的程式欄位利用Python2.x的語法輸入fg。輸入完畢後,如果有給定Initial Value的話,可以按右下方的Test按鈕來確認xyfg 4項的值,以此確認PythonEquation的設定是否正確。

202_component_editor

3.2.2 Component Editor外層

點選Component Editor內的Optimization,一樣將xy設為Inputfg設為Output。接著將xy設為Variablef設為Objectiveg設為Constraint,並依照問題設定各自的Lower BoundInitial ValueUpper Bound。當設定Objective時,VisualDOC應該會自動將Goal設定為Minimize。當問題不是最小化的話,要注意須更改設定。

203_component_editor

右邊的演算法部份,維持預設。

204_component_editor

3.3 Data Linker

本例中,Component Editor內層Component Editor外層的各個變數皆相同,故可以利用左側的Automatically add data to the selected model來自動連接。

301_data_linker

3.4 Simulation Monitors

選擇最常用的BestObjetiveWrostConstraint來觀察。

401_simulation_monitors

3.5 Post Processing

501_post_processing

502_post_processing

503_post_processing

()內為PythonEquation被呼叫次數 x y f g
Opt Using PythonEquation(48) 0.86087 0.87115 -0.26971 1.50000

:mailbox: 4. 聯絡老駱

如果您或貴單位:

  • 有導入VR&D產品的意願,但是有報價、採購及發票等問題。
  • 有教育訓練或顧問需求。
  • 有些建言指教。
  • 想交個朋友。
    歡迎透過 :camel: camel@caeml.ai 聯絡老駱。