概述
本文是阅读《数字电源控制环路设计指导书》后的一个衍生和实践。阐述的是用Multism做一个模拟线路的频率响应曲线后导出成Excel文件后,再用Matlab去拟合出曲线从而估算出模拟线路的传递函数。该方法具有普适性,仿真软件不局限于文中提到的软件。其中模拟线路以之前讨论过的三型补偿网络。
一、Multism频率响应
首先在Mutism中绘制如下原理图,并配置好参数,将探针放置在输出的位置:
选择交流分析,并设置好交流分析的参数:
开始仿真,得到以下图形:
点击工具,选择导出至Excel:
这里有两个注意点:
1、由于频率响应有幅、相两条曲线,这里要选择不同的图形导出两次;
2、导出的幅频曲线数据的Y轴的值是按实际的值导出而不是按分贝值导出,在用matlab分析前可以现在Excel中整合下数据比较方便后边的分析;
整理后的Excel数据如下:
二、用Matlab进行曲线拟合
在Matlab键入以下代码:
%Read the FRA Plant data from the excel sheet%
Freq=xlsread('Frequency_Response.xlsx','幅值','A2:A600');
Phase_H=xlsread('Frequency_Response.xlsx','相位','B2:B600');
Mag_H=xlsread('Frequency_Response.xlsx','幅值','C2:C600');
%Convert the FRA data to a bode object in MATLAB%
Mag_H=(10.^(Mag_H./20));
Phase_H=pi.*Phase_H./180;
Plant_Bode_Obj=frd(Mag_H.*exp(i*(Phase_H)),Freq,'FrequencyUnit','Hz');
%Curve fit the data to get a transfer function%
% user may choose to fit 3p3z or any other depending on what works best%
[Hn,Hd] = invfreqs(Mag_H.*exp(i*(Phase_H)),(2*pi).*Freq,2,4); %using 2z4P
H = tf(Hn,Hd);
% plot both the measured and curve fitted TF to compare accuracy
figure(1);bode(H,Plant_Bode_Obj);title('Control-to-Output Measured Vs Curve Fitted');
legend('Curve Fitted','Measured')
%call sisotool to design the compensation with the transfer function%
sisotool(H)
运行得到如下图形:
同时脚本语言调用了sisotool()工具,我们可以在这里看到传递函数:
最后
以上就是独特店员为你收集整理的应用Multism交流扫描产生的数据结合Matlab脚本拟合曲线估算线路传递函数的全部内容,希望文章能够帮你解决应用Multism交流扫描产生的数据结合Matlab脚本拟合曲线估算线路传递函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复