ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
主函数为 STVELCTL_run(ST_VELCTL_Handle handle),其中 handle 是具体 ST_VelCtl_t 对象的指针。此函数运行 SpinTAC 速度控制。建议以电流控制器速率的五分之一或四分之一运行此控制器。
void STVELCTL_run(ST_VELCTL_Handle handle)
参数:
编号 | 类型 | 参数 | 说明 |
---|---|---|---|
1 | ST_VELCTL_Handle | Handle | ST_VelCtl_t 对象的指针 |
SpinTAC 速度控制状态转换图如图 4-6 所示。请注意,在图 4-6 中,IDLE 到 INIT、INIT 到 CONF 以及 CONF 到 BUSY 的状态转换在一个采样时间内发生。因此,控制器启用后会直接在该采样时间内工作。
表 4-6 说明了 SpinTAC 速度控制状态转换。
起始状态 | 结束状态 | 转换条件 | 操作 |
---|---|---|---|
IDLE |
|
||
INIT | RES == false 并且 ENB 在上升沿并且 ERR_ID == 0 | ||
INIT | 参数验证
|
||
IDLE | ERR_ID != 0 | 设置 ENB = false | |
CONF | ERR_ID == 0 | ||
CONF | BUSY | Inertia、BwScale 和 Friction 饱和至指定界限。如果发生饱和,ERR_ID 将为 1012、1013、1014 或 1016。 | |
BUSY | 生成控制信号 | ||
IDLE | RES == true 或 ENB == false | 设置 ENB = false | |
CONF | RES == false 并且 ENB == true 并且 BwScale、Inertia 或 Friction 发生变化 |