2. モータとエンコーダの使い方 2.1 モータとエンコーダ 2.2 速度情報の導出

2. モータとエンコーダの使い方
2.1 モータとエンコーダ
2.2 速度情報の導出
キーワード : モータ,エンコーダ,
微分器,不完全微分器
学習目標 :モータとエンコーダを用いた位置情報の取得方
法を修得する。微分器を用いた速度情報の取
得方法を修得する。
1
2 モータとエンコーダの使い方
2.1 モータとエンコーダ
プログラム作成
2
3
4
5
データログ
「検出」をクリック
「データログ」をクリック
6
プログラム実行
NXT
Rbl
run
クリック
モータが
回る
「再アップロード」をクリック
データが表示
される
7
データの保存と作成
「text.xls」で保存する
「ファイルへ書き出す」をクリック
Excel でデータを図にする
8
2 モータとエンコーダの使い方
2.2 速度情報の導出
(1) 微分を使う
9
変数の
初期化
C11 = 0
C12 = 0
C13 = 0
11
“C13”と
同じ
C13 = (C11-C12)*100
C12 = C11
13
角速度 =
C13
C12
C11
(角度の現在値) – (角度の1サンプル前の値)
(サンプル時間)
0.01
10
plot(data(:,1),data(:,2))
plot(data(:,3),data(:,4),'r')
11
(2) 疑似微分を使う
不完全微分(疑似微分)
後退差分近似
チャタリングが発生
ローパスフィルタを用いる
12
不完全微分
ボード線図
13
離散化
(連続)状態空間表現
(連続)伝達関数表現
式をラブラス変換
14
式をラブラス変換
式を代入
式と比較すると
(離散)状態空間表現
(離散)伝達関数表現
15
不完全微分
とおいて微分する
式より
式より
16
タスティン変換(双一次変換)
17
C11 = 0
C12 = 0
C13 = 0
C14 = 0
C15 = 0
13
11
C15 = 0.6*C14 + 0.4*C11
C13 = -40*C14 + 40*C11
C14 = C15
18
微分
疑似微分
19
2. モータとエンコーダの使い方
2.1 モータとエンコーダ
2.2 速度情報の導出
キーワード : モータ,エンコーダ,
微分器,不完全微分器
学習目標 :モータとエンコーダを用いた位置情報の取得方
法を修得する。微分器を用いた速度情報の取
得方法を修得する。
20
データの保存
「text.txt」で保存する
「ファイルへ書き出す」をクリック
データを確認
21
MATLABによる図の作成
1. MATLABの起動
アイコン
クリック
3. カレントフォルダの設定
「text.txt」と同じフォルダに
する
4. エディタを立ち上げる
クリック
MATLABWindow
22
5. エディタに書く
clear all
変数を消去
close all
図を閉じる
fid = fopen('test.txt');
text.txt を開く
C = textscan(fid,'%f%f%f', 'headerLines', 1);
fclose(fid);
text.txt を閉じる
data = [C{2} C{3}]
figure(1)
1行目は省いて3列を変数”C”に保存
変数”C”の2列目,3列目を変数”data”に代入
Figure 1 を作成
plot(data(:,1),data(:,2)) 変数”data”の1列目をx座標,2列目をy座標として描く
grid on
点線を入れる
23
6. 図を描く
クリック
24
clear all
変数を消去
close all
図を閉じる
fid = fopen('test2.txt'); text2.txt を開く
C = textscan(fid,'%f%f%f%f%f', 'headerLines', 1); 1行目は省いて5列を変数”C”に
fclose(fid);
text2.txt を閉じる
保存
data = [C{2} C{3} C{4} C{5}] 変数”C”の2-5列目を変数”data”に代入
figure(1)
Figure 1 を作成
plot(data(:,1),data(:,2)) 変数”data”の1列目をx座標,2列目をy座標として描く
hold on
図を重ねるために図を保持
plot(data(:,3),data(:,4),'r') 変数”data”の3列目をx座標,4列目をy座標として描く
grid on
点線を入れる
25
plot(data(:,1),data(:,2))
plot(data(:,3),data(:,4),'r')
26
clear all
変数を消去
close all
図を閉じる
fid = fopen('test2.txt'); text2.txt を開く
C = textscan(fid,'%f%f%f%f%f', 'headerLines', 1); 1行目は省いて5列を変数”C”に
fclose(fid);
text2.txt を閉じる
保存
data = [C{2} C{3} C{4} C{5}] 変数”C”の2-5列目を変数”data”に代入
figure(1)
Figure 1 を作成
plot(data(:,1),data(:,2)) 変数”data”の1列目をx座標,2列目をy座標として描く
hold on
図を重ねるために図を保持
plot(data(:,3),data(:,4),'r') 変数”data”の3列目をx座標,4列目をy座標として描く
grid on
点線を入れる
27
微分
疑似微分
28