シンプルな定電流コイルガンを作りたい

 どうも、テストが終わり夏休みが始まって狂喜乱舞しているさばねっこです。

 今回前々から温めてきた電流フィードバックなしの定電流コイルガンがある程度うまくいったので紹介したいと思います。

 

 まず、コイルガンを定電流制御するメリットとしては

 ①コンデンサ電圧の低下による出力エネルギーの変化を抑えられる。

 ②ジュール熱による損失を減らせる(なおスイッチング損失

 があげられます。しかし、電流を監視するにはをするには電流センサやシャント抵抗が必要であり、そこからさらに定電流制御するためにはコンパレータなどを用いて回路を組む必要があるため、電流制御をしない場合と比較するとどうしても回路が複雑になってしまいます。

 そこで今回は単純なPWM信号で定電流制御ができるのか実験してみました。

 まあなんか適当にやればできそうに思えますが、コイルガンは原理的にインダクタンスが常に変化するため、そのような状況でも制御できるかはよくわかりませんでした。なので実験してみたわけ。

 マイコンはPIC32MM0064GPL028、コンデンサは200V2200uFの物を使用しました。

 実験回路(雑)はこんな感じ。

f:id:sabanEkko2:20210805223637p:plain

f:id:sabanEkko2:20210722172422j:plain

コイルは前回の回生型コイルガンにつかったものを流用しました。だいたい2Ωでインダクタンス不明。

実感風景(雑

f:id:sabanEkko2:20210805224109j:plain

 そして実際にやってみた時の電流波形がこれ(↑10A、↓40A)

f:id:sabanEkko2:20210805225552j:plain

f:id:sabanEkko2:20210805225516j:plain

 どちらも割といい感じに制御できてますね。もちろんどちらも弾を実際に発射した際の電流波形です。

 

 で、ここからは具体的な内容とか。

 プログラムの内容は結構シンプルで、ローサイドは通電時間中常時ON、ハイサイドにPWM信号を入力するだけです。

 PWMのduty比はコンデンサ電圧、コイル抵抗、目標電流から計算しています。コンデンサ電圧はAD変換器で常に監視しているため、電圧が変動しても一定の電流を流すことができます。

 また、コイル電流が0Aの状態から目標電流に達するまでにはそれなりの時間が必要なわけですが、その分を確保するために通電開始時にduty=100%の時間を確保しています。「電流増加待機時間」とでも言えばいいのでしょうか

f:id:sabanEkko2:20210805225257p:plain

 duty100%の待機時間に関しては目標電流やら弾の位置やらでいろいろ最適値が変わってきてしまいます。なのでその時々で設定しないといけませんね…。まあ電流センサーとかを入れるのに比べたら楽だと思う。しらんけど。

 

 とまあこんな感じです。インダクタンスの変化は思ってたよりも影響ありませんでしたね。また、今回は12bitADC+32bitCPUという強めなマイコンで制御しましたが、10bitADC+8bitマイコンでも十分制御できそうです。これぐらいのマイコンならいくらでもあるので、「定電流コイルガン」という比較的高級(?)なコイルガンが手軽に実現できる可能性が示せたのではないでしょうか。

 

 で、ここからは改善案とか

 上にも述べた通り今回は通電開始時に「電流増加待機時間」とかいうめんどくさいものを入れていますが、これの最適値は時々によって変わってしまいます。それをいちいち実験して設定するのはめんどくさいですね。というわけでそれをマイコン側で設定する方法を模索していこうと思います。まあアイディアはもうある、というかそれがもともと本命だった電圧微分型なんだけどね。