前言:
本文基于Matlab2018版本。
前几天蓝总告诉了我,matlab的一个功能可以直接扫描系统的频率响应,再根据频率响应数据来得到传递函数的办法。于是我跟着Help文件研究了一下,下文是基本实现:
S1,设置扰动信号注入的点和响应信号的捕获点,如下面的代码是把扰动注入到占空比上,响应信号是采样输出电压。
% Open the Simulink model.
mdl = 'ZVSFB1';
open_system(mdl);
ios = [...
linio([mdl,'/DutyCycle'],1,'input'); ...
linio([mdl,'/Volt_sen'],1,'output')];
S2 然后开始设置输入扰动信号的频率范围,这里我设置 100 ~ 20000的频率范围,扰动是正弦波注入,幅度是0.05。
f = logspace(log10(100),log10(200000),30);
in = frest.Sinestream('Frequency',f,'Amplitude',0.