跳转至

S32K344:模型、代码生成与 PIL

AMBD-MC 的目标集成基于 autoMBD HSP 0.1.0。BLDC 和 PMSM 使用同一套 S32K344 外部 EB 配置及 HSP Runtime;各自保留控制算法、标定、类型字典和 独立电机对象。模型清单见 models.json。

本页保留 S32K344 的已有流程;双目标选择和 S32K144 入口见 目标选择与模型矩阵。本机 JSON 可显式设置 "target": "s32k344"。

模型分工

角色 BLDC PMSM 验证方式
共享算法库 BldcControllerLibrary McControllerLibrary 随每个组件编译;MATLAB 算法测试
框架入口 BLDCFramework MotorFramework HSP 目标构建、Normal/PIL
控制组件 BLDC_PIL_Hall_model、BLDC_PIL_Sensorless_model FOC_PIL_Algth_model、FOC_PIL_StateMch_model Normal/SIL 闭环和输入重放、目标构建、PIL
C 接口组件 BLDC_Ctrl_CodeModel FOC_Ctrl_CodeModel HSP 目标构建、Normal/PIL
原厂 API 应用 BLDC_Ctrl_MBD FOC_Ctrl_MBD RTD PWM/DIO 集成构建、Normal/PIL
主机对象与测试顶层 两个 BLDC_PIL_*_top 两个 FOC_PIL_*_top 独立对象 Normal/SIL 回归;Model 块引用控制组件

目标组件通过库链接复用算法,不在固件内部嵌套 Model Reference。外层主机 测试模型使用普通 Model 块,Code interface 设为 Top model。

控制方式由参数选择,文件名不隐式改变标定。BLDC 的 PositionMode=0/1 分别表示 Hall/无感;PMSM 的 PositionMode=0/1 分别表示无感/有感。 现有场景入口和目标测试夹具显式选择对应参数。 套件原生 PMSM 应用配置无感 FOC;有感组件的外部位置输入在主机/PIL 中验证, 当前套件板级适配不提供该位置接口。

环境与初始化

本集成使用 MATLAB/Simulink R2026a、Embedded Coder、已启用的 autoMBD HSP 0.1.0、RTD 7.0.1、EB tresos 30、NXP GCC 10.2 和 FreeRTOS 11.1.0。 Normal/SIL 使用主机 C 编译器;目标构建需要前述芯片工具链,PIL 另外需要 S32K344、PEmicro 探针和目标 UART。RTD 实现及工具安装均保留在外部。

info = ambd_mc("setup","all");
open_system('BLDC_PIL_Hall_top');

ambd_mc("setup","bldc") 和 ambd_mc("setup","pmsm") 也会初始化 HSP。保留返回的 info,维持类型 字典连接。正常初始化保留已保存的标定;类型更新仍通过显式 SyncDictionary=true 完成。

本机设置与独立工作副本

将 环境示例 复制到 .agent-env/hsp/local.json,填写 SDK、EB、编译器、make、FreeRTOS、Python、 PEmicro 的实际路径。通过 HSP Config 的检测功能可核对安装版本;有多个 候选时明确选择同一 S32K3 工具环境。PIL 配置填写已确认属于目标板的串口 和探针序列号,并设置 deployment.targetConnected=true。

本机设置不提交 Git。源模型保存相对路径;目标工具和连接只应用到忽略目录 中的副本:

stage = ambd_mc("stage","bldc",fullfile(pwd,'.agent-env','hsp','local.json'));
slbuild('BLDC_Ctrl_MBD');

ambd_mc("stage",...) 建立新的 .agent-env/i/<实例 ID>/t/ 目录,复制模型、字典与 EB 工程, 使用独立名称的目标字典,防止同名字典遮蔽。它拒绝未保存的字典标定、脏模型或其他位置的同名 已加载模型。完成后,打开的模型属于工作副本;源模型不保存本机配置。 短路径也为 Windows 的 Stateflow/PIL 生成目录留出空间。

套件固件必须通过 ambd_mc("stage",...) 生成:它在目标字典中应用 ambd.kit_parameters 的电机参数、BLDC DC 分流配置和 PMSM 无感配置。 源字典保留通用主机仿真参数,不应直接作为套件固件标定。

HSP 的标准构建会导出每个组件的独立 project,包括模型 C、外设配置、 Runtime、Makefile 和构建入口,再编译并校验 ELF。SDK 和 FreeRTOS 仍为 外部依赖。HSP Config 使用 Build;普通构建不下载固件。

外部配置、Runtime 与原厂 API

