PD制御について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
素人

PD制御について

#1

投稿記事 by 素人 » 9年前

ライントレースカーの制御について。

センサ8個(デジタル出力)
モータ速度制御 PWM 8bit

センサ信号に応じて、左右のモータのPWM Dutyを変化させたいと考えています。

黒線を検知しているセンサを●として、偏差量を次の通りに決めようと考えています。

●〇〇〇〇〇〇〇 -7 (0x01)
●●〇〇〇〇〇〇 -6 (0x03)
〇●〇〇〇〇〇〇 -5 (0x02)
〇●●〇〇〇〇〇 -4 (0x06)
〇〇●〇〇〇〇〇 -3 (0x04)
〇〇●●〇〇〇〇 -2 (0x0C)
〇〇〇●〇〇〇〇 -1 (0x08)
〇〇〇●●〇〇〇 0 (0x18)
〇〇〇〇●〇〇〇 +1 (0x10)
〇〇〇〇●●〇〇 +2 (0x30)
〇〇〇〇〇●〇〇 +3 (0x20)
〇〇〇〇〇●●〇 +4 (0x60)
〇〇〇〇〇〇●〇 +5 (0x40)
〇〇〇〇〇〇●● +6 (0xC0)
〇〇〇〇〇〇〇● +7 (0x80)

この偏差量を制御量(PWM Duty)に反映させたいのですが、どのように記述すれば良いのでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: PD制御について

#2

投稿記事 by みけCAT » 9年前

素人 さんが書きました:この偏差量を制御量(PWM Duty)に反映させたいのですが、どのように記述すれば良いのでしょうか。
この偏差量を制御量(PWM Duty)に反映させるように記述すればいいでしょう。
プラットフォームも言語もわからないので、具体的な記述はわかりません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

素人

Re: PD制御について

#3

投稿記事 by 素人 » 9年前

すみませんでした。
PICマイコン+C言語で考えています。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: PD制御について

#4

投稿記事 by みけCAT » 9年前

(擬似コード)

コード:

var 偏差量から制御量に変換するテーブル[256] = {
  それぞれの偏差量に対応する制御量
};
var d, p;

初期化();
無限ループ {
  d = 偏差量を読み取る();
  p = 偏差量から制御量に変換するテーブル[d];
  制御量を設定する(p);
}
みたいな感じで書けばいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

non
記事: 1097
登録日時: 14年前

Re: PD制御について

#5

投稿記事 by non » 9年前

左右のモータのPWM値のテーブルは左右別々に作っておいた方がわかりやすいです。左右モータの特性違いもあるし。
non

閉鎖

“C言語何でも質問掲示板” へ戻る