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

