【python】 如何用control库对传递函数和状态空间表达式进行转换

传递函数

1、通过control.tf(num, den) 创建传递函数

import control
sys=control.tf([1,2],[3,4])		# 方式1 通过分子分母系数创建

s = control.tf('s')			# 方式2 先创建传递函数为s
sys = (s+2)/(s**2+3*s+4)			# 再通过s的运算创建

状态空间表达式

创建状态空间系统

import control
sys=control.ss(A, B, C, D)   #方法一通过ABCD四个矩阵构造

sys_ss = control.ss(sys)     #方法二将传递函数sys转化为状态空间表达式

利用方法二的话,系统矩阵A=sys_ss.A
B、C、D矩阵同理

判断状态空间表达式是否能控或能观

n=np.linalg.matrix_rank(control.ctrb(A, B))    #n即为能控矩阵的秩

n=np.linalg.matrix_rank(control.obsv(A, C))    #n即为能观矩阵的秩
对矩阵进行转置
sys_ss.A1=np.transpose(sys_ss.A)

持续更新,可先收藏关注避免迷路喔!

你可能感兴趣的:(python,其他)