MATLAB时域分析
背景
MATLAB对时域分析有两个现成的函数: step(SYS)和impulse(SYS),分别对应阶跃响应和脉冲响应,实际上,响应还有斜坡和加速度响应等等,它们共同对应于系统的输入环节。输出往往使我们需要求解的。在两者之间的环节,可以用传递函数来描述,这里仅对一些分式形式的传递函数进行讨论,可以包括惯性环节、微分环节、积分环节、复合环节、二阶振荡环节等等进行分析。
这里的实例用了。
阶跃响应
。把分子分母的系数分别存入两个1维矩阵,然后直接调用step(num,den),num是分子系数,den是分母系数。
num1 = [30 2];
den1 = [1 5 8 6];
step(num1, den1);
grid on;
效果:
单位脉冲响应
。把分子分母的系数分别存入两个1维矩阵,然后直接调用step(num,den),num是分子系数,den是分母系数。
num1 = [30 2];
den1 = [1 5 8 6];
figure();
impulse(num1, den1);
grid on;
效果图:
斜坡响应
。把分子分母的系数分别存入两个1维矩阵,这里并没有现成的函数,但是我们知道单位阶跃和斜坡响应的拉氏变换值差一个s平方,所以不妨用单位阶跃除以一个s的平方来的到同样的结果。这里我利用了sys=tf()构造了两个系统,第一个是G,第二个是G1。tf转换效果就是构造一些系统,比如你输入两个一维矩阵,那么就会构造一个分式。s=tf('s')则是构造了一个拉普拉斯变量,这里是我们的复变量s,当然这个等号左边的字母只是增加了可读性,并不一定用s。所以说来,上面两个响应也可以用tf变换来实现,可参考附件资源。
num1 = [30 2];
den1 = [1 5 8 6];
s = tf('s');
G = tf(num1, den1);
% divided by s^2 to transform impulse into ramp
G1 = G/s^2;
figure();
impulse(G1);
title('ramp response')
grid on;
效果图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)