コード生成製品の普及と最新の技術動向 MathWorks Japan パイロットエンジニアリング部 東達也 2014 The MathWorks, Inc. 1
MBD 概要 MATLABおよびSimulinkを使用したモデルベース デザイン ( モデルベース開発 ) 紹介ビデオ 2
MBD による制御開発フローとコード生成製品の活用 制御設計の最適化で性能改善 設計図ですぐに挙動確認 MILS: Model In the Loop Simulation RCP: Rapid Control Prototyping PILS: Processor In the Loop Simulation HILS: Hardware In the Loop Simulation 制御仕様設計 MILS ( プラント協調 シミュレーション ) 実機評価適合 シミュレーションモデル開発 制御ソフト設計 RCP ( コントローラ試作による実験 ) HILS ( プラント模擬装置によるソフト試験 ) グラフィカル環境で作成 理解が容易 組込みコード自動生成 コード検証 (PILS) 3
シミュレーションモデル開発 Toyota Racing Development における取り組み例 風洞テスト 振動テスト 計測 データ収集 シミュレーションモデルパラメータ最適化 データ解析 走行テスト シミュレーションモデルの精度向上が重要 4
MBD による制御開発フローとコード生成製品の活用 MILS: Model In the Loop Simulation RCP: Rapid Control Prototyping PILS: Processor In the Loop Simulation HILS: Hardware In the Loop Simulation 制御仕様設計 MILS ( プラント協調 シミュレーション ) 制御モデルで実機実験 実機評価適合 制御ソフト設計 RCP ( コントローラ試作による実験 ) HILS ( プラント模擬装置によるソフト試験 ) 組込みコード自動生成 コード検証 (PILS) 現場 実機試験の回数削減 制御モデルをデバイス実装 モデルをテストベンチに再利用 5
各種シミュレーション手法 手法動作物 動作環境主な検証内容 MILS (Model In the Loop Simulation) モデル ホスト (PC) コントローラ モデル ホスト (PC) プラント 制御モデル処理内容の妥当性検証 RCP (Rapid Control Prototyping) コード C リアルタイムシミュレータ コントローラ 実機 プラント 制御仕様のリアルタイム動作検証 制御周期 / パラメータの妥当性検証 PILS (Processor In the Loop Simulation) CコードターゲットCPU コントローラ モデル ホスト (PC) プラント コードとオリジナルモデル処理の等価性検証 ターゲット CPU 上で コントローラのコード部分とコードの実 CPU 演算 クロスコンパイラ / リンカ設定の影響を評価 処理時間 メモリ使用量評価 HILS (Hardware In the Loop Simulation) コード C ターゲットCPU コントローラ Cコード リアルタイムシミュレータ プラント プラントモデルをリアルタイムシミュレータで動作させ ターゲット CPU 上で CPU 周辺 実行管理 I/O ドライバを含めたコントローラコード全体のリアルタイム動作を検証 6
組込みコード自動生成製品の普及様々な分野で活用されています DaimlerChrysler クルーズコントロール制御 ミツバリバーシングワイパー制御 小野測器高精度車速計 General Motors ハイブリッド制御 Wärtsilä 産業用ディーゼルエンジン Alstom 鉄道用電力変換システム 7
最新の技術動向 : 規格対応 機能安全 航空機 :DO-178, ARP4754 AUTOSAR ソフトウェアアーキテクチャー標準化と再利用 Alenia Aermacchi Autopilot software ツール認定 (Embedded Coder) 産業 : IEC61508 鉄道 : EN50128 自動車 : ISO26262 Airbus Helicopter Flight software プロセスで品質を確保ツールで作業効率を改善 広く量産車開発に適用 8
最新の技術動向 : マルチコアプロセッサ実装高い処理能力が必要な組込みシステムへ向けて 性能 専用 H/W: FPGA, ASIC SIMD: Single Instruction Multiple Data 1つの命令で複数のデータを扱う処理方式 FPGA, ASIC 専用 H/W Xilinx Zynq, Altera SoC など CPU+ 専用 H/W ルネサス MX-G, NVIDIA Tegra, ARM Mali など CPU+ SIMD コア 適用例 : 先進運転支援システム高精度モーター制御システム マルチ CPU シングル CPU ルネサス V850 マルチコア Analog Devices Tiger SHARC ARM マルチコアなど 機能の自由度 9
マルチ CPU 向けコード生成ルネサス V850 マルチコア向けの取り組み マルチ CPU Multicore Coder for PILS( 試作 ) Simulink モデルからマルチコア用コードを生成 PILS による動作検証 性能検証が可能な開発環境 Multicore Coder for PILS の動作例 注 : TLV by TOPPERS Project 注 : TLV by TOPPERS Project 10
CPU+SIMD コア向けコード生成ルネサス MX-G 向けの取り組み CPU+ SIMD コア PILS を活用した MX 並列プロセッサ向けソフトウェア開発環境 MX 向け Simulink ブロックセット開発 Simulink とマイコン開発環境の連携動作 11
CPU+ 専用 H/W 向けコード生成 Xilinx Zynq C+HDL コード生成への取り組み CPU+ 専用 H/W Simulink の 1 モデルから ARM 用 C コードと FPGA 用 HDL コードを生成 ARM と FPGA 間の I/F コードも同時に自動生成 12
専用 H/W 向けコード生成 by HDL Coder FPGA/ASIC 向け VHDL/Verilog コード生成 専用 H/W モデル VHDL(IEEE 1076-2002), Verilog(IEEE 1364-2001) ASIC/FPGA 用合成ツールに対応 VHDL Verilog HDL Coder always @(posedge clk or posedge reset) begin : FF0_process if (reset == 1'b1) begin FF0_out1 <= 8'sb00000000; end else begin FF0_out1 <= In1; end end assign Gain0_out1 = 3 * FF0_out1; always @(posedge clk or posedge reset) begin : FF1_process.... end assign Gain1_out1 = 5 * FF1_out1; assign Add_out1 = Gain_out1 + Gain1_out1; パイプライン リソース共有設定 HDL コシミュレーション /FIL によるコード 実機検証 FIL: FPGA In the Loop Altera QuartusII / Xilinx ISE 連携クリティカルパス表示 ボード実装 ASIC/FPGA 13
まとめコード生成製品の普及と最新の技術動向 コード生成製品は広く普及しています 活用シーン RCP(Rapid Control Prototype) 組込みコード自動生成とコード検証 HILS(Hardware In the Loop Simulation) シミュレーションモデルの精度向上が重要 機能安全 AUTOSAR など 規格準拠でも活用 製品実績多数 ツールの活用で工数削減 マルチコア実装への取り組み 並列化から専用 H/W コアの活用へ 14