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

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

Pythonとは

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

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

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

環境構築

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

項目
Pythonの導入方法①
(Pythonパッケージ)
WinPython編, Anaconda編, Python(x, y)編,
Pythonの導入方法②
(公式インストーラ)
Python2.7編, Python3.5編
ライブラリの導入方法 python-controlのインストール方法
Pythonの基礎はこちら Python入門 サンプル集
制御工学の基礎はこちら 【制御工学入門】古典~現代制御の基本原理

シミュレーション(python-control編)

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

古典制御

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

現代制御

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

シミュレーション(SciPy編)

現代制御

項目
状態空間 状態方程式

スライディングモード

項目
切換超平面の設計
コントローラの設計
実行 極配置法
参考文献 非線形制御モデル化・実践(スライディングモード制御編)

その他

項目
参考文献 python-control公式, Matlab公式リファレンス, たけし備忘録
プログラミング入門 Python, C言語, Java, C#, Javascript, PHP, VBAマクロ, Processing

シェア&フォローお願いします!