概述
控制器分析-绘制伯德图
设计控制器,需要利用伯德图工具分析控制器的相频特性与幅频特性。本文提供了两种绘制伯德图的方法,第一种是利用MATLAB内置的函数绘制,第二种是自己编写的代码。由于最开始第一种方法获得的图片属性不满意,如坐标轴字体大小、坐标轴名称中英文混排、字体等图片属性,使用代码调节特麻烦,于是自己写了一段代码,用于绘制图片属性可控的伯德图。至今,第一种方法的缺陷已被完善,故本文两种方法的图片属性都可控,按照自己的使用习惯任选一种方法使用即可。
软件背景
- MATLAB 2021a
方法一
MATLAB自带的函数绘制伯德图,此方法获得的图片横轴是 r a d / s rm rad/s rad/s。
clear,clc;
figure
a = 1;
H = tf([0 a],[1 a]);
bode(H)
grid on
运行代码,获得如下图片:
如前所述,图片属性不可控,若想修改,可参考我的另一篇博文–坐标轴名称中英混排的图片获取流程。
方法二
为了便于理解,将此方法中的横轴坐标定为 H z rm Hz Hz。
clear,clc;
f = linspace(1/1000,10,1000) ;
%Hz 1k个点连续性还不错
a = 1;
%剪切频率是1rad/s,对应的频率是0.159Hz,该频率的相位滞后45°
w =6.28*f;
%Hz转换成rad/s
G = a./(a+1i*w);
%频响函数
y = abs(G);
z = 20*log10(y);
theta = angle(G)*180./pi;
figure
semilogx(f,z)
% 并没有改变横坐标的值,只是以对数线性化的方式表达
grid on
xlabel('Hz','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
ylabel('Magnitude (dB)','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
set(gcf,'unit','centimeters','position',[30 15 15 7]);
set(gca,'FontName','Times New Roman','FontSize',10.5,'FontWeight','bold');
figure
semilogx(f,theta)
grid on
xlabel('Hz','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
ylabel('Phase (deg)','FontName','Times New Roman','FontWeight','Bold','FontSize',10.5);
set(gcf,'unit','centimeters','position',[30 15 15 7]);
set(gca,'FontName','Times New Roman','FontSize',10.5,'FontWeight','bold');
运行代码,可获得如下图片:
最后
以上就是霸气金毛为你收集整理的控制器分析-绘制伯德图控制器分析-绘制伯德图软件背景的全部内容,希望文章能够帮你解决控制器分析-绘制伯德图控制器分析-绘制伯德图软件背景所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复