TMS320F280049C 学习笔记22 SFRA part5 手册6 您所在的位置:网站首页 dsp280049 TMS320F280049C 学习笔记22 SFRA part5 手册6

TMS320F280049C 学习笔记22 SFRA part5 手册6

2023-08-31 21:25| 来源: 网络整理| 查看: 265

文章目录 运行软件测试实例在没有SFRA GUI集成的情况下使用SFRAFAQ

对应原文第6-8章。

运行软件测试实例

SFRA库附带了一个软件测试台(STB)示例,该示例围绕一个由比例积分控制器组成的虚拟回路运行SFRA,具有由SFRA采样特性产生的固有的数字更新延迟,如图17所示。 在这里插入图片描述 要导入STB项目:

打开CCS并单击Project选项卡,然后单击Import CCS Project。在弹出的窗口中,浏览到examples/examples/ccs下的SFRA install目录。将显示所有可用的示例项目。单击“完成”,项目将被复制到您的工作区中。

注意:STB示例可以使用单精度浮点库或运行具有TMU的单精度浮点库,导入项目时可以进行选择。

确保将正确的控制卡连接到主机。也就是说,对于F28004x STB项目,必须将F28004x控制卡连接到机器上。编译并加载项目,然后运行项目。如第5.1节所述打开SFRA GUI.exe。连接SFRA GUI后,开始扫描。完成后,SFRA将在开环曲线下显示图19所示的简单PI补偿器的曲线,和图18所示的设备曲线中数字延迟的频率响应。 在这里插入图片描述 在这里插入图片描述然后,通过在仿真工具(如MATLAB)中模拟相同的PI补偿器,将其与频率响应进行比较。此脚本与STB example 1一起在SFRA install目录的scripts文件夹下运行数据。文件名为“STAB_Data_Compare_with_model.m”。主回路对比图如图20所示,开环对比如图21所示。 在这里插入图片描述 在这里插入图片描述从上面的曲线图中看不出测量和建模频率响应中的小误差。因此,图22显示了STB示例1的开环图的放大图。 在这里插入图片描述 有些误差是由浮点操作引起的,它们是如何在MCU上处理的,以及matlab是如何处理的。总的来说,这验证了SFRA算法的功能,因为误差在合理的误差范围内。闭环传递函数图也可以用类似的方式进行验证。 在没有SFRA GUI集成的情况下使用SFRA

执行以下步骤将SFRA集成到项目中:

由于资源限制,某些应用可能没有SFRA所需的SCI端口。在这种情况下,省略第3.4.4节中SFRA GUI集成的步骤。如第3.4.3节所述,集成注入、采集和后台功能。要开始SFRA扫描,请将SFRA对象放在监视窗口中。当希望开始SFRA扫描时,将SFRA_OBJ.start写入1。(这是为了替代在SFRA GUI单击开始扫描。)监视SFRA_OBJ.Frequencindex变量;它将随着SFRA扫描的执行而逐渐增加。一旦SFRA_OBJ.FreqIndex达到Vec_Length,SFRA扫描就完成了。作为SFRA初始化的一部分,如第3.4.3节所述,开环、主回路幅值和相位存储在数组中。 //------- SFRA Related Variables -------- float plantMagVect[SFRA_FREQ_LENGTH]; float plantPhaseVect[SFRA_FREQ_LENGTH]; float olMagVect[SFRA_FREQ_LENGTH]; float olPhaseVect[SFRA_FREQ_LENGTH]; float freqVect[SFRA_FREQ_LENGTH]; 把这些放在观察窗口检查并研究响应。扫描完成后,在CCS中单击View->MemoryBrowser。在内存浏览器中,输入&freqVect查看频率向量并选择32位浮点, 在这里插入图片描述点击图23中的save memory。将出现一个弹出窗口。选择TI data并在您喜欢的位置指定文件名*.dat。 在这里插入图片描述单击Next并从内存浏览器中指定数组开头的地址,然后指定长度。确保选择了32位浮点。单击“完成”。 这将把数据保存在*.dat文件中。对plantMagVect、plantPhaseVect、olMagVect、olPhaseVect重复此步骤,这样您将拥有5个*.dat文件。如果要在MATLAB或其他工具中使用此数据,可以将数据填充到excel文件中。在excel中打开位于 < install directory>\sfra\scripts的FRAData.xlsx文件。您可以选择重新命名并保存文件。这个excel表有四列,第一列是频率数据。打开保存的*dat文件。 在这里插入图片描述选择从第二行开始到文件末尾的数据,然后按Ctrl+C键复制数据。打开Excel文件,转到对应向量下的第一个元素,然后按Ctrl+V复制数组。 在这里插入图片描述对每一列重复这些步骤。更新所有五列的excel文件后,使用matlab脚本导入SFRA数据。然后,在sistool内进行补偿器的设计和稳定性分析。该文件也可以作为*.csv文件下载,并与compensation designer一起使用。 FAQ 无法连接GUI 确保SCI管脚配置为用作SCI,并且提供给SCI init例程的SCI模块时钟速率值正确。连接GUI但开始按钮没有被激活如果您的母语不是英语(美国),并且观察到上述行为,请尝试选择英语(美国)。要执行此操作,请使用 Start Button → select under Formats → English (USA) → Apply.对于可测量响应,最大SFRA频率是多少? 可测量的最大频率由SFRA-ISR-FREQ确定,并由nyquist准则(开关频率的一半或调用SFRA例程的频率)决定。SFRA可测量的最低振幅信号是什么? SFRA使用片内ADC,其12位ADC的噪声下限约为60dB-70dB。因此,当FRA读数低于60dB时,应谨慎解释,因为可能存在明显的噪声因素。为什么SFRA扫描需要这么长时间? SFRA花费的时间取决于两个因素: –调用SFRA的ISR频率。 –后台函数的调用速率。 因此,当用于测量200 kHz功率转换器的响应时,与在10 kHz-20 kHz下运行的变换器相比,预计SFRA的运行速度会快得多。如何确保SFRA不在生产代码中运行。 除非通过将“1”写入SFRA对象中的“start”变量来启动SFRA(当单击“开始扫描”按钮时,SFRA GUI也会写入此变量以启动扫描),否则SFRA注入例程不会对引用值执行任何操作(注入/收集)。 如果希望完全删除SFRA例程,则可以将运行SFRA例程的调用置于#define之下,而对于不运行SFRA,则可以将define定义为其他的什么东西。如下面的典型代码所示,可能需要在电压或电流上使用SFRA,通常软件对此有定义。因此,要删除SFRA例程,可以将其定义为SFRA_NONE,这将确保SFRA例程未编译到对象中。还要注意,尽管collect例程的参数是通过引用传递的,但这些参数不会被例程修改。 //SFRA Options #define SFRA_NONE 0 #define SFRA_CURRENT 1 #define SFRA_VOLTAGE 2 #define SFRA_TYPE SFRA_NONE ...... #if SFRA_TYPE == SFRA_VOLTAGE gv_out=GV_RUN(&gv, SFRA_F32_inject(vBusRefSlewed), vBus_sensed); #else gv_out=GV_RUN(&gv, vBusRefSlewed,vBus_sensed); #endif #if SFRA_TYPE == SFRA_VOLTAGE SFRA_F32_collect(&gv_out,&vBus_sensedFiltered_notch2); #endif


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有