シェアする

  • このエントリーをはてなブックマークに追加

Pythonで制御工学シミュレーション

スポンサーリンク
ビッグバナー(上2)

本記事では、プログラミング言語「Python」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。

Pythonとは

Pythonとは、欧米で人気なスクリプト言語で、以下の優れた特徴を持っています。

・コードが短く、読みやすい
・科学技術計算ライブラリが豊富である(Matlab風ライブラリもある)
・無料である

制御シミュレーションには、Matlabがよく使われていますが、Pythonには無料というメリットがあります。
また、Pythonには制御工学シミュレーション以外にも様々なライブラリがあるため、拡張性が高いです。

python-controlで制御シミュレーション

Pythonには、制御工学シミュレーション用のライブラリ「python-control」があります。
このライブラリはMatlabの制御シミュレーションに関する機能をそのまま移植したようなライブラリです。
そのため、使い方がMatlabの関数とよく似ているので使用しやすいです。
今回は、「python-control」を使って制御工学シミュレーションを行っていきます。

環境構築

Pythonとライブラリ「python-control」の環境構築方法については下記事で解説しています。

環境構築①:Python2.7編, Python3.5編, WinPython編, Anaconda編, Python(x, y)編,
環境構築②:python-controlのインストール方法
基本文法:Python入門 サンプル集

【補足】
環境構築①では、Python導入のいくつかのパターンを紹介しています。
WInPythonやAnacondaなどの「Pythonパッケージ」を使ってインストールすると、python-controlを動かすのに必要なNumPy等のライブラリを別途インストールする手間を省けます。

制御シミュレーション

「python-control」を使った制御シミュレーションのソースコードと解説に関する記事を項目別にまとめました。

古典制御

伝達関数:伝達関数モデルの作成
周波数応答:ボード線図(ゲイン位相), ナイキスト線図, 根軌跡
安定判別:システムの極(安定判別), ゲイン・位相余裕, システムの零点
時間応答:インパルス応答, ステップ応答
PID制御:P制御, PD制御, PID制御

現在制御

状態空間:状態空間モデルの作成
変換:状態方程式→伝達関数, 伝達関数→状態方程式
可制御・可観測性:可制御性の判別, 可観測性の判別
状態フィードバック:ゲイン設計(極配置法)
最適レギュレータ:リカッチ方程式の解, リアプノフ方程式の解, 最適レギュレータ, オブザーバ(同一次元), オブザーバ(最小次元), 最適サーボ制御

参考文献

参考サイト様:python-control公式, Matlab公式リファレンス, たけし備忘録

他言語の入門記事

入門記事:Python, C言語, Java, C#, Javascript, PHP, VBAマクロ, Processing

スポンサーリンク
レクタングル(下2)
レクタングル(下2)