参考書としてあげた制御基礎理論を見ていますが、やはり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」 と違うことに。。。何か間違ってますか?夏休みの宿題かなあ
※コメント投稿者のブログIDはブログ作成者のみに通知されます