This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我设置 lab13C 来运行系统、以便在大约4mm 的2个点之间移动。 st 曲线与梯形曲线之间的位置移动似乎不同、我检查了编码器、但在梯形移动编码器计数小于 st 曲线期间似乎发生了变化。
如何使两种方法 开始停止为同一个位置?
我只是在侧面下面改变
//建立速度、加速、减速和最大急冲
velMax =_iq24 (USER_MOTOR_MAX_SPEED_KRPM * ST_SPEED_PU_PER_KRPM);
accMax =_iq24 (10.0);
jrkMax =_IQ20 (62.5);
//配置 SpinTAC 位置规划:采样时间,LoopENB
STPOSPLAN_setCfg (stObj->posPlanHandle、_IQ (ST_SAMPLE_TIME)、false);
//配置 HALT 状态:PosStep[MRev]、PosStepFrac[MRev]、VelEnd、AccMax、JrkMax、 计时器
STPOSPLAN_setCfgHaltState (stObj->posPlanHandle、0、0、velMax、accMax、 jrkMax、1000L);
//示例:STPOSPLAN_addCfgState (handle、PosStep[MRev]、PosStepFrac[MRev]、StateTimer[ticks]);
STPOSPLAN_addCfgState (stObj->posPlanHandle、0、0、0L);// StateIdx0:A
STPOSPLAN_addCfgState (stObj->posPlanHandle、0、_IQ24 (0.2)、20L);// StateIdx1:B _iQ24 (0.584)
STPOSPLAN_addCfgState (stObj->posPlanHandle、0、_IQ24 (-0.2)、20L);// StateIdx2:C
//示例:STPOSPLAN_addCfgTran (handle、FromState、ToState、CondOption、CondIdx1、 pupIdx2、VelLim [pups]、AccLim [pups2]、DecLim [Conditions2]、JrkLim [pps3]);
//注释:减速限制必须设置在以下范围内[加速限制,10*加速 限制]
STPOSPLAN_addCfgTran (stObj->posPlanHandle、State_A、State_B、ST_COND_NC、0、 0、_IQ (0.3 * ST_SPEED_PU_PER_KRPM)、_IQ24 (11)、_IQ24 (11)、_IQ24 (5)); //从 StateA 到 Stateb
STPOSPLAN_addCfgTran (stObj->posPlanHandle、State_B、State_C、ST_COND_NC、0、 0、_IQ (0.6 * ST_SPEED_PU_PER_KRPM)、_IQ24 (7)、_IQ24 (7)、_IQ24 (5)); //从 Stateb 到 STATEC
STPOSPLAN_addCfgTran (stObj->posPlanHandle、State_C、State_B、ST_COND_NC、0、 0、_IQ (0.6 * ST_SPEED_PU_PER_KRPM)、_IQ24 (7)、_IQ24 (7)、_IQ24 (5)); //从 STATEC 到 Stateb
}
梯形是否低于 st 曲线? 两种移动方法是否对要移动的编码器计数器的计数量相同?
我可以指定电机进行4mm 移动并且可以正确操作、但是 ST 曲线与梯形移动曲线类型之间似乎没有什么不同(梯形移动小于4mm)
最佳
Reza
梯形比 st 曲线的精度低吗? 不是两种移动方法都计算相同数量的编码器计数器要移动吗?
不同的轨迹规划。 您可以浏览 InstaSPIN-FOC 和 InstaSPIN-MOTION 用户指南 (https://www.ti.com/lit/spruhj1)中的第12章"InstaSPIN-MOTION 控制器"和第13章"轨迹规划"、这就是我们可以与您分享的所有信息。
谢谢、有没有机会在调试窗口中看到编码器计数器值?
我使用 Positionerror_mrev 作为参考误差、并在4mm 移动的0.2转子上得到0.012 Q24旋转误差、这意味着移动误差为0.24mm?
我将 spirtTac 增益参数设置为100、以尽可能减小误差、还有什么其他方法可以帮助提高精度? 增大编码器 PPR 可以帮助 spinTac 梯形移动变得更准确吗? 电机转速约为1200。
在 positionerror_mrv 显示几乎为0的单指令移动。我应该从 spinTac 移动并制作我自己的移动配置文件吗?
谢谢你。
您,有机会可以在调试窗口中看到编码器计数器值
您可以在 eQEP 寄存器中读取计数值。
[报价 userid="555021" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1257678/tms320f28069m-different-between-spintac-st-curve-and-trapezoidal-movement-accuracy/4762147 #4762147"]我设置 spirtTac 增益参数100以使误差尽可能小,任何其他方法都可以帮助提高准确度? 增大编码器 PPR 可以帮助 spinTac 梯形移动变得更准确吗? 电机转速约为1200。[/报价]这取决于您的系统要求。 请查看包含针对您的问题的中继指导的 InstaSPIN 用户指南。