↑ページトップへ
XSim
トップ
技術ドキュメント
OpenMDAO ではじめる最適化 (3/4)
更新:2014/12/3
OpenMDAO 0.9.5
GUIからの操作例
まずGUIを使用した操作例を見ていく。
GUIの起動、プロジェクト作成
GUIの起動
以下のコマンドでウェブブラウザベースのGUIが起動する。
C:\OpenMDAO\openmdao-0.9.5>Scripts\activate
(openmdao-0.9.5) C:\OpenMDAO\openmdao-0.9.5>openmdao gui
GUIが起動したらまず新しいプロジェクトを作成する
プロジェクト名、説明、バージョンを設定(英数字)し、「New Project」をクリック
スタート画面が表示される
コンポーネントの作成
「Files」タブの「File」をクリックし、「New File」から「Paraboloid.py」というファイルを作成する
作成された「Paraboloid.py」を右クリックして「Edit File」を選択
コンポーネントのPythonスクリプトを書き込み
書き込み内容は以下のとおり(日本語文字不可)
スクリプトの内容については後ほど「
スクリプトからの操作例
」で説明する。
from
openmdao
.
main
.
api
import
Component
from
openmdao
.
lib
.
datatypes
.
api
import
Float
class
Paraboloid
(
Component
):
""" f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3 """
# set up interface to the framework
x
=
Float
(
0.0
,
iotype
=
'in'
,
desc
=
'The variable x'
)
y
=
Float
(
0.0
,
iotype
=
'in'
,
desc
=
'The variable y'
)
f_xy
=
Float
(
0.0
,
iotype
=
'out'
,
desc
=
'F(x,y)'
)
def
execute
(
self
):
"""f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3
Minimum : x = 6.6667; y = -7.3333
"""
x
=
self
.
x
y
=
self
.
y
self
.
f_xy
=
(
x
-
3.0
)**
2
+
x
*
y
+
(
y
+
4.0
)**
2
-
3.0
「Save」で保存したら編集ウィンドウを閉じる。
アセンブリの追加
「Library」タブの「Assembly」をキャンバスにドラッグ&ドロップ
ドラッグ&ドロップ
アセンブリに名前をつけて
OK
をクリック
アセンブリが作成される
ドライバーの追加
「Library 」タブの「SLSQPdriver 」をアセンブリ上の「driver 」にドラッグ&ドロップ
「driver 」にドラッグ&ドロップ
確認ダイアログが表示されるので
OK
をクリック
ドライバーがSLSQPdriverに置きかわる
コンポーネントの追加
「Library 」タブの自作コンポーネント「Paraboloid 」をアセンブリにドラッグ&ドロップ
「MyAssembly 」にドラッグ&ドロップ
コンポーネントに名前をつけて
OK
をクリック
コンポーネントが配置される
設計変数の範囲の設定
ドライバーをダブルクリック
「Parameters 」タブを選択し、
Add Parameter
をクリック
設計変数(Target) 、最小値(Low) 、最大値(High)を入力し、
OK
をクリック。
設計変数 MyParaboloid.x に対して最小値-50、最大値50を設定する。
ドライバーの出力とコンポーネントの入力が接続される
同様にして設計変数 MyParaboloid.y に対して最小値-50、最大値50を設定する
目的関数の設定
次に「Objectives 」タブを選択し、「Add Parameter 」をクリック
コンポーネントで定義した最適化する式を入力し、OKをクリック
ドライバーの入力とコンポーネントの出力が接続される
設計変数の初期値設定
コンポーネントをダブルクリック
「Input 」タブを選択し、コンポーネントのプロパティ( x と y )に初期値 10 を設定
計算の実行と結果確認
ドライバーを右クリックし、「Run 」をクリックして計算を開始
計算状況はウィンドウ下部のメッセージウィンドウに表示される。
計算結果はウィンドウ右部の「Properties 」タブ、または初期値設定と同じダイアログで確認可能。
保存と終了
「Project」タブの以下のメニューでプロジェクトの保存と終了が可能
Commit : 保存
Close : プロジェクトの終了(プロジェクトリストへ移動)
Exit : GUIの終了
最後に以上のGUI操作と同じことをPythonスクリプトを使っておこなった場合を見ていく。
1
2
3
4
トップ
技術ドキュメント