Pythonで一緒に ロボットのモデルベース設計


ラズパイによる角度の比例制御

ロボットのモデルベース設計とラズパイによる角度の比例制御

図1 比例制御(P制御)の欠点「定常偏差が0にならない」「振動の発生」「ノイズの影響を受ける」は,積分制御(I制御)と微分制御(D制御)を加えることで解決できる.画像クリックで動画を見る.または記事を読む.[提供・著]南 裕樹
詳細[VOD/Book]Pythonで一緒に!ロボット制御のモデルベース設計【PID制御編】

1.モデルベース設計と制御の基礎

モデルベース設計(MBD, Model-Based Design)は,制御対象(ロボットなど)の物理モデルを数学的に記述し,そのモデルを基に設計・シミュレーション・制御を行う手法です.このアプローチでは,物理法則に基づいたモデルを利用して,制御性能の予測や設計プロセスの効率化を図ります.

ロボットの角度制御では,一般的に比例制御(P制御)が基盤になります.比例制御では,現在の角度の誤差 $e(t)$ を元に操作量 $u(t)$ を次のように計算します. \[ u(t) = k_p \cdot e(t) \]

$k_p$ は比例ゲインで,制御系の応答性を調整します.

ラズパイ(ラズベリー・パイ)を用いた実験では,この比例制御をプログラムし,実際のモータやサーボを動かすことで,制御性能を確認しました.

2.比例制御でロボットの角度を調整する方法

ロボット・アームの角度をターゲット値 $θ_{target}$ に近づけるには,以下の手順が有効です.

  1. センサで現在の角度 $θ_{current}$ を測定
    センサ(エンコーダなど)から現在の角度を取得します
  2. 誤差 $e(t)$ を計算
    \[ e(t) = θ_{target} - θ_{current} \]
  3. 比例ゲイン $k_p$ を用いて制御信号 $u(t)$ を生成
    \[ u(t) = k_p \cdot e(t) \] 生成された制御信号をモータに入力します
  4. 制御信号を更新
    上記を一定のサンプリング周期で繰り返します

この方法はシンプルでありながら,速やかな応答を得られることから,モデルベース設計における基本的な制御として広く用いられています.

3.比例制御の特徴と限界

比例制御(P制御)は,制御系において次のような特徴をもっています.

  1. 速応性が高い
    誤差に即座に反応し,目標値への迅速な到達を促します
  2. 安定性の調整が容易
    比例ゲイン $k_p$ を調整するだけで,応答性や安定性を変えられます

比例制御にはいくつかの限界もあります.

  1. 定常偏差
    誤差がゼロにならず,目標値に完全に一致しない場合があります.この問題は積分制御(I制御)を加えることで解消できます
  2. 振動の発生
    大きすぎる比例ゲイン $k_p$ は,制御系を不安定にし,振動を引き起こす可能性があります
  3. ノイズの影響
    センサからのノイズが直接的に制御信号に影響を与えることがあります.これを抑制するには微分制御(D制御)を組み合わせることが推奨されます
〈著:ZEPマガジン〉

動画を見る,または記事を読む

著者紹介

  • 2009年3月 京都大学大学院情報学研究科博士後期課程修了.日本学術振興会特別研究員(DC2),舞鶴工業高等専門学校助教,京都大学特定助教,奈良先端科学技術大学院大学助教,大阪大学講師
  • 2019年3月 大阪大学大学院工学研究科機械工学専攻准教授.ノイズシェーピング理論に基づく量子化器設計およびその応用に関する研究に従事.博士(情報学).

著書

  1. [VOD]Pythonで一緒に!ロボット制御のモデルベース設計【ロバスト制御編】,ZEPエンジニアリング株式会社.
  2. [VOD]Pythonで一緒に!ロボット制御のモデルベース設計【PID制御編】,ZEPエンジニアリング株式会社.
  3. [VOD]Pythonで一緒に!ロボット制御のモデルベース設計【状態フィードバック制御編】,ZEPエンジニアリング株式会社.
  4. [VOD/Pi2W KIT]ラズパイ×Pythonで動かして学ぶモータ制御入門,ZEPエンジニアリング株式会社.
  5. [VOD/KIT]ラズパイ×Pythonで動かして学ぶモータ制御入門,ZEPエンジニアリング株式会社.
  6. Pythonによる制御工学入門(改訂2版),オーム社(2024).
  7. 制御系設計論,コロナ社(2021).
  8. やさしくわかるシーケンス制御,オーム社(2020).
  9. Pythonによる制御工学入門,オーム社(2019).
  10. 倒立振子で学ぶ 制御工学,森北出版(2017).
  11. Arduino×Pythonで動かしながら学ぶモータ制御入門,トランジスタ技術 2020年9月号,CQ出版社.

参考文献

  1. [VOD/Pi KIT]MATLAB/Simulink×ラズパイで学ぶロボット制御入門,ZEPエンジニアリング株式会社.
  2. [VOD/KIT]MATLAB/Simulink×ラズパイで学ぶロボット制御入門,ZEPエンジニアリング株式会社.
  3. [VOD/Pi400 KIT]SLAMロボット&ラズパイ付き!ROSプログラミング超入門,ZEPエンジニアリング株式会社.
  4. [VOD/KIT]確率・統計処理&真値推定!自動運転時代のカルマン・フィルタ入門,ZEPエンジニアリング株式会社.