VDOC-02 DOE

:bulb: 0. 目錄

:mega: 1. 老駱提醒

: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

:battery: 3. Design of Experiments (DOE)

VDOC_01_PythonEquation 裡,利用了Gradient Based Optimization直接求解問題。這樣的方法雖然簡單直接,但卻須不斷呼叫PythonEquation Component進行。在小規模最佳化題目,這沒有問題;但有時須要呼叫的component,其所須進行的計算量非常大,會耗費相當高的計算及時間成本(通俗點講,就是這個計算很貴),例如CFD 分析,或是碰撞分析等。

Design of Experiments (DOE) 是一種考慮各變數關係的選點策略,讓使用者可以僅針對所挑選的點位,進行昂貴的計算。接著藉由所算得的結果,將整個問題,近似成一個以函數來描述的模型。最後再以此模型為基礎,進行Optimization或是Response Surface Approximation(RSA)

Optimization的操作流程為:

  1. 選定DOE策略並建立點位。
  2. 計算各DOE點位的Response
  3. 利用求得的Response將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response來進行運算時,可以直接代入新點位到模型求得近似的Response,不須要真正進行如步驟2中的昂貴計算。

RSA的操作流程為:

  1. 選定DOE策略並建立點位。
  2. 計算各DOE點位的Response
  3. 利用求得的Response將整個問題,近似成一個以函數來描述的模型,再對此模型進行最佳化求解。當最佳化過程中須要新的Response來進行運算時,須要藉由訂立適合的邏輯(也就是設定一個好的Move Limit)來挑選新的點位,並真正進行如步驟2中的昂貴計算,再以此Response更新模型。

OptimizationRSA的主要差別是在於是否利用昂貴的計算,來增加新的DOE點位及Response。如果近似模型已經足夠代表問題,那麼可以選擇Optimization直接求解問題;如果模型僅是由少量的DOE點位及Response所構成,則可能須要選擇RSA,先增加新的DOE點位及Response來提升模型的品質後,再基於此更新模型進行最佳化求解。

:flashlight: 什麼是Move Limit呢?因為近似模型是由於DOE點位及其Response所建立的,我們會相信越靠近這些點位,其近似的Response會越準確;而越遠離這些點位,其近似的Response會越不準。所以當Response Surface Approximation在挑選新點位加入模型時,不應該挑選離原始點位過遠的點位,而應該循序漸進,從原始點位附近開始挑選,如此可以保證更新模型的準確度將逐步提昇。

3.1 DOE Action

VisualDOC提供3DOE操作。

  • Create DOE points only
    Create DOE points only僅產生DOE的點位,但不進行Response的計算。

  • Create DOE points with responses
    Create DOE points with responses除了產生DOE的點位,也會計算其Response
    適用於想利用此DOE作為後續RSAStarting Stategy時使用。

  • Create DOE with approximations (Default)
    Create DOE with approximations除了產生DOE的點位及計算Response後,再進行Approximation,將問題轉變為一個以函數來近似的模型。
    適用於想利用DOE+Optimization時使用。

3.2 DOE Model

VisualDOC提供6DOE Model操作。不同的DOE Model會有不同的最低點位數要求,VisualDOC會自動顯示。

  • Linear
  • Mixed:Linear + Interactions
  • Mixed:Linear + Quadratic
  • Full Quadratic
  • Forward Stepwise Regression (Default)
  • Kriging Model

3.3 Desgin Strategy

VisualDOC提供8種(還有一種User Defined)策略。每種策略會產生不同的點位數,VisualDOC會自動顯示。

  • Factorial
  • Composite (Default)
  • Box-Beheken
  • Koshal
  • Latin Hypercube
  • Tagucui
  • Simplex
  • Random
  • User Defined

:mag_right: 4. VisualDOC操作細節

本節,我們介紹Create DOE points with responsesCreate DOE with approximations兩種操作。

4.1 前置作業

本節講述如何將Component Ediror外層Optimization置換為DOE

4.1.1 Work Flow

打開Opt Using PythonEquation task,另存一個新的task,命名為DOE with responses。接著至E欄中將Add Design of Experiments component拖曳至F欄

101_work_flow

PythonEquation componentOptimization component中剪下貼上至DOE中。

102_work_flow

刪除Optimization component並重新連接Work Flow
接著使用Automatically rearrange all models重新排版。

103_work_flow

4.1.2 Data Linker

點選C欄 Data Linker,使用左側Automatically add data to the selected model自動連接。

301_data_linker

4.1.3 Component Editor

點選C欄 Component Editor外層的DOE component,依照題目輸入xyLower BoundUpper Bound

201_component_editor

4.1.4 Simulation Monitors

點選C欄 Simulation Monitors,刪除於Optimization中所建立的圖表,因為這些圖表在DOE中不適用。但是,如先前提過的,Simulation Monitors僅是一個輔助工具,如果不想多一道刪除手續的話,程式雖然會提示有錯誤,但DOE仍然可以正常運行。

至此,完成前置作業的設定。

4.2 Create DOE points with responses

DOE Action中選擇Create DOE points with responses,並維持Design Strategycomposite。從VisualDOC的顯示中可以看出,composite這個策略會產生9個點位。

601_doe

執行VisualDOC後,點選C欄 Post Processing中的Show Design Points Table,即可看到composite策略所產生9個點位。按下下方的Write tab delimited file另存這個結果為DOE_with_responses.txt,可以供 VDOC_03_OptRSA_DOE 裡的RSA分析,作為DOEStarting Strategy使用。

501_post_processing

4.3 Create DOE with approximations

打開DOE with responses task,另存一個task,命名為DOE with approximations。於DOE Action中選擇Create DOE with approximations,並維持Design StrategycompositeDOE ModelForward Stepwise Regression

602_doe

點選C欄 Simulation Monitors,為fg2response分別新增2張圖表Add DOE actual vs predict plotAdd DOE residual plot(Type選擇Residual),並加以連接。

401_simulation_monitors

執行VisualDOC後,可以透過這幾張圖表,了解經過DOE後,fg的近似情況。觀察後發現fresidual值就比較高,部份預測值偏離了實際值,預測的比較差。

502_post_processing

gresidual值很低,預測值很貼近實際值,預測的比較好。

503_post_processing

點選C欄 Post Processing中的Show Design Points Table,會發現其結果與 4.2 Create DOE points with responses 是相同的。當然如果我們已經有Design points table的話,可以利用User Defined這個功能讀入這些點位(例如4.2節中儲存的DOE_with_responses.txt),不必重新計算response,而只進行approximation

接著點選Post Processing中的Generate summary report,拉到最下方後,可以找到fg的近似函數。

f=0.0581496020720.085913557709y+0.144063159781y2g=1.3322676310152.775557561016x+x2+y2

504_post_processing

:mailbox: 5. 聯絡老駱

如果您或貴單位:

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