3
9

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で学ぶ制御工学 第6弾:伝達関数モデルと状態空間モデル

Last updated at Posted at 2021-02-23

#Pythonで学ぶ制御工学< 伝達関数モデルと状態空間モデル >

##はじめに
基本的な制御工学をPythonで実装し,復習も兼ねて制御工学への理解をより深めることが目的である.
その第6弾として伝達関数モデルと状態空間モデルを扱う.

##状態空間モデルと伝達関数モデルの関係性
状態空間モデルは一意の伝達関数モデルに変換することができる.次にその過程を示す.
image.png
しかしながら,逆は定まらない.
image.png

##実装
先ほどの変換をPythonで実装してみる.以下にソースコードとそのときの出力を示す.

#####ソースコード

"""
2021/02/23
@Yuya Shimizu

状態空間モデルと伝達関数モデル
"""

from control import tf, tf2ss, ss2tf, canonical_form

#適当な伝達関数モデルを準備
numerator = [0, 1]
denominator = [1, 1, 1]
P = tf(numerator, denominator)



#伝達関数モデル → 状態空間モデル
Pss = tf2ss(P)
print(f"<伝達関数モデル → 状態空間モデル>\n{P}\n ↓\n\n{Pss}\n")

#状態空間モデル → 伝達関数モデル
Ptf = ss2tf(Pss)
print(f"\n<状態空間モデル → 伝達関数モデル>\n{Pss}\n ↓\n{Ptf}")



#可制御正準形への変換
Pr, T = canonical_form(Pss, form = 'reachable')
print(f"\n<可制御正準形への変換>\n{Pss}\n ↓\n\n{Pr}")

#可観測正準形への変換
Pr, T = canonical_form(Pss, form = 'observable')
print(f"\n<可観測正準形への変換>\n{Pss}\n ↓\n\n{Pr}")

#####出力

<伝達関数モデル → 状態空間モデル>

     1
-----------
s^2 + s + 1

 ↓

A = [[-1. -1.]
 [ 1.  0.]]

B = [[-1.]
 [ 0.]]

C = [[ 0. -1.]]

D = [[0.]]



<状態空間モデル → 伝達関数モデル>
A = [[-1. -1.]
 [ 1.  0.]]

B = [[-1.]
 [ 0.]]

C = [[ 0. -1.]]

D = [[0.]]

 ↓

     1
-----------
s^2 + s + 1


<可制御正準形への変換>
A = [[-1. -1.]
 [ 1.  0.]]

B = [[-1.]
 [ 0.]]

C = [[ 0. -1.]]

D = [[0.]]

 ↓

A = [[-1. -1.]
 [ 1.  0.]]

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

C = [[-0.  1.]]

D = [[0.]]


<可観測正準形への変換>
A = [[-1. -1.]
 [ 1.  0.]]

B = [[-1.]
 [ 0.]]

C = [[ 0. -1.]]

D = [[0.]]

 ↓

A = [[-1.  1.]
 [-1.  0.]]

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

C = [[1. 0.]]

D = [[0.]]

ここでプログラムに関して補足しておく.controlライブラリのtf2ssで状態空間モデルに変換しているわけだが,はじめの説明でもあったように一意に定まらないということで,可制御・可観測正準形になっているとは限らない.そこで,controlライブラリのcanonical_formという関数でさらに変換している.また,可制御正準形の変換時にreachable(可到達)と指定しているが,これは連続時間の線形システムにおいては,可到達性と可制御性が同じ意味となるためである.

##プロパー性
最後にシステムの設計時に必要になるプロパー性についてまとめておく.
image.png

##感想
伝達関数モデルと状態空間モデルの関係性について触れた.また,可制御性や可観測性の話も出てきた.久しぶりに触れ,思い出すよい機会となった.また,プロパー性については,いまいち理解できていなかったんだと気づいた.特にプロパー性の意義について.システムの設計で非常に重要となる概念であることを理解した.

##参考文献
Pyhtonによる制御工学入門  南 祐樹 著  オーム社

3
9
0

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
3
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?