wkhn
认证:优质创作者
作者动态 更多
TMS320F28035软件频率响应分析仪(SFRA)的使用
04-13 13:51
通向数字w88之路——TMS320F28035 dsp数字w88开发(3)
04-02 10:53
#征文#通向数字w88之路——TMS320F28035 dsp数字w88开发(2)
03-29 10:29
#征文#通向数字w88之路——TMS320F28035 dsp数字w88开发(1)
03-23 22:48
#征文#一种恒压恒流控制回路的设计与仿真
03-10 16:45

TMS320F28035软件频率响应分析仪(SFRA)的使用

   在使用TI的28035芯片做数字w88的过程中,需要不断的调整控制器的参数,以达到比较良好的时域指标,参数调整的依据是开环频率响应曲线。

   一般得到系统开环频率响应的方法有两种:仿真建模和网络分析仪实测。

   仿真建模的方法误差较大,只适合理论分析。要想真实判断系统的稳定性,用网络分析仪实测就是唯一的方法。如果手边又没有网络分析仪的话,该如何进行w88系统稳定性分析呢?

   TI的软件工程师们帖心的为使用C2000系列芯片的w88客户端专门开发了软件,可以使w88客户端在没有网络分析仪的情况下也可以进行数字w88稳定性分析。

   这套软件就是“软件频率响应分析仪”(SFRA),包括:函数库、频率分析仪用户界面GUI和补偿器设计软件。

   下面就以上篇文章中的Boost电路为例,介绍SFRA是如何使用的。

      SFRA库目前只能用在C28x内核的中断,不适用于CLA中,所以在导入数字w88工程模板时,如果是用CLA做的控制器算法,从CLA的程序空间无法调用SFRA库函数,也就不可能用SFRA做稳定性分析了。这是SFRA目前的一大局限。

      首先导入一个全新的工程模板。然后就需要对这个新工程文件做一些修改。因为在使用SFRA库函数时,需要定义一些数组,要占用不小的数据空间,这些数组占用的数据空间正好与CLA占用的数据空间产生冲突,所以要把工程中的所有CLA占用的程序空间和数据空间释放掉并修改CMD链接文件,以容纳SFRA库的数据。

      先将编译代码定位在FLASH中。

      要将CLA用到的代码从工程中去除。

      然后将CLA在头文件中用到的变量和函数也注释掉。

      接着将"DPlib.h"和"ProjectName-Settings.h"两个头文件的声明转移到Main.c中,同时在Main.c中要注释掉相关头文件的引用

      下面修改Main.c文件,去除CLA相关的函数及变量:

      再接着,在“ProjectName-DevInit_F2803x.c”文件中注释掉CLA相关的函数

      CLA模块的时钟也关闭掉。

      现在CLA相关的代码从工程中完全去除了。

      下面为了释放CLA用的程序空间,还需要修改CMD链接文件。打开“F28035_FLASH_ProjectName.CMD”

      然后,将CLA节省下来的程序空间分配到SFRA数据空间中,如下修改内存段定义

      完成上面步骤后,编译一下工程,顺利完成。看一下编译完成后的存储分配

      可以看到dataRAM段的容量是6,144(0x1800)字节,可以保证后续SFRA数据的用量。

      接下来,就按照上篇文章中的步骤,配置Boost电路的参数,并完成电压闭环,这里不再重复。当完成上面的步骤后,可以将代码写入flash中并运行,准确无误后,SFRA的前期准备工作算完成了。接下来就开始SFRA代码的植入,因为SFRA库函数是用C语言写的,要在ISR中调用,但是工程模板的C28x中断是用汇编代码写的,因此,就需要重新用C写一个中断服务函数ISR,这样才能调用SFRA的库函数。

      首先是改造ProjectName-DPL-ISR.asm文件

      记住,中断函数的返回也要修改

      然后重新构建一个中断服务函数,在该ISR中调用DPL_Func()。

      记得要声明函数的原型

      将PWM5的中断服务程序入口指向该函数。

      尝试编译并运行,w88能正常工作,证明用C语言重新写的中断服务没问题。

      下面将SFRA库集成进工程中。先添加搜索路径和库:

      包含库函数的头文件

      接下来定义SFRA用到的预定义、结构体、数组和变量

      在这里说明一下,SFRA的幅频曲线和相频曲线的结果存储在一个很大的数组中,该数组的大小是由SFRA_FREQ_LENGTH来决定的,在前面将CLA的程序空间节省下来的目地就是为了容纳下SFRA这几个大数组,为此还需要再次修改CMD文件,定义SFRA数组用的数据段。

      增加一个SFRA_Array段,用来存放数组。

      接下来,就是将SFRA结构体初始化

      下面的步骤比较关键,首先要定义一个变量,SFRA用这个变量向w88的控制环路中注入一组正弦波,然后再采样输出电压,根据输出电压与输入正弦信号的幅值与相位的关系,画出系统开环响应曲线。

      先定义注入正弦波时用到的变量。

      然后要在2p2z配置中,将指针指向该变量

      接下来,在PWM5的ISR中注入正弦波并收集系统的响应数据

      添加SFRA的后台任务,放在主循环状态机的A1中,执行频率为1ms。

      因为SFRA库函数编译后的代码是存储在flash中,运行速度较慢。为了让SFRA库中的函数运行的更有效率,需要在28035上电后,将SFRA调到RAM中运行。

      在内存中增加一个SFRA_IQ_Data段,这个段是库函数系统要求的。

      这样,SFRA库就能够通过ISR,从环路的参考点注入一系列的谐波信号,并收集系统的响应,只要分析响应的结果数组就能画出系统的响应曲线。画出曲线的功能是在SFRA_GUI中实现的。在w88硬件中要有能与PC通讯的外设,在本例中,已经集成在数字w88板上了。

      FT232RL就是一个串口转USB的芯片,用来与PC的上位机软件SFRA_GUI通讯。为了与SFRA_GUI软件通讯,还需要在Main.c中做一些设置。

      先确认28035的串口已经打开,串口的时钟使能。

      在工程中导入SciCommsGui_32bit.c文件,路径C:\ti\controlSUITE\libs\app_libs\SFRA\v1_10_00_00\GUI。

      在Main.c中声明用到的函数原型

      添加串口中用到的变量。

      初始化串口外设

      定义GUI需要的一些数组

      添加通讯定时计数变量

      将SerialHostComms()放在主循环状态机的A2中。

      到此时,已经完成了SFRA软件搭建和硬件的配置。将工程编译,成功编译完成后,查看一下内存中的内容,可以看到SFRA用的数组占用了1,264个字节空间,如果不释放掉CLA程序占用的RAML3空间,是没有地方容纳它的。

      写入flash,点击运行。打开SFRA_GUI.exe。为了提高扫描的速度,将扫描点由原来的200个,减少到120中,起始频率为100Hz,每10倍频程50个点。最大频率点为

      点击"connect"后,界面的左下角指示与w88是否通讯正常。

