Simscape TM プラントモデルの FPGA アクセラレーション MathWorks Japan アプリケーションエンジニアリング部 松本充史 2018 The MathWorks, Inc. 1
アジェンダ ユーザ事例 HILS とは? Simscape の電気系ライブラリ Simscape モデルを FPGA 実装する 2 つのアプローチ Simscape HDL Workflow Advisor Simscape ブロックをマニュアル変換 2
トヨタテクニカルディベロップメント社次世代 Motor HILS 開発に HDL Coder TM を適用 ハイブリッド車の開発に欠かせないモータ用 HILS:MotorBox を開発 高速な制御周期を実現するため FPGA を使った HILS を開発 HDL Coder を使用することで 上流モデルの流用性向上 開発期間短縮 性能向上 http://www.matlabexpo.com/jp/2015/proceedings/fpga-simulator-and-hdl-coder.pdf https://news.mynavi.jp/article/mw_casestudy-9/ 3
FPGA(Field Programmable Gate Array) とは? 書き換え可能なロジックデバイス ハードウェアで構成するため細粒度の並列演算 高速 低レイテンシ ロジックセル ( 一単位 ) は SRAM または FlashMem で構成した LUT DSP ブロック ( 積和演算器 ) メモリ 高速 I/O 内部配線で構成 動作周波数 :~ 数百 MHz I/O ブロック 内部配線 ロジックセル ( ロジックの 1 単位 ) DSP ブロック ( 積和演算器 ) ブロック RAM 4
HILS(Hardware-In-the-Loop Simulation) とは? コントローラ インバータ & モータ 5
HILS(Hardware-In-the-Loop Simulation) は制御対象を模擬 制御アルゴリズム 制御対象 コード生成 コントローラ HIL シミュレータで振る舞いを模擬 6
RCP(Rapid Control Prototyping) はコントローラを模擬 制御アルゴリズム 制御対象 コード生成 専用ハードウェアで制御 制御対象は実機 7
HILS Demo コントローラ 制御対象 8
HILS Demo 9
HILS のメリット 実機レスでテスト HILS 環境によるシミュレーションにより実機レス 再現性が高く 作業性の良い機能検証を実現 制御対象の性能評価 構想段階や試作前など 存在しない制御対象を使用したテスト 実現困難なテスト 高電圧 / 電流など危険を伴うテスト 温度 部品特性のばらつき 故障モードなど手間のかかるテストを容易に実施 テスト環境の配布 低コストのボードで HILS 環境を構築して配布 10
高速 HILS の背景 モータ制御 電源制御における制御周期の向上 ( 高速化 即応性 ) 電動ターボ EV/HV EPS(Electric Power Steering) 用モータ 産業用ロボットのタクトタイム短縮 動作周期 : 数十 ns~ 数 us 処理 逐次処理 50us * (4) = 200us CPU/DSP 処理 処理 処理 SoC FPGA CPU CPU 並列処理 1.0us 処理 処理 処理 処理 11
RCP HILS テスト環境 Simulink Real-Time TM / Speedgoat 専用ハードウェア Speedgoat を活用した RCP/HILS テスト環境 データモニタ ログ機能をはじめとした Simulink の最新機能を素早く利用可能 高速化や I/O 増設のための FPGA オプションボード (HDL Coder で実装 ) 専用 HW Speedgoat でモデルをリアルタイム実行 12
物理モデリングライブラリ Simscape の電気系ライブラリ パワーエレクトロニクス / 電力系統電子回路 ( アナログ / デジタル / センサ / アクチュエータ ) 13
物理モデリングライブラリ Simscape の電気系ライブラリ Simulink ブロックで構築 精度簡略化 高速 Simscape Language で構築 精度は簡略化 高速 Simscape Components Specialized Technology Simscape Language で構築 高精度 14
Simscape の電気系ライブラリ Simscape Power Systems TM と Electronics TM が Electrical TM に統合 15
Simscape モデルを FPGA 実装する 2 つのアプローチ 1. Simscape HDL Workflow Advisor Simscape Language で書かれたブロックを離散状態空間モデルに変換 制約 現在はスイッチドリニアブロックのみ対応 (RLC 非線形特性を持たない半導体素子 モータなど ) 旧 Power Systems/Specialized Technology ライブラリは非対応 2. Simscape ブロックをマニュアル変換 作業工数はかかるが 制約なく変換可能 Specialized Technology ライブラリの Simulink で構成されたブロック 17
1. Simscape HDL Workflow Advisor を使った変換手順 Simscape モデル 1. 非線形ブロックが使用されていないかチェック >> simscape.findnonlinearblocks( modelname ) 状態空間モデル 2. Simscape HDL Workflow Advisor 起動 実行 >> sschdladvisor( modelname ) FPGA 3. HDL コード生成用設定データ型や HDL プロパティ設定 4. HDL ワークフローアドバイザーで実装 >> hdladvisor( modelname/subsystem ) 18
HDL ワークフローアドバイザ (HDL Coder 機能 ) Speedgoat の FPGA や FPGA 開発ボードに容易に実装 ウィザード形式の FPGA 実装ツール デバイス インターフェース設定 モデルチェック ~HDL 生成 コンパイル (FPGA ツール連携 ) ダウンロード 選択可能なワークフロー Simulink Real-Time FPGA I/O: Speedgoat の FPGA 実装 IP Core Generation:SoC FPGA 実装 /AXI バス FPGA Turnkey:FPGA 実装 FPGA-in-the-Loop:FPGA 実機検証 など 19
2. Simscape ブロックのマニュアル変換手順 1. ライブラリリンクを解除 2. ブロックマスク内を編集 Inport/Outport の修正 3. コード生成対応ブロックに変更 離散化 & データ型変更 4. HDL ワークフローアドバイザで実装 20
2-1. 対象ブロックのライブラリリンクの解除 対象ブロックのライブラリリンクを解除 右クリックメニューから ライブラリリンク [ リンクを無効 ] し さらに [ リンクの解除 ] を行います リンク解除の方法について 詳しくは Simulink ドキュメント参照 21
2-2. ブロック内部の編集 1 [ マスク内を表示 ](Ctrl+U) でブロック内を編集 ブロック内部のサブシステムもライブラリリンクが設定されているので リンクを解除する ブロックおよび Connection Port を削除 Goto/From ブロックは残して 入出力を終端 Shaft ポートを削除 22
2-2. ブロック内部の編集 2 入力ポートを Simulink ポートに変更 Simulink ポート追加 Simulink ポート追加 23
2-3. 離散化 データ型設定 コード生成対応ブロックへの置き換え HDL Coder 対応ブロックへの変更 24
まとめ Simscape モデルを FPGA アクセラレーションする方法を解説 Simscape モデルを FPGA 実装する 2 つのアプローチ 1. Simscape HDL Workflow Advisor 2. Simscape ブロックをマニュアル変換 FPGA を使った高速 HILS を構築可能 25
ご清聴ありがとうございました 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 26