rilyのアイコン画像
rily 2025年12月08日作成 (2025年12月08日更新)
製作品 製作品 閲覧数 81
rily 2025年12月08日作成 (2025年12月08日更新) 製作品 製作品 閲覧数 81

RaspberryPi PicoとMOSFETでなんとなくな三相VVVFインバータを作った

RaspberryPi PicoとMOSFETでなんとなくな三相VVVFインバータを作った

はじめに

600V級のMOSFETやゲートドライバICが複数余っていました。そのため何か作ろうと模索していたところ、「三相交流用のインバータが組めるかも!!」となりました。 最近のマイコンはUSB端子付きのRaspberryPi Pico(RP2040)など、書き込みやデータのやりとりが簡単で高性能なマイコンが安価(数百円)で手に入りますし、高性能なのでプログラムもそこまで難しくはなかったです。
※1:相当な高電圧がかかります。部品が大量に燃えました。なんちゃってパワエレなので、作る方はそこを覚悟でお願いします。
※2:部品はその場で適当に考えたためあまり参考にはなりません。

VVVFインバータ

効率がよく細かく速度制御ができる三相電動機は、電気自動車のほか鉄道によく用いられますが、身近なものだと洗濯機やエアコンの室外機などどの家庭にも存在しています。
それを制御するためには、三相交流の電圧と周波数を変化させる必要があります。
一般家庭のコンセントの単相交流から三相交流を作り出すにもVVVFが必要となります。

インバータ図
https://toshiba.semicon-storage.com/jp/semiconductor/knowledge/e-learning/brushless-motor/chapter3/what-inverter.html

単相交流

単相交流の電圧式は以下になります。

v=va×sin(2πft+θ){v=v_a{\times}sin(2{\pi}ft+{\theta})}

このとき直流電圧va=100,f=50,θ=0としてtを横軸にとると
単相波形
と正弦を描くような波形になります。これが正弦波交流で、波が一つなので単相交流と呼びます。家庭のコンセントの波形はこのようになります。
このとき波の(min,max)は(-va,va)となります。またθを増やすと波が左に移動します。

三相交流

三相交流は3つの波が存在し、それぞれ2π/3(120度)ごとθがズレています。これを式にすると

vu=va×sin(2πft){v_u=v_a{\times}sin(2{\pi}ft)}

vv=va×sin(2πft+2π3){v_v=v_a{\times}sin(2{\pi}ft+\frac{2\pi}{3})}

vw=va×sin(2πft+4π3){v_w=v_a{\times}sin(2{\pi}ft+\frac{4\pi}{3})}

このようになります。
これを前述の条件で波形にすると以下のようになります。
三相波形
これで三相交流をつくることができました。ちなみにこの交流は誘導電動機を効率よく回したり高精度な制御が可能となります。
VVVFインバータではvaとfを変化を変化させて電動機を細かく制御するものとなっています。

PWM変調

デジタルなマイコンなどのコンピュータからアナログな電圧を作り出すにはPWM制御を用います。
PWM変調
電圧に比例して矩形波幅が変化し、このように一定周期の矩形波幅に変換することをPWM変調といいます。このときの周期に対する矩形波幅をデューティ比という割合で示し、1に近づくほど幅が広くなります。
矩形波周期が狭くPWM周波数(キャリア周波数)が高いため、LEDが点灯している様に調光ができます。またこのキャリア周波数はコイル鳴きやモーターの唸りの原因ともなります。
アナログ回路で再現するとこのようになります。
PWMコンパレータ
RaspberryPi Pico PWMプログラム例

スイッチング回路

PWMのようなパルス信号でモーターを動かすには大きな電力の振幅が必要になります。
電力増幅波形
電力増幅回路
このような回路を用いると5Vのパルス振幅を電源電圧一杯まで振りきることができます。ですがトランジスタはNPN(Nch),PNP(Pch)の両方を用意しており、同じ接合を用いるには工夫を行う必要があります。

設計

スイッチング部Take1

