*

C言語でEV3開発(27)-EV3にヒステリシス処理を実装してみた

公開日: : 最終更新日:2018/03/19 C言語, マインドストーム/EV3, 開発

どもです。
今回は、モーターから読み出した値に対するヒステリシス・フィルター処理です。

0.ヒステリシスとは
そもそも論です。
ヒステリシスとは、「加える力を最初の状態のときと同じに戻しても、状態が完全には戻らないこと」を示します。
えー…コレだけではさっぱり分かりません。
しかし、詳細な理論や計算方法については、今回のエントリーの目的・意図からずれますので、ココでは記載しません。
書籍やネットの記事を調べてみてください。

しかし、それでは少し無責任なので、少~し噛み砕いた言い方をしてみると…

「値の変化の方向によって、状態が変化する境界値が異なる。
「行き道と帰り道が違う」

といったとこでしょうか。

-2018/03/19 追記
「ヒステリシスの説明」で記載した説明を、図にしてみました。
hysteresis_base
図にも記載されていますが、状態の変化の方向によって、その変化の境界値が異なっています。
これが、ヒステリシスの簡単な説明/図解になります。

1.フィルタの対象
ヒステリシスを用いてフィルターしたいのは、モーターの出力です。
(Ev3の)モーターでは、出力値を一定にしていても、取得できる値は一定ではありません。
即ち、現在値、目標値から次の出力値を算出する際に参照する値が一定になりません。
そのため、モーターの動作を一定にすることができず、結果的に動作が安定しなくなる、という問題が発生します。
これを解消するために、モーター出力に対してヒステリシス処理を実施します。

2.フィルタの実装
実装は、下記の通りです。

3.実装/実行結果
上記の実装を施した上でモーターを動作させた結果を、下記に示します。
・青線 → 現在のモーター出力
・オレンジ線 → フィルター後のモーター出力
hysteresis_left
hysteresis_right
同時に、フィルター処理を実装した後のモーター出力の目標値のグラフも示します。
こちらは、フィルター後の動作値と目標値の2つを示します。
hysteresis_left_output
hysteresis_right_output

4.結果について
モーターから読み出す現在値は、基本的に一定にならず常に振動していることが分かります。
また、モーター目標値についても振動しなくなっていることが分かります。
即ち、今回実装したフィルターにより、モーターの動作を安定させることができている、ということが読み取れます。
よって、今回実装したフィルター処理により、モーター出力が安定してないという問題を解決できていることが分かります。

関連記事

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

no image

C言語でEV3開発(8)-opOUTPUT_POWERコマンド

どもです。 今回のエントリーでは、EV3でモーターを動かします。 なお、今回のエントリーでも

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

google_test_top

C言語でEV3開発(5)

どもです。 今回のエントリーは、前回のエントリーでちくっと触れた、「単体テスト」について、です。

記事を読む

no image

C言語でEV3開発(7)

どもです。 今回のエントリーでは、いよいよEV3を動かしていきます。 新しい環境に対して、最もよ

記事を読む

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

toppers

C言語でEV3開発(20)-超音波センサと安全状態

どもです。 前回は、BluetoothでPCとEv3を接続してコマンドの送受信について書きました。

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(2)-C#のユーザーコントロール開発(2つ目)

どもです。 前回に引き続き、今回もC#/WPFでの独自UI(ユーザーコントロール)の作成についての

記事を読む

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

no image
Windows-QtCreatorでのデバッグ

どもです。 更新の間隔が空いてしまいました。 久しぶりの更新です。

raspberry-pi
RaspberryPiで物体検出(2)-白線検出への挑戦(2):輪郭検出による白線検出(実機編)

どもです。 今回は、前回に引き続きOpenCvを用いて道路の白線検出

OpenCvLogo
RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です

OpenCvLogo
OpenCvによる画像サイズ変更

どもです。 最近、カメラの動画をOpenCvで加工する、というこ

eclipse_oxygen
苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用

→もっと見る

PAGE TOP ↑