通过环路分析仪得到系统的闭环传递函数方法(Matlab System Identification)

目录

前言

环路分析仪数据整理

Matlab导入环路分析仪的数据

System Identification使用

闭环传递函数导出

总结


前言

之前开发的时候通过Matlab的环路设计工具实现了控制系统的补偿器参数整定,然后在系统硬件上面进行了验证,设计带宽和环路分析仪的结果近似,设计出来的补偿器裕量满足系统需要,今天学习了一个方法,就是通过环路分析仪测出bode图和对应的频率响应数据,再通过Matlab计算出其闭环传递函数。这个有啥用?在实际开发中,如果硬件的环路参数和我们设计的大体一致,那么说明我们系统的功率回路传递函数和反馈回路啥的都和理论设计一样这是比较顺利的,但是有些时候某一个环节硬件使用规格或者失效,系统能正常工作,只是整个系统的带宽就可能变掉,系统的性能也都会受到影响,这时候可以通过环路分析仪得到系统的闭环传递函数再结合硬件参数去具体分析问题点在哪里。也可以通过这种方法得到实际硬件的闭环传递函数,再去设计补偿器。下面就介绍下如何通过环路分析仪得到系统的闭环传递函数方法。

环路分析仪数据整理

环路分析仪的使用这里就不用多说了,这里只关注扫出来的bode图和频率响应的数据,如下:

这是一个800V, 200A的DCDC扫出来的bode图

 扫出来的数据:

 需要整理一下:

需要把频率Hz换算成rad/s。需要把Gain(db)换算成幅值(Amplitude)

频率换算:

Wg=2*pi*f

Amplitude=10^(Gain/20)

Matlab导入环路分析仪的数据

整理好数据后需要用Matlab导入excel的数据,操作如下:

1. 把excel文件放到Matlab的工作空间并双击打开,打开后如下:

 2.  把幅值,频率还有相位数据都导入后,删掉无用的行

 到此数据就已经导入到Matlab的工作区了

System Identification使用

1.打开System Identification

得到如下所示:

 

 2. 选择Freq domain data

 3. 配置如下,变量名要和工作区里导入的数据一致,Sample time设置为0表示S域,配置完后点Import.

 

 可以勾选Frequency function 看看波形和扫出来的bode图是否对应,如下:

 

闭环传递函数导出

1.如下图,选择Transfer Function Models

 2. 分别设置零极点数据,频率范围,由于扫频范围一般会比较宽,有些数据并不是我们想要的,比如实验用例设计带宽是9Khz,扫频的bode图范围是100Hz到100Khz,如图全范围拟合出传递函数,准确度是极差的。这里我们匹配的范围就设置2k-30Khz,最后点Estimate

 3. 弹出了下面的信息,比例越高传递函数匹配得越好

 4. 对比下看哪一组传递函数匹配得最好

 

 选一个匹配度最高的:

 5. 导出传递函数

到此,传递函数就得到了

总结

记录下从环路分析仪的数据得到系统的闭环传递函数的方法,方便以后回顾

猜你喜欢

转载自blog.csdn.net/weixin_42665184/article/details/131250604