Hブリッジを使用してモータ速度を制御して洗濯機を作っています。 HブリッジのMOSFETへの信号は、マイクロコントローラPICAXE 14M2によって制御されます。PICAXE 14M2を介してデューティサイクルを制御してDCモータ速度を維持する方法(閉ループフィードバック)
モーターは、負荷にかかるジェネレータとバケットと結合されています。デフォルトのデューティサイクルは25%です。 50%のモーター停止時および50%以上のモーター回転の変化。
ここでは、負荷がバケットに追加されるとモータがその速度を維持し、速度を維持するためにデューティサイクルを制御したいとします。
負荷が増加するとモーター抵抗が増加し、バケットが減速して発電機の電圧が低下します。
ここで、デューティサイクルを大きくする必要があるため、モータは速度を上げてデフォルト値に追いつきます。
残念ながら、クローズループ機能を実行できません。誰でも私を助けてください....
PS。私は2つの12V DCモーターを使用しています。バケット(他のモーターにも接続されている)と他のモーターを回転させるモーターとして機能するものが、フィードバックを得るためのジェネレーターとして機能しています。
ありがとう。
私は、次のコードを使用しています:私たちはあなたの制御アルゴリズムを見る前に、あなたのPICAXEの基本的なコードで固定する必要がいくつかの問題がある
setfreq M32 ' 100 kHz Frequency
main:
if pinB.5 = 1 then goto Closeloop
goto main
***************************************************************************
Closeloop:
symbol duty = b2
let duty = 79
gosub closeloop1
closeloop1:
for b11 = 1 to 100
hpwm 1,0,0,79,duty
readadc C.4, b22 ` Read generated voltage from pin C.4
IF b22 > 204 then gosub stepdown 'if Generated voltage > 4 V , stepdown the duty cycle
IF b22 < 153 then gosub stepup 'if V< 3 V, stepup the duty cycle
stepup: ` Increase the duty (So speed is increased) if gernerated voltage is less than 3V
duty = duty - 5
goto closeloop1
stepdown: ` Decrease the duty (So speed is reduced) if gernerated voltage is more than 4V
duty = duty + 5
goto closeloop1
next b11
私はあなたに手を差し伸べていません:2番目のDCモーターはフィードバックを得ることです。つまり、そのモーターの逆起電力を読み取るということですか?もしあなたの最初のモーターコマンドのゲインを計算するには、伝達関数を使用します。 – LPs
あまりにも多くのことが間違っています。クラスメイトにこのプロジェクトのお手伝いをしてもらい、Basicをよく知っている人を見つけてください。 –