前言
在自动控制系统中绘制相关曲线时,可能会需要进行输入和输出信号对比,因此就需要绘制输入信号曲线,一般来说也就是典型信号:阶跃,方波,三角波,正弦波。一开始以为这些应该都有自带的函数才对(“MATLAB除了生孩子啥都会”),但是找了一些资料发现并没有,所以记录一下。
MATLAB代码
- 阶跃
t = 0:0.01:10; %时间点
dt1 = 200; %延迟时间(单位为点的个数)
A = 180; %信号幅值
y0 = [zeros(dt1,1) ; A*ones(length(t)-dt1,1)]; %阶跃信号
%注意:如果没有偏移时间,设置dt1为0即可
plot(t,y0)
- 方波
t = 0:0.01:10; %时间点
dt1 = 200; %延迟时间(单位为点的个数)
A = 180; %信号幅值
T = 5; %周期信号周期
dy = 180; %曲线偏移值
y1 = A*square(t*2*pi/T)+dy; %方波信号
%注意:其默认周期为2pi,所以要先乘以2pi,然后再除以T
plot(t,y1)
- 三角波
t = 0:0.01:10; %时间点
dt2 = 1.25; %延迟时间(单位为时间)
A = 180; %信号幅值
T = 5; %周期信号周期
dy = 180; %曲线偏移值
y2 = A*sawtooth((t+dt2)*2*pi/T, 1/2)+dy; %三角波信号
%注意:是先减去偏移时间再乘角频率还是先乘角频率再减得根据实际情况判断
plot(t,y2)
- 正弦波
t = 0:0.01:10; %时间点
dt2 = 1.25; %延迟时间(单位为时间)
A = 180; %信号幅值
T = 5; %周期信号周期
dy = 180; %曲线偏移值
y3 = A*sin((t+dt2)*2*pi/T)+dy; %正弦波信号
%注意:同样,正弦信号周期默认也是2pi
plot(t,y3)