此示例示出了如何从频率响应数据估算的传递函数。您使用的Simu金宝applink控制设计™收集频率响应数据从Simulink模型和tfest
命令估计来自测量数据的传递函数。使用以前保存的频率响应数据开始的示例从估计传递函数部分。
打开Simulin金宝appk模型。
mdl ='iddemo_boost_converter';open_system(MDL);
该模型是升压转换器电路,其由直流电压变换为另一直流电压(通常更高的电压)来控制斩波或源极电压的开关的。在这个模型中由PWM信号驱动的IGBT被用于切换。
对于这个例子,我们从PWM占空比设定点的负载电压,U输出感兴趣的传递函数。
我们使用frestimate
命令用不同频率的正弦曲线扰乱占空比设定点,并记录所得到的负载电压。根据这些,我们发现系统如何修改注入的正弦曲线的幅度和阶段,给出了频率响应的离散点。
使用frestimate
需要两个预备步骤
指定频率响应输入和输出点
定义血窦在输入点注入
使用创建的频率响应输入和输出点的LiNiO
命令和对于这个例子是的输出占空比
和电压测量
块。
IOS = [......Linio([MDL,'/占空比'],1,'输入');......Linio([MDL,'/ ps金宝app-simulink转换器'],1,'输出')];
我们使用frest.Sinestream
命令定义正弦曲线以在输入点注入。我们对频率范围200至20K Rad / s感兴趣,并希望将占空比扰动0.03。
F = LOGSPACE(日志10(200),日志10(20000),10);在= frest.Sinestream('频率',F,'振幅',0.03);
以模拟与此正弦流信号模型所需的仿真时间使用所确定的getSimulationTime
命令,正如我们所知道的模型使用的模拟结束时间,我们可以了解Sine流模拟即时运行模型的速度更长。
getsimulationtime(in)/0.02
ans = 15.5933
我们使用已定义的输入和正弦流与frestimate
来计算的频率响应的离散点。
[SYSDATA,simlog] = frestimate(MDL,IOS,IN);BOPT = bodeoptions;bopt.Grid ='在';bopt.phasematching =.'在';图中,博德(SYSDATA,'* R',BOPT)
伯德回应显示了一个56分贝增益,围绕2500拉德一些轻微的共振/ S和高频滚降的20 dB /十倍频匹配我们期望这个电路的系统。
这rest.simview.
命令允许我们检查示出所注入的信号,测得的输出,并且在一个图形界面的频率响应frestimate过程。
frest.simView(simlog,在,SYSDATA);
该图示出了与注入血窦和模型响应的FFT模型响应。注意,注入正弦波导致具有主频率指示的线性模型和成功的频率响应数据采集信号和限制的谐波。
在前面的步骤中,我们收集的频率响应数据。这个数据描述了系统的离散频率点,我们现在适应的传递函数的数据。
我们使用Simulink控制设计生成频率响应数据,如果未安装Simulink控制设计,请使用以金宝app下命令加载保存的频率响应数据
加载iddemo_boostconverter_data
检查我们预计,该系统可以通过一个二阶系统来描述的频率响应数据。
sysA中= tfest(SYSDATA,2)图中,波特(SYSDATA,'r *',sysA中,BOPT)
sysA中=从输入 “占空比” 输出 “PS-Simulink的转换器”:-4.456e金宝app06 S + 6.175e09 -----------------------秒2 +6995个S + 9.834e06连续时间识别的传递函数。参数:极数:2数量的零:1免费的系数数目:4使用“tfdata”,“getpvec”,“getcov”为参数及其不确定性。状态:使用TFEST频率响应数据“SYSDATA”估算。适合估计数据:98.04%FPE:281.4,MSE:120.6
估计的传递函数是准确的在提供的频率范围。
BdClose(MDL)