C言語によるモータ制御入門講座

お客様からお借りしている参考文献の一つがこれです。今回はFPGAを介したブラシレスDCモータ制御なので全く関係ないのですが、MOSFETによる三相交流モータの制御も取り上げてあり、294ページのプログラム"L7_5.c"にVVVF制御の例が載ってます。


やっば、VVVFヲタク的に欲しいかもw
C言語によるモータ制御入門講座―SHマイコンで学ぶプログラミングと制御技法

C言語によるモータ制御入門講座―SHマイコンで学ぶプログラミングと制御技法

で、まじめに読んでみる

「第3章 制御のためのシミュレーション」のあたり

ブラシ付きDCモータの等価回路が128ページの図3-5に載ってます。いまいちぴんと来ない。で、ブロック図が129ページの図3-6に載ってます。ラプラス変換s高専3年生のときから15年ぶりにまじめに見るので一瞬引く*1。しかも電気的と機械的の2つの一次遅れ系があるのでさらに引く。ブロック図中の変数x8のブロックの分母が1 + sJ/Dとかなってるのでわけわかめ。冷静に考えてみると、J/Dは機械的時定数Tmなのねと理解し、ちょっと安心w

気を取り直して図3-7を見てみる。文章を超斜め読みしてるので一瞬0.4s〜0.8sあたりの応答波形が理解できない。で、もう少し丁寧に読んでみると0.4s〜0.7sの間に負荷トルクのステップ入力があった。つまり、この絵は起動時のステップ応答と負荷変動時のステップ応答を描いたもので、ふつーの一次遅れ系のグラフなのでまたまたちょっと安心ww 見た目だけで判断してるので解析的にどうなのかは知らんけど。そもそもラプラス変換の計算方法忘れちゃったし。(爆)

引き続き速度制御システムについて読んでみる。図3-8を見てみると何か違和感が…

高橋 久先生、typoしてますよ!*2

誤:Low Path Filter
正:Low-pass Filter

もしかしてハガキで報告すると増刷時に1冊貰えますか?*3

気を取り直して読み続ける。P制御、PID制御、PI-D制御、I-PD制御の順に紹介されている。デスマってるのでシミュレーション結果だけをまじめに見る。

網羅的に応答波形が載っているのでTry & Errorせずに済んで助かります!

制御理論を全く知らないネットユーザ向けに書くとこんな感じ↓ とりあえず、PI-D制御、I-PD制御を実装します。コーディング前に読んでて良かったww

P制御 <<<(越えられない壁)<<< PID制御 << PI-D制御、I-PD制御

「第4章 関数を用意しよう」のあたり

「4.9 通信関数」まではシステム構成(SH-2は同じだけど)、プラットフォーム(現プロジェクトはTOPPERS/ASP)が違うのでスルーする。下記は後で必要になりそうだから脳内にブックマーク。

  • 4.10 汎用ビット回転関数
  • 4.11 制御用関数
  • 4.12 関数とプログラム

211ページの「コラム サンプリング間隔の違いによる計算結果」は興味深い。結論だけ書くと、

サンプリング周期が制御対象の時定数に比べて十分に細かく取れないときは、高精度の計算アルゴリズムが必要(もちろんCPUを喰う)

で、肝心の自分のプロジェクトの制御対象の時定数はどうやっても求めたらよいのでしょう。ステップ応答をオシロスコープで取って接線の傾きから求めるのか?

「第5章 ステッピングモータの制御」のあたり

多分、書評っぽいのを書いてなければ「ステッピングモータ?オープンループ制御でいいんでしょ?今回は制御対象が違うから!」とスルーしてた部分。でも機械的な特性はブラシレスDCモータもあまり変わらないと思うので、「5.4 加減速駆動による位置決め」は読んでおく。今回のシステムはFPGAに速度指令値(rps)を渡すと良きに計らってくれるため(FPGAPWM制御してくれる)、概念的に近い可能性大。

「第6章 モータ制御」のあたり

「6.1 ブラシ付DCモータの速度制御」は基本として大事だけどデスマってるので斜め読み。「6.2 ホールセンサを使ったブラシレスDCモータの電圧制御」でいよいよ、

ブラシレスDCモータ制御キタ━━━ヽ(´ー`)ノ━━━!!
だけど、回路構成が違うので参考程度。残念。

「第7章 インバータ」のあたり

趣味的には一番面白いところ。VVVF制御のソースが載っているのは前述のとおり。だけど今回のお仕事とは無関係なので読むのを断念。

まとめ

とにかく実践的(なにせ動くソースコードと開発環境がCD-ROMで付いてくる!)。しかも網羅的。やはり、博士(工学)の仕事は違います。とにかく動くのが見たい、理論は後回しでいいという初心者には超お勧め!*4 多分、モータ制御を本職にしてる方でも全種類のモータをお仕事にしている方は稀でしょうから、きっと役立つはず。

最後に

以下のツッコミは受け付けません。:-P

  • *.csvをfopen()するときにエラーチェックしてないんだけどみたいなKYなツッコミ
  • 挿絵のイラストの趣味が合わないんだけどといったどーでもいいツッコミ

あと、ラプラス変換や制御理論の歴史や古典制御理論・現代制御理論*5が判るようになりたい人は他の本も当たってください。手元にあるのはこれです。

あと、かれこれ13年ほどソフトウェアしか触ってないから、的外れな記述も多いはず。ご批判は甘んじて受けます。コメント・トラバください。m(_ _)m*6

*1:歳がバレるな。(^^;

*2:でも、IEEE/日本ロボット学会/精密工学会/計測自動制御学会/電気学会所属で、職業能力開発総合大学校准教授で、博士(工学)だからそういう表記の流儀もあるのかも。だが、Wikipediaも"Low-pass filter"なんだよなー。英語版もそうだから多分おれがあってると思う。さすがにNative Speakerは間違えないだろう。

*3:速達で出そうかなー

*4:私も初心者w

*5:あぁ、もう、現代制御理論とか遥か忘却のかなた。orz

*6:そんなおれが書評っぽいのを書いていいのか???