キーエンスのPLC(KVシリーズ)とラダー言語で倒立振子の制御系を組み、卒論をまとめられたのですね。
倒立振子は古典制御・現代制御のベンチマークとして定番ですが、PLC(シーケンサ)で実装するのはマイコン(C言語やMATLAB/Simulink連携)で行うより遥かに難易度が高い取り組みです。
PLCでの実装において特に直面しやすい難所には、以下のような点があります。
スキャンタイムの壁: 倒立振子は時定数が小さく、数ミリ秒〜数十ミリ秒の遅延がそのまま系の発散(転倒)につながるため、定周期割り込みや高速演算命令を駆使してループ周期を極限まで縮める工夫が必須。
浮動小数点演算と状態フィードバック: PID制御だけでなく、現代制御理論(極配置法やLQR等)の状態フィードバック(u = -Kx)を行う場合、台車位置・速度・振子角度・角速度の4状態をラダーの四則演算命令で計算する構成の複雑化。
センサ信号の高速処理: ロータリーエンコーダからの高速パルス入力カウンタユニットの扱いや、角度の微分(差分近似)によるノイズ対策・フィルタ処理。
当時のキーエンスPLCの高速な命令実行速度や位置決めユニットの強みを引き出しつつ、ハードウェアと数学モデルの橋渡しをラダー回路で構築された経験は、制御理論と現場のFA技術が融合した非常に実践的で高度な研究テーマです。
制御則(PIDや状態フィードバックなど)の設計や、スキャンタイムのチューニングなど、特に苦心されたエピソードがあればぜひお聞かせください。