MATLAB Linear Analysis Tool 的bode图数据获取

版本:MATLAB 2018b

问题描述:MATLAB/Simulink的Linear Analysis Tool 功能很强大,可以用其做小信号分析,获得的bode图的数据很难获取,在此总结了如何获取bode图数据的方法。

第一步:插入扰动输入与输出,软件扫频获得bode图,下图,为SS补偿WPT无线电能传输系统的一种控制方法的传递函数。

第二步:将上述bode导出为print to figure,并保存。

下图为导出的figure形式。

第三步:从figure中获取数据。由于bode图有相位图和幅值图,我们一下的命令一次只能获得一个图的信息,因此要进行两次操作,全程请保持figure图开启。

① 获取幅值图

鼠标点击幅值图,保证我们运行的命令是针对幅值图的。

需要用到命令。提示:figure 不要关闭。

lh=findall(gca,'type','line'); % 从当前图(gca)中取出曲线的handle,
xc=get(lh,'xdata'); % 取出x轴数据,注意,这个x和y是以cell的数据结构保存的
yc=get(lh,'ydata'); % 取出y轴数据x=xc{1};从cell转换成矩阵,可以这样写y=yc{1};

运行结束后,或发现xc,yc分别为cell形式的数据

xc{3,1}与yc{3,1}存储了我们所需要的数据。我们可以直接通过一下命令来获取频率信息和幅值。然后通过下边的命令保存我们的频率和幅值信息。

frequency = xc{3};
mag = yc{3}

② 获取相位图信息

鼠标点击相位图,确保我们的命令是针对相位图的。重复上述获取数据的命令,在进行转换。我们就完成了数据的获取。

以上的数据全部存储在数组当中,我们可以通过命令编辑上述数据,进行我们想要的操作了。

附送大家一段代码,将两个bode数据绘制到同一个图中。

figure;
color1=[1,0,0]; %[0.64706	0.16471	0.16471];
color2=[0,0.45,0.74];%[0	0 1];

subplot(2,1,1);
semilogx(Fre_Hz,20*log10(Amp1),'-','Color',color1,'LineWidth',1.2);  
hold on;
% semilogx(VarName1,20*log10(VarName3/2/2/pi),'o','Color','g','LineWidth',1.2);  
semilogx(VarName1,VarName3,'o','Color','g','LineWidth',1.2);  
hold on;
grid on

subplot(2,1,2);
semilogx(Fre_Hz,Pha-720,'-','Color',color1,'LineWidth',1.2);
hold on;
semilogx(VarName1,VarName2,'o','Color','g','LineWidth',1.2);
hold on;
grid on;

效果就是这一个样子。

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值