%注意脚本文件名不能和simulink模型名重名
mdl='RC_Filter';
open_system(mdl); %打开模型 RC_Filter
%%%%%%%%%%收集频率响应的数据
ios = [... %指定频率响应的输入和输出点
linio([mdl,'/volin'],1,'input'); ...
linio([mdl,'/volout'],1,'output')];
f = logspace(log10(10),log10(20000),10);
in = frest.Sinestream('Frequency',f,'Amplitude',1);%使用frest.Sinestream命令来定义要在输入点注入的正弦曲线的频率范围,离散的点数和幅值
[sysData,simlog] = frestimate(mdl,ios,in); %利用frestimate计算频率响应曲线上离散的点
bopt = bodeoptions;
bopt.Grid = 'on';
bopt.PhaseMatching = 'on';
figure, bode(sysData,'*r',bopt)
%利用frest.simView命令在一个图形界面中查看注入信号、测量输出和频率响应
frest.simView(simlog,in,sysData);
%估算传递函数
sysA = tfest(sysData,1) %估算一个1阶的传递函数
figure, bode(sysData,'r*',sysA,bopt) %画出这个传函的伯德图
评论0