前两篇我们知道了,mach3的加速度参数之间的关系,那如何用数学公式做出分散的与加速度有关的时间间隔点呢?
我们知道一个物体的加速度有下面几个公式
v=v0+at;
s=v0 t+1/2(a (t^2));
当v0为0时,则:
v=a*t;
s=1/2*(a*(t^2));
这几个公式都是在连续的时间段时的公式,但cnc只能按步来控制,也就是说这控制时间上时间是分散的,隔离的.
步进加速度分散点如下所示:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ---------加速----------匀速---------减速-------------从开始速度最小加速到速度最大(加速),后按最大速度运行(匀速),又从速度最大是降速到速度最小时(减速),每次的时隔不一,
这个怎才能算出来的呢
推论:
常量:
steps.per 每mm单位的步值
f 速度
a 加速度
加速到最高速时所用到的参数:
nm 所用的脉冲数量
fmax 最大时速时的频率(hz)
tmax 最大时间
加速到最高速时的频率: fmax= (f/60)*(steps.per)
加速到最高速时所用到的脉个数: nm=(fmax*tm)/2
加速到最高速时所用时间: tmax =(f/60)/a
加速到最高速时所用脉冲个数: nmax = (fmax*tmax)/2
由前几个公式推出分散点n所要时间与参数之间的关系:
tn^2= (2tmaxn)/fmax;
tn= sqrt((2tmaxn)/fmax);
理论有了,现在就按这个思路写出程序:
******
因为运算中有开根号与双精度运算,每次所调用的时间很大,为了提供更大的空间给插补运算,
所以提前在程序头中算好所需的时间,填入时间表中
但请注意,这里所需的内存很大,不过为了运行时间,这个还是值的.
#define steps_per 320
#define steps_mms 1200 //速度 mm/分钟
#define steps_a 120
u16 fmax(u16 steps_mms_s,u16 steps_per_s)
{
return (steps_mms_s/60)*steps_per_s;
}double tmax(u16 steps_mms_s, u16 steps_a_s)
{
return (double)(steps_mms_s/60)/steps_a_s;
}
u16 nmax(u16 fmax,double tmax)
{
return fmax * tmax/2;
}
fm = fmax(steps_mms,steps_per); tm = tmax(steps_mms,steps_a); nm= nmax(fmax(steps_mms,steps_per),tmax(steps_mms,steps_a));for(i=0;i {
tn=(sqrt((2*tm*i)/fm)*1000000)-tn_z; //因为算出来为秒,但在程序中用秒为时间单位会太大,所以就换成微秒 tn_z= sqrt((2*tm*i)/fm)*1000000;}本来是想做到运算器程序里,因本人图个快捷,就电子表格生成一个:
把时间间隔倒数后导入到电子表格中生成如下加速曲线表
这样更直观地反应参数之间的关系
区块链究竟是什么它有何价值
OPPO屏下摄像头对未来手机有什么影响
2020中国5G+工业互联网大会在湖北武汉顺利召开
耦合电容器的作用以及应用的详细介绍(一)
苹果一脸懵逼!美女居然扛iMac上火车:只为办公
MACH3脉冲的工作与输出(三)
mpu6050和mpu3050有什么不同和相同(基础介绍和区别分析)
单片机远程灯控箱的设计资料和源代码概述
防爆燃气探测器(隔爆型)的应用方案
蔡司三坐标检测方法详解
给你4000块,华为P10和iPhone7你怎么选?
OSD视频字符叠性能参数及应用
如何用手机拍出好看的动物和昆虫照片?
分析服务机器人市场现状及未来发展趋势
基本测试水温测量电路图
在春运即将来临之际推顺风车业务,哈啰意欲何为?
关于人体生物力学建模与仿真的座椅舒适性设计方案详解
三相鼠笼异步电机的缺相保护
典型控制系统电气原理图解析
比特币背后具有哪些强大的新技术