步进电机驱动器及其任意细分算法

文档序号:10555232阅读:1312来源:国知局
步进电机驱动器及其任意细分算法
【专利摘要】本发明涉及电机技术领域,提供了一种步进电机驱动器及其任意细分算法,步进电机驱动器的任意细分算法包括以下步骤:设定脉冲当量为常量,并根据细分值获取相位范围,其中,所述相位范围是所述脉冲当量的整数倍;接收脉冲信号并根据所述脉冲信号和所述脉冲当量获取相对脉冲速度;根据所述相对脉冲速度获取当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍;根据所述细分值将所述当前时刻相位值转换成正弦表相位范围内所对应的角度;根据所述角度读取正弦表数据并输出相电流,实现用户任意选定细分后,其他变量都随之自动改变,从而避免了后期的人为操作。
【专利说明】
步进电机驱动器及其任意细分算法
技术领域
[0001]本发明涉及电机技术领域,尤其涉及一种步进电机驱动器及其任意细分算法。
【背景技术】
[0002]目前,在步进电机驱动器技术领域中,两项步进电机的步距角为1.8°,三相步进电机的步距角为1.2°,通过步进电机驱动器的电子齿轮功能,可以将步距角进一步细分成I/
2、l/4以及l/8等16种细分(折算成ppr为200、400、800等)。由于用户的不同需要,现有的16种细分无法满足用户需求,例如,用户要求特殊的细分ISOOppr、1700ppr等,需要驱动器厂家针对特殊细分做特殊处理,需要修改驱动器程序或参数,增加了驱动器厂家的工作量。综上所述,现有技术中存在用户对电机驱动器要求特殊细分时需要修改驱动器程序或参数导致工作量增加的问题。

【发明内容】

