幅広くご紹介する 最新のMATLAB利用シーン - MathWorks

© 2009 The MathWorks, Inc.
幅広くご紹介する
最新のMATLAB利用シーン
はじめに
•
本セッションでは、MATLABを既にご利用になられている方に対して、
より効果的・効率的な使い方を示すために、1つの例題を軸に、様々
なツール、利用シーンを幅広く紹介いたします。
•
特に、つぎのような方におすすめの内容です。
– 実験・計測関連業務に携わられているMATLABユーザの方
– MATLABのデータ解析、モデリング、シミュレーション関連機能をより有
効に業務で活用したいと考えられている方
– 並列/分散処理による高速化に興味のある方
•
デモンストレーションを多用し、分かり易く紹介いたします。
2
目次
•
例題の設定
•
例題の処理の流れとキー要素、キー製品
•
デモンストレーション
•
終わりに
•
[付録] 関連製品のご紹介
3
例題の設定 - DCモータシステムモデルの
不確かさ解析
•
•
•
システムモデルを作成
モデル内の未知パラメータを実験データに基づきフィッティング
モデル化誤差を複数の条件で考察
電圧
角速度
要求される運転条件下で、要求されるモデル精度が得られているか?
要求される運転条件下で、要求されるモデル精度が得られているか?
• • 他の運転条件でも精度の良い結果が得られるか?
他の運転条件でも精度の良い結果が得られるか?
• • モデリングされていない要素による影響はどの程度か?
モデリングされていない要素による影響はどの程度か?
4
例題の処理の流れ
①実験データの取得と
物理パラメータ同定
②モデル化誤差解析のための実験データ取得と
シミュレーション結果との比較
実験データの
取得
実験データの
取得
システムモデル
システムモデル
複数条件で実行
誤差範囲の見積り
実験結果
モンテ・カルロシミュレーションの実行
シミュレーション結果
-
+
パラメータ変動の影響解析
モデル化誤差
③モデル化誤差の解析
5
キーとなる要素とツール
キー要素
ツール
①実験データの
取得とパラメータ
推定
計測H/Wとの連携
物理系モデリング
シミュレーション
最適化
Data Acquisition Toolbox
Simulink, SimPowerSystems,
Simscape, SimDriveline
Simulink Parameter Estimation,
Optimization Toolbox, Genetic
Algorithm and Direct Search
Toolbox
②実験結果とシ
ミュレーション結
果の比較
計測H/Wとの連携
実験計画法
Data Acquisition Toolbox
Statistics Toolbox
Curve Fitting Toolbox
Simulink, SimPowerSystems,
Simscape, SimDriveline
③モデル化誤差
の解析
応答曲面モデリング
モンテ・カルロシミュレーション
並列/分散処理
Statistics Toolbox
SystemTest
Distributed Computing Toolbox
MATLAB Distributed Computing
Engine
6
テクニカル・コンピューティング・ワークフロー
アクセス
探求と発見
共有
レポート・文書
ファイル
データ解析と
モデリング
アルゴリズム開発
自動化
7
アプリ展開
ハードウェア
アプリケーション開発
下流設計過程
ソフトウェア
Outputs for
Design
MATLABが提供する計測ハードとの
インターフェース
Data Acquisition Toolbox
プラグインデータ収集ボード
Image Acquisition Toolbox
イメージキャプチャデバイス
Instrument Control Toolbox
オシロスコープ、信号発生器
その他計測機器
MATLAB
上記以外のハードウェア
COM, Windowsドライバ経由等
8
実験データの取得
•
•
アナログ出力信号によりモータ駆動
ロータリーエンコーダのA相、B相パルスをDAQボードへ取り込み
[キーツール]
[キーツール]
MATLAB,
MATLAB,Data
DataAcquisition
AcquisitionToolbox
Toolbox
A相・B相パルス信号
DCモータ
カウンタ入力・
ディジタル入力
ロータリー
エンコーダ
DAQボード
モータドライバ回路
アナログ出力
National Instruments製
DAQCard-6062E
9
DAQボードでのエンコーダパルス信号の
取り込み
•
•
•
カウンタ入力でA相、B相パルスのエッジカウントが必要
Data Acquisition ToolboxではカウンタI/O機能へのアクセスが未サ
ポート
MATLAB本体で提供される「MATLAB Interface to Generic DLL」の
機能による共有ライブラリの呼び出しで対応
nilib = 'C:¥WINDOWS¥system32¥nicaiu';
nihdr = 'C:¥Program Files¥National Instruments¥NI-DAQ¥...
DAQmx ANSI C Dev¥include¥NIDAQmx.h';
loadlibrary(nilib,nihdr);
ctrSrc = 'Dev2/ctr0'; extClk = 'PFI8'; cRising = 10280; cExt = 10326;
TaskHandle = libpointer('uint32Ptr',0);
calllib('nicaiu','DAQmxCreateTask','',TaskHandle);
calllib('nicaiu','DAQmxCreateCICountEdgesChan',TaskHandle.Value,...
ctrSrc,'',cRising,0,cExt);
calllib('nicaiu','DAQmxSetCICountEdgesActiveEdge',TaskHandle.Value,...
ctrSrc,cRising);
calllib('nicaiu','DAQmxSetCICountEdgesInitialCnt',TaskHandle.Value,...
ctrSrc,0);
calllib('nicaiu','DAQmxSetCICountEdgesTerm',TaskHandle.Value,ctrSrc,extClk);
:
10
共有ライブラリのロード
ライブラリで使用する
ポインタ変数の初期化
ライブラリの関数コール
実験データに基づくモデリング
(物理パラメータ同定)
•
ステップ1/2:DCモータシステムのモデリング
– 物理系モデリングツールの利用
– 数式を直接用いない、コンポーネントベースの直感的なモデリング
電気系 (SimPowerSystems)
[キーツール]
[キーツール]
Simulink
Simulink
SimPowerSystems
SimPowerSystems
Simscape
Simscape
SimDriveline
SimDriveline
トルク定数
逆起電力定数
機械系 (SimDriveline)
11
実験データに基づくモデリング
(物理パラメータ同定) - 続き
•
ステップ2/2:物理パラメータ同定
– 未知パラメータの選定と初期値の指定
– 最適化アルゴリズムにより複数の未知パラメータを自動推定
Y (t )
実機データ
+
ε (t )
Yˆ ( p, t )
モデル出力
最適化問題
m
min f ( p) = ∑ (Yˆ ( p, ti ) − Y (ti )) 2
複数の未知パラメータ p = ( p1 , p2 , p3 ,...)
p
12
i =1
実験データに基づくモデリング
(物理パラメータ同定) – 続き
•
Simulink Parameter Estimation
– Simulinkモデルのパラメータ自動推定ツール
– Optimization Toolbox(必須), Genetic Algorithm and Direct Search
Toolbox(推奨)の最適化ソルバの利用が可能
シミュレーションデータ
実験データ
[キーツール]
[キーツール]
Simulink
SimulinkParameter
ParameterEstimation
Estimation
Optimization
Toolbox
Optimization Toolbox
Genetic
GeneticAlgorithm
Algorithmand
andDirect
DirectSearch
SearchToolbox
Toolbox
13
モデル化誤差解析のための
実験データ取得
•
異なる運転条件下でのモデル精度は妥当か?
– 複数パターンの(実際に稼動しうる)運転条件で実験データを取得
– 同条件でのモデルのシミュレーション結果と比較
– 少ない実験回数で効率的にモデル化誤差を見積もりたい
• 実験計画法(Design of Experiments : DOE)を適用
多くの実験回数
多くの実験回数
トレードオフ
モデル化誤差の確かさ
モデル化誤差の確かさ
本ケースでは「応答曲面法」
を適用
[キーツール]
[キーツール]
Statistics
StatisticsToolbox
Toolbox
14
モデル化誤差解析のための
実験データ取得 - 続き
•
要求される運転条件とモデル化誤差の比較対象
– 運転条件:印加電圧と慣性負荷の2因子を変更(下表)
– 比較対象:速度応答から算出する立ち上がり時間(※)と定常速度
※定常速度の10%から90%になるまでの時間間隔とする
最小値
最大値
12
36
0.001
0.005
印加電圧 [V]
慣性負荷 [kg*m2]
慣性負荷
[kg*m2]
印加電圧
0.005
0.001
0
12
36
印加電圧 [V]
15
慣性負荷
モデル化誤差解析のための
実験データ取得 - 続き
•
ステップ1/2:実験データ取得ポイントの決定
– 中心複合計画(Central-Composite Design)に基づき実験
>> design = ccdesign(2,'type','faced')
testPoints =
-1
-1
1
1
-1
1
0
0
0
0
0
0
0
0
0
0
-1
1
-1
1
0
0
-1
1
0
0
0
0
0
0
0
0
• 8つの重複点を含む、16通りの
実験パターンを生成
出力値は、つぎの3つの値で構成
-1 : 因子の最小値
0
: 因子の中間値
1
: 因子の最大値
16
正規化された因子の
パラメータ平面
モデル化誤差解析のための
実験データ取得 - 続き
•
ステップ2/2:
速度応答より立ち上がり時間 trise と定常速度 Vrpm を算出
1. 速度応答を一次遅れ系のステップ応答で近似
−
t
Yˆ (t ) = Vrpm (1 − exp τ )
2. 応答データに適合する定常速度 Vrpm と時定数 τ を推定
3. 時定数 τ より立ち上がり時間 trise を算出
t rise = τ (log 0.9 − log 0.1)
≈ 2.1792τ
定常速度 Vrpm
(※)
[キーツール]
[キーツール]
Curve
CurveFitting
FittingToolbox
Toolbox
立ち上がり時間 trise
(※)次式による
t rise = t high − tlow
t high
⎧
−
⎪0.9Vrpm = Vrpm (1 − exp τ )
⎨
t
− low
⎪
τ
=
−
0
.
1
V
V
(
1
exp
)
rpm
rpm
⎩
17
モデル化誤差解析のための
実験データ取得 - 続き
•
応答データのフィッティング:Curve Fitting Toolbox
– マウスベースの容易な操作環境
– 線形/非線形多項式のほか、カスタム式への対応も可能
カスタム式エディタ
適合エディタ
18
モデル化誤差の解析
•
実験データとシミュレーション結果との誤差を2次式で近似
– 最小二乗法による立ち上がり時間の誤差曲面近似
>> t = regstats(pErrorRiseTime,[Voltage, Inertia], 'quadratic');
立ち上がり時間の誤差 [%]
2次式で近似
>> t.beta
[キーツール]
[キーツール]
Statistics
StatisticsToolbox
Toolbox
ans =
-5.81457118657883
0.47066348713845
-1223.35331114682
-34.1967850804161
-0.00646706376850837
269820.170181263
立ち上がり時間の誤差 [%]
Et rise = f (V , J )
= β t0 + β t1V + β t 2 J + β t3VJ + β t 4V 2 + β t5 J 2
Etrise
V
J
Bt0 ~ Bt5
:立ち上がり時間の誤差 [%]
:印加電圧 [V]
:慣性負荷 [kg*m2]
:未知パラメータ
慣性負荷
19
印加電圧
モデル化誤差の解析 - 続き
– 最小二乗法による定常速度の誤差曲面近似
>> s = regstats(pErrorSSVelocity,[Voltage, Inertia], 'quadratic');
定常速度の誤差 [%]
2次式で近似
>> s.beta
[キーツール]
[キーツール]
Statistics
StatisticsToolbox
Toolbox
ans =
2.24227273874108
-0.175338832080966
286.408202695566
10.9094404049946
0.00258531136537765
-58862.3388269304
定常速度の誤差 [%]
EVrpm = f (V , J )
= β s0 + β s1V + β s2 J + β s3VJ + β s4V 2 + β s5 J 2
EVrpm
V
J
Bs0 ~ Bs5
:定常速度の誤差 [%]
:印加電圧 [V]
:慣性負荷 [kg*m2]
:未知パラメータ
慣性負荷
20
印加電圧
モデル化誤差の解析 - 続き
•
インタラクティブな応答曲面モデリング機能:「rstool」
– 多変数の応答曲面をひとつの図で表示
– マウス操作による因子の現在値変更に伴い、応答値も変化
[キーツール]
[キーツール]
Statistics
StatisticsToolbox
Toolbox
現在の応答値
因子の現在値
マウス操作で変更可能
立ち上がり時間の誤差
95%信頼区間
近似する
多項式タイプ
印加電圧
21
慣性負荷
モデル化誤差の解析 - 続き
•
モンテ・カルロシミュレーションの実行
[キーツール]
[キーツール]
SystemTest
SystemTest
– モデル化誤差の応答曲面より見積もられた不確かさの範囲で、
乱数を用いて物理パラメータをランダムに変更
– パラメータ変動は正規分布(表A)、および一様分布(表B)を仮定
[表A]
ノミナル値
標準偏差
単位
1.710
0.057
Ω
電機子インダクタンス
0.3
0.01
mH
トルク定数
44.5
0.445
mN*m/A
211.5945
2.116
rpm/V
65.2
0.233
g*cm2
7.1213e-7
2.333e-8
mN*m/rpm
最小値
最大値
単位
印加電圧
12
36
V
慣性負荷
0.001
0.005
kg*m2
電機子抵抗
逆起電力定数
シャフト慣性モーメント
粘性摩擦係数
[表B]
22
モデル化誤差の解析 - 続き
•
SystemTest - 「繰り返しテストの開発環境」を利用
– データ点数1,000点分のモンテ・カルロシミュレーションを実行
テスト要素
ドラッグ
&ドロップ
テスト要素の機能設定
テスト手順、構造の作成
確率分布関数を用いたテストベクタの作成
23
モデル化誤差の解析 - 続き
•
SystemTestによるテスト実行の高速化
[キーツール]
[キーツール]
Distributed
DistributedComputing
ComputingToolbox
Toolbox
MATLAB
Distrubuted
Computing
MATLAB Distrubuted ComputingEngine
Engine
– 繰り返しテスト実行タスクを複数のCPUやマシンへ分散
– Simulinkアクセラレータモードとの併用も可能
Compute
Compute cluster
cluster
MATLAB
MATLAB Distributed
Distributed Computing
Computing Engine
Engine
Client
Client Machine
Machine
Task
Result
Job
CPU
Worker
Task
Result
TOOLBOXES
Distributed
Computing
Toolbox
CPU
Worker
Task
Result
BLOCKSETS
Scheduler
Result
CPU
Worker
Task
Result
24
CPU
Worker
モデル化誤差の解析 - 続き
•
容易に分散処理設定が可能
このチェックボックスをチェック
ひとつのタスクに割り当てる
イタレーション回数のマニュアル
指定も可能
25
モデル化誤差の解析 - 続き
•
モンテ・カルロシミュレーションのベンチマーク結果
– システム構成
計算ノード &
クライアント
計算ノード
100Mbps Ethernet
CPU
RAM
OS
:Intel Core2Duo T7200 2.0GHz
:2.0GB
:Windows XP x64
– ベンチマーク結果
1CPU
4CPU
777 [sec]
198 [sec]
約3.9倍の高速化
26
モデル化誤差の解析 - 続き
•
散布図プロットによるパラメータ間の相関解析
対角要素はモデルパラメータ、
出力のヒストグラム
印加電圧 - 速度、および
慣性負荷 - 立ち上がり時間の
間には正の相関
27
終わりに
•
例題を通して、様々なMATLAB/Simulinkの利用シーン、関連ツール
をご紹介しました。
–
–
–
–
•
物理モデリングツールによるDCモータシステムのモデリング
実験データに基づく物理パラメータの同定
実験計画法を用いたモデル化誤差の解析
モンテ・カルロシミュレーションの実行と高速化ソリューション
本例題は、開発元The MathWorks Inc.の下記Webページで公開され
ているサンプルを基に作成しました。
– http://www.mathworks.com/company/newsletters/digest/2007/may/u
ncertainity.html
•
以降の付録ページに、本セッションに関連する主要ツールの紹介を
まとめています。
28
[付録] 主要ツールのご紹介
•
Data Acquisition Toolbox
– MATLABよりプラグインデータ収集ボードをコントロール
– MATLABのデータ解析機能とシームレスに統合
– ココントロール可能な計測デバイス
• アナログ入力(A/D), アナログ出力(D/A), ディジタルI/O(DIO)
– サポートされるボードベンダ
• Advantec, Contec, Measurement Computing, National Instruments,
etc…
データ収集
ボード
MATLAB
ボードベンダ
提供ドライバ
ソフトウェア
Data Acquisition
Toolbox
29
[付録] 主要ツールのご紹介
•
Statistics Toolbox
– 統計的処理のためのデータ解析支援ツール
• 確率分布の計算とフィッティング
• 多変量統計
• 記述統計
• 分散分析(ANOVA)
• 仮説検定
• 産業用統計(統計的工程、
実験計画法)
•
Curve Fitting Toolbox
– カーブフィッティングのためのGUI環境を提供
• 線形/非線形モデルの拡張ライブラリ
• カスタムモデルの作成
• フィッティング結果解析機能
30
[付録] 主要ツールのご紹介
•
SystemTest
– 統合テスト環境
:「SystemTestデスクトップ」
• グラフィカルなテスト実行手順の作成、編集、管理
• 繰り返し処理を伴うテストの自動実行
• テスト実行後の合否判定レポート自動作成
• 複数PC/プロセッサによるテスト実行の並列/分散処理
(Distributed Computing Toolboxが必要)
• 各種分布関数に基づく乱数ベクトル生成
(正規分布、一様分布以外の分布関数利用時には、Statistics Toolboxが必要)
• Simulinkモデルのカバレッジ測定とレポート自動生成
(Simulink Verification and Validationが必要)
– ポスト処理環境
:「Test Results Viewer」
• テスト実行結果の可視化と保存
• 制約に基づくデータの抽出と保存
31