工学技術

【Python】Python controlを使ったDCモータの回転制御シミュレーション【PID制御の基礎】

スポンサーリンク

PID制御の基礎をPythonのライブラリの一種であるcontrolを使って勉強しましょう。

今回は、ミニ四駆などのおもちゃによく使われているDCモータの特性と回転制御をシミュレーションで確認します。

この記事を読めば、DCモータのモデル化とpythonを使ったシミュレーションがわかります。

DCCモータとは?

DCモータはDC(Direct Current)と付く通り、直流で駆動するモータです。

電気回路としてはRL回路と等価です。

機械としてはモータは回転運動を行います。

使用したpythonライブラリ

今回は以下のpythonライブラリを使用しました。

  • control
  • matplotlib
  • numpy
  • scipy

DCモータの基礎

DCモータの特性をブロック線図で表現する

DCモータに生じる物理現象を数式で表します。

回路方程式:$$e + (-K_{E}\omega) + \left(-L\frac{di}{dt}\right) + (-Ri) = 0$$

トルクと電流の関係式:$$T = K_{T}i$$

運動方程式:$$T = J\alpha = J\frac{d\omega}{dt}$$

上の3式をブロック線図で表現すると以下のようになります。

DCモータの特性をブロック線図で表現する

python controlを使ってDCモータの時間軸応答を確認する

DCモータの端子間に電圧を1V印加したときのステップ応答を確認します。

DCモータの特性をブロック線図で表現する2

機械的時定数である約0.361[s]で応答していることがわかります。

機械的時定数とは電圧印加から回転数が応答するまでの時定数のことで下式で求まることができます。
$$t_{m} = \frac{RJ}{K_{T}K_{E}} = 0.361[s]$$

DCモータの端子間に電圧を印加することである一定の回転数に収束しています。

DCモータの端子間に印加する電圧を変えることでDCモータの回転数を変えることができそうですね。

ミニ四駆などのおもちゃが乾電池を繋げるだけで一定速度で走っているのを模擬したことになります。

Python controlを使ったDCモータの回転制御シミュレーションまとめ

今回はDCモータのモデル化と電圧を印加することにより回転数を制御できることを確認しました。

次回はPID制御コントローラを設計し回転数を制御したいと思います。

最後まで読んでいただき、ありがとうございました。

コメント

タイトルとURLをコピーしました