[0003]本发明的目的在于提供一种步进电机驱动器及其任意细分算法,以解决现有技术中存在用户对电机驱动器要求特殊细分时需要修改驱动器程序或参数导致工作量增加的问题。
[0004]本发明第一方面提供一种步进电机驱动器的任意细分算法,所述任意细分算法包括以下步骤:
[0005]根据细分值获取相对相位范围,设定脉冲当量为常量,其中,所述相对相位范围是所述脉冲当量的整数倍;
[0006]接收脉冲信号并根据所述脉冲信号和所述脉冲当量获取相对脉冲速度;
[0007]根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍;
[0008]根据所述细分值将所述当前时刻相位值转换成正弦表相位范围内所对应的角度;
[0009]根据所述角度读取正弦表数据并输出相电流
[0010]结合第一方面,在第一方面的第一种可能的实现方式中,所述根据细分值获取相位范围的步骤具体为:
[0011]将细分值与正弦表相位范围进行乘积运算以获取相对相位范围
[0012]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述相对脉冲速度获取当前时刻相位值的步骤具体为:
[0013]获取所述相对相位范围中的上一时刻相位值,并根据所述相对脉冲速度和所述上一时刻相位值获取所述相对相位范围中的当前时刻相位值。
[0014]结合第一方面,在第一方面的第三种可能的实现方式中,所述根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值的步骤还包括:
[0015]判断当前时刻相位值是否位于所述相对相位范围内,是,则采用当前时刻相位值,否,则将当前时刻相位值转换成所述相对相位范围内的相位值。
[0016]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将当前时刻相位值转换成所述相对相位范围内的相位值的步骤具体为:
[0017]在当前时刻相位值小于所述相对相位范围的最小值时,将当前时刻相位值与所述相对相位范围作加法运算;
[0018]在当前时刻相位值大于所述相对相位范围的最大值时,将当前时刻相位值与所述相对相位范围作减法运算。
[0019]本发明第二方面提供一种步进电机驱动器,步进电机驱动器装置包括:
[0020]相对相位范围获取单元,用于根据细分值获取相位范围;
[0021]脉冲当量设定单元,用于设定脉冲当量为定值,所述相对相位范围是所述脉冲当量的整数倍;
[0022]相对脉冲速度获取单元,用于接收脉冲信号并根据所述脉冲信号和所述脉冲当量获取相对脉冲速度;
[0023]当前时刻相位值获取单元,用于根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍;
[0024]相位转换单元,用于根据所述细分值将所述当前时刻相位值转换成正弦表相位范围内所对应的角度;
[0025]相电流计算单元,用于根据所述角度读取正弦表数据并输出相电流。
[0026]结合第二方面,在第二方面的第一种可能的实现方式中,所述相对相位范围获取单元根据细分值获取相对相位范围的过程为:
[0027]将细分值与正弦表相位范围进行乘积运算以获取相对相位范围。
[0028]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述当前时刻相位值获取单元根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值的过程为:
[0029]获取所述相对相位范围中的上一时刻相位值,并根据所述相对脉冲速度和所述上一时刻相位值获取所述相对相位范围中的当前时刻相位值。
[0030]结合第二方面,在第二方面的第三种可能的实现方式中,所述当前时刻相位值获取单元获取所述相对相位范围中的当前时刻相位值的过程还包括:
[0031]判断当前时刻相位值是否位于所述相对相位范围内,当判断结果为是时,采用当前时刻相位值,当判断结果为否时,将当前时刻相位值转换成所述相对相位范围内的相位值。
[0032]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述当前时刻相位值获取单元将当前时刻相位值转换成所述相对相位范围内的相位值的过程为:
[0033]在当前时刻相位值小于所述相对相位范围的最小值时,将当前时刻相位值与所述相对相位范围作加法运算;
[0034]在当前时刻相位值大于相位范围的最大值时,将当前时刻相位值与所述相对相位范围作减法运算。
[0035]本发明提供一种步进电机驱动器及其任意细分算法,在接收脉冲时,根据脉冲信号和脉冲当量获取相对脉冲速度,并进而获取当前时刻相位值,将当前时刻相位值转换成正弦表相位范围内所对应的相位值,根据正弦表数据输出相电流,根据用户设定的细分值,选取合适的脉冲当量,并使总步长变成因细分改动而动态变动的变量,根据变动后的总步长进行对当前时刻相位值的转换,实现用户任意选定细分后,其他变量都随之自动改变,从而避免了后期的人为操作。
【附图说明】
[0036]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1是本发明一种实施例提供的一种步进电机驱动器的任意细分算法的流程图;
[0038]图2是本发明一种实施例提供的一种步进电机驱动器的任意细分算法中的时间与相位波形图;
[0039]图3是本发明一种实施例提供的一种步进电机驱动器的任意细分算法中的正弦相位波形示意图;
[0040]图4是本发明另一种实施例提供的一种步进电机驱动器的任意细分算法的流程图;
[0041]图5是本发明另一种实施例提供的一种步进电机驱动器的结构示意图;
[0042]图6是本发明另一种实施例提供的一种步进电机驱动器的结构示意图。
【具体实施方式】
[0043]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]为了说明本发明的技术方案,下面通过具体实施例来进行说明。
[0045]本发明实施例提供一种步进电机驱动器的任意细分算法,如图1所示,该任意细分算法包括以下步骤:
[0046]步骤S101.根据细分值获取相对相位范围,设定脉冲当量为常量,其中,相对相位范围是所述脉冲当量的整数倍。
[0047]在本步骤中,具体的,相对相位范围是由正弦表相位范围和细分值之间的乘积所得到的,正弦表相位范围是预先设定的,正弦表相位范围通过细分值与相对相位范围内的相位值相对应,设定脉冲当量为常量,并保持不变,脉冲当量根据相对相位范围确定,通常使相对相位范围是脉冲当量的整数倍。
[0048]步骤S102.接收脉冲信号并根据脉冲信号和脉冲当量获取相对脉冲速度。
[0049]在本步骤中,具体的,步进电机驱动器接收到脉冲信号后,将脉冲信号数量转换成程序内部的相对脉冲速度,相对脉冲速度与脉冲信号数量以及脉冲当量有关,相对脉冲速度为脉冲信号数量与脉冲当量的乘积。
[0050]步骤S103.根据相对脉冲速度获取相对相位范围内的当前时刻相位值,其中,当前时刻相位值是细分值的整数倍。
[0051]在本步骤中,具体的,获取相对相位范围内的上一时刻相位值,并根据相对脉冲速度和上一时刻相位值获取当前时刻相位值,如图2所示,根据相位范围的时间与相位的对应关系曲线,可以得到上一时刻相位值yi,再将相对脉冲速度与上一时刻相位值yi进行加法运算后得到当前时刻相位值y2,由于相对相位范围是正弦表相位范围乘以细分值得到的,所以相对相位范围中的每一个相位值均与正弦表相位范围中的相位相对应,两者相差细分值倍。
[0052]步骤S104.根据细分值将当前时刻相位值转换成正弦表相位范围内所对应的角度。
[0053]在步骤S104中,具体的,将当前时刻相位值与细分值作除法运算获取正弦表所相位范围内对应的角度。
[0054]步骤S105.根据角度读取正弦表数据并输出相电流。
[0055]在步骤S105中,如图3所示,具体的,该正弦表包括角度与相电流的对应关系,可以直接根据角度读取其对应的相电流,并将该相电流输出给功率驱动模块以驱动电机。
[°°56] 本发明实施例的工作原理如下:假定细分为PulsePpr (如4000,则相当于4000个脉冲电机转动一圈),选取脉冲当量为PulseA,步进电机正弦表的相位范围为StepSineL,一般正弦表的相位范围StepSineL的大小取决于CPU的容量,但必须与正弦周期步长成正比,此时,相对相位范围为StepSineA = PulsePpr X StepSineL,并且,在选取脉冲当量时,通常设置相对相位范围是脉冲当量的整数倍;当接收脉冲信号η时,获取相对脉冲速度V = n XPulseA,在相对相位范围中获取上一时刻相位值,其中,相位值满足以下公式Wti = WtQ+nXPulseA,其中,由于第一时刻的相位值为相对相位范围为内的相位值,则其后每一时刻的相位值均为相对相位范围内的相位值,假设正弦表的相位范围StepSineL为2400,则相位范围为2400PulsePpr,那么位于相位范围的相位值均为细分值的整数倍,此时获取的当前时刻相位值可以对细分值进行整除,即可以转换至正弦表相位范围内,因此实现了对步进电机的任意细分。
[0057]本发明实施例提供一种步进电机驱动器的任意细分算法,如图4所示,该任意细分算法包括以下步骤:
[0058]步骤S301.根据细分值获取相对相位范围,设定脉冲当量为常量,其中,相对相位范围是所述脉冲当量的整数倍。
[0059]步骤S301与上述步骤SlOl相同,在此不再赘述。
[0060]步骤S302.接收脉冲信号并根据脉冲信号和脉冲当量获取相对脉冲速度。
[0061 ] 步骤S302与上述步骤S102相同,在此不再赘述。
[0062]步骤S303.根据相对脉冲速度获取当前时刻相位值,判断当前时刻相位值是否位于相对相位范围内,是,则执行步骤S304,否,则执行步骤S305。
[0063]步骤S304.采用当前时刻相位值。
[0064]步骤S305.将当前时刻相位值转换成相对相位范围内的相位值。
[0065]对于步骤S305,将当前时刻相位值转换成相位范围内的相位值的步骤具体为:
[0066]在当前时刻相位值小于相位范围的最小值时,将当前时刻相位值与相位范围值作加法运算;
[0067]在当前时刻相位值大于相位范围的最大值时,将当前时刻相位值与相位范围值作减法运算。
[0068]上述步骤S302至步骤S305的作用主要是将获得的当前时刻相位值转换至相位范围内。
[0069]步骤S306.根据细分值将当前时刻相位值转换成正弦表相位范围内所对应的角度。
[0070]步骤S307.根据角度读取正弦表数据并输出相电流。
[0071]本发明另一种实施例提供一种步进电机驱动器,如图5所示,步进电机驱动器装置包括:
[0072]相对相位范围获取单元211,用于根据细分值获取相位范围;
[0073]脉冲当量设定单元210,用于设定脉冲当量为定值,相对相位范围是脉冲当量的整数倍;
[0074]相对脉冲速度获取单元201,用于接收脉冲信号并根据脉冲信号和脉冲当量获取相对脉冲速度;
[0075]当前时刻相位值获取单元202,用于根据相对脉冲速度获取相对相位范围中的当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍;
[0076]相位转换单元203,用于根据细分值将当前时刻相位值转换成正弦表相位范围内所对应的角度;
[0077]相电流计算单元204,用于根据所述角度读取正弦表数据并输出相电流。
[0078]对于相对相位范围获取单元211,其获取相对相位范围为将细分值与正弦表相位范围进行乘积运算。
[0079]对于脉冲当量设定单元210,其用于设定脉冲当量为定值,并保持该值不变,脉冲当量根据相对相位范围确定,通常使相对相位范围是脉冲当量的整数倍。
[0080]对于相对脉冲速度获取单元201,接收到脉冲信号后,将脉冲信号数量转换成程序内部的相对脉冲速度,相对脉冲速度与脉冲信号数量以及脉冲当量有关,脉冲当量根据用户指定的细分确定,相对脉冲速度为脉冲信号数量与脉冲当量的乘积。
[0081 ]当前时刻相位值获取单元202根据相对脉冲速度获取当前时刻相位值的过程为:
[0082]获取上一时刻相位值,并根据相对脉冲速度和上一时刻相位值获取当前时刻相位值。
[0083]其中,当前时刻相位值获取单元202,当前时刻相位值获取单元202获取当前时刻相位值的过程为:
[0084]判断当前时刻相位值是否位于相对相位范围内,当判断结果为是时,采用当前时刻相位值,当判断结果为否时,将当前时刻相位值转换成相对相位范围内的相位值。
[0085]进一步的,当前时刻相位值获取单元将当前时刻相位值转换成相对相位范围内的相位值的过程为:
[0086]在当前时刻相位值小于相对相位范围的最小值时,将当前时刻相位值与相对相位范围值作加法运算;
[0087]在当前时刻相位值大于相对相位范围的最大值时,将当前时刻相位值与相对相位范围值作剪发运算。
[0088]上述当前时刻相位值获取单元202的作用主要是将检测到的当前时刻相位值转换至相对相位范围内。
[0089]本发明实施例的工作原理如下:假定细分为PulsePpr(如4000,则相当于4000个脉冲电机转动一圈),选取脉冲当量为PulseA,步进电机正弦表的相位范围为StepSineL,一般正弦表的相位范围StepSineL的大小取决于CPU的容量,但必须与正弦周期步长成正比,此时,相对相位范围为StepSineA = PulsePpr X StepSineL,并且,在选取脉冲当量时,通常设置相对相位范围是脉冲当量的整数倍;当接收脉冲信号η时,获取相对脉冲速度V = n XPulseA,在相对相位范围中获取上一时刻相位值,其中,相位值满足以下公式Wti = WtQ+nXPulseA,其中,由于第一时刻的相位值为相对相位范围为内的相位值,则其后每一时刻的相位值均为相对相位范围内的相位值,假设正弦表的相位范围StepSineL为2400,则相位范围为2400PulsePpr,那么位于相位范围的相位值均为细分值的整数倍,此时获取的当前时刻相位值可以对细分值进行整除,即可以转换至正弦表相位范围内,因此实现了对步进电机的任意细分。
[0090]进一步的,如图6所示,本发明实施例一种步进电机驱动器还包括PI算法校正单元205、功率驱动单元206以及电流传感器207,电流传感器207进行电流采样,PI算法校正单元205根据采样电流对相电流进行PI调节,并输出调制信号给功率驱动单元206,功率驱动单元206驱动步进电机208工作。
[0091]本发明提供一种步进电机驱动器及其任意细分算法,在接收脉冲时,根据脉冲信号和脉冲当量获取相对脉冲速度,并进而获取当前时刻相位值,将当前时刻相位值转换成正弦表相位范围内所对应的相位值,根据正弦表数据输出相电流,根据用户设定的细分值,选取合适的脉冲当量,并使总步长变成因细分改动而动态变动的变量,根据变动后的总步长进行对当前时刻相位值的转换,实现用户任意选定细分后,其他变量都随之自动改变,从而避免了后期的人为操作。
[0092]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
【主权项】
1.一种步进电机驱动器的任意细分算法,其特征在于,所述任意细分算法包括以下步骤: 根据细分值获取相对相位范围,设定脉冲当量为常量,其中,所述相对相位范围是所述脉冲当量的整数倍; 接收脉冲信号并根据所述脉冲信号和所述脉冲当量获取相对脉冲速度; 根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍; 根据所述细分值将所述当前时刻相位值转换成正弦表相位范围内所对应的角度; 根据所述角度读取正弦表数据并输出相电流。2.如权利要求1所述的任意细分算法,其特征在于,所述根据细分值获取相对相位范围的步骤具体为: 将细分值与正弦表相位范围进行乘积运算以获取相对相位范围。3.如权利要求2所述的任意细分算法,其特征在于,所述根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值的步骤具体为: 获取所述相对相位范围中的上一时刻相位值,并根据所述相对脉冲速度和所述上一时刻相位值获取所述相对相位范围中的当前时刻相位值。4.如权利要求3所述的任意细分算法,其特征在于,所述根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值的步骤还包括: 判断当前时刻相位值是否位于所述相对相位范围内,是,则采用当前时刻相位值,否,则将当前时刻相位值转换成所述相对相位范围内的相位值。5.如权利要求4所述的任意细分算法,其特征在于,所述将当前时刻相位值转换成所述相对相位范围内的相位值的步骤具体为: 在当前时刻相位值小于所述相对相位范围的最小值时,将当前时刻相位值与所述相对相位范围作加法运算; 在当前时刻相位值大于所述相对相位范围的最大值时,将当前时刻相位值与所述相对相位范围作减法运算。6.一种步进电机驱动器,其特征在于,步进电机驱动器装置包括: 相对相位范围获取单元,用于根据细分值获取相位范围; 脉冲当量设定单元,用于设定脉冲当量为定值,所述相对相位范围是所述脉冲当量的整数倍; 相对脉冲速度获取单元,用于接收脉冲信号并根据所述脉冲信号和所述脉冲当量获取相对脉冲速度; 当前时刻相位值获取单元,用于根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值,其中,所述当前时刻相位值是所述细分值的整数倍; 相位转换单元,用于根据所述细分值将所述当前时刻相位值转换成正弦表相位范围内所对应的角度; 相电流计算单元,用于根据所述角度读取正弦表数据并输出相电流。7.如权利要求6所述的步进电机驱动器,其特征在于,所述相对相位范围获取单元根据细分值获取相对相位范围的过程为: 将细分值与正弦表相位范围进行乘积运算以获取相对相位范围。8.如权利要求7所述的步进电机驱动器,其特征在于,所述当前时刻相位值获取单元根据所述相对脉冲速度获取所述相对相位范围中的当前时刻相位值的过程为: 获取所述相对相位范围中的上一时刻相位值,并根据所述相对脉冲速度和所述上一时刻相位值获取所述相对相位范围中的当前时刻相位值。9.如权利要求7所述的步进电机驱动器,其特征在于,所述当前时刻相位值获取单元获取所述相对相位范围中的当前时刻相位值的过程还包括: 判断当前时刻相位值是否位于所述相对相位范围内,当判断结果为是时,采用当前时刻相位值,当判断结果为否时,将当前时刻相位值转换成所述相对相位范围内的相位值。10.如权利要求9所述的步进电机驱动器,其特征在于,所述当前时刻相位值获取单元将当前时刻相位值转换成所述相对相位范围内的相位值的过程为: 在当前时刻相位值小于所述相对相位范围的最小值时,将当前时刻相位值与所述相对相位范围作加法运算; 在当前时刻相位值大于相位范围的最大值时,将当前时刻相位值与所述相对相位范围作减法运算。
【文档编号】H02P8/18GK105915133SQ201610243054
【公开日】2016年8月31日
【申请日】2016年4月19日
【发明人】陈占军
【申请人】深圳星火自动化科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1