© 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
© Copyright 2024 ExpyDoc