PID制御(訂正)
id:ohguma:20161014 で紹介した IchigoJamライントレーサは少し前のトラ技に詳細な記事が掲載されている。
- トランジスタ技術
- 2016年9月号 光センサとモータで自動走行!ライトレース・ロボットの製作
- 2016年10月号 Ichigoライントレーサの追従走行プログラミング
- 著者:白阪さん
- こどもパソコン IchigoJam - はじめてのプログラミングパソコン(1500円)
9月号はハード周り、10月号がソフト周りの記事になっている。個人的にはどちらも大変参考になった。大変10月号はAmazonでまだ購入可能で、読んで id:ohguma:20161010 のPID制御のプログラムでの勘違いに気づいた。
勘違いしていたのは、I制御で偏差の積分を計算する部分。先のプログラムでは偏差の積分を一定間隔でリセットするようにしていた(下図:上)が、本来PID制御として正しいのは常に過去何回か分の偏差の合計を取ること(下図:下)だった。
トラ技の記事では、配列を使用したリングバッファを上手く使用して、常に過去何回か分の偏差の合計を取るようにしていた。C-Style上ではC-Codeなしでは配列が使えず、IchigoJamのBASICと同様のプログラムができないため、先のプログラムもありかなとは思う。もし参考にする方がおられたら正規のPID制御を工夫して実装してほしい。