一种使用s型曲线进行电机加减速的方法

文档序号:1630455 发布日期:2020-01-14 浏览:17次 >En<

阅读说明:本技术 一种使用s型曲线进行电机加减速的方法 (Method for accelerating and decelerating motor by using S-shaped curve ) 是由 杨君宜 卿建军 徐小涵 于 2019-09-06 设计创作,主要内容包括:本发明涉及一种使用S型曲线进行电机加减速的方法,属于计算机领域。该方法包括以下步骤:启动系统;设S型曲线的方程y=1/(1+e&lt;Sup&gt;-x&lt;/Sup&gt;);将该曲线应用在电机的加减速过程中,并将方程在XY坐标系进行平移,同时对曲线进行拉伸变化,公式为:y=A+B/(1+e&lt;Sup&gt;-ax+b&lt;/Sup&gt;);利用该公式计算加减速曲线,缓存到数组;触发定时器,根据数组中的缓存值设置速度,定时器循环计数;计数完毕,系统进入稳态。系统的实现方法更简便直观,同时控制电机时更平顺。(The invention relates to a method for accelerating and decelerating a motor by using an S-shaped curve, belonging to the field of computers. The method comprises the following steps: starting the system; let equation y of sigmoid curve be 1/(1&#43; e) ‑x ) (ii) a The curve is applied to the acceleration and deceleration process of the motor, the equation is translated in an XY coordinate system, and meanwhile, the curve is stretched and changed, and the formula is as follows: y is A &#43; B/(1&#43; e) ‑ax&#43;b ) (ii) a Calculating an acceleration curve and a deceleration curve by using the formula, and caching the curves into an array; triggering a timer, setting the speed according to the cache value in the array, and circularly counting by the timer; and after counting, the system enters a steady state. The system is simpler and more intuitive in implementation method, and meanwhile, the motor is controlled more smoothly.)

一种使用S型曲线进行电机加减速的方法

技术领域

本发明属于计算机领域,涉及一种使用S型曲线进行电机加减速的方法。

背景技术

步进电机启动时必须要有一个加减速的过程,不然会存在失步(如步进电机)、系统电流过大(如伺服电机)的问题。

通常的加减速方法是梯形加减速、或者抛物线型加减速。其速度曲线如图1所示。梯形加减速特性较差,不够平顺;基于抛物线的加减速涉及到抛物线的组合,算法复杂、加减速特性不好控制。

发明内容

有鉴于此,本发明的目的在于提供一种使用S型曲线进行电机加减速的方法,实现方法更简单、更科学、平顺性更好;解决了梯形加减速特性较差、不平顺的问题;还解决了基于抛物线的加减速曲线编程复杂、曲线特性不好控制的问题。

为达到上述目的,本发明提供如下技术方案:

一种使用S型曲线进行电机加减速的方法,该方法包括以下步骤:

启动系统;

设S型曲线的方程y=1/(1+e-x);

将该曲线应用在电机的加减速过程中,并将方程在XY坐标系进行平移,同时对曲线进行拉伸变化,公式为:y=A+B/(1+e-ax+b);

利用该公式计算加减速曲线,缓存到数组;

触发定时器,根据数组中的缓存值设置速度,定时器循环计数;

计数完毕,系统进入稳态。

一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现所述的方法所执行的操作。

一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的方法。

本发明的有益效果在于:系统的实现方法更简便直观,同时控制电机时更平顺。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:

图1为现有技术速度曲线图;

图2为本发明原理图;

图3为本发明流程图;

图4为本发明效果曲线图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

S型曲线的方程y=1/(1+e-x),在[-5,5]的图形如图2所示。

将此曲线应用在电机的加减速过程中,需要将方程在XY坐标系进行平移,同时对曲线进行拉伸变化,公式为:y=A+B/(1+e-ax+b)。实现的代码如下:

void CalculateSModelLine(float fre[],unsigned short period[],floatlen,float fre_max,float fre_min,float flexible)

{

Int i=0;

float deno;

float melo;

float delt=fre+max-fre_min;

{

melo=flexible*(i-len/2)/(len/2);

deno=1.0/(1+expf(-melo));//expf is a library function of exponential(e)

fre[i]=delt*deno+fre_min;

period[i]=(unsigned short)(10000000.0/fre[i])//10000000is the timerdriver frequency

}

Return;

}

工作流程如图3所示。

本发明的实现方法更简便直观,同时控制电机时更平顺。可以估算加速过程的时间和角位移,以橙色曲线为例:CalculateSModelLine(Freq,Period,1000,64000,500,8)为例(假设在中断中没有if(Count For Acc++>2)条件限制):

时间:Period第一个点的值为10000000/500=1ms,1000个点,总时间为1s,当然,起始频率大,加速度时间就越短,比如Fmin=16000Hz,Fmax=64000,则40ms左右即可完成加速度过程。

角位移:1.8(单步)*1000(步数)/4(细分)=450°

上述为加速过程,减速同样的道理,只要将方程改为:

Fcurrent=Fmax-(Fmax-Fmin)/(1+e-Flexible*(i-num)/num)

可以得到减速曲线如图4所示。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

可选的,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的使用S型曲线进行电机加减速的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种直线同步电机参数的测量方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!