6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【制御工学】Pythonによる伝達関数や状態空間モデルの計算

Posted at

#はじめに
仕事でロボット制御をやることになったので、以下のことを知るためにまとめた。
・制御工学の基礎知識の復習
・pythonで制御システムやPID制御をどう描くのか
・状態空間モデルを理解することでカルマンフィルタや自己位置推定を理解するため

#参考文献
南裕樹 著、オーム社、「Pythonによる制御工学入門」

#内容
「Pythonによる制御工学入門」の第3章の内容

共通

以下のライブラリをimport

import sympy
import control

伝達関数

以下にコードを記載

# chapter 3-2 伝達関数モデル
Np = [0,1]
Dp = [1,2,3]
P = control.tf(Np, Dp)
print(P)
出力
      1
-------------
s^2 + 2 s + 3

状態空間

以下にコードを記載

#3-3 状態空間モデル
A = '1 1 2; 2 1 1; 3 4 5'
B = '2; 0; 1'
C = '1 1 0'
D = '0'
P = control.ss(A,B,C,D)
print(P)
sysA, sysB, sysC, sysD = control.ssdata(P)
print(sysA)
出力
A = [[1. 1. 2.]
 [2. 1. 1.]
 [3. 4. 5.]]

B = [[2.]
 [0.]
 [1.]]

C = [[1. 1. 0.]]

D = [[0.]]

[[1. 1. 2.]
 [2. 1. 1.]
 [3. 4. 5.]]

#まとめ
・controlやsympyといったライブラリを使うと、ラプラス変換や伝達関数表記がこんなに簡単にできる。

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?