You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升MATLAB Nyquist图负实轴(-1+0j附近)的数据点精度?

优化MATLAB Nyquist图负实轴区域精度的方案

针对你需要聚焦负实轴(尤其是-1+0j附近)且避免冗余计算的需求,提供两种实用方法:

方法1:手动指定关键频率区间采样

手动划分频率范围,在负实轴交叉对应的频段(相位为±π、±3π等区间)设置密集采样点,其余频段用稀疏点,精准控制计算量。

修改后的代码:

close all; clear all;

% 定义系统
G = zpk([],[-0.1 -1 -1],[1]);
H = zpk([],[-0.1 -1 -1],[2]);
J = zpk([],[-0.1 -1 -1],[4]);

% 确定负实轴交叉对应的频率区间:你的系统有3个极点,相位会到-3π,对应两个交叉区域
w_low1 = 0.1; w_high1 = 1;    % 相位-π附近的频率范围
w_low2 = 10; w_high2 = 100;   % 相位-3π附近的频率范围(按需选择)

% 生成混合密度的频率点:关键区密集,其余区稀疏
w = [logspace(-3, log10(w_low1)-0.1, 20), ...  % 低频稀疏采样
     linspace(w_low1, w_high1, 100), ...       % 关键区1密集采样
     logspace(log10(w_high1)+0.1, log10(w_low2)-0.1, 20), ... % 中间频段稀疏
     linspace(w_low2, w_high2, 100), ...       % 关键区2密集采样(可选)
     logspace(log10(w_high2)+0.1, 3, 20)];     % 高频稀疏采样

% 手动计算各系统的Nyquist值
[G_re, G_im] = nyquist(G, w);
[H_re, H_im] = nyquist(H, w);
[J_re, J_im] = nyquist(J, w);

% 绘图并聚焦-1附近区域
figure;
plot(G_re, G_im, 'b', 'LineWidth', 1.5); hold on;
plot(H_re, H_im, 'r', 'LineWidth', 1.5);
plot(J_re, J_im, 'g', 'LineWidth', 1.5);
plot(-1, 0, 'ko', 'MarkerSize', 8); % 标记-1+0j参考点
axis([-5 1 -2 2]); % 限定显示范围,聚焦目标区域
grid on;
legend('G', 'H', 'J', '-1+0j');
title('Nyquist Plot with Dense Sampling Near Negative Real Axis');

方法2:利用nyquistplot内置选项调整采样密度(R2021a支持)

通过Control System Toolbox的绘图选项,直接指定在特定相位区域(比如负实轴对应的-π、-3π相位)增加采样点,无需手动生成频率,操作更便捷。

代码示例:

close all; clear all;

G = zpk([],[-0.1 -1 -1],[1]);
H = zpk([],[-0.1 -1 -1],[2]);
J = zpk([],[-0.1 -1 -1],[4]);

% 创建Nyquist图并获取绘图选项
fig = figure;
h1 = nyquistplot(G); hold on;
nyquistplot(H);
nyquistplot(J);

% 调整采样选项:聚焦负实轴对应的相位区域
opts = getoptions(h1);
opts.PhaseTolerance = 0.1; % 相位容差设小(默认1),关键相位区采样更密
opts.FocusedPhases = [-pi, -3*pi]; % 指定只在这两个相位附近增加采样
setoptions(h1, opts);

% 标记-1+0j并聚焦显示
plot(-1, 0, 'ko', 'MarkerSize', 8);
axis([-5 1 -2 2]);
grid on;
legend('G', 'H', 'J', '-1+0j');
title('Nyquist Plot with Focused Sampling on Negative Real Axis');

两种方法的优势

  • 方法1:完全可控,能精准筛选需要密集采样的频段,最大化减少冗余计算;
  • 方法2:无需手动分析频率区间,借助MATLAB内置逻辑自动优化关键区域采样,适合快速调整。

内容的提问来源于stack exchange,提问作者Padit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:57:17