MATLAB impulse函数脉冲响应完整实操教程 文章目录一、impulse函数基础作用二、前置系统建模两种常用写法方式1分子分母向量建模适合考试、实验报告方式2符号s快速建模复杂分式更简洁多阶相乘用conv函数三、impulse基础绘图语法1. 最简调用自动生成时间轴2. 自定义仿真时间范围四、进阶常用实操场景场景1多个系统脉冲响应同图对比场景2只提取脉冲响应数据不绘图场景3离散系统脉冲响应五、搭配反馈闭环系统分析脉冲响应六、常见报错与实操注意事项七、完整可直接运行综合示例脚本一、impulse函数基础作用impulse是控制系统工具箱专属函数用于求解单位脉冲输入下线性定常系统的输出时域曲线直观反映系统固有动态特性和阶跃响应step配套使用。数学意义输入信号为δ(t)单位脉冲输出就是系统单位脉冲响应g(t)传递函数G(s)拉普拉斯逆变换结果。使用前提必须先通过tf、ss、zpk建立LTI线性系统模型未安装Control System Toolbox会直接报函数未定义。二、前置系统建模两种常用写法方式1分子分母向量建模适合考试、实验报告传递函数G ( s ) b m s m . . . b 0 a n s n . . . a 0 G(s)\frac{b_m s^m...b_0}{a_n s^n...a_0}G(s)an​sn...a0​bm​sm...b0​​num填分子降幂系数den填分母降幂系数。示例二阶系统G ( s ) 9 s 2 3 s 9 G(s)\frac{9}{s^23s9}G(s)s23s99​num[9];den[139];Gtf(num,den);方式2符号s快速建模复杂分式更简洁stf(s);G9/(s^23*s9);多阶相乘用conv函数开环系统G ( s ) 2 s ( s 4 ) G(s)\frac{2}{s(s4)}G(s)s(s4)2​num[2];denconv([10],[14]);Gtf(num,den);三、impulse基础绘图语法1. 最简调用自动生成时间轴clear;clc;stf(s);G16/(s^24*s16);figure;impulse(G);grid on;title(二阶系统单位脉冲响应曲线);xlabel(时间 t / s);ylabel(系统输出 y(t));运行后自动弹出图像右键画布选择「特性」可查看峰值、振荡时长等动态指标。2. 自定义仿真时间范围默认时间由MATLAB自适应想要固定0~20s、步长0.01高精度曲线t0:0.01:20;impulse(G,t);grid on;四、进阶常用实操场景场景1多个系统脉冲响应同图对比调试不同阻尼、不同增益系统时用线型、颜色区分曲线搭配图例方便对比clear;clc;stf(s);G110/(s^22*s10);G225/(s^22*s25);t0:0.01:15;figure;impulse(G1,t,r-,G2,t,b--);grid on;legend(G1 阻尼比更大,G2 阻尼比更小,Location,best);title(两组二阶系统脉冲响应对比);场景2只提取脉冲响应数据不绘图实验需要手动计算峰值、振荡次数时返回时间数组t和输出数组y自行处理数据stf(s);G16/(s^24*s16);[y,t]impulse(G);% 计算峰值peak_ymax(y);disp([脉冲响应峰值,num2str(peak_y)]);% 手动绘图plot(t,y,k-);grid on;xlabel(t(s));ylabel(输出);title(手动绘制脉冲响应曲线);场景3离散系统脉冲响应离散传递函数需要指定采样时间Tstf第三个参数填采样周期num[0.2];den[1-0.70.1];Ts0.1;Gztf(num,den,Ts);figure;impulse(Gz);grid on;title(离散系统脉冲响应);五、搭配反馈闭环系统分析脉冲响应实际工程大多是闭环控制系统先用feedback构造闭环再调用impulse分析动态特性clear;clc;stf(s);G_open5/(s*(s3));% 开环传递函数G_closefeedback(G_open,1);% 单位负反馈闭环figure;impulse(G_close);grid on;title(闭环控制系统单位脉冲响应);六、常见报错与实操注意事项未定义函数’impulse’控制系统工具箱未安装命令行输入ver control查看附加功能管理器安装Control System Toolbox。曲线无输出、图像空白传递函数分子分母系数写反必须按s降幂顺序填写分母最高次项系数不能省略。多系统绘图线条重叠看不清手动指定颜色、线型r-红色实线、g–绿色虚线、k:黑色点线。脉冲响应和阶跃响应混淆step输入是阶跃信号稳态值不为0impulse输入是瞬时脉冲稳定系统最终输出归零。七、完整可直接运行综合示例脚本% impulse脉冲响应完整仿真代码clear;clc;close all;% 1. 建立二阶系统传递函数stf(s);G20/(s^25*s20);% 2. 绘制脉冲响应曲线t0:0.01:25;figure(1);impulse(G,t);grid on;title(二阶系统单位脉冲响应);xlabel(时间 t / s);ylabel(输出 y(t));% 3. 提取响应数据计算峰值[y,t_data]impulse(G);max_outputmax(y);disp([脉冲响应最大输出值,num2str(max_output)]);% 4. 构建闭环并对比脉冲响应G_closefeedback(G,1);figure(2);impulse(G,t,r,G_close,t,b);grid on;legend(开环脉冲响应,闭环脉冲响应);title(开环与闭环脉冲响应对比);