克罗内克分解(Kronecker Decomposition)
TransferFunctionModel 支持非真分传递函数(improper transfer functions). 当转换至时间域时,非真分传递函数则会创建一个描述符 StateSpaceModel. 传递函数的真分(proper)和多项式(polynomial)部分则可用 KroneckerModelDecomposition 在状态空间模型(state-space model)去耦.
{poly, proper} = {Subscript[a, 2]s ^ 2 + Subscript[a, 1]s + Subscript[a, 0], (k(s - Subscript[z, 1])/(Subscript[τ, 1 ]s + 1)(Subscript[τ, 2 ]s + 1))};tfm = TransferFunctionModel[poly + proper, s];ssm = Simplify@Last@KroneckerModelDecomposition[StateSpaceModel[tfm]]描述符矩阵(descriptor matrix)是带有一个真分子系统(proper subsystem)状态的单位矩阵和一个多项式子系统(polynomial subsystem)状态的幂零矩阵的分块对角矩阵(block diagonal):
Simplify@TransferFunctionModel[SystemsModelExtract[ssm, All, All, 1 ;; 2], s]TransferFunctionModel[SystemsModelExtract[ssm, All, All, 3 ;; 5], s]params = {k -> 1.5, Subscript[τ, 1] -> 1 / 10, Subscript[τ, 2] -> 1 / 4, Subscript[z, 1] -> 1, Subscript[a, 2] -> 1, Subscript[a, 1] -> 1, Subscript[a, 0] -> 2};polyresponse = OutputResponse[TransferFunctionModel[poly, s], Sin[t], t];
properresponse = OutputResponse[TransferFunctionModel[proper, s], Sin[t], t];
totalresponse = OutputResponse[ssm, Sin[t], t];Simplify[polyresponse + properresponse - totalresponse]Plot[Evaluate[{polyresponse, properresponse, totalresponse} /. params], {t, 0, 20}, PlotLegends -> {"poly", "proper", "total"}]