31
1 © 2016 The MathWorks, Inc. Simulink / Stateflow 入門 MathWorks Japan アプリケーションエンジニアリング部 小林 昇洋

Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

  • Upload
    vantram

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

1© 2016 The MathWorks, Inc.

SimulinkⓇ / StateflowⓇ 入門

MathWorks Japan

アプリケーションエンジニアリング部

小林 昇洋

Page 2: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

2

本セッションで対象としている方々

Q : Simulink / Stateflow は使ったことがない。

どんなツールなのか?

A : お使いいただいているシーン、理由などご紹介します。

Page 3: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

3

Simulinkとは?

Simulinkはグラフィカルなプログラミング環境です

Page 4: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

4

どこで使われているの?

シミュレーション、組み込みのソフトウェアの開発など

Page 5: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

5

なぜSimulinkが使われているのか?

グラフィカルな環境がプログラムの開発を加速します

Simulinkが提供するブロック線図モデリング

Stateflowオプションが提供するフロチャート・状態遷移モデリング

Simscapeオプションが提供する回路図・物理モデリング

Page 6: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

6

なぜSimulinkが使われているのか?

従来の開発環境とのインターフェースが豊富

Simulink C/C++HDL

STなど

自動生成 実装

対応ハードウェア

&MATLAB

C/C++Excel,csv

など

取り込み出力

Page 7: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

7

例題:すぐに試せるアルゴリズムの実機動作

PCSimulinkモデル

シリアル通信(USB接続)

+LED

PC画面(Stateflow) 実機

OFF Ready

LED点滅

Cコード実装

Page 8: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

8

なぜSimulinkが使われているのか?

ユーザー様の声

グラフィカルなプログラミング環境

シミュレーションの活用が進み、ハードウェアの試作回数を低減できた。

デザインレビューの効率が上がり、やり直し作業(手戻り)が減少した。

従来環境とのインターフェースが豊富

検討したプログラムを実機ですぐにためせるため、アイディアがすぐに試せる。

既存のCコードをとりこんで、シミュレーションでの試験が可能。設定が難しい条件をシミュレーションでテストできる。

高度なアルゴリズムをCコードへ実装する作業が簡単。

Page 9: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

9

具体的な例題でSimulink / Stateflow をご紹介!

昨今のトレンドは?

センサー IoT カメラ レーダー

データ処理+指令算出 デジタルフィルター 人工知能 高度なアルゴリズム

制御対象 ドローン ロボット 自動運転

Page 10: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

10

例題:自動追跡カメラ実験システム

シミュレーションとプロトタイピングにトライ!

WebカメラLogicool Webcam

Pro 9000

カメラ

ArduinoPC

画像取得

目標角度

USB Serial over USB

画像処理+指令算出

カメラの向きを回転

制御対象

電圧

DCモータ

Page 11: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

11

自動追跡カメラ実験システム

Simulinkのブロック線図の基本操作のご紹介

Page 12: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

12

自動追跡カメラ実験システム

Simulink上での微分方程式の構築

𝑑𝑥

𝑑𝑡= 𝑎 − 𝑥

𝑥

𝑑𝑥

𝑑𝑡𝑎 − 𝑥

𝑎 − 𝑥 =𝑑𝑥

𝑑𝑡

Page 13: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

13

例題:自動追跡カメラ実験システム

Arduino

目標角度

Serial over USB

シミュレーションとプロトタイピングにトライ!

あらかじめ撮影した動画

電圧

モータの向きを回転

DCモータ

コントローラモデル プラントモデル

動画

PC

制御対象画像処理+指令算出

Page 14: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

14

例題:自動追跡カメラ実験システム

Arduino

目標角度

Serial over USB

まずは画像処理部分をシミュレーション

あらかじめ撮影した動画

電圧

モータの向きを回転

DCモータ

コントローラモデル プラントモデル

動画

PC

制御対象画像処理+指令算出

Page 15: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

15

自動追跡カメラ実験システム

Simulinkによる画像処理の構築

Page 16: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

16

例題:自動追跡カメラ実験システム

Arduino

目標角度

Serial over USB

次はモーターとコントローラをシミュレーション

あらかじめ撮影した動画

電圧

モータの向きを回転

DCモータ

コントローラモデル プラントモデル

動画

PC

制御対象画像処理+指令算出

Page 17: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

17

DCモータの数式モデル

v

L R

B

bv

パラメータ 物理量

電機子インダクタンス

電機子抵抗

逆起電力定数

ロータ慣性モーメント

ロータ動摩擦係数

負荷トルク