今回はNchMOSFETでスイッチングを行うため、専用ゲートドライバIC IR2302を用いて駆動を行います。
1相分スイッチング回路
Q12,13は600V耐圧でオン抵抗が0.1Ω台のTK20A60Uを用いました。
R25,26は22kΩです。C14は100pFしかなかったですがもっと搭載しましょう。R23,24、D6,7は非搭載です。
D5はMOSFETの耐圧耐圧と同じ程度(600V)のFRDを使いました。チャージポンプC11は余裕を持って33μFにしました。
最初にゲート抵抗R21,22を5.1Ωにして100√2Vでスイッチングしたところ、無音でゲートドライバとMOSFETが壊れました。。。南無阿弥陀仏Ω\ζ°)チーン

スイッチング部Take2〜

配線インダクタンスによるサージによって破壊??と考えゲート抵抗を一気に39Ωまで上げたところ破壊せずにスイッチングできました。
ですが、今度は三相誘導機を繋げて一気に減速動作を行ったところ、ブレーキによる発電電圧がサージに重畳され400V耐圧のD9,10がとてつもない異臭と煤を出して大爆発しました。。。Ω\ζ°)チーンΩ\ζ°)チーン
ですのでD9,10は取り外して非搭載としています(MOSFETの寄生ダイオードを使うことにしました。)。
最終的にC11=33μF、R21,22=39Ωと決まりました。
そして動作した波形がこちらになります。
相電圧波形
相電圧波形になりますが...何も負荷もインダクタも繋いでなくてもサージ電圧が目立ちます。配線インダクタンス恐るべし...200Vへの昇圧は諦めました。基板の配線はちゃんとしましょう。

絶縁部
ゲートドライバから更に左に繋がっているのが、信号の絶縁を行うフォトカプラです。まさかのゲートドライバにもなるTLP250を用いてスイッチング部のノイズをマイコンに回り込まないようにしました(勿体無い)。R7はTLP250のLEDに10mA程度流れるように設計してます。
スイッチング部と電源基板

Pi周辺

マイコン部
Piから信号はトーテムポール回路に繋がっています。このトランジスタは2SC1740/2SA933を用いていますが小信号用トランジスタであればなんでも良いです。またそのベース抵抗は220Ωを繋げています。
トーテムポールにした理由ですが、TLP250のLEDの寄生キャパシタから電流を高速で抜きとることで、信号の応答速度がさらに上がるのでは??と思ったからです(多分あまり意味ない)。
その他入出力や電源操作系の回路がありますがこちらは割愛です。

ラズパイで三相交流プログラム流れ

ラズパイで三相交流をPWMとして出力します。

1:まず正弦波をデジタル的に扱えるように、一周期2πをn分割します。
2:PWMを三相交流周波数のn倍のキャリア周波数で動作させます。
3:PWMの一周期ごとに割り込みで、2πのn分割を足し合わせてその時の角度を出します。
 3.5:角度を三角関数に入れてデューティ比を算出し、PWMのデューティ比を変化させます。

3〜3.5を繰り返すことによって正弦波を変調したPWMが出力されます。

またこの際のキャリア周波数の変動によりモーターから大きな唸り音が聞こえます。(キャリア周波数の2倍の音が聞こえる)。このキャリア周波数を自由に変化させることで回転中に音階を奏でることも可能です。

実際にモーター駆動してみる

ドレミファインバータと時のオカリナを奏でてみましたので聴いてみてください。
ドレミファインバータ
時のオカリナインバータ

ちなみにですが、そのままでは三相線間電圧が電源電圧いっぱいまで振り切ることができません。
ですので、二相変調下方式(尻正弦波)といわれる波形になるようにプログラムの改造しています。

rilyのアイコン画像
ブログ執筆ナンモワカリマセン
  • rily さんが 前の月曜日の16:19 に 編集 をしました。 (メッセージ: 初版)
  • rily さんが 前の月曜日の16:24 に 編集 をしました。
  • rily さんが 前の月曜日の17:14 に 編集 をしました。
  • rily さんが 前の月曜日の17:23 に 編集 をしました。
  • rily さんが 前の月曜日の20:32 に 編集 をしました。
ログインしてコメントを投稿する