SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
マイクロマウスのための
MATLAB/Simulink講座
(2) Simulink入門
Teng Tokoro
(@tokoro10g)
この講習会について
MATLAB/Simulink を使用して
 経験と勘 → データと解析 
への移行を目指します.
シミュレーションやデータの可視化を使いながら,楽しく
学びましょう.
講習会の構成
全5回を予定
1) MATLAB入門 (1/19) 
2) Simulink入門 (3/16) 
3) 信号処理・システム同定(仮) (5月)
4) ログデータ可視化・解析(仮) (7月)
5) Simulinkからのコード生成(仮) (9月)
アジェンダ
今回の内容は以下の3つです.
1. Simulinkの基礎
Simulinkを使った時系列データの簡単な
取り扱い方と,シミュレーション手法に
ついて学びます.
2. 実践(1) DCモータのPID制御
DCモータをSimulink上でモデル化し
,PID制御を用いた速度制御を実装して自
動チューニングしてみます.
3. 実践(2) 壁トレース制御
マウスの簡易モデルを構築し,壁トレー
ス制御のシミュレーションを行います.
MATLAB/Simulinkとは?
MATLAB
科学・技術計算に特化したプログラミング
言語・開発環境.
特徴
❖ 行列・ベクトル計算を標準装備
❖ 習得しやすい言語仕様
❖ 豊富な標準関数・ツールボックスで
本質的でない実装の手間を省ける
Simulink
ブロック線図をベースにしたシミュレー
ションソフト.
特徴
❖ ブロックをつないでプログラミング
❖ シミュレーションと実装を一括で開発
❖ C/C++のソースコードをブロック線図
から生成できる(コード生成)
マイクロマウスへの
Simulinkの使用例
① モータのシミュレーション
ブロックを組み合わせて微分方程
式を表現
物理パラメータを代入してシミュ
レーション
マイクロマウスへの
Simulinkの使用例
② 壁制御のシミュレーション
どのような制 御 則を実 装すれば
よいのか事前にシミュレーション
できる!
Simulinkに慣れる
MATLABを起動してください!
>> simulink
Simulinkを起動
コマンドウィンドウから起動するのが一番楽
>> simulink
「空のモデル」をクリック
「ライブラリブラウザー」を起動
ライブラリブラウザー
カテゴリ
ブロック
ブロックの挿入
ドラッグ&
ドロップ
Tip
ブロック線図の画面をク
リックしてからブロック
名を入力してもできる
ライブラリブラウザーから
● Sources → Sine Wave
● Sinks → Scope
を挿入
ブロックの接続
Tips
ホイールで拡大・縮小
ホイールドラッグで視点
移動
スペースキーで画面に
フィット
Sine WaveブロックとScope
ブロックの入出力をドラッグ
でつなぐ
ブロックパラメータの変更
ブロックをダブルクリックすると
振幅等のパラメータを変更できる
Scopeブロックはダブルクリックで
スコープ(オシロ的な画面)が開く
シミュレーションの実行
再生マークをクリックして実行
結果はScopeに表示される
よく使用するブロック
● Source → Constant
定数信号
● Math Operations → Gain
定数ゲイン
● Signal Routing → Mux, Demux
ベクトル信号の分割・結合
など…
多くは "Commonly Used Blocks" カテゴリにまとまっている
シミュレーションをいろいろ試してみる
いろいろブロックを追加して
試してみよう
Tip
信号線を右クリックしな
がらドラッグで分岐 例)
シミュレーション設定
可変ステップ・固定ステップなど
シミュレーションの設定
ソルバーの種類
時間ステップ
● 可変ステップ
計算精度が高くなるように
時間ステップを調整しながら
シミュレーションする方法
● 固定ステップ
時間ステップを固定する方法
計算方法
● 連続時間
連続時間系の数値積分で計算
● 離散時間
各時刻でブロックの値をその
まま計算
Tips [Coffee Break]
シミュレーション結果
が時間方向に粗いなと
感じた場合は,固定ス
テップソルバを使うか
最小ステップ幅を変更
するかしてみよう
スペースキーを押すと
ブロック線図の全体が
見える視点になる
Ctrlキーを押しながら
ブロックを順番に選択
すると,自動的に接続
される
アジェンダ
今回の内容は以下の3つです.
1. Simulinkの基礎
Simulinkを使った時系列データの簡単な
取り扱い方と,シミュレーション手法に
ついて学びます.
2. 実践(1) DCモータのPID制御
DCモータをSimulink上でモデル化し
,PID制御を用いた速度制御を実装して自
動チューニングしてみます.
3. 実践(2) 壁トレース制御
マウスの簡易モデルを構築し,壁トレー
ス制御のシミュレーションを行います.
DCモータの数理モデル
ブロック線図
DCモータは電気系と機械系の2つの1次遅れ系
を直列接続したものとしてモデル化できる.
L: インダクタンス
R: 抵抗
J: 慣性モーメント
Km: トルク定数
Kf: 粘性摩擦定数
Kb: 逆起電力定数
Va: 端子間電圧
Vemf: 逆起電力
Td: トルク外乱
ω: 角速度
https://jp.mathworks.com/help/control/examples/dc-motor-control.html
電気系 機械系
伝達関数
線形な系は,入出力間のゲイン・位相の周波数特性で表現できることが知られている.
周波数領域での出力を周波数領域での入力で割ったものを伝達関数と呼ぶ.
伝達関数の周波数特性を可視化する方法として,ボード線図が有名.
注意事項
● 連続時間と離散時間では伝達関数の表現が異なる
(ラプラス変換 ↔ z変換)
cf. 双一次変換
● 非プロパーな系(分子の次数>分母の次数)は実現できない
未来の情報が必要になるため
Simulinkでのモデル化
Transfer Fcn(伝達関数)ブロックを使用する
各種定数はMATLABスクリプトに記述する R = 2.0; % Ohms
L = 0.5; % Henrys
Km = 0.1; % torque constant
Kb = 0.1; % back emf constant
Kf = 0.2; % Nms
J = 0.02; % kg.m^2/s^2
Tip
MATLABワークスペース
内の変数をSimulinkから
使用することができる.
物理定数の設定に便利.
物理パラメータの例
ブロックの設定
書き終わったら実行して定数を定義しておく.
端子間電圧
外乱トルク
角速度
上のブロック線図を参考に,実際にSimulinkでDCモータの
モデル全体を作成してみよう
サブシステム化
作成したDCモータのモデルをサブシステムに
まとめておくとブロックの整理ができる
1. 入出力(印加電圧, 外乱トルク, 角速度)
以外のブロックを選択する
2. 右クリック→「選択からサブシステムを
作成」
3. 見た目を調整する
(ブロックの大きさ, 信号の回り込み等)
PID制御の実装
DCモータの速度制御をシミュレーションします
PID制御器
(説明するまでもないと思いますが…)
目標値に対する偏差とその積分・微分に対してそれぞれ
ゲインをかけ合わせて合計した値を制御入力とする手法
Simulink上での信号の積分・微分には,Continuousカテ
ゴリにあるIntegratorとDerivativeを使用する
実際に作ってみよう
PID制御器
MATLABコードにゲインを定義し,
手動チューニングでいろいろな値を
試して変化を見てみる.
PID制御にあまり馴染みのない方は
まずはいろいろ試してみる.
PID Controllerブロックを使う
実はSimulinkにはPID制御器が実装されたブロックがあります…
PID調整器を使う
PIDゲインを自動チューニングできる!
※Simulink Control Designが必要
挙動のパラメータを設定
アジェンダ
今回の内容は以下の3つです.
1. Simulinkの基礎
Simulinkを使った時系列データの簡単な
取り扱い方と,シミュレーション手法に
ついて学びます.
2. 実践(1) DCモータのPID制御
DCモータをSimulink上でモデル化し
,PID制御を用いた速度制御を実装して自
動チューニングしてみます.
3. 実践(2) 壁トレース制御
マウスの簡易モデルを構築し,壁トレー
ス制御のシミュレーションを行います.
マイクロマウスの簡易モデル
最も根本的な部分だけモデル化します
記号の定義
Tip
簡単化のために速度・角
速度を入力としたモデル
を考えている.
本来はDCモータへの電圧
入力で考えるべきだが,
ここではそれは本質では
ないためである.
角速度入力
速度入力
座標(x,y)
(+xが進行方向)
角度
マイクロマウスの簡易モデル
Tip
簡単化のために速度・角
速度を入力としたモデル
を考えている.
本来はDCモータへの電圧
入力で考えるべきだが,
ここではそれは本質では
ないためである.
単純な計算から,座標 (x, y) と角度 θ の時間微分はつぎのように求まる
これをSimulink上で表現してシミュレーションを行う
マイクロマウスの簡易モデル
Math Operations/
Trigonometric Function
Sinks/
XY Graph
作り終えたら,この部分をサブシステムにまとめておく
適当な定数を速度・角速度に入力した
場合のシミュレーション結果
壁トレース制御問題
左右の壁で区切られた通路の中心を直進走行させることを考える.
中心からの横方向へのズレ(y座標)と姿勢角(θ)を計測できると仮定する.
このとき,角速度入力ωをどのように決めればyを0に制御できるか?
最も単純な方法として思いつくのは…
「y座標に定数をかけてωにフィードバックする」
狙い通りに動作するかどうかを,シミュレーションによって検証する
制御則の実装
先ほどの方針「y座標に定数をかけてωにフィードバックする」をSimulinkで実装する
Tip
Ctrl+Iで選択ブロックを
反転,Ctrl+Rで回転
先ほど作成した
マイクロマウスの簡易モデル
シミュレーションの設定
中心からずれた状態からスタートさせるため,y座標のIntegratorブロックに初期値を設定する.
シミュレーション結果
「y座標に定数をかけてωにフィード
バックする」
という方針では応答が振動的…
制御則の改良
PD制御の考え方を応用して,応答を改善する
先ほどの方針:yに対するフィードバック
改良案の方針:yとyの時間微分に対するフィードバック
シミュレーション結果
良くなった!
まとめ
● Simulinkを用いることで,シミュレーション環境を楽に構築できる
● 制御に使用するゲインを予めシミュレーションで決めておくことができる
● 簡易的なモデルを立ててシミュレーション検証することで,原理的に目標の
達成が難しい手法を実機で延々と試さずに済む!
オンライン
リソース
自学自習に役立つウェブサイト
MATLAB Onramp
MATLABの基礎をブラウザ上で学べる
オンラインコース
約2~3時間で完了できる
(こちらで自習するとより身につくと思います)
https://matlabacademy.mathworks.co
m/jp
Simulink Onrampもあります!!
※MATLAB/Simulinkインストールが必要

Mais conteúdo relacionado

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

マイクロマウスのためのMATLAB-Simulink講座 第2回 - Simulink入門