注意

本页内容为 ControlTheoryPro.com 网站上关于 semilogx/semilogy 命令页面的复制内容。


简介(Introduction)

semilogxsemilogy 命令用于绘制一轴为线性刻度、另一轴为对数刻度的数据图。

  • semilogx:将 x 轴 设置为对数刻度,y 轴为线性刻度。

  • semilogy:将 y 轴 设置为对数刻度,x 轴为线性刻度。

在控制系统中,这在手动绘制波特图(Bode Plot)时特别有用。


波特图示例(Bode Plots)

虽然 MATLAB 提供了非常方便的 bode 命令来绘制波特图,但在需要自定义图像格式时,使用 bode 命令会受到限制。因此,作者(Gabe 于 2008 年 4 月 20 日 13:30 CDT)建议使用如下方法手动绘制波特图:

freqVec = logspace(-1, 3, 5000);                    % 创建频率向量(0.1 Hz 到 1000 Hz)
[mag, phs] = bode(sys, freqVec * (2*pi));           % 计算系统的幅值和相位响应(单位为 rad/s)
mag = db(mag(:));                                   % 将幅值转换为分贝 (dB)
phs = phs(:);                                       % 展平相位向量

figure;
subplot(2, 1, 1)                                     % 第一个子图:幅频图
semilogx(freqVec, mag)
grid on
title('System Bode Plot')
ylabel('Magnitude (dB)')

subplot(2, 1, 2)                                     % 第二个子图:相频图
semilogx(freqVec, phs)
grid on
ylabel('Phase (deg)')
xlabel('Frequency (Hz)')

外部链接(External Links)


最后修改: 2025年04月16日 星期三 10:11