Skip to content
RFrftools.io
Motor2026年2月27日11分で読める

DC モーター制御:PWM、ドライバー、エンコーダーの説明

PWMによるDCモータ制御の完全ガイド:適切なHブリッジドライバの選択、MOSFETのサイジング、エンコーダによるループの閉鎖

目次

はじめに

電圧を変えてDCモーターの速度を変えることは、紙の上では簡単に思えます。実際には、ネームプレート定格の10倍に急上昇する可能性のある突入電流、電源電圧と戦う逆起電力、持続負荷時に忍び寄る熱制限、フィードバックループを必要とする位置精度の要件を調整することになります。このガイドでは、内部で何が起こっているのかを実際に理解できるように、制御スタックの各部分を詳しく説明しています。


DC モーターモデル

ブラシ付き DC モーターは単なる抵抗器ではありません。電機子抵抗、インダクタンス、電圧源 (逆起電力) がすべて連動しています。回路モデルは次のようになります。

Vsupply=IaRa+LadIadt+VemfV_{supply} = I_a R_a + L_a \frac{dI_a}{dt} + V_{emf}
逆起電力はシャフト速度に比例します (Vemf=KeωV_{emf} = K_e \cdot \omega)。トルクは電流から発生します:T=KtIaT = K_t \cdot I_a。これらの定数KeK_eKtK_tは通常、データシートのどこかに埋もれています。多くの場合、混在した単位で、悲鳴を上げたくなります。

モーターが定常状態になり、インダクターがユーザーとの戦闘を停止すると、次の式が簡略化されます。

ω=VsupplyIaRaKe\omega = \frac{V_{supply} - I_a R_a}{K_e}
これにより、負荷がかかったモーターの速度が低下する理由がわかります。IaRaI_a R_aの用語は、実効電圧を食い尽くします。0.5Ωで5Aを引っ張るモーターは、その場で2.5Vを失います。これは速度の低下に直結します。

DC モーター速度計算ツール を使用してこれらの関係を試してみて、電機子抵抗と負荷電流が最終回転数にどのように影響するかを確認してください。

PWM の基礎

PWM (パルス幅変調) は、1985年のように直列抵抗で電力を消費せずにモーター電圧を制御する方法です。電源のオンとオフを素早く切り替えます。モーターのインダクタンスがパルスを平滑化して有効な DC 電圧にします。

Veff=D×VsupplyV_{eff} = D \times V_{supply}
ここで、DDは0から1までのデューティ・サイクルです。12V で 75% のデューティを動作させると、9V の効率が得られます。簡単な計算ですが、周波数の選択はほとんどの人が理解している以上に重要です。

周波数長所短所
1—5 kHzスイッチング損失が低く、実装が簡単聞こえる鳴き声を聞くと頭がおかしくなる
20~50 kHz静音動作、優れた効率中程度のスイッチング損失
> 100 kHz超高速のトランジェント応答EMIが悪夢になり、スイッチング損失が増加する
経験則: 一般的なブラシ付き DC モータでは 20 ~ 25 kHz を使用してください。これは可聴範囲を超えているため (煩わしいうなり声はありません)、スイッチング損失は妥当なままであり、ほとんどのマイクロコントローラ・タイマーはこれを簡単に処理できます。エンジニアが 100 kHz まで進み、速いほうが良いと考えて、放射 EMI のデバッグやゲート・ドライバのリンギングへの対処に何週間も費やすのを見たことがあります。 PWM デューティ・サイクル・カリキュレータ を使うと、ドライバを爆破する前に実効電圧を計算し、ストール電流がどのようになるかを推定することができます。

H ブリッジドライバ

双方向制御にはHブリッジが必要です。モーター端子の極性を反転できるように4つのスイッチが配置されています。この名前は、文字通り H のように見える回路トポロジに由来しています。

ディスクリート対集積型

特に理由がない限り、DRV8833、TB6612、L298N などの統合ドライバ**が最適です。デッドタイム挿入 (ハイサイドとローサイドの両方の MOSFET で電源をショートさせないようにするため)、サーマルシャットダウン、過電流保護に対応しています。L298Nは古く非効率的ですが、実質的に破壊不可能です。学習には最適ですが、バッテリ駆動のプロジェクトにはひどいです。

ディスクリートMOSFETは、大電流を流す必要がある場合や効率を最大化したい場合に適しています。ゲートドライバ (ハイサイドのブートストラップ回路はデバッグするのが楽しい)、シュートスルーを避けるための注意深いPCBレイアウト、制御コードにおける適切なデッドタイム管理が必要です。ただし、効率の向上は現実のものです。ディスクリート設計では 95% 以上に達することがありますが、L298N は 70% を突破するのに苦労します。

MOSFETのセレクション

