Simulink R / Stateflow R 入門 MathWorks Japan アプリケーションエンジニアリング部 小林昇洋 2016 The MathWorks, Inc. 1
本セッションで対象としている方々 Q : Simulink / Stateflow は使ったことがない どんなツールなのか? A : お使いいただいているシーン 理由などご紹介します 2
Simulink とは? Simulink はグラフィカルなプログラミング環境です 3
どこで使われているの? シミュレーション 組み込みのソフトウェアの開発など 4
なぜ Simulink が使われているのか? グラフィカルな環境がプログラムの開発を加速します Simulink が提供するブロック線図モデリング Stateflow オプションが提供するフロチャート 状態遷移モデリング Simscape オプションが提供する回路図 物理モデリング 5
なぜ Simulink が使われているのか? 従来の開発環境とのインターフェースが豊富 Simulink & MATLAB 自動生成 C/C++ HDL ST など 実装 取り込み出力 対応ハードウェア C/C++ Excel,csv など 6
例題 : すぐに試せるアルゴリズムの実機動作 PC Simulink モデル PC 画面 (Stateflow) 実機 シリアル通信 (USB 接続 ) C コード実装 OFF Ready +LED LED 点滅 7
なぜ Simulink が使われているのか? ユーザー様の声 グラフィカルなプログラミング環境 シミュレーションの活用が進み ハードウェアの試作回数を低減できた デザインレビューの効率が上がり やり直し作業 ( 手戻り ) が減少した 従来環境とのインターフェースが豊富 検討したプログラムを実機ですぐにためせるため アイディアがすぐに試せる 高度なアルゴリズムをCコードへ実装する作業が簡単 既存の C コードをとりこんで シミュレーションでの試験が可能 設定が難しい条件をシミュレーションでテストできる 8
具体的な例題で Simulink / Stateflow をご紹介! 昨今のトレンドは? センサー IoT カメラ レーダー データ処理 + 指令算出 デジタルフィルター 人工知能 高度なアルゴリズム 制御対象 ドローン ロボット 自動運転 9
例題 : 自動追跡カメラ実験システム シミュレーションとプロトタイピングにトライ! カメラ 画像処理 + 指令算出 制御対象 画像取得 目標角度 電圧 Web カメラ Logicool Webcam Pro 9000 USB PC Serial over USB Arduino DC モータ カメラの向きを回転 10
自動追跡カメラ実験システム Simulink のブロック線図の基本操作のご紹介 11
自動追跡カメラ実験システム Simulink 上での微分方程式の構築 dx dt = a x x a x dx dt a x = dx dt 12
例題 : 自動追跡カメラ実験システム シミュレーションとプロトタイピングにトライ! あらかじめ撮影した動画 画像処理 + 指令算出 制御対象 動画 目標角度 電圧 PC Serial over USB コントローラモデル Arduino プラントモデル DC モータ モータの向きを回転 13
例題 : 自動追跡カメラ実験システム まずは画像処理部分をシミュレーション あらかじめ撮影した動画 画像処理 + 指令算出 制御対象 動画 目標角度 電圧 PC Serial over USB コントローラモデル Arduino プラントモデル DC モータ モータの向きを回転 14
自動追跡カメラ実験システム Simulink による画像処理の構築 15
例題 : 自動追跡カメラ実験システム 次はモーターとコントローラをシミュレーション あらかじめ撮影した動画 画像処理 + 指令算出 制御対象 動画 目標角度 電圧 PC Serial over USB コントローラモデル Arduino プラントモデル DC モータ モータの向きを回転 16
例題 : 自動追跡カメラ実験システム DC モータの数式モデル L i v R v b v m J B ( t) v( t) v ( t) b L パラメータ L[H] R[ ] K[ V ( rad s)] J[ kg* m B[ N * m ( rad s)] L 2 ] [ N * m] 物理量 電機子インダクタンス 電機子抵抗 逆起電力定数 ロータ慣性モーメント ロータ動摩擦係数 負荷トルク 電磁ロスが無い場合 逆起電力定数とトルク定数は等しい 機械系 d ( t) J B ( t) L( t) ( t) dt ( t) Ki( t) ( t ) d ( t) dt 電気系 di( t) L Ri( t) vb ( t) dt v( t) v b ( t) K ( t) 17
DC モータ数式モデルをモデリングします Simulink 運動 回路方程式をシミュレーションして時系列応答を確認 2 回積分 2 d 1 2 dt J Ki B L 加減算 乗算 時間積分 機械系 電気系 di dt 1 L v Ri K 18
自動追跡カメラ実験システム Simulink によるモーターと PID 制御の構築 19
自動追跡カメラ実験システム 例外処理 例外処理の仕様決め 処理 1:3 秒間その向きを維持 処理 2: その間にボールが枠内に戻ってきたら追従を再開 処理 3:3 秒以上経過したら 正面位置に向き直る ボールがカメラの枠外に出てしまったら? ソフトウェア設計へ 20
自動追跡カメラ実験システム フローチャートで設計する場合 Stateflow 枠内 枠外 3s 以内 3s 経過 正面維持方向維持ボール追従 21
自動追跡カメラ実験システム 状態遷移図で設計する場合は? Stateflow ボール追従 枠外 枠内 方向維持 枠内 3s 経過 正面維持 22
Stateflow による色々なロジック表現 設計したいアルゴリズムに応じて様々なデザインスタイルを活用できます フローチャート状態遷移図状態遷移表真理値表 23
自動追跡カメラ実験システム シミュレーションで動作の確認ができました! 動画入力画像処理モータ制御 DC モータ 24
自動追跡カメラ実験システム 指令算出部 (PC) と Arduino 実装部に分離 Serial 通信 25
自動追跡カメラ実験システム 実機実験 PC 26
自動追跡カメラ実験システム シミュレーション & プロトタイピングまとめ ブロック線図 フローチャート 状態遷移図で設計図そのままにプログラム共有 数式を用いたシミュレーションの構築も簡単 dx dt = a x 実機接続も簡単で アイディアをすぐに試せる環境 などほか多数 27
Simulink モデルを中心として製品開発の効率化が実現できます! モデルを中心としたモデルベースデザイン 研究 システム設計 要求仕様 グラフィカルなプログラム 紙ベースの仕様書を補完する モデル チーム間コミュニケーションを改善 コンポーネント開発 / 実装 C, C++ 環境モデル 物理コンポーネント アルゴリズム VHDL Verilog MCU DSP FPGA ASIC システム統合 SPICE Analog Hardware テストシステム テスト & 検証 シミュレーションによる設計 複合ドメインを同一環境で モデル化 設計のトレードオフ 相互作用検証 コード生成機能で実機と連携 モデル から C, HDL コードを自動生成 プロトタイプテストを効率化 テスト環境までをトータルサポート モデル を再利用したテスト生成 シミュレーション / テストの自動化 28
本日の MATLAB Expo の講演でも 1. 研究はしているが 実用的なアイディアが少ない特に制御理論の適用に興味がある B4: 制御系設計環境オーバービュー & 便利機能のご紹介 2. 競合他社に負けないように効率的な開発が必要 A4: モデルベースデザインのためのプラントモデルの作成と活用入門 3. ヒューマンエラーの極力少ない 品質の高い開発が求められる B3: 効果的活効率的なモデルベース組み込みソフト開発 検証 資料は後日ダウンロード可 個別のご相談も受け付けております 29
MathWorks にご相談ください こんなシミュレーションが作れないかな? 世界の適用事例 本 パートナーのご案内が可能です 社内の人に聞いて使い始めますか? トレーニングが効果的です 本日はトレーニングテキストがご覧いただけます! 会場出てすぐ! まずは評価版からご検討ください 30
Accelerating the pace of engineering and science 2016 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