29
1 © 2016 The MathWorks, Inc. ものづくりのための数理モデルの最適化 MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニア 大開 孝文

ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

1© 2016 The MathWorks, Inc.

ものづくりのための数理モデルの最適化

MathWorks Japan

アプリケーションエンジニアリング部

アプリケーションエンジニア

大開 孝文

Page 2: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

2

アジェンダ

数理モデル

線形システム– 劣決定、過決定

– そのほかの線形システム

最適化問題– 実験計画

– 最適化

– 多目的最適化

対象者:MATLAB初心者

Page 3: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

3

(ものづくりにおける)数理モデル、システムとは

システム(入力)

誤差因子• 環境変動• 劣化• もののばらつき• ……

出力

有効成分(Signal)

有害成分(Noise)

製品化:OK

製品化:NG

参考書籍:基礎から学ぶ品質工学

Page 4: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

4

数理モデル

線形モデル

非線形モデル

定常モデル

非定常モデル

静的解析

動的解析

様々な、モデル・解析がありますが基本を知りましょう

Page 5: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

5

線形システム(1)

Xb = 𝑦

未知 既知既知

入力 応答(出力)

内部性質

Page 6: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

6

線形システム(2)

𝐴𝑥 = 𝑦

既知 既知未知

入力

応答(出力)

内部性質

Page 7: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

7

線形システム

𝑋𝑏 = 𝑦

𝑥11 ⋯ 𝑥1𝑛⋮ ⋱ ⋮

𝑥𝑚1 ⋯ 𝑥𝑚𝑛

正方システム

劣決定システム

過決定システム

入力 出力

m = n

m < n

m > n

逆行列存在の可能性

𝑏 = 𝑋−1𝑦

>> b = X¥y

Page 8: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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

Page 9: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

9

PCR/PLS回帰

𝑋𝑏 = 𝑦

𝑥11 ⋯ 𝑥1𝑛⋮ ⋱ ⋮

𝑥𝑚1 ⋯ 𝑥𝑚𝑛

行列行列

>> plsregress

行列

Statistics and Machine Learning Toolbox™

𝑦11 ⋯ 𝑦1𝑛⋮ ⋱ ⋮

𝑦𝑚1 ⋯ 𝑦𝑚𝑛

Page 10: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

10

常微分方程式、偏微分方程式の数理モデル

常微分方程式

偏微分方程式

ሶ𝑥 = 𝐴𝑥>> ode45

𝑎𝜕2𝜑

𝜕𝑥2𝜕𝜑𝜕𝑡

=

𝜑𝑖,𝑗+1 = 𝜑𝑖,𝑗 + 𝛼 𝜑𝑖−1,𝑗 − 𝜑𝑖,𝑗 + 𝜑𝑖+1,𝑗

>> pdepe>> ode15s

Page 11: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

11

混合整数線形計画問題(MILP)

利益 = 収益 - 合計燃料コスト - 運転開始コスト

利益 =販売価格*個数 – 仕入れ価格*個数

Optimization Toolbox™

>> intlinprog

Page 12: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

12

線形システムについてのまとめ

線形モデルに落として、表現出来る(している) ものが多い

実験データ と 未知パラメータ– 劣決定問題(実験データ < 未知パラメータ)では、正しい推定ができない

– 過決定問題(実験データ > 未知パラメータ)では、最小2乗近似によるパラメータ推定

– ランク落ちしているかどうか調べる関数が用意されている

Toolbox には、最適化ソルバーを用意している

Page 13: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

13

ものづくりにおいての数理モデル活用の課題

よくある、ものづくりの会社様の声

– 実際にシミュレーションを導入したが、うまくいかない。

モデリングの難しさ(抽象度レベル)

設定パラメータの多さ

Page 14: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

14

何の入力を決めて、何の結果を最小化、最大化にするのか?

MATLABは、(あくまでも)汎用的な数値計算のプログラミング言語

目的関数を自由に設定することが可能

– 原材料費

– 重さ

– ひずみ量

– 内部応力

– 周波数解析

Page 15: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

15

デモ- 設計最適化 -

形状の最適化を考える

構造解析– 構造モデルの設計

– 各種設計パラメータの確認

– 実験計画法

– S/N比

– 最適化、目的関数の設計

– 多目的最適化

傘立てハンガー

Page 16: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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)

中心座標によって、楕円半径は制約を受ける

右下のひずみが最小になる楕円設定の最適化問題

Page 17: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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

𝑳𝟏𝟖

Page 18: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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 倍の効率

Page 19: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

19

要因効果図

要因効果図から、最適化するべきパラメータを読み取る

第4,5 因子は、1水準にすることでS/N比が高くすることができる

第1因子は、1水準にすると出力を抑えられる

S/N比 出力値

Page 20: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

20

FEM 解析の流れ(CAE)

形状の決定 ディリクレ、ノイマン条件メッシュのサイズ、メッシュの形状

各種パラメータ設定解を求める

ジオメトリの決定 境界条件メッシュ作成 求解

メッシュ(ジオメトリ依存)によって数式(行列A)が変形する

𝐴𝑥 = 𝑦

入力 出力

x,y 座標dh回転角度

ひずみ量

Page 21: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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™

Page 22: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

22

今回のケースは、どのような最適化問題になるのか?

ジオメトリの形状で、数式が変形する特殊な(微分不可)目的関数になっています。

→ 古典的な最適化ソルバは適してません。

→ 大域的最適化ソルバが適しています。

Global Optimization Toolboxが対応製品– 遺伝的アルゴリズム(ga)

– パターンサーチ(patternsearch)

– 焼きなまし法(simulannealbnd)

– 粒子群最適化(particalswarm)

デモの実行

Global Optimization Toolbox

Page 23: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

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)

Page 24: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

24

最適化のTips

Global Optimization Toolboxが対応製品

大域的ソルバー 範囲制約 非線形不等式制約

遺伝的アルゴリズム(ga) ○ ○

パターンサーチ(patternsearch)

○ ○

焼きなまし法(simulannealbnd)

○ ☓

粒子群最適化(particalswarm)

○ ☓

Page 25: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

25

最適化アルゴリズムの違いによる計算結果の推移

Page 26: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

26

多目的最適化

剛性軽量化

相反するものの最適化を行いたい>> gamultiobj

デモの実行

Page 27: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

27

レポーティング

ライブエディタ

パブリッシュ

MATLAB Report Generator™

カスタマイズされた書式のレポートの自動生成

Page 28: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

28

MATLABは他のツールとの連携が可能-設計ツールが他社ツールの場合-

C/C++

.NET/COM

JAVA

Python

DOS/Shell コマンド

MATLABで目的関数を作成- 他言語連携を考えましょう –

function out = myobjfun(in)

in : 設定パラメータ他のツールをコール

out :結果を取得

Page 29: ものづくりのための数理モデルの最適化...最適化 ドキュメント 生成 もし、matlabの最適化機能に興味をお持ちになりましたら、 ぜひともお試しください。

29

まとめ

ソフトウェア

FEM/CAEなど

モデリング最適化

ドキュメント生成

もし、MATLABの最適化機能に興味をお持ちになりましたら、ぜひともお試しください。

MATLABでは最適化を行う関数が用意されている

ブラックボックス化されたモデルについても、適用可能

他言語連携機能を利用して、CAEツール連携も可能

MATLABStatistics and Machine Learning Toolbox™Optimization Toolbox™Global Optimization ToolboxPartial Differential Equation Toolbox™MATLAB Report Generator™