i][HL

][R

])([ sradVK

]*[ 2mkgJ

])(*[ sradmNB

]*[ mNL

J

L

)()()( tvtvtv bm

)()()()(

tvtvtRidt

tdiL b

)()( tKit dttdt )()(

)()( tKtvb

)()()()(

tttBdt

tdJ L

機械系

※ 電磁ロスが無い場合、逆起電力定数とトルク定数は等しい

電気系

例題:自動追跡カメラ実験システム

Page 18: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

18

DCモータ数式モデルをモデリングします

KRivLdt

di

1

LBKiJdt

d

12

2

機械系

電気系

運動・回路方程式をシミュレーションして時系列応答を確認

乗算 時間積分

加減算

2回積分

Simulink

Page 19: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

19

自動追跡カメラ実験システム

SimulinkによるモーターとPID制御の構築

Page 20: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

20

自動追跡カメラ実験システム

例外処理

ボールがカメラの枠外に出てしまったら?

例外処理の仕様決め

処理1:3秒間その向きを維持

処理2:その間にボールが枠内に戻ってきたら追従を再開

処理3:3秒以上経過したら、正面位置に向き直る

ソフトウェア設計へ

Page 21: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

21

自動追跡カメラ実験システム

フローチャートで設計する場合

枠内

枠外3s以内

3s経過

正面維持 方向維持 ボール追従

Stateflow

Page 22: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

22

自動追跡カメラ実験システム

状態遷移図で設計する場合は?

ボール追従

方向維持

正面維持

枠外

3s経過

枠内

枠内

Stateflow

Page 23: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

23

Stateflowによる色々なロジック表現

設計したいアルゴリズムに応じて様々なデザインスタイルを活用できます

フローチャート 状態遷移図 状態遷移表 真理値表

Page 24: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

24

自動追跡カメラ実験システム

シミュレーションで動作の確認ができました!

動画入力 画像処理 モータ制御 DCモータ

Page 25: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

25

自動追跡カメラ実験システム

指令算出部(PC)とArduino実装部に分離

Serial通信

Page 26: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

26

自動追跡カメラ実験システム

実機実験

PC

Page 27: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

27

自動追跡カメラ実験システム

シミュレーション&プロトタイピングまとめ

ブロック線図、フローチャート、状態遷移図で設計図そのままにプログラム共有

数式を用いたシミュレーションの構築も簡単

実機接続も簡単で、アイディアをすぐに試せる環境

𝑑𝑥

𝑑𝑡= 𝑎 − 𝑥

などほか多数

Page 28: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

28

Simulinkモデルを中心として製品開発の効率化が実現できます!

モデルを中心としたモデルベースデザイン

グラフィカルなプログラム–紙ベースの仕様書を補完する「モデル」

–チーム間コミュニケーションを改善

シミュレーションによる設計–複合ドメインを同一環境で「モデル化」

–設計のトレードオフ・相互作用検証

コード生成機能で実機と連携– 「モデル」からC, HDLコードを自動生成

–プロトタイプテストを効率化

テスト環境までをトータルサポート– 「モデル」を再利用したテスト生成

–シミュレーション/テストの自動化システム統合

コンポーネント開発/実装

AnalogHardware

MCU DSP FPGA ASIC

SPICEVHDL Verilog

C, C++

システム設計

環境モデル

物理コンポーネント

アルゴリズム

研究 要求仕様

テスト

& 検証

テストシステム

Page 29: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

29

本日のMATLAB Expoの講演でも

1.研究はしているが、実用的なアイディアが少ない特に制御理論の適用に興味がある・・・

⇒B4:制御系設計環境オーバービュー&便利機能のご紹介

2.競合他社に負けないように効率的な開発が必要

⇒A4:モデルベースデザインのためのプラントモデルの作成と活用入門

3.ヒューマンエラーの極力少ない、品質の高い開発が求められる

⇒B3:効果的活効率的なモデルベース組み込みソフト開発・検証

資料は後日ダウンロード可・個別のご相談も受け付けております

Page 30: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

30

MathWorksにご相談ください

こんなシミュレーションが作れないかな?

⇒世界の適用事例、本、パートナーのご案内が可能です。

社内の人に聞いて使い始めますか?

⇒トレーニングが効果的です。本日はトレーニングテキストがご覧いただけます!

会場出てすぐ!

まずは評価版からご検討ください

Page 31: Simulink / Stateflow 入門 - MATLAB EXPO 2018 なぜSimulinkが使われているのか?グラフィカルな環境がプログラムの開発を加速します Simulinkが提供する

31

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.