PWMとは
Pulse
Width
Modulation(パルス幅変調)の略
パルスの周期は変化させず、パルスのON時間とOFF時間の比率を変えて出力を行う方式です。
※通信として用いる事もありますが、以降は出力制御についてのみの解説します。
出力制御の場合アナログ出力の様なものでアナログ入力と対になります。
PWMの動作(原理)
0Vを出力し続けると0Vが、5Vを出力し続けると5Vが出力されます。
これは当然。
一定(例えば100ms)の周期の間で周期の
50%の時間(50ms間)だけ5Vを出力し、
50%の時間(50ms間)だけ0Vを出力し、これを繰り返す。各瞬間では5Vか0Vが出力されるものの、
平均値としては
5Vの50%である2.5Vが出力されることになります。
ON時間を25%、OFF時間を75%とすると
平均出力は
25%(1.25V)となります。
ON時間を75%、OFF時間を25%とすると
平均出力は
75%(3.75V)となります。
この様に
ON-OFFを高速で時間制御することによって
疑似的に
アナログの様な出力が可能になります。この様にパルスの発生する
周期(100ms)を固定したままで
ON時間と
OFF時間の
比率を変えてパルスの幅を変化させる制御方法が
PWMです。
ラジコン等で使用する
サーボモータの指令値の入力にもPWMが使用されています。
ここで1周期における
ON時間の占める割合を
デューティー比と呼びます。
私はPMWの周期を
1msから
100ms程度に設定して使用しています。
なぜPWMを使うのか
と言うよりなぜ
D/A変換を使わないのか。
要因1:トランジスタの特性
要因2:マイコン(デジタル)制御の特性
要因3:モータの特性
の3つについて考えてみます。
要因1:トランジスタの特性
アナログ信号に対してモータを動かす際に
トランジスタを使った出力制御を行う事を考えます。
このとき、
トランジスタは信号によって抵抗値が変わる可変抵抗の様なものと考える事ができます。
条件1:トランジスタに
信号を全く加えていない場合、抵抗値は無限大でモータには
全く電圧がかかりません。
電流も流れません。
条件2:トランジスタに
信号を100%加えた場合、抵抗値はほぼ0でモータには
電源電圧がそのまま加わります。電流はモータと電源を
直結したときと同程度流れます。
条件3:トランジスタに
50%の信号を加えた場合、ある程度の抵抗値になりモータには
電源電圧より少し低下した電圧値が加わります。
電流も一定量流れます。
とりあえずアナログ信号に応じたモータの回転数コントロールを行うことができます。
問題はここからです。
条件1の場合、特に何も起きません。
条件2の場合、トランジスタが
少し発熱します。
条件3の場合、トランジスタが
一気に発熱します。すこしモータを回しただけで
指で触れないぐらいの温度にまで上昇します。
これは
トランジスタが電力を消費していることを意味します。
消費電力は「
トランジスタで低下した電圧×
トランジスタに流れた電流」で計算します。
モータを回転させるためには数百mA(0.1A以上)の電流が必要になります。とりあえず
100mA流れたとしましょう。
トランジスタで低下した電圧は電源電圧からモータに加わった電圧を引いたものです。
5Vを加えて3Vまで低下していたとすると
トランジスタには2V加わっていることになります。
トランジスタで消費した電力は
200mWとなります。一見小さな電力にも思えますが、モータでの消費電力が
300mAなので、
トランジスタで消費された電力は
結構な大きさであることが分かります。
供給した電力のうち40%をトランジスタで消費(捨てている)ことになるので、あまり良い使い方ではありません。
トランジスタを効率よく使用する場合は
条件1と
条件2で
のみ使用した方が良いのです。
要因2:マイコン(デジタル)制御の特性
これは話がとても簡単です。
マイコンは一般的に
D/A変換機能を標準では搭載していません。
アナログ電圧出力を行う場合は抵抗を沢山並べた
ラダー型の変換回路等を作成する必要があります。
これに対して
PWMは
ON-OFFのみを行えば良いので
追加で周辺回路を作成する必要はありません。
ON-OFFを一定周期で繰り返すプログラムが必要ですが、多くのマイコンで
PWMのON-OFF波形を生成する機能が搭載されています。
要因3:モータの特性
モータをゆっくり回すには
モータが回るか回らないかのギリギリの電圧を加えれば良いのですが、モータの
個体差や
摩擦などの外的要因により
同じ電圧をかけても
回ったり回らなかったりします。これに対してモータを
定格電圧で動かしている間は
少し外力を加えた程度では
回り続けます。
PWMで動作させると
定格回転と
停止を
繰り返している様な動きとなります。
力強く一瞬回ってから
停止を繰り返すのでモータが回るか回らないかのギリギリの電圧を加えた場合より
外力に強くなります。
PWMが使えない条件
PWM自体は制御で都合が良いのですが、
万能ではありません。
リレーを接続している場合
マイコンの端子で直接LEDを制御している場合やトランジスタを介してモータを制御している場合は問題はありません。
問題となるのは
リレーを経由してランプやモータを制御している場合。
ランプやモータ自体がPWM動作可能な物であっても
リレーを介して制御している場合は
PWM制御をすることができません。これはリレーの構造にに起因します。
リレー自体をPWM制御で動かす事は一応可能です。リレーの中の電極が物理的に動く時間は確保する必要がありますが
とりあえず動きはします。
問題なのは
電極側で、電圧をかけたまま
電極の接触と離脱を繰り返すことになります。
電圧をかけたまま電極の接触と離脱を行うとその瞬間に
スパーク(火花)が発生します。
スパークの発生により
電極の接触面が焼けたり溶けたりして
電気が流れなくなります。
リレー自体はこの
スパークが発生することは想定しており、
数万回程度のON-OFFではトラブルが起きないように設計されています。何回までON-OFFしても大丈夫かは「電気的耐久性」という項目で規定されています。
しかし、PWMは1ms程度の周期でON-OFFを繰り返すため、
10秒動かしただけでも
1万回ON-OFFを繰り返すことになります。このペースでON-OFFを繰り返すと
数分動かしただけで電気的耐久性の耐久値を超えて
壊れてしまいます。
アナログ波形を扱いたい場合
モータ制御の場合、PWM出力は
アナログ出力と同じような物と考える事ができます。
ただ、実際に出力される波形は
ON-OFFを繰り返した矩形波です。
この出力に
コンデンサをかませることで
アナログ出力の様な値にすることはできます。
モータドライバへの基準電圧入力用途ではこれでも問題ありません。
しかし、
オーディオの様な
高速で
波の形が重要になる用途では
目的の動作になりません。
コンデンサを追加することで
波形に遅れが出てしまいます。また、
1つの値を出力するのに最低でも
1周期(1ms)必要で、矩形波を平滑化して正確な値を出そうと思うと
数周期必要となります。
PWMの周期を小さくすれば
ある程度までは対応できるのですが、オーディオだと
20kHzでD/A出力を変化させないといけないためPWMより抵抗を沢山並べたラダー型の変換回路等で対応することが多いようです。
信号伝送としてのPWM
ここでは出力制御としてのPWMを解説しましたが、
信号伝送としてのPWMにも少し触れておきます。
アナログ0-5V信号を伝送したい場合を考えてみます。
信号の
送信側と
受信側が
非常に近い場合は問題が出ることは少ないでしょう。
問題は
距離が離れた場合です。
電線の抵抗値は0でないため、電線が長くなると
電線の抵抗により
信号の電圧値が低下します。
また
コネクタの接触抵抗により電圧値が低下する可能性もあります。
ON-OFF制御の場合、
多少電圧が低下しても
受信側で
ONとOFFの判別は可能です。
PWMを用いると、情報は
ON時間とOFF時間の比率として転送されます。
時間の比率は
電圧が低下しても
変化することはありません。
したがって、
受信側で
ON時間とOFF時間の比率から
元の情報を正確に復元することができます。
余談ですが、パルスの幅で情報電圧を行う方式の他には伝送波の
振幅や
周波数で伝送を行う方法もあります。
伝送波の
振幅を変えることで情報伝送を行う方式を
Amplitude
Modulation
伝送波の
周波数を変えることで情報伝送を行う方式を
Frequency
Modulation
と言います。
ラジオの
AM、
FMがこれです。