H ブリッジ用の MOSFET を選択する場合、次の 4 つの仕様が重要です。

  1. VDSV_{DS} — 余裕を持って電源電圧を超えなければなりません。VDS1.5×VsupplyV_{DS} \geq 1.5 \times V_{supply}を出発点として使用してください。そうしなければ、トランジェントと誘導スパイクが問題になります。
  1. IDI_D — 定格電流だけでなく、ピーク突入電流にも対応する必要があります。最低でもID1.5×IinrushI_D \geq 1.5 \times I_{inrush}を適用してください。その突入電流は定常状態の10倍になる可能性があります。
  1. RDS(on)R_{DS(on)} — 常に低いほど良い。これによって導通損失が決まります。10mΩと50mΩのMOSFETは、大電流では大きな違いを生みます。
4.QgQ_g — ゲート電荷によって、切り替え速度とゲートドライバが消費する電力量が決まります。高周波PWMでは低いほど良いです。

MOSFET1個あたりの導通損失は次のようになります。

Pcond=I2×RDS(on)×DP_{cond} = I^2 \times R_{DS(on)} \times D
ここで、DDは特定のスイッチがオンになっているデューティサイクルです。ハイサイドとローサイドの損失は、相補的なデューティサイクルで伝導されるため異なります。

Hブリッジ選択カリキュレータ は、ピーク電流要件と最小MOSFET定格を算出するのに役立ちます。モータードライバー電力計算ツール を使用して総消費電力を見積もり、ヒートシンクが必要かどうかを確認してください。

突入電流と始動電流

ここで注目されるのは、定置型モーターに初めて電圧を印加したとき、逆起電力がゼロになることです。電機子抵抗が小さいことを除けば、印加電圧に対抗するものは何もありません。初期電流は次のようになります。

Iinrush=VsupplyRaI_{inrush} = \frac{V_{supply}}{R_a}
例えば、電機子抵抗が0.5Ωのモーターが12Vで動作しているとしましょう。突入電流は24Aです。ただし、モーターのネームプレートには連続2Aと書かれています。これは12倍の乗数です。ドライバーは魔法の煙を出さずに処理する必要があります。

実際に効果のある緩和戦略:

-PWM デューティサイクルのソフトスタート — 100 ~ 500 ミリ秒かけて 0% から目標値までランプアップシンプルで効果的で、コストはわずか数行のコードしかかかりません。 -電流制限コントローラを使用する — DRV8434のような部品には、ピーク電流を自動的に制限する電流チョッピングが組み込まれています。 -定格電流ではなく、突入電流に合わせてHブリッジのサイズを設定してください — これは譲れません。信頼性を求めるなら、2A モータに 20~30A 対応のドライバが必要です。

ほとんどのエンジニアはソフトスタートをスキップし、なぜドライバーが死に続けるのか疑問に思います。あのエンジニアになってはいけない。


クローズドループ制御用エンコーダ

オープンループ PWM 制御は、ファンやポンプなど、正確な速度や位置を気にしない用途に適しています。ロボット工学、CNC、位置制御を含むあらゆるものなど、精度が必要なときには、エンコーダからのフィードバックが必要です。

エンコーダの種類

光学式インクリメンタルエンコーダは、スロット付きディスクとフォトインタラプタを使用してAB直交パルスを生成します。最も一般的なタイプで、1回転あたり100~10,000パルス (PPR) で使用できます。信号はきれいで、分解能も良好ですが、ほこりや振動は嫌いです。 磁気式エンコーダはホール効果センサーと磁化リングを使用します。汚染や衝撃に対する耐性が大幅に向上しました。これらは産業用モーターや自動車用途に使われています。通常、解像度は光学式よりも低くなりますが、光学式エンコーダが即座に停止するような環境でも使用できます。 アブソリュートエンコーダは実際のシャフト位置をデジタルワードとして出力します。カウントは不要で、電源投入後のホーミングシーケンスも必要ありません。ほとんどのプロジェクトでは高価でやり過ぎですが、望遠鏡のマウントや産業用ロボットなどのマルチターンの位置追跡には欠かせません。

直交デコーディング

2 つのチャネル A と B は 90 度位相がずれます。両方のチャンネルの立ち上がりエッジと立ち下がりエッジの両方を観察すると、ベース PPR の 4 倍の分解能が得られます。

CPR=4×PPR\text{CPR} = 4 \times \text{PPR}
1000 PPR のエンコーダでは、1 回転あたり 4000 カウント、つまり角度分解能は 0.09° になります。回転方向は、どのチャンネルがリードするかによって決まります。A が B をリードすると前に進み、B が A をリードすると後退します。

ほとんどのマイクロコントローラには、これを自動的に処理するハードウェア直交デコーダ周辺機器が搭載されています。割り込みのあるソフトウェアで実行しようとすると、数千RPMを超えるカウントが欠落し始めます。

