已知传递函数g=(23.59s+250.2)/(s^2+17.49s+86.23),作出“相位滞后 180°处的频率-平均相位速率”关系图。 定义平均相位速率为: APR = (𝜙𝑓𝑐 − 𝜙2𝑓𝑐)/𝑓𝑐 = (−180 − 𝜙2𝑓𝑐 )/𝑓𝑐 其中,𝑓𝑐为相角为𝜙𝑓𝑐 = 180°时的穿越频率,𝜙2𝑓𝑐为 2 倍穿越频率处的相角;
时间: 2024-03-07 22:50:16 浏览: 113
下面是一个 MATLAB 代码示例,用于绘制“相位滞后 180°处的频率-平均相位速率”关系图:
```matlab
% 定义传递函数
s = tf('s');
g = (23.59 * s + 250.2) / (s^2 + 17.49 * s + 86.23);
% 定义频率范围
w = logspace(-1, 3, 1000);
% 计算幅频响应和相频响应
[mag, phase, wout] = bode(g, w);
% 找到相位滞后 180 度的穿越频率和 2 倍穿越频率的相角
fc = interp1(phase, w, -180);
w_2fc = interp1(phase, w, -360);
% 计算平均相位速率
APR = (-180 - (-360)) / fc;
% 作出频率-相角曲线和平均相位速率曲线
figure
semilogx(wout/(2*pi), (-180 - phase) * 180 / pi);
xlabel('频率 (Hz)');
ylabel('相角 (度)');
title('相角滞后 180°处的频率-平均相位速率关系图');
grid on
hold on
plot([fc/(2*pi) fc/(2*pi)], [0 APR], 'r--');
plot([w_2fc/(2*pi) w_2fc/(2*pi)], [0 APR], 'r--');
text(fc/(2*pi), APR, [' f_c = ' num2str(fc) ' rad/s']);
text(w_2fc/(2*pi), APR, [' 2f_c = ' num2str(w_2fc) ' rad/s']);
text(0.1, APR*0.8, [' APR = ' num2str(APR) ' rad/s/deg']);
```
这个代码进行了如下操作:
1. 定义了传递函数 `g` 和频率范围 `w`。
2. 使用 `bode` 函数计算了传递函数的幅频响应和相频响应,分别存储在 `mag`、`phase` 和 `wout` 变量中。
3. 使用 `interp1` 函数找到了相位滞后 180 度的穿越频率 `fc` 和 2 倍穿越频率处的相角 `w_2fc`。
4. 根据定义计算了平均相位速率 `APR`。
5. 使用 `semilogx` 函数绘制了频率-相角曲线,并在图中标出了相位滞后 180 度处的穿越频率和 2 倍穿越频率处的相角。
6. 使用 `plot` 函数绘制了垂直于横轴的两条红色虚线,表示相位滞后 180 度处的穿越频率和 2 倍穿越频率。
7. 使用 `text` 函数在图中添加了一些标注,包括穿越频率和平均相位速率。
希望这个代码对你有所帮助!
阅读全文