基板を作り直しただけ。あと昇圧チョッパ
どうも、完全にブログを放置していたさばねっこです。
定期テスト終わったら暇になるだろうなー(虚無)って思ってたら部活とか転科試験とかで思いのほか時間が無くてですね…。それ以上にやる気が出なかっただけですが…。
で、コイルガンですが、全く進んでおりません。はい。でももちろん何もやっていなかったわけではなくて、制御基板の改良をしていました。
こちらが元々二階建て基板の一階部分になる予定だった基板です。左から、コイル電流監視型555昇圧チョッパ、ワンショット生成回路(74HC123)、ゲートドライブ用昇圧モジュールという感じになっています。
こいつは一応ちゃんと動作はするのですが、問題点が多くありました。
①昇圧チョッパに充電停止機能がない。人力充電停止とかアホすぎ。
②昇圧チョッパが謎の間欠発振をしてしまいコンデンサ充電がスムーズにできない。
③ワンショット回路の半固定抵抗を回し過ぎるとの抵抗値が低くなりすぎてワンショット回路として機能しなくなる。(74HC123のデータシート参照)
④ピンソケットで外部とのやり取りをするが、使いたいスペーサーが低すぎて余裕がなく、ソケットの高さ的にケーブルを無理に曲げる必要がある。
⑤電源系がピンヘッダーでつながれていてめっちゃ抜けやすい。
⑥というかメインの12V系もピンヘッダでつなぐのは頭悪すぎる。
とまあこんな具合でかなりのガバガバ設計なわけです。まあその場のノリで部品を追加していったのが悪いね。
当然このままコイルガンに使用するわけにはいかないので新規に基盤を作り直しました。
改良点は主に5つ。
①昇圧チョッパをPIC制御に。充電停止をできるようにし、安定性も向上。
②ピンソケットを丸ピンIC用ソケットに。背を低くしてケーブルの取り回しに余裕を作る。
③電源系の接続はPAコネクタに。より抜けづらく扱いやすい。
④ワンショットの半固定抵抗に直列に1kΩをいれて確実にワンショットを生成。
⑤昇圧チョッパのダイオードを2パラにして電流に余裕を(正直一本で十分だけど)。
とまあこんな感じで先代の欠点は大体克服できたと思います。
ここまででほとんどやったことは書き終わってしまったのですが、せっかくなのでPICでの昇圧チョッパ製作についてちょっと書きたいと思います。
先代基板では555を用いたコイル電流監視型の昇圧チョッパを使っていました。詳細はめんどくさいので省きますが、
コイルの電流をシャント抵抗で測定→電流が増加するまでMOSFETをON→十分に電流が増えたらMOSFETをOFF→電流が十分に減少するまで待機
って感じのことをやっていました。初めはPICで同じことをやろうとして、
コイルの電流増加→シャント抵抗への電圧増加→AD変換で基準電圧まで上がったか監視→電流が十分に増加したら(AD変換された値が十分大きくなったら)MOSFETをOFF→AD変換で電流(シャント抵抗電圧)を監視して十分に電流が減少するまで待機
という具合に制御しようとしていました。まあでもうまくいかないわけ。
mosfetを2sk3234にすると(発熱やばいけど)動作する
— さばねっこ (@sabanekko1) 2021年2月24日
けど、本命のtk20a60uにすると(リプ欄)意味不明な挙動をする
何故 pic.twitter.com/q8zJ0sgUF5
こんな感じで間欠発振したり、動くは動くけどめっちゃ出力が低かったりしました。
おそらく原因はAD変換に時間がかかり、処理が追い付いていなかっただけの話でしょう。やりたい動作的には555のやつと同じなので問題ないはずですし。
まあそんな具合にPICのAD変換で制御しようとしてもうまくいかないので、PWMモジュールを使って制御することにしました。
PICのPWMモジュールは、周期と信号のパルス幅をどちらも何クロックごとに一回という風に制御します。なのでいろいろなデューティー比のPWM信号を作りたければ、周期を設定する値は固定して、パルス幅部分の数値を変更すれば自由なデューティー比の信号を作ることができるわけですね。
で、今回はそのPWMモジュールでPFMという信号を発生させ昇圧チョッパを制御します。基本的にできることはPWMと同じですが、PWMは一定周期の中でのパルス幅を変化させるのに対し、PFMではパルス幅は一定にして周期の方を変化させます。
そして昇圧チョッパで入力電圧Vinからある電圧Voutを作ろうとした場合、スイッチング素子のON時間をTon(つまりパルス幅)、OFF時間をToffとすると
Vout = ( ( Ton + Toff ) / Toff) * Vin という式が成り立つらしいです。
そして、Ton + Toff というのはPFMの信号周期なので
T = Ton + Toff とすると、
Vout = ( T / Toff ) * V = ( T / T - Ton) * Vin
⇔ T=(Vout * Ton ) / ( Vout - Vin )
となり、出力電圧に対して最適なPFMの周期を求めることができます。
キャパシタチャージャーでは、その時のコンデンサの充電電圧あたりをVoutとして計算するともっとも効率が良くなる(気がする)ので、
コンデンサ電圧をAD変換で測定→上の式でPFM周期を設定
というのを繰り返すことで制御しています。
動かすとこんな感じ
よい(というか机の上汚すぎて草) pic.twitter.com/I9aPtOyiD0
— さばねっこ (@sabanekko1) 2021年3月11日
かなり聞こえづらいですが、音がキュイイイイイイイン↑↑と上がっていることから、うまくPFM信号を生成できているとわかります。
回路図はこんな感じ。
充電停止などもプログラムで出来てしまうのでかなりシンプルですね。GPIOも4ピンしか使っていないので米粒PICとかに書き込んで超小型化しても面白そう。
とまあこんな感じです。コイルガン完成まではまだ時間はかかりそうですが、気長に待っていてください。