Soumettre la recherche
Mettre en ligne
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
•
13 j'aime
•
7,122 vues
Teng Tokoro
Suivre
2019/1/19に開催したマイクロマウスのためのMATLAB/Simulink講座の第1回資料です.MATLABの基本操作と,ログデータ可視化のためのプロットを主に扱っています.
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 66
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa
寝プログラミングのススメ
寝プログラミングのススメ
Yoshitaka Kawashima
強化学習入門
強化学習入門
Shunta Saito
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達
Kumazaki Hiroki
SDL2の紹介
SDL2の紹介
nyaocat
超小型クアッドロータ "Quadruptor" の製作とその制御
超小型クアッドロータ "Quadruptor" の製作とその制御
Teng Tokoro
公開鍵暗号5: 離散対数問題
公開鍵暗号5: 離散対数問題
Joe Suzuki
Recommandé
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa
寝プログラミングのススメ
寝プログラミングのススメ
Yoshitaka Kawashima
強化学習入門
強化学習入門
Shunta Saito
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達
Kumazaki Hiroki
SDL2の紹介
SDL2の紹介
nyaocat
超小型クアッドロータ "Quadruptor" の製作とその制御
超小型クアッドロータ "Quadruptor" の製作とその制御
Teng Tokoro
公開鍵暗号5: 離散対数問題
公開鍵暗号5: 離散対数問題
Joe Suzuki
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
動的計画法の基礎と応用 ~色々使える大局的最適化法
動的計画法の基礎と応用 ~色々使える大局的最適化法
Seiichi Uchida
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
naoto moriyama
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
Deep Counterfactual Regret Minimization
Deep Counterfactual Regret Minimization
Kenshi Abe
ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
Yuji Yamauchi
IT技術者が説明上手になるための七つの法則
IT技術者が説明上手になるための七つの法則
Mizuhiro Kaimai
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
Satoshi Hara
冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
Chika Inoshita
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
ブースティング入門
ブースティング入門
Retrieva inc.
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
啓 小笠原
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
Contenu connexe
Tendances
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
動的計画法の基礎と応用 ~色々使える大局的最適化法
動的計画法の基礎と応用 ~色々使える大局的最適化法
Seiichi Uchida
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
naoto moriyama
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
Deep Counterfactual Regret Minimization
Deep Counterfactual Regret Minimization
Kenshi Abe
ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
Yuji Yamauchi
IT技術者が説明上手になるための七つの法則
IT技術者が説明上手になるための七つの法則
Mizuhiro Kaimai
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
Satoshi Hara
冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
Chika Inoshita
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
ブースティング入門
ブースティング入門
Retrieva inc.
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
Tendances
(20)
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
動的計画法の基礎と応用 ~色々使える大局的最適化法
動的計画法の基礎と応用 ~色々使える大局的最適化法
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
Glibc malloc internal
Glibc malloc internal
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Deep Counterfactual Regret Minimization
Deep Counterfactual Regret Minimization
ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
IT技術者が説明上手になるための七つの法則
IT技術者が説明上手になるための七つの法則
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
冬のLock free祭り safe
冬のLock free祭り safe
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
C++ マルチスレッド 入門
C++ マルチスレッド 入門
ブースティング入門
ブースティング入門
ラムダ計算入門
ラムダ計算入門
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Similaire à マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
啓 小笠原
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
道化師 堂華
Lispとは何なのか - 同図像性がもたらす力とその利用法
Lispとは何なのか - 同図像性がもたらす力とその利用法
Naoya Yamashita
Scalamacrosについて
Scalamacrosについて
dekosuke
rpscala35-scala2.9.0
rpscala35-scala2.9.0
Kenji Yoshida
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
Masatoshi Tada
第9回 大規模データを用いたデータフレーム操作実習(3)
第9回 大規模データを用いたデータフレーム操作実習(3)
Wataru Shito
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
scala.collection 再入門 (改)
scala.collection 再入門 (改)
Ryuichi ITO
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
Ransui Iso
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
Takeshi Komiya
ji-2. 計算
ji-2. 計算
kunihikokaneko1
Hokuriku Scala 1
Hokuriku Scala 1
NISHIMOTO Keisuke
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
Silkによる並列分散ワークフロープログラミング
Silkによる並列分散ワークフロープログラミング
Taro L. Saito
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
CMSI計算科学技術特論A (2015) 第3回 OpenMPの基礎
CMSI計算科学技術特論A (2015) 第3回 OpenMPの基礎
Computational Materials Science Initiative
Similaire à マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
(20)
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
Lispとは何なのか - 同図像性がもたらす力とその利用法
Lispとは何なのか - 同図像性がもたらす力とその利用法
Scalamacrosについて
Scalamacrosについて
rpscala35-scala2.9.0
rpscala35-scala2.9.0
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
第9回 大規模データを用いたデータフレーム操作実習(3)
第9回 大規模データを用いたデータフレーム操作実習(3)
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
scala.collection 再入門 (改)
scala.collection 再入門 (改)
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
ji-2. 計算
ji-2. 計算
Hokuriku Scala 1
Hokuriku Scala 1
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Silkによる並列分散ワークフロープログラミング
Silkによる並列分散ワークフロープログラミング
秀スクリプトの話
秀スクリプトの話
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
CMSI計算科学技術特論A (2015) 第3回 OpenMPの基礎
CMSI計算科学技術特論A (2015) 第3回 OpenMPの基礎
Plus de Teng Tokoro
コンピュータ時代の詠唱魔法 #伝道師になろう 最終回
コンピュータ時代の詠唱魔法 #伝道師になろう 最終回
Teng Tokoro
MATLABの3Dプロットを簡単にする
MATLABの3Dプロットを簡単にする
Teng Tokoro
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう
Teng Tokoro
小さくて賢いロボット『マイクロマウス』を作ろう!
小さくて賢いロボット『マイクロマウス』を作ろう!
Teng Tokoro
これまでの制作物いろいろ+ Quadruptor
これまでの制作物いろいろ+ Quadruptor
Teng Tokoro
クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算
Teng Tokoro
Plus de Teng Tokoro
(6)
コンピュータ時代の詠唱魔法 #伝道師になろう 最終回
コンピュータ時代の詠唱魔法 #伝道師になろう 最終回
MATLABの3Dプロットを簡単にする
MATLABの3Dプロットを簡単にする
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう
小さくて賢いロボット『マイクロマウス』を作ろう!
小さくて賢いロボット『マイクロマウス』を作ろう!
これまでの制作物いろいろ+ Quadruptor
これまでの制作物いろいろ+ Quadruptor
クモ型ロボットにおける逆運動学計算
クモ型ロボットにおける逆運動学計算
マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門
1.
マイクロマウスのための MATLAB/Simulink講座 (1) MATLAB入門 Teng Tokoro (@tokoro10g)
2.
この講習会について MATLAB/Simulink を使用して 経験と勘 →
データと解析 への移行を目指します. シミュレーションやデータの可視化を使いながら,楽しく 学びましょう.
3.
講習会の構成 全5回を予定 1) MATLAB入門 (1/19) 2)
Simulink入門 (3/16) 3) 信号処理・システム同定(仮) (5月) 4) ログデータ可視化・解析(仮) (7月) 5) Simulinkからのコード生成(仮) (9月)
4.
アジェンダ 今回の内容は以下の3つです. 1. MATLAB/Simulinkとは? MATLAB/Simulinkがどのようにマイクロ マウスの製作に役立つか説明します. 2. コマンドウィンドウで使う まずは電卓としてMATLABを使って みましょう. 3.
スクリプト・関数を作る 本格的なプログラミングを行うための 基礎を学びます.
5.
MATLAB/Simulinkが世界中の およそ何人の技術者・研究者 に使われているか,知ってい ますか?
6.
A. 約300万人 世界中180カ国以上,およそ9万の機関・企業で利用されている * https://www.mathworks.com/company/aboutus.html
7.
MATLABを 使えると… いいことがある(かも)
8.
MATLAB/Simulinkとは?
9.
MATLAB/Simulinkとは? MATLAB 科学・技術計算に特化したプログラミング 言語・開発環境. 特徴 ❖ 行列・ベクトル計算を標準装備 ❖ 習得しやすい言語仕様 ❖
豊富な標準関数・ツールボックスで 本質的でない実装の手間を省ける Simulink ブロック線図をベースにしたシミュレー ションソフト. 特徴 ❖ ブロックをつないでプログラミング ❖ シミュレーションと実装を一括で開発 ❖ C/C++のソースコードをブロック線図 から生成できる(コード生成)
10.
マイクロマウスへの MATLABの使用例 ① 走行ログの可視化 MATLABならデータのプロット や見た目の変更が楽々 >> plot(x,
y); 約80行
11.
マイクロマウスへの MATLABの使用例 ② 軌道生成 CやC++では面倒な配列の取り 回し(変形・反転など)が楽々 >> B
= reshape(A, 3, 4); >> B = fliplr(A); 約30行
12.
マイクロマウスへの MATLABの使用例 ③ 迷路データの取り込み 画像処理などのツールボックス が充実, 応用が簡単 >>
IM = imread('1.jpg'); 約60行 https://gist.github.com/tokoro10g/57d88b5aafd 8ab0e62bf56cf74e99373
13.
マイクロマウスへの MATLABの使用例 ④ マウスタイマー(GUI) GUIの作成も, App
Designerを 使えば簡単! シリアル通信でデバイスとの連 携も可能! >> appdesigner >> s = serial('COM3') @Ryokeri14
14.
マイクロマウスへの Simulinkの使用例 ① モータのシミュレーション ブロックを組み合わせて微分方程 式を表現 物理パラメータを代入してシミュ レーション
15.
マイクロマウスへの Simulinkの使用例 ② 壁制御のシミュレーション どのような制 御
則を実 装すれば よいのか事前にシミュレーション できる!
16.
MATLAB/Simulinkとは? MATLAB 科学・技術計算に特化したプログラミング 言語・開発環境. 特徴 ❖ 行列・ベクトル計算を標準装備 ❖ 習得しやすい言語仕様 ❖
豊富な標準関数・ツールボックスで 本質的でない実装の手間を省ける Simulink ブロック線図をベースにしたシミュレー ションソフト. 特徴 ❖ ブロックをつないでプログラミング ❖ シミュレーションと実装を一括で開発 ❖ C/C++のソースコードをブロック線図 から生成できる(コード生成) ↑ 今日はこっち
17.
アジェンダ 今回の内容は以下の3つです. 1. MATLAB/Simulinkとは? MATLAB/Simulinkがどのようにマイクロ マウスの製作に役立つか説明します. 2. コマンドウィンドウで使う まずは電卓としてMATLABを使って みましょう. 3.
スクリプト・関数を作る 本格的なプログラミングを行うための 基礎を学びます.
18.
MATLABをコマンドウィンドウで使う MATLABを起動してください!
19.
MATLABを起動 ※ 初回起動時はアクティベーションを求められ ることがあります. ※ Windowsの場合,
初回のみ管理者権限が必要 なこともあります. ※ ブラウザで動くオンライン版もあります… https://matlab.mathworks.com/
20.
エクスプローラ コマンドウィンドウ ワークスペース ファイルを操作 できる.
OS付属の エクスプローラ とほぼ同じ. 対話的にMATLABコマンドを入力して実行できる. 動作チェックや, 簡易ヘルプの確認は, ここで行う と便利. 作成した変数のリ ストが表示され る.
21.
関数電卓として 使ってみる コマンドウィンドウに数式を入力 して, 電卓として使ってみよう
22.
MATLABで使用する演算子 基本はほとんどC言語と同様. ● 四則演算・累乗 + -
* / ^ ● 代入 = ● 比較・論理演算 < > == ~= <= >= && || ~ Tip MATLABの変数はデフォ ルトではdouble型にな る. 別の型で定義したいとき には以下のようにする. >> a = uint8(3)
23.
MATLABで使用する数学関数 基本はほとんどC言語と同様. ● 三角関数 sin cos
sind cosd atan2 pi ... ● 指数・対数 exp log log10 log2 ● 複素数 (MATLABでは標準装備!!) real imag abs angle i j Tip 関数の使い方は helpコマ ンド や docコマンド で 確認できる. 例) >> help sind >> doc cosd
24.
ベクトル・行列 演算を行う ここからが本番です
25.
ベクトル・行列の書き方 ● 行ベクトル r =
[1 2 3] または r = [1, 2, 3] ● 列ベクトル c = [1; 2; 3] ● 行列 M = [1 2 3; 4 5 6; 7 8 9] Tip スペース or カンマで 列方向(横方向)への入力, セミコロンで改行を意味 する.
26.
特別なベクトル・行列 ● 範囲ベクトル 1:10 または
1:2:10 または linspace関数 ● 単位行列 eye(3) ● ゼロ行列 zeros(3) または zeros(4,2) ● 1で埋めた行列 ones(3) または ones(4,2) ● 乱数行列 rand(3) または rand(4,2) Tip カッコ内は行列の大きさ 魔法陣行列やハンケル行 列といった特殊な行列も 用意されている. https://jp.mathworks. com/help/matlab/cons tants-and-test-matric es.html
27.
(例) 行列とベクトルの乗算
28.
ベクトル・行列特有の演算子 ● 要素ごとの乗算・除算・累乗 .* ./
.^ ● 転置・共役転置 .' ' ● 逆行列とベクトルの積 ( , ) Ab c/A ● 要素ごとの論理演算 & | Tip 逆行列自体を計算したい ときは, inv関数を使う. 例) >> B = inv(A);
29.
(例) 連立1次方程式の解 Tip 行末にセミコロンをつけ ると, 実行結果を非表示 にできる.
30.
行列の要素へのアクセス 取り出しも代入もできます C言語の配列でいう a[0] は,
MATLABでは a(1) です ● 行列の場合は, A(1,2) とすることで を指せる ● 範囲を取り出したいときは範囲ベクトルを使う A(1:3, :) Aの1~3行目,全列(:)を取り出し 行番号 列番号 Tip 範囲ベクトルでなくても OK. 指定した順番どおり に取り出し/代入できる. 例) >> A([1 3], [1 4])
31.
行列の結合・加工 Tip ブロック行列の感覚で, 行列やベクトルを結合 できる Tip clearコマンドで定義した 変数を全てクリアできる 行列の加工に使う関数の例 ● repmat 行列を繰り返したものを作る ● fliplr,
flipud 左右・上下反転 ● sort 要素のソート
32.
Tips [Coffee Break] 英語を読める方は,
UI とMathWorksのウェ ブサイトを英語設定に した方がわかりやすい かも. 要素ごとの演算をうま く利用することで高速 なコードを書ける. http://blog.tokor.org/2017/12/17/rogy-Adv ent-Calendar-2017-%E3%80%8C%E3%81%8 6%E3%82%8F%E3%81%A3%E2%80%A6%E3 %82%8F%E3%81%9F%E3%81%97%E3%81% AEMATLAB%E3%82%B3%E3%83%BC%E3%83 %89%E3%80%81%E9%81%85%E3%81%99% E3%81%8E%E2%80%A6%EF%BC%9F%E3%80 %8D/ コーディング用フォン トをインストールする と読みやすくなる. おすすめ: - Ricty Discord - Cica
33.
データをグラフに プロットする ほかの言語で数十行かかる処理が 1行で済みます
34.
データのプロット 例) >> x =
0:0.01:pi*2; >> y = sin(x); >> plot(x, y); Tip 基本はplotコマンド! 使い方が複雑なのでヘル プを読もう "matlab plot"で ググると出てくる Tip ドキュメンテーションは ググるかdocコマンドで 表示する
35.
ドキュメンテーションの読み方 取りうる引数の パターン それぞれの場合に 対する説明
36.
ドキュメンテーションの読み方 この引数について詳しく知りたい・・・ クリック
37.
ドキュメンテーションの読み方 詳細な情報(書式・型・サイズ など)が確認できる! 例) >> x =
0:0.01:pi*2; >> y = sin(x); >> plot(x, y, 'r--');
38.
プロットの見た目の編集 コマンドを使用する場合 ● グリッド grid on
grid off ● 軸の範囲・ラベル・目盛り xlim xlabel xticks ylim ... ● 凡例 legend ● その他のプロパティの設定 set get Tip 関連する関数のリストは このページからカテゴリ を選択すると見られる https://mathworks.co m/help/matlab/format ting-and-annotation.h tml
39.
プロットの見た目の編集 プロパティエディタを使用する場合 コマンドを打つのは正直面倒なので・・・
40.
プロットの見た目の再利用(コード生成) 関数として保存できる
41.
MATLAB Plot Gallery 各種プロット関数の使用例とソー スコードが公開されている https://mathworks.com/product s/matlab/plot-gallery.html
42.
アジェンダ 今回の内容は以下の3つです. 1. MATLAB/Simulinkとは? MATLAB/Simulinkがどのようにマイクロ マウスの製作に役立つか説明します. 2. コマンドウィンドウで使う まずは電卓としてMATLABを使って みましょう. 3.
スクリプト・関数を作る 本格的なプログラミングを行うための 基礎を学びます.
43.
スクリプトを 作成する 「ホーム」タブの 「新規スクリプト」をクリック
44.
スクリプトでよく使用するコマンド 初期化系のコマンドをファイル冒頭に書くことを推奨 ● ワークスペース変数を消去する clear ● プロットをすべて閉じる close
all ● コマンドウィンドウをクリアする clc Tip MATLABでは,スクリプ トの実行ごとに変数は初 期化されない. 基本的にはclearコマンド で変数を消去してから処 理を開始することを推奨 する.
45.
(例) プロット さきほどのプロット処理をスクリプトに記述してみる Tip 実行ボタンの代わりにF5 を押しても実行できる. 実行を中断するときは ,Ctrl+C. コード片を選択してF9を 押すと,選択部分を実行 できる.
46.
if文 Tip any, all 関数を使うと, ベクトルの要素の any:
少なくとも1つ all: すべて が条件を満たしているか を判定できる. if 条件式 ... elseif 条件式 ... else ... end MATLABでは括弧の代わりにendを使う
47.
for文 Tip 範囲ベクトル以外にも, 任意のベクトルを指定で きる. PHPやJavaScriptにある foreachに近い感じ. for カウンタ変数 =
ベクトル ... end C言語等と流儀が大きく異なる n = 0; for k = 1:5 n = n + k^2; end 例)
48.
その他の制御構文 あとは大体C言語等と同じ ● while ● switch
~ case ● try ~ catch ● break, continue, return
49.
実践してみる ログの可視化を例にスクリプトを 作成してみよう 今回の目標 ● x, y座標の時系列をそれぞれプロット ●
xyプロット ● 目標値と推定値のxyプロットの比較
50.
Step 1. データの読み込み loadコマンドを使用してデータ を読み込む データのダウンロード: https://drive.google.com/file/ d/12jh09-lfLfoem2iLbqcIjP3T 8QDzn8-k/view?usp=sharing ※Xiphosura開発時の実際のデータ
51.
Step 1. データの読み込み x,
y, θ 目標値 x, y, θ 推定値 時間
52.
Step 2. 必要な部分の取り出し・加工 (6~8行目) 各列を取り出して変数に代入 データはmm単位で10倍の値が保 存されているため,10で割って mmに直す (11行目) x_refを試しにプロットしてみる
53.
Step 2. 必要な部分の取り出し・加工 プロットを2枚出したい場合 figure(1) Figure
1を表示(なければ作成)
54.
Step 3. xyプロットの作成 (11行目) x_ref,
y_ref を使ってxyプロッ ト (12行目) 数値の縦横比を均等にする
55.
Step 4. プロットを追加する (13行目) 現在のグラフを保持 (これを実行しないと上書きされてしまう) (14行目) x_est,
y_estについてもxyプロッ トを作成 赤い線で新しいプロットが追加 される
56.
Step 4. 見た目をいじる プロパティエディタで好きなだけ いじる ファイル→コード生成をクリック createfigure.m
として保存
57.
Step 4. 見た目をいじる 生成したcreatefigure.mを使用し てプロットを作成するように, コードを変更する
58.
関数を作成する MATLABでは,ファイルとして 関数を定義する
59.
関数の書式 出力引数 入力引数関数名 出力引数がない例
60.
アジェンダ 今回の内容は以下の3つです. 1. MATLAB/Simulinkとは? MATLAB/Simulinkがどのようにマイクロ マウスの製作に役立つか説明します. 2. コマンドウィンドウで使う まずは電卓としてMATLABを使って みましょう. 3.
スクリプト・関数を作る 本格的なプログラミングを行うための 基礎を学びます.
61.
オンライン リソース 自学自習に役立つウェブサイトを 紹介
62.
MATLAB Onramp MATLABの基礎をブラウザ上で 学べるオンラインコース 約2~3時間で完了できる (こちらで自習するとより身につくと 思います) https://matlabacademy.math works.com/jp
63.
MATLAB Cody MATLABを使ったオンラインの プログラミング問題集. 簡単な入出力から高度なアルゴ リズムまで,様々な問題が揃っ ている. 日本語の問題もあり. https://www.mathworks.com /matlabcentral/cody
64.
次回予告 Simulink入門 3/16(土)
65.
MATLAB/Simulinkとは? MATLAB 科学・技術計算に特化したプログラミング 言語・開発環境. 特徴 ❖ 行列・ベクトル計算を標準装備 ❖ 習得しやすい言語仕様 ❖
豊富な標準関数・ツールボックスで 本質的でない実装の手間を省ける Simulink ブロック線図をベースにしたシミュレー ションソフト. 特徴 ❖ ブロックをつないでプログラミング ❖ シミュレーションと実装を一括で開発 ❖ C/C++のソースコードをブロック線図 から生成できる(コード生成)
66.
マイクロマウスへの Simulinkの使用例 壁制御のシミュレーションを 題材に,Simulinkの基礎を 解説します
Télécharger maintenant