2026/7/12 6:28:31

如何使用MATLAB的bode函数进行伯德图分析?

如何使用MATLAB的bode函数进行伯德图分析? 一、bode函数基础作用bode是Control System Toolbox核心频域分析函数用于绘制线性系统幅频特性、相频特性两张子图横轴为对数频率纵轴分别是分贝幅值、相位角度。通过伯德图可直观判断系统稳定裕度、谐振峰值、带宽、低频稳态误差、高频衰减特性是校正装置设计、稳定性判据奈奎斯特、对数稳定判据的必备工具。前提必须用tf、ss、zpk生成LTI线性系统模型缺少控制系统工具箱会提示函数未定义。二、系统建模两种常用写法1. 分子分母系数向量建模课程实验常用传递函数G(s)10s22s10G(s)\frac{10}{s^22s10}G(s)s22s1010​num[10];den[1210];Gtf(num,den);2. s符号建模复杂分式更简洁stf(s);G10/(s^22*s10);多因式相乘用conv拼接分母典型一阶积分加惯性环节G(s)3s(s5)G(s)\frac{3}{s(s5)}G(s)s(s5)3​num[3];denconv([10],[15]);Gtf(num,den);三、bode基础绘图语法1. 最简调用自动生成频率区间clear;clc;stf(s);G16/(s^24*s16);figure;bode(G);grid on;title(二阶振荡系统伯德图);图像分为上下两幅上图幅值dB下图相位°横轴自动对数刻度。右键画布选择「特性」可读取指定频率下幅值、相位数值。2. 自定义仿真频率范围默认频率由MATLAB自适应需要限定起止频率时构造对数频率向量w% 频率区间0.1~100 rad/s对数等分wlogspace(-1,2,1000);bode(G,w);grid on;logspace(a,b,n)生成10^a ~ 10^b 之间n个对数均匀分布频率点点数越多曲线越平滑。四、高频进阶实操场景场景1多系统伯德图同图对比对比校正前后、不同阻尼、不同增益系统频域特性自定义线型颜色区分clear;clc;stf(s);G110/(s^22*s10);G225/(s^22*s25);wlogspace(-1,2,800);figure;bode(G1,w,r-,G2,w,b--);grid on;legend(G1 阻尼大,G2 阻尼小,Location,best);title(两组二阶系统伯德图对比);场景2仅提取幅值、相位数据不绘图需要手动计算增益裕度、相位裕度、带宽时返回频率wout、幅值mag、相位phasestf(s);G16/(s^24*s16);[mag,phase,wout]bode(G);% mag为三维数组提取一维向量mag_dB20*log10(squeeze(mag));phase_degsqueeze(phase);% 手动绘制伯德图subplot(2,1,1);semilogx(wout,mag_dB);grid on;ylabel(幅值 / dB);title(手动绘制幅频曲线);subplot(2,1,2);semilogx(wout,phase_deg);grid on;xlabel(频率 ω / (rad/s));ylabel(相位 / °);title(手动绘制相频曲线);场景3闭环系统伯德图分析工程中常分析闭环系统带宽、谐振峰值先用feedback构造闭环再绘图clear;clc;stf(s);G_open5/(s*(s3));% 开环传递函数G_closefeedback(G_open,1);% 单位负反馈闭环wlogspace(-1,3,1000);figure;bode(G_open,w,r,G_close,w,b);grid on;legend(开环伯德图,闭环伯德图);title(开环与闭环系统伯德图对比);场景4离散系统伯德图离散传递函数指定采样时间Tstf末尾传入采样周期num[0.2];den[1-0.70.1];Ts0.1;Gztf(num,den,Ts);figure;bode(Gz);grid on;title(离散控制系统伯德图);五、搭配裕度函数快速判定稳定性bode仅绘图margin可直接在伯德图标注增益裕度GM、相位裕度PM工程调试最常用stf(s);G3/(s*(s1)*(s5));figure;margin(G);grid on;title(带稳定裕度标注的伯德图);运行后图像自动标出0dB穿越频率、-180°穿越频率同时命令行输出裕度数值。六、常见报错与实操注意事项未定义函数’bode’未安装Control System Toolbox命令行输入ver control校验附加功能管理器安装对应工具箱。曲线出现尖峰、折线粗糙频率点数量太少logspace第三个参数调大至800~1500曲线会更顺滑。多系统绘图线条重叠手动指定线型实线-、虚线--、点线:搭配r/g/b/k区分颜色。分不清开环/闭环伯德图用途开环伯德图用于稳定裕度、校正装置设计闭环伯德图用于分析系统响应速度、谐振、带宽。幅值数值不是dBbode输出原始幅值mag转为分贝必须用公式20*log10(mag)。七、完整可直接运行综合示例脚本% bode伯德图完整仿真代码clear;clc;close all;% 1. 建立三阶开环传递函数stf(s);G_open4/(s*(s2)*(s6));% 2. 自定义频率区间绘制伯德图wlogspace(-2,3,1200);figure(1);bode(G_open,w);grid on;title(三阶系统开环伯德图);% 3. 绘制带稳定裕度的伯德图figure(2);margin(G_open);grid on;title(标注增益裕度、相位裕度伯德图);% 4. 构造闭环系统对比频域特性G_closefeedback(G_open,1);figure(3);bode(G_open,w,r-,G_close,w,b--);grid on;legend(开环,闭环);title(开环、闭环伯德图对比);% 5. 提取频域数据[mag,phase,w_data]bode(G_open);mag_dB20*log10(squeeze(mag));disp(前10组频率-幅值数据);disp([w_data(1:10),mag_dB(1:10)]);