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

第 11 期          何军峰,等:面向大型结构振动抑制的小型轻质低功耗压电半主动实时控制系统                                        2707

              精准调控注能脉冲时序。                                       2.2    控制系统软件设计
                  微 控 制 器( microcontroller  unit, MCU) 选 用
                                                                    半主动控制系统软件设计的两个关键部分为:
              STM32F407ZGT6  芯 片 , 该 芯 片 搭 载   ARM Cortex-M4
                                                                通过   ADS8688  采集传感    MFC  信号并判断极值点以
              内核,该芯片集成了丰富的通信接口与外设资源,包
                                                                及通过    DAC80508  输出控制信号。本系统的控制算
              括  SPI、I2C、USART、CAN    等,便于实现与外部设备
                                                                法在   Simulink  环境中设计、编译并下载至硬件。因
              的高效通信。
                                                                此,实现    Simulink  与  STM32  微控制器的联合编译是
                  由于  STM32F407ZGT6   内置  ADC  仅支持正电压
                                                                关键环节。
              采集,且为满足高精度、高采样率的模拟信号采集
                                                                    为提高开发效率并分离底层驱动、Simulink                 自
              需求,本文设计了一种基于             ADS8688  与  STM32F407
                                                                动 生 成 的 代 码及    MATLAB   环 境 程 序 , 本 设 计 采 用
              微控制器的负电压采集方案。该              ADC  提供  8  个输入通
                                                                STM32CubeMX   与  MATLAB  硬件支持包协同配置底
              道,支持    5  档可编程输入范围,采样率可达             500 kSPS,
                                                                层驱动。若      MATLAB   硬件支持包未提供特定外设
              分辨率为     16  位。ADS8688  采用双电源供电:模拟电
                                                                驱动,可通过      S-Function Builder 编写自定义模块。此
              源(5 V)和数字电源(3.3 V)。该芯片与             STM32  微控
                                                                方法亦支持通过串口实现硬件在环(hardware-in-the-
              制 器 之 间 通过    SPI 接 口 进 行 数 据 传 输 , 设 计 中 , 为
                                                                loop,HIL)实时监控算法各个环节所产生的信号。
              ADS8688  配置使用内部基准电压源。
                                                                    为在   Simulink  模型中调用   ADS8688,需对其底层
                  为生成高精度       MOSFET  栅极控制信号,本设计
                                                                驱动代码与      Simulink  进行适配与集成。首先要确保
              选用   DAC80508  作为模拟信号输出模块。该器件是
                                                                ADS8688  驱 动 时 开 始 控 制 序 正 确 。 为 此 , 利 用
              一款独立的高分辨率          16  位数模转换器,其积分非线
                                                                STM32CubeMX   生成底层配置代码,并在            Keil MDK-
              性和差分非线性误差显著低于              STM32F407  内置  DAC。
              DAC80508  能够提供超低噪声、高分辨率且驱动能                       ARM  环境中进行编译、下载与调试,以验证                 ADS8688
              力强的模拟输出电压基准。结合优化的电源与接地                            的基本功能。STM32CubeMX          的具体配置过程在此
                                                                省略,仅强调两个关键配置点:
              隔离设计,该方案显著提升了              MOSFET  开关过程的
                                                                    (1)在  Code Generator 设置中,选择   MDK-ARM    作
              精确性、效率及抗干扰能力。相较于基于微控制器
              GPIO  直接输出或内置        DAC  的方案,本设计展现出              为工具链;
                                                                    (2) 在  Pinout  &  Configuration  中 配 置  SPI1  接 口
              更优越的综合性能。
                                                                时,需将    MOSI 引脚手动指定为        GPIOB_PIN_5。
                  试 验 中 使 用的    MFC  传 感 器 , 其 开 路 电 压 可 达
                                                                    完成   CubeMX  配 置 并 生 成 代 码 后 , 需 在     Keil
              ±90 V。为确保     ADS8688  的采样精度,需利用分压电
              路将   MFC  输出电压衰减至±10 V        范围内,并采用电            MDK-ARM   环境中对生成的工程代码进行修改。具
              压跟随器进行缓冲。电压跟随器利用其低输出阻抗                            体修改细节在此不赘述,但需重点注意                   ADS8688  驱
              和高驱动能力,有效隔离分压电路与                 ADC  输入。         动 代 码 应 严 格 添 加在     USER CODE BEGIN   与  USER
                  最终集成的半主动控制系统结构如图                    5  所示,    CODE END  注释块之间;若置于他处,在              CubeMX  重
              质量约    659.32 g,其中变压器与电感质量为            477.19 g,  新生成代码时驱动代码会丢失。
              锂电池质量为       107.80 g,电路板质量为      74.33 g。变压          ADS8688  驱 动 程 序 主 要 包 含 以 下 功 能 模 块 :
              器体积为     94.2 cm ,电感体积为     25 cm ,锂电池体积          SPI 数据读写、命令寄存器操作、软件复位、工作模
                             3
                                               3
                        3
              为  57.68 cm ,PCB  板大小为  8.4 cm×7.4 cm。            式配置、程序寄存器读写、自动扫描序列通道设置、
                                                                指定通道量程设置、自动/手动模式数据读取、引脚
                                                                初始化及初始化函数。
                                                                    完成   ADS8688  底 层 驱 动 的 验 证 后 , 即 可 构 建

                                                                STM32CubeMX   与  Simulink  的 联 合 编 译 工 程 。 该 联
                                                                合编译流程如图        6  所示。
                                                                    相较于仅依赖       MATLAB   硬件支持包的工程,基
                                                                于  S-Function Builder 模 块 建 立 的  STM32-Simulink  联
                                                                合编译工程存在两处关键差异:
                                                                    (1) 需 通 过  STM32CubeMX  生 成 底 层 嵌 入 式 代
                                                                码,并基于前述已验证的           ADS8688  驱动工程,对该自

                             图 5 半主动控制系统                        动生成的代码进行适配修改;
                         Fig. 5 Semi-active control system          (2)需将  ADS8688  所用  SPI1  接口的  Driver Selector
   244   245   246   247   248   249   250   251   252   253   254