スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LinuxCNCを使ったサーボ制御DCモーターのテスト。

Step/Dir入力が可能なコントローラー/ドライバなので、RepRap系のファームウエアや、特にLinuxCNCを使用する必要もなかったのですが、私が使いやすいので。^^;






フィードバック制御のPIDや、制御ループ等々、あまり詰めた設定にはなってませんが、多分小さなフレームのNCなら駆動できるのでは?と妄想。。

ロータリーエンコーダーの分解能が高くエンコーダーの1パルス当たりの角度とてもが小さいので制御ループをあまり速くし過ぎると、負荷となる物が無い現状ではメモリの間でプルプルと振動してしまい綺麗に回らないので、20KHzに1回のPID制御ループを回しています。
ですので、今の状態での入力最大ステップパルスは20KHz以下です。

参考にさせていただいたArudinoのスケッチですが、ロータリーエンコーダーの読取りをSTM32F4の32bitタイマのロータリエンコーダー読取り機能を使ったり、PID制御の式を教科書どおりの時定数がちゃんと入って、PIDのD項の部分がきちんと足されている基本的な式に書きなおしたりと、ほぼ元のコードは無くなってしまいました、、、、、。。

どうもPID制御自体、P項とI項とD項が使われていればPID制御と呼ばれているようで、中でそれを足したり引いたりしても、同じPID制御となっているご様子。

もちろん、上手く制御できれば問題ないのですが、Web上に公開されているものには、色々と流派があるようで学習はかなり難しいようです。

プログラム自体も、代入の順番が違うと、かなり出力が変わってくるみたいだし、、、で、時定数等々がキッチリ入っている一番基本的な物に変更しました。

PID制御の式、プログラムの参考とさせていただいたのは英語のWikipediaのPID controller内の擬似コード
コンピューターで処理をすると、連続的な時間ではなく、一定間隔に区切られた時間となるので擬似コードとされているのだと思われます。
ArduinoのPIDライブラリの式とちょっと違います。
また、mbed上のPIDのライブラリも複数あり、Arduinoのライブラリを元としたものもあるようなので、ちゃんとプログラムを見てどうゆう計算がされていて、どのように作用するかを考えないと設定数値を決めるときにハマりそうです。。

それにしても。この英語なウィキペディアのPIDに関する記述量は、日本語で提供されている物より遥かに多いですね、、。。


STM32F407はFPUを内蔵してるので、それを使えばもっと速くPIDループを回すことも可能だと思われますが、どうやってenableにするかが、、^^;
また、ARM自体がDSP用のPID制御ライブラリを提供しているので、それを使えばより速く処理することが出来そうです。。

そんなところまで、、となるともう、領域が違いますね。
余裕があれば、、でしょうか。


私が書いたプログラムでの制御ループは最大で1.5MHz程度で回ります。
MCUが高性能なSTM32F407なので、floatが入っていてCで書いてもかなりの速度で制御ループを回す事が出来ます。
また、割り込み処理を極力使わない様に、MCU上の機能を使ったのも大きいのかも。。
こんなに制御ループの速度は要らないと個人的に思うので、実際にコントローラー/ドライバとするときには32bit直交エンコーダーインターフェースの付いたもうちょっと低速なMCUにしようと思います。
もちろん、書いたプログラム自体のHEX自体が5K程度なので、内蔵フラッシュメモリや、RAM等々、その他機能の殆どを無駄に使っておりますが、32bit直交エンコーダーインターフェースの付いたMCUは、高性能なのにしか無いようで。

アセンブリ言語にて書ければこんなに高級なMCUでなくても、とは思いますがプログラマブルなものは苦手なので^^;
スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。