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

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

【はじめに】Pythonとは

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

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

「python-control」のインストール方法
ライブラリの導入方法 python-controlのインストール方法
制御工学の基礎はこちら 【制御工学入門】古典~現代制御の基本原理

【python-control編】制御シミュレーション

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

古典制御
伝達関数 伝達関数モデルの作成
周波数応答 ボード線図(ゲイン位相)ナイキスト線図根軌跡
安定判別 システムの極(安定判別)ゲイン・位相余裕システムの零点
時間応答 インパルス応答ステップ応答
PID制御 P制御PD制御PID制御
現代制御
状態空間 状態空間モデルの作成
変換 状態→伝達(1自由度)■状態→伝達(2自由度機械) ■伝達関数→状態方程式
可制御・可観測性 可制御性の判別可観測性の判別
状態フィードバック ゲイン設計(極配置法)
最適レギュレータ リカッチ方程式の解リアプノフ方程式の解最適レギュレータオブザーバ(同一次元) ■オブザーバ(最小次元) ■最適サーボ制御

【SciPy編編】制御シミュレーション

古典制御
周波数応答 ボード線図
RLC回路のボード線図・位相線図
現代制御
状態空間 状態方程式状態方程式と伝達関数の相互変換
スライディングモード制御
切換超平面の設計
コントローラの設計
実行 極配置法
参考文献 非線形制御モデル化・実践(スライディングモード制御編)
関連記事