Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1© 2016 The MathWorks, Inc.
ものづくりのための数理モデルの最適化
MathWorks Japan
アプリケーションエンジニアリング部
アプリケーションエンジニア
大開 孝文
2
アジェンダ
数理モデル
線形システム– 劣決定、過決定
– そのほかの線形システム
最適化問題– 実験計画
– 最適化
– 多目的最適化
対象者:MATLAB初心者
3
(ものづくりにおける)数理モデル、システムとは
システム(入力)
誤差因子• 環境変動• 劣化• もののばらつき• ……
出力
有効成分(Signal)
有害成分(Noise)
製品化:OK
製品化:NG
参考書籍:基礎から学ぶ品質工学
4
数理モデル
線形モデル
非線形モデル
定常モデル
非定常モデル
静的解析
動的解析
様々な、モデル・解析がありますが基本を知りましょう
5
線形システム(1)
Xb = 𝑦
未知 既知既知
入力 応答(出力)
内部性質
6
線形システム(2)
𝐴𝑥 = 𝑦
既知 既知未知
入力
応答(出力)
内部性質
7
線形システム
𝑋𝑏 = 𝑦
𝑥11 ⋯ 𝑥1𝑛⋮ ⋱ ⋮
𝑥𝑚1 ⋯ 𝑥𝑚𝑛
正方システム
劣決定システム
過決定システム
入力 出力
m = n
m < n
m > n
逆行列存在の可能性
𝑏 = 𝑋−1𝑦
>> b = X¥y
8
実験計測の現場では
過決定システムの事が多いはず(実験データ > 未知パラメータ)
𝑏 = (𝑋𝑇𝑋)−1𝑋𝑇𝑦
t y
0 0.82
0.3 0.72
0.8 0.63
1.1 0.6
1.6 0.55
2.3 0.5
: :
𝑦 = 𝑏1 +𝑏2 𝑒−𝑡
MATLABのメリット
かんたんな最小2乗法によるフィッティングであればMATLABの基本機能でも、対応できます。
>> X = [ones(size(t)) exp(-t)]
>> b = X¥y
9
PCR/PLS回帰
𝑋𝑏 = 𝑦
𝑥11 ⋯ 𝑥1𝑛⋮ ⋱ ⋮
𝑥𝑚1 ⋯ 𝑥𝑚𝑛
行列行列
>> plsregress
行列
Statistics and Machine Learning Toolbox™
𝑦11 ⋯ 𝑦1𝑛⋮ ⋱ ⋮
𝑦𝑚1 ⋯ 𝑦𝑚𝑛
10
常微分方程式、偏微分方程式の数理モデル
常微分方程式
偏微分方程式
ሶ𝑥 = 𝐴𝑥>> ode45
𝑎𝜕2𝜑
𝜕𝑥2𝜕𝜑𝜕𝑡
=
𝜑𝑖,𝑗+1 = 𝜑𝑖,𝑗 + 𝛼 𝜑𝑖−1,𝑗 − 𝜑𝑖,𝑗 + 𝜑𝑖+1,𝑗
>> pdepe>> ode15s
11
混合整数線形計画問題(MILP)
利益 = 収益 - 合計燃料コスト - 運転開始コスト
利益 =販売価格*個数 – 仕入れ価格*個数
Optimization Toolbox™
>> intlinprog
12
線形システムについてのまとめ
線形モデルに落として、表現出来る(している) ものが多い
実験データ と 未知パラメータ– 劣決定問題(実験データ < 未知パラメータ)では、正しい推定ができない
– 過決定問題(実験データ > 未知パラメータ)では、最小2乗近似によるパラメータ推定
– ランク落ちしているかどうか調べる関数が用意されている
Toolbox には、最適化ソルバーを用意している
13
ものづくりにおいての数理モデル活用の課題
よくある、ものづくりの会社様の声
– 実際にシミュレーションを導入したが、うまくいかない。
モデリングの難しさ(抽象度レベル)
設定パラメータの多さ
14
何の入力を決めて、何の結果を最小化、最大化にするのか?
MATLABは、(あくまでも)汎用的な数値計算のプログラミング言語
目的関数を自由に設定することが可能
– 原材料費
– 重さ
– ひずみ量
– 内部応力
– 周波数解析
15
デモ- 設計最適化 -
形状の最適化を考える
構造解析– 構造モデルの設計
– 各種設計パラメータの確認
– 実験計画法
– S/N比
– 最適化、目的関数の設計
– 多目的最適化
傘立てハンガー
16
仕様設定 パラメータ 下限 上限
幅 10(固定)
高さ 5(固定)
素材 A or B
中心座標x 2 9.5
中心座標y 0.2 4.5
楕円半径 rx 0.5 3
楕円半径 ry 0.2 2.6
飛び出し dh 0.1 0.3
回転角度theta
-pi/4 (rad) pi/4 (rad)
中心座標によって、楕円半径は制約を受ける
右下のひずみが最小になる楕円設定の最適化問題
17
実験計画法(品質工学)
制御因子を直交表に割り付けて、実験回数を減らす。最適解を見つける– 多数の制御因子を絞り込むことが可能
直交表に割当
結果の解析最適条件の決定
パラメータを絞る
1 1 1 1 1 1 1
1 1 1 2 2 2 2
1 2 2 1 1 2 2
1 2 2 2 2 1 1
2 1 2 1 2 1 2
2 1 2 2 1 2 1
2 2 1 1 2 2 1
2 2 1 2 1 1 2
1 1 1 1
1 2 2 2
1 3 3 3
2 1 2 3
2 2 3 1
2 3 1 2
3 1 3 2
3 2 1 3
3 3 2 1
𝑳𝟖
𝑳𝟗
1 1 1 1 1 1 1 1
1 1 2 2 2 2 2 2
1 1 3 3 3 3 3 3
1 2 1 1 2 2 3 3
1 2 2 2 3 3 1 1
1 2 3 3 1 1 2 2
1 3 1 2 1 3 2 3
1 3 2 3 2 1 3 1
1 3 3 1 3 2 1 2
2 1 1 3 3 2 2 1
2 1 2 1 1 3 3 2
2 1 3 2 2 1 1 3
2 2 1 2 3 1 3 2
2 2 2 3 1 2 1 3
2 2 3 1 2 3 2 1
2 3 1 3 2 3 1 2
2 3 2 1 3 1 2 3
2 3 3 2 1 2 3 1
𝑳𝟏𝟖
18
実験計画(𝑳𝟏𝟖)
材料 x y rx ry dh theta xxx
1 2 1 0.5 0.2 0.1 -0.261799388 0
1 2 2 1.2 0.55 0.2 0 0
1 2 3 1.9 0.9 0.3 0.261799388 0
1 5 1 0.5 0.55 0.2 0.261799388 0
1 5 2 1.2 0.9 0.3 -0.261799388 0
1 5 3 1.9 0.2 0.1 0 0
1 8 1 1.2 0.2 0.3 0 0
1 8 2 1.9 0.55 0.1 0.261799388 0
1 8 3 0.5 0.9 0.2 -0.261799388 0
2 2 1 1.9 0.9 0.2 0 0
2 2 2 0.5 0.2 0.3 0.261799388 0
2 2 3 1.2 0.55 0.1 -0.261799388 0
2 5 1 1.2 0.9 0.1 0.261799388 0
2 5 2 1.9 0.2 0.2 -0.261799388 0
2 5 3 0.5 0.55 0.3 0 0
2 8 1 1.9 0.55 0.3 -0.261799388 0
2 8 2 0.5 0.9 0.1 0 0
2 8 3 1.2 0.2 0.2 0.261799388 0
18 回の実験243 倍の効率
19
要因効果図
要因効果図から、最適化するべきパラメータを読み取る
第4,5 因子は、1水準にすることでS/N比が高くすることができる
第1因子は、1水準にすると出力を抑えられる
S/N比 出力値
20
FEM 解析の流れ(CAE)
形状の決定 ディリクレ、ノイマン条件メッシュのサイズ、メッシュの形状
各種パラメータ設定解を求める
ジオメトリの決定 境界条件メッシュ作成 求解
メッシュ(ジオメトリ依存)によって数式(行列A)が変形する
𝐴𝑥 = 𝑦
入力 出力
x,y 座標dh回転角度
ひずみ量
21
FEM 解析の流れ(CAE)
>> model.Meshans = FEMesh のプロパティ:
Nodes: [2x972 double]Elements: [3x1803 double]
MaxElementSize: 0.3000MinElementSize: 0.0737GeometricOrder: 'linear'
>> model.Meshans = FEMesh のプロパティ:
Nodes: [2x977 double]Elements: [3x1814 double]
MaxElementSize: 0.3000MinElementSize: 0.0737GeometricOrder: 'linear'
Partial Differential Equation Toolbox™
22
今回のケースは、どのような最適化問題になるのか?
ジオメトリの形状で、数式が変形する特殊な(微分不可)目的関数になっています。
→ 古典的な最適化ソルバは適してません。
→ 大域的最適化ソルバが適しています。
Global Optimization Toolboxが対応製品– 遺伝的アルゴリズム(ga)
– パターンサーチ(patternsearch)
– 焼きなまし法(simulannealbnd)
– 粒子群最適化(particalswarm)
デモの実行
Global Optimization Toolbox
23
最適化の設定を行います。
目的関数
制約条件
– 範囲制約
– 非線形不等式制約
x(1) + 0.5cos(x(4)) < 10x(2) + 0.5sin(x(4)) < 5x(2) ー 0.5sin(x(4)) > 0
2.00.20.1
−𝑝𝑖/4
≤ 𝑋 ≤
9.54.50.3𝑝𝑖/4
楕円が、外の領域をはみ出さない
x(4)
24
最適化のTips
Global Optimization Toolboxが対応製品
大域的ソルバー 範囲制約 非線形不等式制約
遺伝的アルゴリズム(ga) ○ ○
パターンサーチ(patternsearch)
○ ○
焼きなまし法(simulannealbnd)
○ ☓
粒子群最適化(particalswarm)
○ ☓
25
最適化アルゴリズムの違いによる計算結果の推移
26
多目的最適化
剛性軽量化
相反するものの最適化を行いたい>> gamultiobj
デモの実行
27
レポーティング
ライブエディタ
パブリッシュ
MATLAB Report Generator™
カスタマイズされた書式のレポートの自動生成
28
MATLABは他のツールとの連携が可能-設計ツールが他社ツールの場合-
C/C++
.NET/COM
JAVA
Python
DOS/Shell コマンド
MATLABで目的関数を作成- 他言語連携を考えましょう –
function out = myobjfun(in)
in : 設定パラメータ他のツールをコール
out :結果を取得
29
まとめ
ソフトウェア
FEM/CAEなど
モデリング最適化
ドキュメント生成
もし、MATLABの最適化機能に興味をお持ちになりましたら、ぜひともお試しください。
MATLABでは最適化を行う関数が用意されている
ブラックボックス化されたモデルについても、適用可能
他言語連携機能を利用して、CAEツール連携も可能
MATLABStatistics and Machine Learning Toolbox™Optimization Toolbox™Global Optimization ToolboxPartial Differential Equation Toolbox™MATLAB Report Generator™