数字w88的运行参数:

输入电压15V

输出电压20V

输出电流1A

按照上篇文章中的2p2z的参数进行扫描,点击"Start Sweep"后,运行界面如下

完成扫描后得到的响应曲线。

开环响应曲线,测得结果穿越频率为338Hz,相位裕度为45.45°

功率电路曲线

通过上面的Bode图,可以判断环路是可以稳定工作的,但是穿越频率较低,响应速度较慢。然后打开CompDesigner.exe,重新设计控制器的参数。

调整控制器参数,使环路稳定,然后将软件自动计算出来的2p2z参数写入程序中。

再次扫描

通过上面的bode图,可以得到开环响应曲线,穿越频率为2.067KHz,相位裕度为116°,幅值裕度为9.94dB。

用网络分析仪实际测量开环响应曲线:

从图中可以看到实际用网络分析仪测出的结果与用SFRA的结果较为接近,曲线的形状基本一致,所以SFRA的结果是可信的。

最后,说明一下SFRA的库函数和GUI如何获取。SFRA是跟随controlSUITE一起安装的,在controlSUITE安装完成后,在路径C:\ti\controlSUITE\libs\app_libs\SFRA下寻找。要用v1_10_00_00这个版本,v1_20_00_00文件夹中SciCommsGui_32bit.c文件似乎有些问题,无法成功编译。

在文中附件里提供本文用到的程序,SFRA库也打包放在里面,为没有安装controlSUITE的读者提供参考。本文的参考资料《C2000 Software Frequency Response Analyzer (SFRA) Library and Compensation Designer 》也在附件中。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
本篇所含全部资料,点击此处留下邮箱我会发给你
资料明细:SFRA_C_ISR_noCLA_DPLibTemplate-F2803x.rar,SFRA_v1_10_00_00.rar,IQ_SFRA_spruhz5a.pdf
觉得内容不错的朋友,别忘了一键三连哦!
赞 6
收藏 8
关注 170
成为作者 赚取收益
全部留言
0/200
  • 熊紅 04-26 11:57
    老师,能不能发我一下资料,谢谢! m1****@****.com
    回复 1条回复
  • dy-978H6xTG 04-22 13:40
    老师,能不能发我一下资料,谢谢! ze****@****.com
    回复 1条回复
  • zzw_123 04-19 11:36
    老师,能不能发我一下资料,谢谢! 84****@****.com
    回复 1条回复
  • mcuxyb 04-16 16:15
    老师,能不能发我一下资料,谢谢! xu****@****.com
    回复 1条回复
  • mcuxyb 04-16 15:59
    xu.yangbo@126.com
    回复
  • 捣蛋93 04-15 08:39
    老师,能不能发我一下资料,谢谢! 18****@****.com
    回复 1条回复