s域和z域的频域响应分析、MATLAB图像中插入局部图

目录

前言

1.s域频域分析

1.1微分方程进行复频域转化

1.2建立传递函数

2.z域频域分析

2.1例子

 2.2程序

3.MATLAB图像中插入局部图


前言

前面介绍了用tfest估计simulink仿真中得闭环系统传递函数进行频域分析,以及使用simulink线性化工具箱进行频域分析,可以看上篇文章:

Simulink模型闭环传递函数导出及Matlab对simulink模型进行频域分析(含实现程序)_Mr. 邹的博客-CSDN博客

ltisys和ltiss函数使用示例学习及频域分析(含实现程序)_Mr. 邹的博客-CSDN博客

1.s域频域分析

1.1微分方程进行复频域转化

以汽车被动悬架方程为例:

将s域代入,即: 

所以有:

 令:

所以有车身位移和车轮位移对路面激励的频域响应关系为: 

类似的xs'' = s^2*xs,所以车身加速度、悬架动扰度、车轮动载荷对路面激励的幅频特性为: 

s域和z域的频域响应分析、MATLAB图像中插入局部图_第1张图片

1.2建立传递函数

 由于这里分子有乘和相减的情形,我也没有找到合适建立这样传递函数的方法,所以就用expand函数先将分母展开,然后人工整理得到分析分母。如果有人知道,欢迎留言指导,谢谢!

获得车身加速度对路面激励的幅频特性程序如下:

syms s ms cs ks kt mt
A1 = s^2*ms+s*cs+ks;
A2 = s*cs+ks;
A3 = s^2*mt+s*cs+ks+kt;
ddxs_xr = A2/(A1*A3-A2^2);
expand(A1*A3-A2^2)

运行结果:

ks*kt + cs*ms*s^3 + cs*mt*s^3 + ks*ms*s^2 + ks*mt*s^2 + kt*ms*s^2 + ms*mt*s^4 + cs*kt*s

整理得到分子和分母:

num = [kt*cs,kt*ks,0,0];
den = [ms*mt,ms*cs+cs*mt,ms*(ks+kt)+ks*mt,cs*kt,ks*kt];

所以进行频域分析的程序如下:

%% 频域分析
ms = 345;%车体质量
mt = 40.5;%车轮质量
ks = 17000;%悬架刚度
kt = 192000;%车轮刚度
cs = 1500;%被动悬架阻尼
num = [kt*cs,kt*ks,0,0];
den = [ms*mt,ms*cs+cs*mt,ms*(ks+kt)+ks*mt,cs*kt,ks*kt];
% ddxs_xr = tf(num,den);
w = logspace(-1,2);%产生10^(-1)---10^2的频域x轴(Hz单位)
ddxs_xr = freqs(num,den,w);%频域响应分析
mag = abs(ddxs_xr);%幅值
phase = angle(ddxs_xr);%相位
phasedeg = phase*180/pi;%弧度制转换成角度制
subplot(2,1,1)
loglog(w,mag)%双对数图像
grid on
xlabel('Frequency (rad/s)');ylabel('Magnitude');title("Body Acceleration")
subplot(2,1,2)
semilogx(w,phasedeg)%x轴为对数图像(半对数图像)
grid on
xlabel('Frequency (rad/s)')
ylabel('Phase (degrees)')

运行结果:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第2张图片

 公式法进行频域特性分析结果:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第3张图片

 但是这种方法是基于公式法进行分析的,也就是只局限于被动悬架频域分析

2.z域频域分析

2.1例子

这里就直接以matlab help文档中的例子分析:

 2.2程序

b0 = 0.05634;
b1 = [1  1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];

b = b0*conv(b1,b2);
a = conv(a1,a2);

[h,w] = freqz(b,a,'whole',2001);

plot(w/pi,20*log10(abs(h)))
ax = gca;
ax.YLim = [-100 20];%对y轴进行坐标轴范围限制
ax.XTick = 0:.5:2;
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')

 运行结果:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第4张图片

3.MATLAB图像中插入局部图

step 1:打开某张图,点击工具,选择放大,放大至自己想要的图片;
step 2:点击工具,选择编辑绘图(不需要对放大的局部图像大小调整),右键复制;
step 3:点击工具,选择放大,将图片还原;
step 4:点击工具,选择编辑绘图,右键粘贴(按需要调整局部图大小和位置);
step 5:进入图像编辑状态去掉不想要的legend、label。
step 6:点击工具,选择放大还原含局部图片的大小;
step 7:点击工具,选择复制图片。

step1:或者使用工具图标也可

s域和z域的频域响应分析、MATLAB图像中插入局部图_第5张图片

 放大后:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第6张图片

 step2:同样使用图标工具,并进行复制

s域和z域的频域响应分析、MATLAB图像中插入局部图_第7张图片

 step3 复制完后,退出编辑状态即再点step2那个箭头,双击空白处还原图像大小

step4、5 再次点击step2箭头,进入编辑模式,粘贴复制的局部图,并删除坐标等不需要的,调整局部图位置和大小:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第8张图片

 step6 复制图窗

s域和z域的频域响应分析、MATLAB图像中插入局部图_第9张图片

 最终结果:

s域和z域的频域响应分析、MATLAB图像中插入局部图_第10张图片

 

如果有帮助,麻烦帮忙点个赞是我最大的分享动力,非常感谢!

注:仅为便利自己学习和学术交流使用,错误在所难免,如有兴趣的学者可以参考交流,如果侵权,立马删,谢谢!

参考资料:

matlab help文档

MATLAB如何在原图插入一个局部放大图_ML__LM的博客-CSDN博客_matlab大图中做一个局部放大图

在MATLAB的figure图中画局部放大的图中图_schwein_van的博客-CSDN博客_matlab放大局部图像

你可能感兴趣的:(频域分析,频域分析,matlab)