ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト MathWorks Japan アプリケーションエンジニアリング部 ( 制御 ) アプリケーションエンジニア新井克明 2017 The MathWorks, Inc. 1
モデルベースデザインが高機能 多機能化する製品の迅速な開発をサポート シミュレーションを通した動作 性能検証とコード生成のテクノロジーを活用 シームレスな開発環境で素早い製品リリースを可能にします 複雑な機能と高い信頼性を両立するためのテスト 検証ワークフローを実現します 仕様 / 実現性を実機レス & 低コストで素早く検討 実機テストへの素早いシフト HILS 制御装置試験 制御対象 モデリング 制御対象モデル + C/HDL コード自動生成 RCP 制御対象 制御ロジック 制御ロジックモデル MCU/DSP 2
リアルタイムテストの種類について RCP: Rapid Control Prototyping コントローラモデルを専用 HW で模擬 RCP シミュレータ制御対象 ( 実物 ) 制御したい対象を専用 HW で模擬 HILS: Hardware-In-the-Loop Simulation コントローラ ( 実物 ) HIL シミュレータ 3
RCP: Rapid Control Prototyping 汎用性の高い RCP ハードウェアを活用して検討したアルゴリズムを素早く実装 & テスト MILS シミュレーションによる検討 RCP 環境へ実装 RCP 制御対象実機を活用した コントローラのプロタイピング PCG マイコン向け量産コード生成 アルゴリズムの再検討 アルゴリズムのモデリング / シミュレーションベースの機能 性能検討 RCP ハードウェア 自動コード生成 & ビルド 実際の制御対象 実機ベースでの機能 性能検証 4
実機テストやデータ計測 可視化で活用できる MathWorks の各種ツール Simulink Real-Time RCP/HIL テスト環境 ( ハードウェア リアルタイム ) データ収集 (DAQ) 系ツールボックス Data Acquisition Toolbox :DAQカード入出力 Image Acquisition Toolbox : カメラ入力 Instrument Control Toolbox : シリアル / イーサネット Vehicle Network Toolbox :CAN 通信 Simulink Desktop Real-Time 簡易実機テスト環境 ( ソフトウェア リアルタイム ) MATLAB&Simulink 5
Simulink Real-Time の主な機能 簡単な I/O へのアクセス ハードウェアアクセス用のドライバブロックを提供 適合 測定用 GUI マルチコア実行 FPGA 実装による高速化 パラメータ調整 信号測定用 GUI を標準で提供 サンプリング時間ごとにタスクとしてコア分散実行 Core 2 HDL Coder で高速演算部分を実装 FPGA Core 1 プロセッサ ターゲット HW 単独で可視化ターゲット HW 単独で可視化環境を提供 アプリケーションの配布適合用 GUI 含めた実行環境の配布 テストの自動化 Simulink Test でテストシナリオを自動実行 バイパス開発の環境 XCP で開発用 ECU へのアルゴリズムを追加実装 本開発環境 テスト環境 1 テスト環境 2 RCP ECU 6
アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 7
モデルのビルド 実行の手順 1 4 2 3 Driver blocks Simulink Model Dialog Fields Connect to real-time application 1 ハードウェアに搭載されたIOボードに対応する設定用ブロック ドライバブロックをモデルに配置します 2 アルゴリズムとドライバブロックを信号線で接続します 3 設定用ブロック ドライバブロックからダイアログを開いて I/Oに関する各種設定を行います 4 ビルドボタンを押してコード生成およびビルドを行いますビルド後 アプリケーションは自動的にダウンロードされ すぐに実行可能な環境が整います 8
RCP テスト環境の実行手順 ( モーター制御用 RCP) 9
Simulink Real-Time の信号のモニタリング方法 Simulink Real-Time Explorer Instrument パネル等を利用してモニタリング環境を作成 ターゲットディスプレイ ハードウェアから汎用 VGA ディスプレイに直接表示 Simulation Data Inspector Simulink 標準の信号ビューワーへストリーミング MATLAB コマンドラインで信号を取得 & カスタム GUI として統合 tg = slrt; sid = getsignalid(tg, 'Gain1'); getsignal(tg, sid) 10
Simulink Real-Time の信号のロギング File Scope を使った HDD へのロギング 専用 Scope ブロックで指定した信号を HDD/RAM に保存 Simulation Data Inspector でのデータのエクスポート Simulation Data Inspector でモニタリングしたデータをワークスペースや MAT ファイルに保存 ホスト PC の処理負荷が大きい場合や高サンプリングでのロギングした場合にデータが欠落する場合があります 11
Simulation Data Inspector によるデータモニタ / ロギング 12
パラメータのオンラインでのチューニング RCP テスト中に Simulink Real-Time Explorer からパラメータの変更が可能です [Applications] ペーン [Model Hierarchy] 右クリック [View Block Parameters] 表示するパラメータのフィルタリングもできます よく利用するパラメータはリストとして別ファイルで管理 グループ作成 : [Groupings] 右クリック [New Parameter Group] ハードウェアへ値を送信 ハードウェアから値を取得 登録先を指定 パラメータの設定 13
RCP ハードウェアでのテストシグナルの作成 Simulink の標準ブロックを使ったテスト信号の作成 入力が可能です Inport ブロック トップレイヤに配置することでワークスペースの時系列データをアサインできます 各種 Source ブロック Simulink Test の Test Sequence ブロックで動的なテスト信号を作成できます 3 になれば 傾き 6 の単調減少 外部信号 テスト信号 2 秒以降 gear が 3 になるまで傾き 2 の単調増加 処理内容 シーケンスの遷移条件 遷移先のシーケンス 2 秒まで傾き 1 の単調増加 14
アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 15
Simulink Real-Time の実行用プラットフォーム Speedgoat MathWorks/Speedgoat の 2 社体制でソリューションを提供 MathWorks: ソフトウェア (Simulink Real-Time) の開発 Speedgoat: ハードウェア (Speedgoat) の開発 MathWorks のグループ企業 ( 本社 : スイス ベルン ) Simulink Real-Time 向け筐体 IO ボードの開発に特化 MathWorks Speedgoat Your Hardware/Systems 16
Speedgoat のハードウェアバリエーション Performance Mobile Baseline プロセッサ Intel Core i7 3.5GHz (4 core) プロセッサ Intel Core i7 2.5GHz (2 core) プロセッサ Intel Quad Core 2GHz メモリ /HDD 4GB / 64GB-SSD メモリ /HDD 4GB / 64GB-SSD メモリ /HDD 4GB / 64GB-SSD 用途 / 特徴 用途 / 特徴 用途 / 特徴 ラボ向け据え置き型筐体 HIL/RCP 用途 ハイスペックなプロセッサを活用して演算負荷の大きいプラントモデルを実行 フィールド 車載テスト向けハードウェア RCP 用途 省スペース /CPU パフォーマンスのバランス型 ファンレス仕様 小型のエントリーモデル RCP 用途 ( バイパス開発 ) コンパクトなハードウェア構成 19cm( 幅 ) 19cm( 奥行 ) 8cm( 高さ ) ( 拡張スロット無しの場合のサイズの目安 ) 17
I/O について Analog Digital Pulse Train Encoders Video LVDT/RVDT, Synchro/ Resolver Shared Memory Fault Insertion Temperature Strain, Pressure Accelerometers Resistors A/D, D/A, frame support TTL, LVCMOS, LVDS, RS422, RS485 PWM 生成 キャプチャ 割り込み, negation アブソリュートエンコーダおよびインクリメンタルエンコーダの測定 / シミュレーション (quadrature および SSI), EnDAT 2.2, SSI2, SPI, BiSS エンコーダの測定 USB (Webcams), CameraLink LVDT, RVDT, シンクロ, およびレゾルバの測定 / シミュレーション シェアード / リフレクティブメモリ 故障挿入のための電気機械式もしくは半導体スイッチ 熱伝対, 測温抵抗体 (RTD), NTC サーミスタの計測 / シミュレーション ひずみゲージ, 圧力センサの測定 / シミュレーション アンプ内蔵型加速度センサ (IEPE/ICP) の測定 抵抗器, ポテンショメータ, リードリレー (SPDT, DPST, SPST) のシミュレーション 18
サポートしている主な通信プロトコル 一般的な製品開発 産業オートメーション 自動車 航空宇宙 Serial RS232, RS422, RS485, SDLC, HDLC UDP / TCP CAN / SAE J1939 SPI Master and Slave I2C Master and Slave Profinet Controller (Master) Profinet Device (Slave) Modbus/TCP Client (Master) Modbus/TCP Server (Slave) Modbus RTU Profibus Master Profibus Slave XCP Master/Slave (CANape/INCA) CAN / SAE J1939 LIN 2.1 FlexRay Cam / Crank ARINC 429 ARINC 629 ARINC 664P7/AFDX MIL-STD-1553 Shared/reflective memory (ScramNet GT / 5565PIORC) EtherCAT Master EtherCAT Slave IRIG with GPS Precision Time Protocol (PTP) EtherNet/IP Scanner EtherNet/IP Adapter POWERLINK Controlled Node (Slave) 19
アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 20
FPGA-based I/O Modules 主な IO ボードの種類 IO397 - mpcie IO333 XMC IO342 - PCIe - Xilinx Artix-7 (50k) - 4x ADC - 4x DAC - 14x TTL, configurable - Xilinx Kintex-7 FPGA (325k or 410k) - Flexible front I/O connectivity - front SFP cages e.g. for Xilinx Aurora or 10Gbe UDP communication - Xilinx Kintex UltraScale FPGA (1450k) - 5520 DSP slices - 8 GB DDR4 RAM - Two FMC slots 21
Speedgoat FPGA ベース I/O モジュール FPGA ボードの 2 種類の利用方法 1. Configurable FPGA I/O Modules: Speedgoat 社が IO ドライバを提供 PWM 生成およびキャプチャ インクリメンタル / アブソリュートエンコーダ SPI / I2C 通信..etc IO 設定ファイルを変更するだけで I/O の切り替えが可能 モデルの実行は通常のプロセッサで演算します ( サンプル時間 : ~20kHz 程度 ) 2. Programmable FPGA I/O Modules: HDL Coder を利用するアプローチ ユーザーが FPGA モジュールをプログラミング ユーザー独自の IO ドライバ作成 モデルのアルゴリズムの部分も FPGA 上で高速実行したいケースで利用 高速実行が必要なサブシステムを FPGA 上で演算します ( サンプル時間 : 100kHz~) 100 khz and more 22
フレキシブルな I/O モジュールとしての運用 - Configurable FPGA I/O Modules - I/O 設定用 MAT ファイルを指定により IO の仕様を切り替えが可能です I/O 設定用 MAT ファイルはお客様の要求仕様をベースに Speedgoat 社が作成します HDL Coder および Xilinx のツールチェーンは不要です < 入出力設定 A> < 入出力設定 B> 23
Configurable I/O Modules I/O module Functionality Rear I/O lines Form factor IO306, 25k 64 x TTL none PMC IO307, 25k 32 x TTL, 16 x RS422 none PMC IO316, 45k, 100k 64 x TTL 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO317,45k, 100k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO318, 45k, 100k 32 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO322, 45k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins XMC XMC XMC XMC IO381, 44k 26 x TTL none mpcie IO383, 44k 14 x TTL and 6 x RS422 none mpcie IO33X rear plugins IO33X-21 IO33X-22 I/O functionality Converts rear I/O lines from LVCMOS to 3.3V/5V TTL Converts the rear I/O lines from LVCMOS to RS422, RS485 and 3.3V/5V TTL 24
アルゴリズム実行の高速化手段としての運用 - Programmable FPGA I/O Modules - HDL Coder を活用することで高速演算を必要とするシステムを FPGA で処理できます ユーザー独自のデバイスドライバの作成 プロセッサでの処理では演算が間に合わない MHz オーダーの高速演算への適用 1 モデルもしくは既存の netlist を利用して FPGA モジュール ( インターフェイス ) を生成 2 生成した FPGA モジュールと プロセッサ演算側のモデルと接続 3 ブロック全体をまとめてビルド & ターゲットへダウンロード <FPGA 側処理部 > < プロセッサ側処理部 > 25
CPU+FPGA モデルの作成 & 実装 26
I/O module Programmable FPGA I/O modules FPGA Front I/O Rear digital I/O IO323 Spartan 6, 100K 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO331 Spartan 6, 150K -1 to -8 front plug-ins 64 x LVCMOS MGT Selectable rear plug-ins IO333 Kintex 7, Up to 410K -1 to -8 front plug-ins - SFPs IO335 Kintex 7, 325K 24 x 5 MHz ADC, +/- 5V 03 x LVDS IO342 Kintex Ultrascale, 1.45K Selectable plug-ins - SFPs IO397 Artix 7, 50K 4 x AD, 4 x DA, 14 x TTL 64 x LVCMOS 8x MGT Selectable rear plug-ins 64 x LVCMOS MGT Selectable rear plug-ins Selectable plug-ins MGT none IO33X front plug-ins IO33X-1 IO33X-1LV IO33X-2 IO33X-3 IO33X-4 IO33X-5 IO33X-6 IO33X-7 IO33X-8 IO33X rear conditioning modules IO33X-21 IO33X-22 I/O functionality 64 x digital TTL (3.3V/5V) I/O front I/O lines 64 x digital LVCMOS (2.5V)/ LVTTL (3.3V) front I/O lines 30 x RS485 (RS422 compliant) front I/O lines 16 x CMOS (5V) and 22 RS485 (RS422 compliant) front I/O lines 30 x LVDS I/O lines 2 x 16-bit 105 MHz differential simultaneous analog inputs 16 x 16-bit 500kHz ADs, 8 x 16-bit DAs with 10us settling time, 16 x digital TTL I/O lines 16 x 16-bit analog outputs with 2us settling time, +/- 10V 8 x 16-bit analog outputs with 2us settling time, +/- 10V I/O functionality Converts rear I/O lines from LVCMOS to 3.3V/5V TTL Converts the rear I/O lines from LVCMOS to RS422, RS485 and 3.3V/5V TTL 27
アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 28
MathWorks のツールチェーンでシンプルに RCP 環境を構築できます 様々なツールの互換性を気にせず Simulink をベースにスムーズに実機テストを行えます MATLAB&Simulink の最新機能といち早く連携が可能です モデリング データモニタリング パラメータ適合 MATLAB Simulink Stateflow MATLAB&Simulink および SLRT Explorer (Simulink Real-Time 付属の測定 / 適合用 GUI) Simulink Test ( テストシナリオ作成 管理用オプション ) 他社製適合ツールおよびユーザー独自アプリケーション Simscape MATLAB Coder Simulink Coder 専用 HW Speedgoat ( プロセッサボード +IO ボード ) モデルのリアルタイム実行 HDL Coder FPGA 搭載 IO ボード Powertrain Blockset Simulink Real-Time の標準機能 29
ご興味のあるお客様は是非 MathWorks にお問い合わせ下さい 環境構築のご検討の際には MathWorks にご相談下さいシミュレーションだけでなく 実機テストフェーズでも MATLAB&Simulink はじめ各種ツール : トライアルライセンス (1 ヶ月 ) でご評価いただけます Simulink Real-Time: 評価用ハードウェアのお貸し出しが可能です MATLAB&Simulink を是非ご活用下さい! < お問い合わせ先 > 御社営業担当または MathWorks ウェブサイト http://jp.mathworks.com/company/aboutus/contact_us/index.html 30
Accelerating the pace of engineering and science 2017 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. 31