4. MOTIX参数体系与存储结构
在MOTIX电机控制方案中,参数并不是散落在代码里的常量,而是一套有分类、有分区、有版本约束的“数据体系”。理解这套体系,是后续标定、量产烧录和售后维护的基础。本节围绕参数分类、参数表结构、默认值、用户区与工厂区、参数版本与兼容性管理五个方面展开。
4.1 参数分类:四类参数各司其职
MOTIX的参数通常按“谁定义、谁修改、何时生效”划分为四类:
- 电机参数:描述被控电机本体的物理特性,如定子电阻 Rs、交直轴电感 Ld/Lq、反电动势常数 Ke、极对数 PolePairs、转动惯量 J。这类参数由电机决定,标定前必须准确录入,否则电流环和速度环的增益再准也无意义。
- 控制参数:决定控制算法行为的量,如电流环 Kp/Ki、速度环 Kp/Ki、PWM 载波频率、死区时间、弱磁阈值、启动斜坡时间。它们与电机参数共同决定动态响应。
- 保护参数:用于故障检测与限值,如过流阈值、过压/欠压阈值、过温阈值、堵转判定时间、失速转速门限。保护参数通常有“警告”和“故障”两级。
- 系统参数:与具体电机无关、与整机运行环境相关的配置,如通信节点 ID、CAN 波特率、传感器类型(霍尔/编码器/无感)、控制模式、参数版本号。
分类的意义在于:电机参数和控制参数属于“标定对象”,保护参数属于“安全边界”,系统参数属于“运行环境”。标定时应遵循“先系统、再电机、后控制、最后保护”的顺序,避免因环境配置错误导致标定结果不可用。
4.2 参数表结构与默认值
MOTIX的参数表通常以结构体数组或参数描述表的形式组织。每个参数条目至少包含:参数 ID、名称、数据类型、单位、最小值、最大值、默认值、当前值、所属分区、访问权限。下面是一个教学示例(非实测数据):
typedef struct {
uint16_t id; // 参数ID,如 0x0101
const char *name; // "Rs"
uint8_t type; // FLOAT / UINT16 / INT16
float unit_scale; // 单位换算系数
float min_val; // 最小值
float max_val; // 最大值
float default_val; // 默认值
float current_val; // 当前值
uint8_t zone; // FACTORY / USER
uint8_t access; // RO / RW
} MotixParam_t;
默认值的作用是“可运行的下限”。出厂时,参数表被写入一组保守默认值,保证电机在未标定状态下也能低速、小电流试运行,而不会立即触发过流或失速。例如,电流环 Kp 默认值可能偏小,速度环默认值可能偏慢,保护阈值可能偏保守。标定的本质,就是在默认值基础上,根据实际电机和负载逐步逼近更优值。
4.3 用户区与工厂区
MOTIX通常把非易失存储划分为两个逻辑区:
- 工厂区(Factory Zone):存放电机参数、出厂标定结果、保护阈值、系统配置。该区在产线烧录后一般只读,或需要特定解锁序列才能写入。工厂区是“设备身份”的一部分,售后不应随意修改。
- 用户区(User Zone):存放用户可调的控制参数、运行模式、通信地址等。用户区允许通过上位机或通信接口反复写入,掉电保存。
这种分区的工程价值在于:当用户误改参数导致异常时,可以只恢复用户区默认值,而不影响工厂区的电机标定数据。反之,如果工厂区被破坏,则必须重新执行电机参数辨识和标定流程。
4.4 参数版本与兼容性管理
参数表不是一成不变的。随着固件迭代,参数可能新增、删除、改变单位或调整取值范围。因此,MOTIX参数体系必须引入版本管理。通常做法是:在参数区头部存放一个版本号(如 V2.3.1)和一段 CRC 校验值。上电时,固件先读取版本号,与自身支持的版本范围比对,再决定是否加载。
版本号建议采用“主版本.次版本.修订号”三段式:
- 主版本:参数 ID、单位、物理含义发生不兼容变化时递增。例如 Rs 从 mΩ 改为 Ω,或参数 ID 重新编排。此时旧参数表不能直接用于新固件,必须重新标定。
- 次版本:新增参数或删除不影响安全运行的参数时递增。旧用户区数据可以保留,新参数取默认值。
- 修订号:仅修正默认值、注释或描述,不改变结构和含义。可直接沿用旧数据。
实际工程中,建议在参数表结构体中增加 version 和 crc32 字段,并在写入用户区时同步更新。上位机在连接设备后,应先读取版本号,再决定是否允许“一键恢复默认值”或“导入旧参数文件”。如果版本不匹配,应给出明确提示,而不是静默写入。
总结来看,MOTIX参数体系的核心逻辑是:分类决定“改什么”,参数表结构决定“怎么存”,默认值决定“起步点”,用户区与工厂区决定“谁能改”,版本与兼容性决定“能不能沿用”。把这五件事理清,后续的标定操作才有稳定的数据基础。