技術士(総合技術監理・機械部門)のブログ

技術士がお届けする,技術,工学,技術者倫理などの話題

pythonで制御系設計(1’)

2021-08-13 17:40:28 | 工学

参考書としてあげた制御基礎理論を見ていますが、やはりmatlabが出てくる前の書籍であることもあり

内容的には問題ないのですが、演習としては何か作り出す必要があり、少々躊躇しています。

そんな中、以前のscilabでの演習で、制御のためのmatlabをscilabでやって違いが出たackerあるいはplace

pythonではどうなるのか試してみたいと思い、ちょっと寄り道してみます。

https://blog.goo.ne.jp/murano-brain/e/9bdc04e7690f767bff881ece7dcae593

ーーーーーーーー 以下 python 3.8

import sys
sys.path.append('/Users/***usrname***/opt/anaconda3/lib/python3.8/site-packages')
from control.matlab import *
import matplotlib.pyplot as plt
import numpy as np
from scipy import linalg
def hermitian(arr):
    return np.conjugate(arr.T)

A=[[0,0,1,0],[0,0,0,1],[-36,36,-0.6,0.6],[18,-18,0.3,-0.3]]
B=[[0],[0],[1],[0]]
J=[-2+2j*np.sqrt(3),-2-2j*np.sqrt(3),-10,-10]
K=acker(A,B,J)
K
Aab=hermitian(np.array([[1,0],[0,1]]))
Abb=hermitian(np.array([[-0.6,0.6],[0.3,-0.3]]))
L=np.array([-15,-16])
Ke=hermitian(place(Abb,Aab,L))
Ke

としましたが

matrix([[15.4,  0.6],
        [ 0.3, 14.7]])となってしまい、教科書の答え「14.4 0.6 / 0.3 15.7」 と違うことに。。。何か間違ってますか?夏休みの宿題かなあ

 



最新の画像もっと見る

コメントを投稿