S32K344 EB 工程 来源于 HSP 0.1.0 的 s32k344-motor 模板,保留来源指纹与 Apache-2.0 许可。160 MHz eMIOS 配置 的 CH22 时基向上计数 10,000 ticks,对应模型的 62.5 µs 周期;OPWMB 的 A/B 比较位置实现脉冲中心定位。工作副本中的 EB 工程是实际生成输入。 工程中的 SystemModel2.tdb 是 EB 所需的源工程数据库;生成的驱动文件、 目标对象文件和 ELF 均留在 .agent-env/。

板级适配 通过 HSP 的采样、启动和停止回调连接 MCSPTE1AK344。双 ADC 的带标签 BCTU FIFO 驱动 16 kHz 采样;中断完成采样和 上一帧 PWM 请求提交,HSP 任务运行当前控制算法。算法输出先排队,下次采样 提交缓冲寄存器,再于下一次重载生效。

BLDC 使用官方 DC 母线分流采样和悬空相电压;不把单个母线电流伪造为三相 电流。换相时关闭整桥输出,等待两次采样确认新 PWM 已锁存,再启用指定两相, 悬空相的高低侧均由 LCU 输出使能关闭。PMSM 使用两相电流采样和第三相重建, 结合上一区间实际提交的占空比估算施加电压。具体信号、跳线和资格条件见 MCSPTE1AK344 集成说明。

AmbdOutputsArmed 默认 false,导出为 Ambd_OutputsArmed。算法 gate、 板级故障状态、GD3000 初始化读回、零电流校准和该标定共同限定功率输出。 GD3000 未连接时,驱动资格失败,EN 与 LCU 输出保持关闭;这不作为电机测试通过。

验证与证据

先按验证指南完成两类电机的独立对象参考及完整 Normal/SIL 矩阵,保留本地报告供后续目标回放使用。目标相关检查在仓库根目录执行:

python -m unittest discover -s tests/hsp -v
python tools/hsp/validate_target.py --settings .agent-env/hsp/local.json

目标验证逐组件执行 HSP 集成构建和实际 PIL。每次保存源文件指纹、构建日志、 ELF 指纹、下载回执、Normal/PIL 原始结果和比较结果。输入夹具包含 129 个 采样点,作为复位、启动、故障、清故障和再次启动的短时检查;该夹具未达到 默认 150 ms 对齐时间,不作为正常运行或无感接管的覆盖证据。所有输出、类型、时间戳 要求精确一致,并检查故障期间 gate 关闭。--family 或 --model 用于 局部排查,结果不标记为完整矩阵。

运行状态验证读取上述完整主机矩阵的已通过记录:

python tools/validate_motor_pil.py --settings .agent-env/hsp/local.json `
  --bldc-report .agent-env/bldc/validation/<run> `
  --pmsm-report .agent-env/pmsm/validation/<run>

该验证覆盖 BLDC Hall、BLDC 无感、PMSM 有感和 PMSM 无感四种配置。先通过 Normal 前段仿真提取控制器状态,再确认从该状态重放与原场景记录一致,最后 在目标处理器重放同一窗口。窗口包含对齐退出或无感获取/跟踪到 Run 的转换, 并至少包含 1,024 个无故障使能 Run 采样;BLDC 还要求覆盖六个换相扇区。 这是带状态初始化的处理器数值验证,不等同于从上电开始的连续实时电机运行。 报告分别保存原记录对齐结果、Normal/PIL 比较、状态覆盖、下载回执及 ELF 指纹。

MCSPTE1AK344 参数另有六组套件参考及目标回放:BLDC Hall/无感与 PMSM 无感,各含正反转。先生成 4 秒电气参考和完整模型 Normal 记录,再将通过的 记录提供给实际 PIL:

python tools/validate_kit.py
python tools/validate_kit.py --reference-report .agent-env/kit-validation/<run>/summary.json `
  --settings .agent-env/hsp/local.json

参考比较覆盖报告所列的控制量,包括 BLDC 三相使能;PIL 另外要求全部根输出 的类型、时间和值精确一致。参考源码与 MAT 工件在整个验证期间均受指纹检查。

主机完整场景矩阵另行检查闭环行为、独立物理对象与长时输入重放。PIL 是 处理器上代码的数值验证,相关结果与功率板闭环、真实采样标度及实时性测量 分别记录。源码或本机设置在验证期间变化,会阻止发布通过结果。

模型重建

python tools/hsp/build_models.py

重建使用锁定的官方 MATLAB MCP 和 model_edit,先保存备份,再创建共享 算法库、组件、主机顶层和 API 输出适配。普通仿真或构建不需要重建模型。 归档内容位于 legacy/,活动模型、脚本和构建不依赖该目录。