Page 250 - 《振动工程学报》2025年第11期
P. 250

2708                               振     动     工     程     学     报                     第 38 卷

                                                                         2.5

                          搭建Simulink/STM32开发环境

                            图形化配置CubeMX工程                                1.5
                                                                       电压 / V

                            改造CubeMX生成的代码                                0.5



                           在Simulink导入CubeMX工程                          −0.5  STM32自带ADC      ADS8688
                                                                           25   26    27    28   29    30
                                                                                       时间 / s

                  S-Function Builder      基于Simulink的图形化             图 7 ADS8688 与内置  ADC  在环监控波形对比图
                    调用外设芯片                   编程编写算法
                                                                Fig. 7 Comparison  of  in-loop  monitoring  waveforms  between
                                                                      ADS8688 and built-in ADC



                            一键编译下载(硬件在环)

                  图 6 STM32CubeMX  与  Simulink  的联合编译流程
              Fig. 6 Workflow  of  integrated  code  generation  using
                    STM32CubeMX and Simulink

              配 置为   HAL  库 , 其 他 外 设 则 可 配 置 为 效 率 更 高 的                    图 8 Simulink  完整程序图
              LL  库。                                                   Fig. 8 Complete Simulink program diagram
                  完成上述步骤后,在       Simulink  中对  S-Function Builder
                                                                    图  9  展示了在   Simulink  中通过串口进行硬件在
              模块的代码进行相应修改后即可调用                  ADS8688  模块
                                                                环 监 控 的 结 果, 包 括     ADS8688  采 集 的 电 压 信 号 ,
              进行模拟信号采集。
                                                                以及   DAC80508  输 出 的 开 关 控 制 信 号 与 注 能 脉 冲
                  在运行模型仿真时,MATLAB          自动定义    MATLAB_
                                                                信号。
              MEX_FILE  宏,条件编译块内的硬件相关代码被预
              处理器排除,避免在仿真环境中引发错误。在生成                                     8
                                                                                 位移         开关信号(负向)
              嵌入式代码时,MATLAB_MEX_FILE           宏未被定义,条                           注能脉冲       开关信号(正向)
              件编译块内的代码被包含。此时,必须确保目标硬                                     4
              件所需的头文件(如          main.h)和驱动函数参与编译,
              以生成可在目标         STM32  微控制器上正确运行的可                       电压 / V  0
              执行文件。
                                                                         −4
                  完 成 上 述 步 骤 后, 用 于 在    Simulink  模 型 中 调 用
              ADS8688  的  S-Function Builder 模块封装完成。                     −8
                  将  ADS8688  模块与微控制器内置          ADC  在相同                 100  101   102   103  104   105
                                                                                       时间 / s
              幅值和频率的正弦信号采集任务中进行对比测试。
                                                                          图 9 硬件在环监控输入、输出信号
              在线监控的采集结果如图             7  所示,表明    ADS8688  模
                                                                Fig. 9 Hardware-in-the-loop  monitoring  of  input  and  output
              块采集的信号波形更平滑、噪声干扰更小、精度更高。
                                                                      signals
                  DAC80508  模 块 经  S-Function Builder 封 装 后 , 可
              实现  8  通道  0~5 V  模拟信号的输出,除驱动代码部分                     STM32  与  Simulink  联合开发方法的优势在于:
              不同以外,封装原理及步骤都与              ADS8688  相同。              (1)灵活扩展性,结合        MATLAB   硬件支持包与       S-
                  基于   S-Function Builder 构 建 的  ADS8688  模 块 能  Function Builder 构建的自定义外设模型,可便捷扩展
              可靠地采集电压信号,并将数据无缝传递至后续控                            平台支持的外设类型;

              制算法。DAC80508      模块亦可稳定输出三通道模拟                       (2)高效开发流程,支持          Simulink  内的一键式编
              信号,精确控制回路中           MOSFET  的通断状态。二者             译与硬件在环仿真,加速算法验证与迭代;
              协同工作,能有效适配           Simulink  的模型化开发环境。              (3)图形化配置,利用         STM32CubeMX   对  STM32
              将这二者与半主动控制算法结合搭建的完整                    Simulink   各类外设进行图形化初始化配置,显著减少了手动
              程序如图     8  所示。                                   编写底层初始化代码的工作量。
   245   246   247   248   249   250   251   252   253   254   255