一直很喜欢玩数控系统,今天用STM32写了一个简单的多轴直线插补算法,(连续插补的加减速算法还未调试出来)。给大家参考。
方法是这样的: 先计算出理论要到达的坐标,然后用步进电机去逼近这个值。
由于资源不够(或者我的算法不好 ),输出的脉冲无法达到很快,不过插补精度比较高。
[mw_shl_code=c,true]//***************************************???????ú????/
s16 bujindianjizhixiangeijing(int64_t umx, int64_t umy, int64_t umz, int64_t speed)//mm/M
{
int64_t jueduijuli;
if(speed > bujindianjizuidasudu * 60)
{
speed = bujindianjizuidasudu * 60;
}
yudingsudu = speed / 60;
cankaomaichong = 0;
yuanzuobiao[ 0 ] = jueduizuobiao[ 0 ];
yuanzuobiao[ 1 ] = jueduizuobiao[ 1 ];
yuanzuobiao[ 2 ] = jueduizuobiao[ 2 ];
umx -= jueduizuobiao[ 0 ];
umy -= jueduizuobiao[ 1 ];
umz -= jueduizuobiao[ 2 ];
jueduijuli =sqrt(umx*umx + umy*umy +