PIDアルゴリズムを使用したDCモーターの速度制御(STM32F4)
ビュー: 0 著者:サイトエディターの公開時間:2020-09-02原産地: サイト
お問い合わせください
みなさん、こんにちは、私は別のプロジェクトのタヒル・ウルハクです。
今回は、2017-11-407までに使用されたMCを行う時でした。
これが中期プログラムの終わりです。
あなたがそれを好きになることを願っています。
多くの概念と理論が必要なので、最初にそれを見てみましょう。
コンピューターの出現と工業化されたプロセスにより、人間の歴史の中で、プロセスを再定義する方法、さらに重要なことには、マシンを使用してプロセスを自律的に制御するための研究がありました。
目的は、これらのプロセスへの人間の参加を減らし、これらのプロセスのエラーを減らすことです。
したがって、\ 'Control System Engineering \'のフィールドが生まれました。
制御システムエンジニアリングは、手動または自動であろうと、プロセスの作業または一定で好ましい環境のメンテナンスを制御するためのさまざまな方法の使用として定義できます。
簡単な例は、部屋の温度を制御することです。
手動制御とは、現場の現在の条件(センサー)をチェックする人の存在を指し
、期待(処理)を使用して
適切なアクションを実行して、望ましい値(アクチュエータ)を取得します。
このアプローチの問題は、職場でのエラーや過失が発生しやすいため、あまり信頼できないことです。
さらに、別の問題は、アクチュエータが開始するプロセスの速度が必ずしも均一ではないことです。つまり、必要な速度よりも速く、時には遅くなることがあります。
この問題の解決策は、マイクロコントローラーを使用してシステムを制御することです。
指定された仕様によれば、マイクロコントローラーは、回路内の接続プロセスを制御するようにプログラムされています(
後で説明する)
。
このプロセスの利点は、このプロセスに人間の介入が必要ないことです。
さらに、このプロセスの速度は一貫しています。
先に進む前に、この時点でさまざまな用語を決定することが重要です。フィードバック制御:このシステムでは、特定の時間に入力は、システムの出力を含む1つ以上の変数に依存します。
負のフィードバック:このシステムでは、参照(入力)
フィードバックとして、エラーが差し引かれ、入力の位相は180度です。
肯定的なフィードバック:このシステムでは、
フィードバックと入力がフェーズにあるときに参照(入力)エラーが追加されます。
エラー信号:目的の出力と実際の出力の差。
センサー:回路内の特定の数のデバイスを検出するために使用されるデバイス。
通常、出力に配置されたり、測定を行いたい場所に配置されます。
プロセッサ:プログラミングアルゴリズムに基づいて処理される制御システムの一部。
入力が必要で、出力が生成されます。
アクチュエーター:制御システムでは、アクチュエータは、出力に影響を与えるためにマイクロコントローラーによって生成された信号に基づいてイベントを実行するために使用されます。
閉ループシステム:1つ以上のフィードバックループを備えたシステム。
オープンループシステム:フィードバックループ用のシステムはありません。
立ち上がり時間:出力が必要な時間は、信号の最大振幅の10%から90%に増加します。
ドロップ時間:出力が90%から10%に低下するのに必要な時間。ピークオーバーシュート:ピークオーバーシュートは、定常状態値(
を超える出力の量です。
システム過渡応答中は正常)
安定した時間:出力が安定した状態に到達するのに必要な時間。
定常状態のエラー:システムが定常状態に到達した後の実際の出力と予想出力の差。上の写真は、制御システムの非常に単純化されたバージョンを示しています。
マイクロコントローラーは、任意の制御システムの中核です。
これは非常に重要なコンポーネントであるため、システムの要件に従って慎重に選択する必要があります。
マイクロコントローラーは、ユーザーから入力を受信します。
この入力は、システムに必要な条件を定義します。
マイクロコントローラーは、センサーからの入力も受信します。
センサーは出力に接続され、その情報は入力に返還されます。
この入力は、負のフィードバックとも呼ばれます。
否定的なフィードバックが前に説明されました。
そのプログラミングに基づいて、マイクロプロセッサはさまざまな計算とアクチュエータへの出力を実行します。
出力ベースのアクチュエータ制御プラントは、これらの条件を維持しようとします。
たとえば、モーターを運転するモータードライバーで、モータードライバーがドライバーであり、モーターが工場であることがあります。
したがって、モーターは特定の速度で回転します。
接続されたセンサーは、現在の工場のステータスを読み取り、マイクロコントローラーに戻します。
マイクロコントローラーが再び比較され、計算されるため、ループが繰り返されます。
このプロセスは反復的で無限であり、マイクロコントローラーは望ましい条件を維持できます。
DCモーターの速度を制御する2つの主な方法を次に示します。
手動電圧制御:産業用途では、DCモーターの速度制御メカニズムが重要です。
時には、通常よりも高いまたは低い速度が必要になる場合があります。
したがって、効果的な速度制御方法が必要です。
供給電圧の制御は、最も単純な速度制御方法の1つです。
電圧を変更して速度を変更できます。 b)
PIDを使用したPWMを制御:もう1つのより効率的な方法は、マイクロコントローラーを使用することです。
DCモーターは、モータードライバーを介してマイクロコントローラーに接続されています。
モータードライバーは、マイクロコントローラーからのPWM(
パルス幅変調)
入力を受信し、入力に従ってDCモーターに出力を受信します。図1。2
:PWM信号の第1章。
はじめに3 PWM信号を考慮すると、PWMの動作を最初に説明できます。
一定期間連続パルスで構成されています。
期間とは、波長に等しい距離で移動するポイントで費やされる時間です。
これらのパルスは、バイナリ値のみ(高または低)を持つことができます。
また、パルス幅とデューティサイクルという他の2つの量もあります。
パルス幅は、PWM出力が高い時間です。
デューティサイクルは、期間のパルス幅の割合です。
残りの期間の間、出力は低いです。
デューティサイクルは、モーターの速度を直接制御します。
DCモーターが特定の期間内に正の電圧を提供する場合、特定の速度で移動します。
より長い期間正電圧が提供されると、速度は大きくなります。
したがって、PWMのデューティサイクルは、パルス幅を変更することで変更できます。
DCモーターのデューティサイクルを変更することにより、モーターの速度を変更できます。
DCモーターの問題の速度制御:最初の速度制御方法の問題は、時間の経過とともに電圧が変化する可能性があることです。
これらの変更は不均一な速度を意味します。
したがって、最初の方法は望ましくありません。
解決策:2番目の方法を使用して速度を制御します。
PIDアルゴリズムを使用して、2番目の方法を補完します。
PIDは、比例積分微分を表します。
PIDアルゴリズムでは、モーターの現在の速度が測定され、目的の速度と比較されます。
このエラーは、複雑な計算に使用され、時間に応じてモーターのデューティサイクルを変更します。
各サイクルにこのプロセスがあります。
速度が目的の速度を超えた場合、速度が希望の速度よりも低い場合、デューティサイクルが減少し、デューティサイクルが増加します。
この調整は、最高の速度に達するまで行われません。
この速度を常に確認して制御します。
このプロジェクトで使用されているシステムコンポーネントと、各コンポーネントの詳細の簡単な紹介です。
STM 32F407:STマイクロセクションによって設計されたマイクロコントローラー。
アーム皮質で動作します。 Mアーキテクチャ。
168 MHzのクロック周波数が高い家族を導きます。
モータードライバーL298N:このICはモーターの実行に使用されます。
2つの外部入力があります。
マイクロコントローラーからの1つ。
マイクロコントローラーは、PWM信号を提供します。
パルス幅を調整することで、モーター速度を調整できます。
2番目の入力は、モーターを駆動するのに必要な電圧源です。
DCモーター:DCモーターは、DC電源で動作します。
この実験では、DCモーターは、モータードライバーに接続された光電気結合を使用して動作します。
赤外線センサー:赤外線センサーは実際には赤外線トランシーバーです。
さまざまなタスクを実行するために使用できる赤外線波を送信および受信します。
IRエンコーダー光カプラー4N35:光カプラーは、回路の低電圧部分と高電圧部分を分離するために使用されるデバイスです。
名前が示すように、それは光に基づいて機能します。
低電圧部分が信号を取得すると、電流が高電圧部分に流れます。
システムは速度制御システムです。
前述のように、システムは比例積分および微分のPIDを使用して実装されています。
速度制御システムには、上記のコンポーネントがあります。
最初の部分は速度センサーです。
速度センサーは、赤外線トランスミッターとレシーバー回路です。
固体がU字型のスリットを通過すると、センサーは低い状態になります。
通常、それは高い状態にあります。
センサー出力はローパスフィルターに接続されており、センサーの状態が変化したときに生成された過渡的な減衰を排除します。
ローパスフィルターは、抵抗器とコンデンサで構成されています。
必要に応じて値が選択されました。
使用されるコンデンサは1100NFで、使用される抵抗は約25オームです。
ローパスフィルターは、追加の測定値とゴミ値をもたらす可能性のある不必要な一時的な条件を排除します。
ローパスフィルターは、コンデンサを介してSTMマイクロコントローラーの入力デジタルピンに出力されます。
もう1つの部分は、STMマイクロコントローラーが提供するPWMによって制御されるモーターです。
この設定には、光カプラーICを使用して電気分離が提供されています。
光カプラーには、ICパッケージ内の光を発するLEDが含まれ、入力端子に高いパルスが与えられると、出力端子が短絡します。
入力端子は、光カプラーに接続されたLEDの電流を制限する抵抗器を介してPWMを与えます。
ドロップダウン抵抗器が出力で接続されているため、端子が短絡すると、ドロップダウン抵抗で電圧が生成され、抵抗器の端子に接続されたピンが高状態を受信します。
光電カプラーの出力は、有効なピンの高さを維持するモータードライバーICのIN1に接続されています。
PWMデューティサイクルが光カプラー入力で変化すると、モータードライバーピンがモーターを切り替えてモーターの速度を制御します。
モーターに提供されたPWMの後、モータードライバーは通常、12ボルトの電圧を提供します。
モータードライバーは、モーターを動作させることができます。
このモータースピードレギュレーションプロジェクトの実装で使用したアルゴリズムを導入してください。
モーターのPWMは、単一のタイマーによって提供されます。
タイマーの構成が作成され、PWMを提供するように設定されています。
モーターが起動すると、モーターシャフトに取り付けられたスリットを回転させます。
スリットはセンサーキャビティを通過し、低いパルスを生成します。
低パルスでは、コードが起動し、スリットが移動するのを待ちます。
スリットが消えると、センサーは高い状態を提供し、タイマーがカウントを開始します。
タイマーは、2つのスリットの間の時間を与えてくれます。
さて、別の低いパルスが現れると、IFステートメントが再び実行され、次の立ち上がりエッジを待ってカウンターを止めます。
速度を計算した後、速度と実際の基準値の差を計算し、PIDを与えます。
PIDは、特定の瞬間に基準値に達するデューティサイクル値を計算します。
この値は、エラーに応じてCCR(
比較レジスタ)に提供され
、タイマーの速度が低下または増加します。
Atollic Truestudioコードが実装されています。
STMスタジオは、デバッグのためにインストールする必要がある場合があります。
STM Studioでプロジェクトをインポートし、表示する変数をインポートします。
わずかな変更は2017-11-4XXにあります。
クロック周波数を168 MHzのHファイルに正確に変更します。
コードスニペットは上記で提供されています。
結論は、モーターの速度がPIDを使用して制御されるということです。
ただし、曲線は正確に滑らかな線ではありません。
これには多くの理由があります。ローパスフィルターに接続されたセンサーは依然として特定の欠陥を提供しますが、これらは非線形抵抗器とアナログ電子デバイスの避けられない理由によるものですが、モーターは小さな電圧またはPWMでスムーズに回転することはできません。
システムが何らかの間違った値を入力する可能性のある嫌がらせを提供します。
ジッターのため、センサーはより高い値を提供するスリットを見逃す可能性があり、別のエラーの主な理由はSTMのコアクロック周波数である可能性があります。
STMのコアクロックは168 MHzです。
この問題はこのプロジェクトで対処されましたが、このような高頻度を提供しないこのモデルの全体的な概念があります。
オープンループ速度は、非常に滑らかなラインを提供します。
PIDも機能しており、非常に低い運動安定時間を提供します。
モーターPIDは、基準速度を一定に保つさまざまな電圧でテストされました。
電圧の変化はモーターの速度を変えず、PIDが機能していることを示します。
PIDの最終出力の一部のセグメントを次に示します。 a)
閉鎖ループ @ 110 rpmb)
閉鎖ループ @ 120 rpmisプロジェクトは、私のグループメンバーの助けを借りなければ完了できませんでした。
感謝したい。
このプロジェクトを見てくれてありがとう。
あなたを助けることを願っています。
もっと楽しみにしてください。
その前に祝福を続けてください:)