本節では、制御系の設計・実験を行うために必要なPython制御環境の構築手順を解説します。
MATLAB環境の代替としても十分に活用できる、無料かつ高機能なツール群を導入します。
OS/プラットフォーム | 備考 |
---|---|
Windows / macOS / Linux | Anaconda環境で統一可能 |
Raspberry Pi / Jetson | 軽量Python制御可能(実装編で扱う) |
VSCode + Terminal | GUIでの制御編集・実行に推奨 |
ツール名 | 用途 | インストール方法 |
---|---|---|
Python ≥ 3.9 | 制御ロジック・数値解析 | Anaconda推奨 |
numpy , scipy |
線形代数・信号処理 | pip install scipy |
control |
古典〜現代制御(Python制御理論) | pip install control |
matplotlib |
可視化・グラフ描画 | pip install matplotlib |
jupyter |
ノートブック実験環境 | pip install notebook |
conda create -n control_env python=3.10
conda activate control_env
pip install numpy scipy matplotlib control notebook
jupyter notebook
または .ipynb を直接開く
import numpy as np
import matplotlib.pyplot as plt
import control
sys = control.tf([1], [1, 2, 1]) # 2次遅れ系
t, y = control.step_response(sys)
plt.plot(t, y)
plt.title("Step Response (Test)")
plt.xlabel("Time [s]")
plt.ylabel("Output")
plt.grid()
plt.show()
MATLAB関数 | Python対応関数(control ライブラリ) |
---|---|
tf(num,den) |
control.tf(num, den) |
ss(A,B,C,D) |
control.ss(A, B, C, D) |
step(sys) |
control.step_response(sys) |
impulse(sys) |
control.impulse_response(sys) |
bode(sys) |
control.bode(sys) |
nyquist(sys) |
control.nyquist_plot(sys) |
margin(sys) |
control.margin(sys) |
c2d(sys,Ts) |
control.sample_system(sys, Ts) |
feedback(G,K) |
control.feedback(G*K, 1) |
pole(sys) |
control.pole(sys) |
zero(sys) |
control.zero(sys) |