matlabss 函数tf 函数 ss 指定状态空间模型或者将线性时不变系统转成状态空间语法 ss sys = ss(a,b,c,d) sys = ss(a,b,c,d,Ts) sys = ss(d) sys = ss(a,b,c,d,ltisys) sys_ss = ss(sys) 说明 ss 用来创建实数或复数的状态空间模型,或者将传递函数和零极点增益模型转为状态空间模型 创建状态空间模型 sys = ss(a,b,c,d) 创建连续的状态空间模型 x'=Ax+Bu y=Cx+Du 这个模型具有 Nx 个状态,Ny 个输出,Nu 个输入 a 是 Nx*Nx 的矩阵 b 是 Nx-by-Nu 矩阵 c 是 Ny-by-Nx 矩阵 d 是 Ny-by-Nu 矩阵 将d 设为标量 0,来将矩阵 D 设置为 0,更多信息见设置为状态空间模型matlab(state-space models), sys = ss(a,b,c,d,Ts) 创建离散时间模型 x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n) 采样时间单位 Ts 为 S,设置 Ts = -1 or Ts = []将不指定采样时间 sys = ss(d) 指定一个静态增益矩阵 D 等同于表达式 sys = ss([],[],[],d) sys = ss(a,b,c,d,ltisys)创建了拥有来源于线性时不变模型 ltisys 的一般线性时不变属性的状态空间模型(包括了采样时间). 所有上述语法后面都可以跟随其属性名称属性值 所有的属性对指定了模型的特殊的 LTI 性质,例如在模型中输入的名称或者一些注释,更多细节见例 1.表达式如下: sys = ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN) 等同于 sys = ss(a,b,c,d) set(sys,'Property1',Value1,...,'PropertyN',ValueN) 转换为状态空间模型 sys_ss = ss(sys) 将任意的 TF or ZPK 模型系统转换为状态空间模型,输出_ss is 等同于状态空间模型(SS object). sys_ss = ss(sys,'minimal')为状态空间的最小实现等同于 sys_ss = minreal(ss(sys)) 注意状态空间转换在单输入单输出(SIS0)的情况下并不唯一,在多输入输出(MIMO)中并不能保证状态空间的最小实现,更多信息,参照 Caution About Model Conversions. 算法 对于 TF to SS 模型转换, ss(sys_tf) 返回一个修改后的可控规范化的形式,此算法类似于 tf2ss,但是可以进一步重新调节状态向量以压缩矩阵 A 数值,并改进后来的数值计算。 对于 ZPK to SS 模型转换 ss(sys_zpk) uses direct form II structures, as defined in signal processing texts. See Discrete-Time Signal Processing by...