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