Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1© 2017 The MathWorks, Inc.
ラピッドコントロールプロトタイピング(RCP)による制御アルゴリズムのテスト
MathWorks Japanアプリケーションエンジニアリング部 (制御)アプリケーションエンジニア新井 克明
2
モデルベースデザインが高機能・多機能化する製品の迅速な開発をサポート
シミュレーションを通した動作・性能検証とコード生成のテクノロジーを活用
制御対象モデル
制御ロジックモデル
+
制御装置試験
制御対象RCP
MCU/DSP
制御対象
制御ロジック
HILS
モデリング
C/HDLコード自動生成
仕様/実現性を実機レス&低コストで素早く検討実機テストへの素早いシフト
シームレスな開発環境で素早い製品リリースを可能にします
複雑な機能と高い信頼性を両立するためのテスト・検証ワークフローを実現します
3
RCP: Rapid Control Prototyping
リアルタイムテストの種類について
RCPシミュレータ 制御対象 (実物)
コントローラモデルを専用HWで模擬
HILS: Hardware-In-the-Loop Simulation
コントローラ (実物) HILシミュレータ
制御したい対象を専用HWで模擬
4
RCP: Rapid Control Prototyping
汎用性の高いRCPハードウェアを活用して検討したアルゴリズムを素早く実装&テスト
MILS
PCG
シミュレーションによる検討
制御対象実機を活用した
コントローラのプロタイピング
マイコン向け量産コード生成 実機ベースでの機能・性能検証
自動コード生成&ビルド
アルゴリズムのモデリング / シミュレーションベースの機能・性能検討
実際の制御対象RCPハードウェア
RCP環境へ実装
アルゴリズムの
再検討RCP
5
実機テストやデータ計測・可視化で活用できる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通信
6
Simulink Real-Timeの主な機能
簡単なI/Oへのアクセス
ハードウェアアクセス用のドライバブロックを提供
ターゲットHW単独で可視化
ターゲットHW単独で可視化環境を提供
適合・測定用GUI マルチコア実行 FPGA実装による高速化
パラメータ調整・信号測定用GUIを標準で提供
サンプリング時間ごとにタスクとしてコア分散実行
HDL Coderで高速演算部分を実装
アプリケーションの配布
適合用GUI含めた実行環境の配布
テストの自動化
Simulink Testでテストシナリオを自動実行
バイパス開発の環境
XCPで開発用ECUへのアルゴリズムを追加実装
FPGA
プロセッサCore 1
Core 2
本開発環境
テスト環境1
RCP ECUテスト環境2
7
アジェンダ - ラピッドコントロールプロトタイピング(RCP)による制御アルゴリズムのテスト -
RCP環境の構築例– モデルのビルド・実行の基本的な手順
– 信号のモニタリング/ロギングとパラメータのチューニング
– テスト信号の入力方法
専用ハードウェアSpeedgoatの紹介– ハードウェアのバリエーション
– サポートしている主なIOと通信プロトコル
FPGAボードへのアルゴリズムの実装– FPGAボードの活用ケース
– FPGA実装のワークフローの紹介
まとめ
8
アルゴリズムとドライバブロックを信号線で接続します
モデルのビルド・実行の手順
ハードウェアに搭載されたIOボードに対応する設定用ブロック・ドライバブロックをモデルに配置します
設定用ブロック・ドライバブロックからダイアログを開いてI/Oに関する各種設定を行います
1
Driver blocks Simulink Model
1
2
2
Dialog Fields
3
3
4
Connect to real-time application
ビルドボタンを押してコード生成およびビルドを行いますビルド後、アプリケーションは自動的にダウンロードされ、すぐに実行可能な環境が整います
4
9
RCPテスト環境の実行手順 (モーター制御用RCP)
10
Simulink Real-Timeの信号のモニタリング方法
Simulink Real-Time Explorer
Instrument パネル等を利用してモニタリング環境を作成
Simulation Data Inspector
Simulink標準の信号ビューワーへストリーミング
MATLAB
コマンドラインで信号を取得 & カスタムGUIとして統合
tg = slrt;sid = getsignalid(tg, 'Gain1');getsignal(tg, sid)
ターゲットディスプレイ
ハードウェアから汎用VGAディスプレイに直接表示
11
Simulink Real-Timeの信号のロギング
File Scopeを使ったHDDへのロギング
専用Scopeブロックで指定した信号をHDD/RAMに保存
Simulation Data Inspectorでのデータのエクスポート
Simulation Data InspectorでモニタリングしたデータをワークスペースやMATファイルに保存
※ ホストPCの処理負荷が大きい場合や高サンプリングでのロギングした場合にデータが欠落する場合があります
12
Simulation Data Inspectorによるデータモニタ/ロギング
13
パラメータのオンラインでのチューニング
RCPテスト中にSimulink Real-Time Explorerからパラメータの変更が可能です– [Applications]ペーン → [Model Hierarchy] → 右クリック[View Block Parameters]
表示するパラメータのフィルタリングもできます
ハードウェアから値を取得
ハードウェアへ値を送信
パラメータの設定
よく利用するパラメータはリストとして別ファイルで管理
– グループ作成: [Groupings] → 右クリック[New Parameter Group]
登録先を指定
14
RCPハードウェアでのテストシグナルの作成
Simulinkの標準ブロックを使ったテスト信号の作成・入力が可能です– Inportブロック
トップレイヤに配置することでワークスペースの時系列データをアサインできます
– 各種Sourceブロック
Simulink Test™のTest Sequenceブロックで動的なテスト信号を作成できます
2秒まで傾き1の単調増加
3になれば、傾き6の単調減少
2秒以降gearが3になるまで傾き2の単調増加
外部信号
処理内容シーケンスの遷移条件
遷移先のシーケンス
テスト信号
15
アジェンダ - ラピッドコントロールプロトタイピング(RCP)による制御アルゴリズムのテスト -
RCP環境の構築例– モデルのビルド・実行の基本的な手順
– 信号のモニタリング/ロギングとパラメータのチューニング
– テスト信号の入力方法
専用ハードウェアSpeedgoatの紹介– ハードウェアのバリエーション
– サポートしている主なIOと通信プロトコル
FPGAボードへのアルゴリズムの実装– FPGAボードの活用ケース
– FPGA実装のワークフローの紹介
まとめ
16
Simulink Real-Timeの実行用プラットフォーム Speedgoat
MathWorks/Speedgoatの2社体制でソリューションを提供
– MathWorks: ソフトウェア (Simulink Real-Time) の開発
– Speedgoat: ハードウェア (Speedgoat) の開発
MathWorksのグループ企業 (本社: スイス・ベルン)
Simulink Real-Time向け筐体・IOボードの開発に特化
MathWorks Speedgoat Your Hardware/Systems
17
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用途• ハイスペックなプロセッサを活用して
演算負荷の大きいプラントモデルを実行
18
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) のシミュレーション
19
産業オートメーション
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
POWERLINK Controlled Node (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
一般的な製品開発
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)
サポートしている主な通信プロトコル
20
アジェンダ - ラピッドコントロールプロトタイピング(RCP)による制御アルゴリズムのテスト -
RCP環境の構築例– モデルのビルド・実行の基本的な手順
– 信号のモニタリング/ロギングとパラメータのチューニング
– テスト信号の入力方法
専用ハードウェアSpeedgoatの紹介– ハードウェアのバリエーション
– サポートしている主なIOと通信プロトコル
FPGAボードへのアルゴリズムの実装– FPGAボードの活用ケース
– FPGA実装のワークフローの紹介
まとめ
21
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, configurable
22
Speedgoat 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~)
23
フレキシブルなI/Oモジュールとしての運用 - Configurable FPGA I/O Modules -
I/O設定用MATファイルを指定によりIOの仕様を切り替えが可能です– I/O設定用MATファイルはお客様の要求仕様をベースにSpeedgoat社が作成します
– HDL CoderおよびXilinxのツールチェーンは不要です
<入出力設定A> <入出力設定B>
24
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 LVDS3x MGTSelectable rear plug-ins
XMC
IO317,45k, 100k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS3x MGTSelectable rear plug-ins
XMC
IO318, 45k, 100k 32 x RS422 64 x LVCMOS or 32 LVDS3x MGTSelectable rear plug-ins
XMC
IO322, 45k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS3x MGTSelectable rear plug-ins
XMC
IO381, 44k 26 x TTL none mPCIe
IO383, 44k 14 x TTL and 6 x RS422 none mPCIe
IO33Xrear 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
25
HDL Coder™を活用することで高速演算を必要とするシステムをFPGAで処理できます– ユーザー独自のデバイスドライバの作成
– プロセッサでの処理では演算が間に合わないMHzオーダーの高速演算への適用
アルゴリズム実行の高速化手段としての運用 - Programmable FPGA I/O Modules -
① モデルもしくは既存のnetlistを利用してFPGAモジュール(インターフェイス)を生成
② 生成したFPGAモジュールと
プロセッサ演算側のモデルと接続③ ブロック全体をまとめてビルド&
ターゲットへダウンロード
<プロセッサ側処理部>
<FPGA側処理部>
26
CPU+FPGAモデルの作成&実装
27
Programmable FPGA I/O modules
I/Omodule
FPGA Front I/O Rear digital I/O
IO323 Spartan 6, 100K 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS3x MGTSelectable rear plug-ins
IO331 Spartan 6, 150K -1 to -8 front plug-ins 64 x LVCMOSMGTSelectable rear plug-ins
IO333 Kintex 7,Up to 410K
-1 to -8 front plug-ins- SFPs
64 x LVCMOS8x MGTSelectable rear plug-ins
IO335 Kintex 7, 325K 24 x 5 MHz ADC, +/- 5V03 x LVDS
64 x LVCMOSMGTSelectable rear plug-ins
IO342 Kintex Ultrascale, 1.45K
Selectable plug-ins- SFPs
Selectable plug-insMGT
IO397 Artix 7, 50K 4 x AD, 4 x DA, 14 xTTL
none
IO33Xfront 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 LVCMOS to RS422, RS485 and 3.3V/5V TTL
28
アジェンダ - ラピッドコントロールプロトタイピング(RCP)による制御アルゴリズムのテスト -
RCP環境の構築例– モデルのビルド・実行の基本的な手順
– 信号のモニタリング/ロギングとパラメータのチューニング
– テスト信号の入力方法
専用ハードウェアSpeedgoatの紹介– ハードウェアのバリエーション
– サポートしている主なIOと通信プロトコル
FPGAボードへのアルゴリズムの実装– FPGAボードの活用ケース
– FPGA実装のワークフローの紹介
まとめ
29
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(テストシナリオ作成・管理用オプション)
SimulinkMATLAB
データモニタリング・パラメータ適合
モデルのリアルタイム実行
他社製適合ツールおよびユーザー独自アプリケーション
Simulink Coder
モデリング
Simscape
Powertrain Blockset
Stateflow
30
ご興味のあるお客様は是非MathWorksにお問い合わせ下さい
環境構築のご検討の際にはMathWorksにご相談下さい シミュレーションだけでなく、実機テストフェーズでも
MATLAB&Simulinkを是非ご活用下さい!
<お問い合わせ先>御社営業担当 または MathWorksウェブサイトhttp://jp.mathworks.com/company/aboutus/contact_us/index.html
MATLAB&Simulinkはじめ各種ツール:
トライアルライセンス(1ヶ月)でご評価いただけます
Simulink Real-Time:
評価用ハードウェアのお貸し出しが可能です
31
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.