如果我有一个工厂,那就说
Gp(s)= 1 /(s + 1)
我可以找到相位保证金
使用MATLAB命令
Gp = tf([1],[1 1]);
[G P] = margin(Gp);
我的问题是如果我想知道特定增益过频率的频率相位。如何在不预测情节的情况下找到它?
通常我会通过命令bode(Gp)找到它并将鼠标移动到我想知道相位边距的特定增益上。
对于我之前的示例,在-20°频率过频率下,增益频率为0.363。
如何将其写为不查看波德图的命令?
提前致谢
答案 0 :(得分:5)
您似乎误解了增加频率和阶段边际实际意味着什么,而且它不是解释它的地方。我认为你真正想要的是一种评估波特图而不点击它的方法。例如。你想知道在阶段点幅度和频率。
让我们来看看这三种情况:
案例1:您知道频率,并且您正在搜索幅度和阶段
最简单的情况:
w = 0.363; % specify given frequency
[mag,phase] = bode(Gp,w) % output of according magnitude and phase
返回:
mag =
0.9400
phase =
-19.9509
案例2:您想知道某个阶段的幅度和频率
p = -20;
[mag,phase,wout] = bode(Gp);
mag_p = interp1( squeeze(phase), squeeze(mag), p)
w_p = interp1( squeeze(phase), wout, p)
返回:
mag_p =
0.9394
w_p =
0.3642
案例3 你想知道一定幅度的相位和频率
m = 0.9394;
[mag,phase,wout] = bode(Gp);
phase_m = interp1( squeeze(mag), squeeze(phase), m)
w_m = interp1( squeeze(mag), wout, m)
返回:
phase_m =
-19.9998
w_m =
0.3642
squeeze
命令是必要的,因为bode会为相位和幅度输出1x1x...
矩阵。您也可以使用interp1
的不同插值方法。