PID フィードバックとポジショニングの両方を同時に実行するのに苦労しています。
RPMを計算する私の考えは次のとおりです。
- タイマーを開始し、割り込みを使用してエンコーダー パルスをカウントします。
- 簡単な計算を使用して RPM に変換します。
- 使用した変数をリセットして最初からやり直してください。
RPM を計算することはできますが、計算後にしか PID コントローラーを呼び出すことができません (ただし、適切な解像度が得られるまで待ちたいと思います)。これにより、非常に厄介なコードが作成されます。より簡単な方法または私が見逃しているものはありますか?
私のアプリケーションに関する情報: DC モーター/1 回転あたり ~600 パルス (ギアヘッド後) のデュアル磁気エンコーダーを備えた Atmel ATmega328P にプログラミングしています。GoToTarget(#) を呼び出して、PID パラメータを更新しながらモーターをその位置に移動させたいと考えています。さらに、双方向である必要があります。