エンコーダ分解能計算ツール を使用して、カウンタが処理する必要のある実際の CPR、角度分解能、および最大パルス周波数を計算してください。

PID スピードコントロール

エンコーダーからのフィードバックで実際のシャフト速度がわかったら、PID コントローラーでループを閉じることができます。古典的な PID 方程式:

u(t)=Kpe(t)+Kie(t)dt+Kdde(t)dtu(t) = K_p e(t) + K_i \int e(t)\,dt + K_d \frac{de(t)}{dt}
ここで、e(t)=ωsetpointωmeasurede(t) = \omega_{setpoint} - \omega_{measured}は速度エラーです。KpK_pという比例項を使うと、誤差に比例した即時応答が得られます。積分項KiK_iでは、時間の経過とともに誤差が累積されるため、定常誤差が排除されます。微分項KdK_dは、変化率に応答して振動を減衰させます。この3つをうまく組み合わせることは、科学というよりはむしろ芸術です。

チーグラー・ニコルズ・チューニング

ジーグラー・ニコルス法は、開ループのステップ応答に基づく実用的な出発点となります。完璧とは言えませんが、ランダムに推測するよりはましです。

1.ステップ入力 (PWM が 0% から 50% になるなど) を適用し、モーターの速度応答を測定します。 2.3 つのパラメーター (プロセスゲインKK、デッドタイムLL、および時定数τ\tau) を抽出します。 3.初期 PID ゲインの計算: -Kp=1.2τ/(KL)K_p = 1.2\tau / (K \cdot L)-Ki=Kp/(2L)K_i = K_p / (2L)-Kd=Kp×0.5LK_d = K_p \times 0.5Lこれらは最適とは言えませんが、大まかな場に連れて行ってくれます。そこから、経験的にチューニングします。振動が発生するまでKpK_pを増やし、50%オフにしてから、KiK_iKdK_dを好みに合わせて調整します。

PID チューニング計算機 は、測定したステップ応答パラメーターから初期ゲインを計算します。これにより、計算を手作業で行い、午前 2 時に算術エラーを起こす必要がなくなります。

熱管理

モーターは抵抗損失により巻線に熱を発生させます:P=I2RaP = I^2 R_a.ドライバはMOSFETの伝導損失から熱を発生させます:P=I2RDS(on)P = I^2 R_{DS(on)}。長時間熱くなりすぎると、熱劣化や故障の原因になります。

動作温度は次のようになります。

Tmotor=Tambient+Ploss×RθT_{motor} = T_{ambient} + P_{loss} \times R_{\theta}
ここで、RθR_{\theta}はモーターケースから周囲までの熱抵抗です。通常、この数値はデータシートに記載されていますが、既知の電力でモーターを稼働させ、熱電対で温度上昇を確認することで経験的に測定することもできます。

ここで気になるのは、銅の巻線抵抗は温度とともに1°Cあたり約 0.39% 増加し、周囲温度よりも 50°C 高いモーターは巻線抵抗が約 20% 高くなるということです。つまり、同じ電流でもトルクが小さくなるため、トルクを維持するためにより多くの電流が必要になり、より多くの熱が発生します。サーマルリミット近くで走っていると、悪循環になります。

データシートでモーターの熱ディレーティング曲線を確認してください。ほとんどのモーターはケース温度が100°C前後でディレーティングを開始し、150°Cで完全にディレーティングされます。高負荷で連続運転する場合は、強制空冷または大型のモーターが必要です。


まとめ

DC モーター制御を正しく行うには、システム全体を理解する必要があります。

1.モーターの適切なモデル化V=IR+KeωV = IR + K_e\omegaを使用して、無負荷時の仕様だけでなく、負荷がかかった状態での速度と電流を予測してください 2.実際のドライバのサイズ設定 — ネームプレート定格ではなく、突入電流 (定格電流の5~10倍) を考慮した設計 3.PWM周波数を慎重に選択してください — 20~25 kHzは、ほとんどのアプリケーションにおいて無音と効率の最適な条件を満たします。 4.精度が必要なときにフィードバックを追加 — 直交エンコーダは 4 倍の解像度と方向センシングを実現 5.PID コントローラーの調整 — チーグラー・ニコルスから始めて、実際のシステム応答に基づいて調整してください 6.温度制限を無視しないでください — ピーク負荷ではなく、最大連続負荷時のモーターとドライバーの温度を計算します

機能するモーター制御システムと確実に機能するモーター制御システムの違いは、これらの詳細を適切に処理できるかどうかにかかっています。生産に取り掛かる前に、すべてを最悪の状態に合わせてサイズ調整し、マージンを増やし、極端な温度でテストしてください。

関連記事