Math 传递函数的平方根(matlab)

Math 传递函数的平方根(matlab),math,models,matlab,Math,Models,Matlab,我试图找到我的系统“sys”的大小,所以我知道我必须在代码中取传递函数的平方根。我知道你不能直接做,所以我想做的是 [mag phase] = bode(sys,logspace(1,1e7,300)); mag = squeeze(mag); D = sqrt(mag); 我有另一个传递函数sys2,我想用这个量值除以它,但是MATLAB似乎不太喜欢这个。我怎样才能将结果D转换回传递函数,这样我就可以进行sys2/D除法 谢谢你抽出时间 编辑:最好是,如果有一种方法可以直接取‘sys’的平方

我试图找到我的系统“sys”的大小,所以我知道我必须在代码中取传递函数的平方根。我知道你不能直接做,所以我想做的是

[mag phase] = bode(sys,logspace(1,1e7,300));
mag = squeeze(mag);
D = sqrt(mag);
我有另一个传递函数sys2,我想用这个量值除以它,但是MATLAB似乎不太喜欢这个。我怎样才能将结果D转换回传递函数,这样我就可以进行sys2/D除法

谢谢你抽出时间


编辑:最好是,如果有一种方法可以直接取‘sys’的平方根,而我不知道,那将是一个更好的解决方案

我不熟悉控制工具箱,而且我没有它的许可证,因此无法测试。但是我看了一下bode的文档,似乎mag是一个特定维度的矩阵。什么是MATLAB“似乎不太喜欢”?我猜
sys
sys2
是表示动态系统模型的对象。用标量将其除法可能不起作用。它似乎不介意它是否是单个标量值,如sys2/2。但是,如果我们有向量a=[1 0],并且我们尝试执行sys2/a,它会在“SYS1/sys2”中给出“错误”,LTI模型sys2必须具有与输出相同数量的输入。”