问题描述
我正在与scipy.signal
合作,并且尝试使用scipy.signal.ss2zpk
将状态空间表示转换为ZeroPoleGain表示,因为我想更改增益以控制系统。我正在这样做:
A = np.array([[0,1,0],[0,(-3*m*g*l/(4*M + m)),1],3*(M+m)*g/((4*M + m)*l),0]])
B = np.array([[0],[4/(4*M + m)],[0],[-3*F/((4*M + m)*l)]])
C = np.array([
[1,0]
])
D = np.array([
[0],[0]
])
sys_zpk = signal.ss2zpk(A,B,C,D)
但是我收到此ValueError:
ValueError Traceback (most recent call last)
<ipython-input-64-5eec82e63217> in <module>()
----> 1 sys_zpk = signal.ss2zpk(A,D)
2 frames
/usr/local/lib/python3.6/dist-packages/scipy/signal/lti_conversion.py in ss2zpk(A,D,input)
332
333 """
--> 334 return tf2zpk(*ss2tf(A,input=input))
335
336
/usr/local/lib/python3.6/dist-packages/scipy/signal/filter_design.py in tf2zpk(b,a)
1067 k = b[0]
1068 b /= b[0]
-> 1069 z = roots(b)
1070 p = roots(a)
1071 return z,p,k
<__array_function__ internals> in roots(*args,**kwargs)
/usr/local/lib/python3.6/dist-packages/numpy/lib/polynomial.py in roots(p)
219 p = atleast_1d(p)
220 if p.ndim != 1:
--> 221 raise ValueError("Input must be a rank-1 array.")
222
223 # find non-zero array entries
ValueError: Input must be a rank-1 array.
有人可以帮助我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)