Simulink で NXT を 動かしてみよう Simulink で NXT を動かす 微分値算出とフィルタ処理 ノーマルモード エクスターナルモード 微分値算出とフィルタ処理 3.2 節
角度制御実験装置
モータの制御 ― リニア方式 低速・ 低トルク 高速・ 高トルク
モータの制御 ― PWM (パルス幅変調) 方式 ON: 75% 1 マイクロ秒 = 100 万分の 1 秒 1 周期: 125 マイクロ秒 OFF: 25% 低速・ 低トルク 高速・ 高トルク ON: 短い ON: 長い OFF: 長い OFF: 短い
モータの制御 ― PWM (パルス幅変調) 方式 速度指令電圧 (PWM 信号) サーボモータ 角度 角速度 微分 [deg] (分解能 :1 deg) [deg/s] -100~+100 [%] キャスト (型変換) 微分 int32 double
モータの角度 モータの角速度 後退差分近似
ノーマルモード (Normal Mode) NXT 側で実行 信号計測は NXT 側でのみ可能 USB もしくは Bluetooth が必要 sample.slx NXT 側で実行 信号計測は NXT 側でのみ可能 USB もしくは Bluetooth が必要
ノーマルモード (Normal Mode) 動画:NXT_const.wmv
ノーマルモード (Normal Mode) 出力ポート (モータポート) A ~ C USB 実行ボタン 左矢印ボタン 右矢印ボタン キャンセルボタン 入力ポート (センサポート) 1 ~ 4
Simulink で NXT を 動かしてみよう Simulink で NXT を動かす 微分値算出とフィルタ処理 ノーマルモード エクスターナルモード 微分値算出とフィルタ処理 3.3 節
エクスターナルモード (External Mode) sample_external.slx パソコン側で実行 信号計測はパソコン側,NXT 側のいずれも可能 Bluetooth が必須 (USB との併用も可能)
エクスターナルモード (External Mode) 動画:NXT_const.wmv
エクスターナルモード (External Mode) リアルタイム (オンライン) で信号を観測 チャタリング を生じる
エクスターナルモード (External Mode) オフラインで信号を描画 >> figure(1); stairs(t,y) >> figure(2); stairs(t,dy) チャタリング を生じる
Simulink で NXT を 動かしてみよう Simulink で NXT を動かす 微分値算出とフィルタ処理 ノーマルモード エクスターナルモード 微分値算出とフィルタ処理 3.4 節 (3.4.3)
量子化誤差に起因するチャタリング (高周波信号) なぜチャタリングを 生じるのだろう チャタリング を生じる
量子化誤差に起因するチャタリング (高周波信号) >> y(301:306) 整数値 (分解能は 1 deg) 300 3.00 1639 9 900 301 3.01 1647 8 800 302 3.02 1656 303 3.03 1664 304 3.04 1673 305 3.05 1681
量子化誤差に起因するチャタリング (高周波信号) >> figure(1); xlim([3 3.2]) >> figure(2); xlim([3 3.2]) 実際の角速度は 800 と 900 の間の値 (850 あたり)
ローパスフィルタ (1 次遅れ要素) 微分信号の取り扱い 微分器 チャタリング
ローパスフィルタ (1 次遅れ要素) 微分信号の取り扱い 不完全微分器 ローパスフィルタ 微分器 チャタリング チャタリング 除去
ローパスフィルタ (1 次遅れ要素) 微分信号の取り扱い 不完全微分器
ローパスフィルタ (1 次遅れ要素) ローパスフィルタ 回路でローパスフィルタ を実装するには… RC 回路
ローパスフィルタ (1 次遅れ要素) RC 回路
ラプラス (Laplace) 変換 ラプラス変換の定義式 微分信号のラプラス変換 で 1 回微分 を 1 回かける 積分信号のラプラス変換 で 1 回積分 で 1 回割る
ローパスフィルタ (1 次遅れ要素) RC 回路 伝達関数 時定数
ローパスフィルタ (1 次遅れ要素) 入力 出力 ローパスフィルタ 通過 低周波 信号 除去 高周波 信号
ローパスフィルタ (1 次遅れ要素) 遮断周波数 倍 入出力の振幅比 ゲイン
ローパスフィルタ (1 次遅れ要素) 入出力の位相差 遮断周波数
ローパスフィルタ (1 次遅れ要素)
ローパスフィルタ (1 次遅れ要素)
不完全微分 (疑似微分) によるチャタリング除去 ソフトウェア上で擬似微分器 (微分器+ローパスフィルタ) を実装 filter_c.slx >> figure(1); stairs(t,y,’b’) >> figure(2); stairs(t,dy,’b’); hold on >> figure(2); stairs(t,dyf,’r’); hold off
不完全微分 (疑似微分) によるチャタリング除去 >> figure(1); stairs(t,y) >> figure(2); stairs(t,dy); hold on >> figure(2); stairs(t,dyf,’r’); hold off
不完全微分 (疑似微分) によるチャタリング除去 >> figure(1); xlim([1 1.8]) >> figure(2); xlim([1 1.8])