CN114279483A - 一种低功耗多圈编码器圈数纠错方法 - Google Patents
一种低功耗多圈编码器圈数纠错方法 Download PDFInfo
- Publication number
- CN114279483A CN114279483A CN202111647186.6A CN202111647186A CN114279483A CN 114279483 A CN114279483 A CN 114279483A CN 202111647186 A CN202111647186 A CN 202111647186A CN 114279483 A CN114279483 A CN 114279483A
- Authority
- CN
- China
- Prior art keywords
- area
- zone
- turn
- power consumption
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006698 induction Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000002618 waking effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 1
Images
Abstract
本发明公开了一种低功耗多圈编码器圈数纠错方法,涉及低功耗电子多圈编码器的控制方法领域。可有效避免因进入低功耗的瞬间编码器位置改变,并出现跳变时,导致下一次控制器被唤醒,出现圈数计算错误的问题。本发明在格雷码发生一次跳变时,不会立即判定为计圈错误或出现丢圈现象,先判断是否存在计圈错误,再判断进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域处在A组,B组还是C组,最后完成纠错。可以根据记录的前两次不同的格雷码对丢失的格雷码进行判断,推算出丢失的格雷码,再结合前两次不同的格雷码、推算出的格雷码和当前格雷码,可以正确计算圈数,提高了编码器计圈的可靠性和容错率。
Description
技术领域
本发明涉及低功耗电子多圈编码器的控制方法领域。
背景技术
目前,低功耗电子多圈编码器的多圈技术主要利用磁电方式,两个磁感应器件会产生两位格雷码信息。编码器按照固定方向旋转一圈两位格雷码连续变化顺序为00、01、11、10或00、10、11、01。电池供电期间,控制器进入低功耗状态,只有磁感应器件信号发生变化或外部电源上电时,控制器会被唤醒,然后计算圈数并记录当前的单圈位置。然而,格雷码的变化是在一瞬间完成的,时间非常短,而控制器进入低功耗所花费的时间t,比格雷码变化的时间要长,如果在控制器进入低功耗的时间t内,编码器位置变化,并且格雷码发生变化,控制器将无法记录格雷码的变化,从而丢失一次格雷码;这样,在某些情况下,下次控制器被唤醒,读取的格雷码将与上一次的格雷码将不再是连续的值,即出现跳变的情况,从而导致圈数计算错误,这种情况出现的概率并不会很高,容易被忽略,但随着编码器的使用,这样的错误将不断被累计,最终,给圈数的计数带来极为严重的影响。
发明内容
本发明针对以上问题,提出了一种低功耗多圈编码器圈数纠错方法,可有效避免因进入低功耗的瞬间编码器位置改变,并出现跳变时,导致下一次控制器被唤醒,出现圈数计算错误的问题。
本发明的技术方案为:按以下步骤进行:
S1、判断控制器是否由电池供电,如果不是电池供电,则进入步骤S2;如果是电池供电,则进入步骤S3;
S2、控制器处在主电工作过程,主电工作期间,记录单圈位置,并将唤醒标志位设置为0,结束后返回步骤S1;
S3、控制器进入低功耗模式;
此后,当磁感应器件电平发生变化或主电上电时,控制器从低功耗模式被唤醒;唤醒后,控制器判断唤醒标志位是否等于0;如果唤醒标志位不等于0,则进入正常计圈过程,结束后返回步骤S1;如果唤醒标志位等于0,则进行下一步;
S4、如果唤醒标志位等于0,则判断格雷码是否发生跳变;
如果格雷码没有发生跳变,则进入正常计圈过程,结束后返回步骤S1;如果格雷码发生跳变,则进行下一步;
S5、控制器判断进入低功耗模式之前记录的两个格雷码是否为连续变化;
如果不是连续变化,则判定为计圈错误,返回步骤S1;如果是连续变化,则进行下一步;
S6、控制器进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域具有16种可能,分别为{00,01,区域c}、{00,01,区域d }、{01,11,区域e}、{01,11,区域f}、{11,10,区域g}、{11,10,区域h}、{10,00,区域a}、{10,00,区域b}、{00,10,区域g}、{00,10,区域h}、{10,11,区域e}、{10,11,区域f}、{11,01,区域c}、{11,01,区域d}、{01,00,区域a}、{01,00,区域b};
将以上16种可能分为A、B、C三组;
A组包括;{00,01,区域d}、{01,11,区域e}、{11,10,区域g}、{10,00,区域b}、{00,10,区域g}、{10,11,区域e}、{11,01,区域d}、{01,00,区域b};
B组包括;{01,11,区域f}、{11,10,区域h}、{00,10,区域h}、{10,11,区域f};
C组包括;{00,01,区域c}、{10,00,区域a}、{11,01,区域c}、{01,00,区域a};
控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在A组中。如果在A组中,则圈数计数不变,完成纠错,返回步骤S1;如果不是,则进行下一步;
S7、控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在B组中;
如果在B组中,则将圈数计数+1,完成纠错,返回步骤S1;
如果不是,则必然在C组,则将圈数计数-1,完成纠错,返回步骤S1。
步骤S4中通过以下方法判断格雷码是否发生跳变:判断所读取到的格雷码是否为连续变化,如果是则不认为是发生跳变,如果不是则认为是发生跳变。
步骤S5判定为计圈错误后,先对编码器进行故障排除或更换,再返回步骤S1。
所述纠错方法加载于控制器中;
控制器保持运行状态,由电池供电时为低功耗模式,被唤醒后,如果唤醒标志位等于0,则先进行一次纠错再进入主电工作模式,进行正常计圈过程;正常计圈过程结束之后,重新进入低功耗模式,等待下一次唤醒。
本发明在格雷码发生一次跳变时,不会立即判定为计圈错误或出现丢圈现象,需要根据记录的前两次不同的格雷码和单圈位置对丢失的格雷码进行判断,推算出丢失的格雷码,再结合前两次不同的格雷码、单圈位置、推算出的格雷码和当前格雷码,可以正确计算圈数,提高了编码器计圈的可靠性和容错率。
附图说明
图1是本案的工作流程图,
图2是本案的工作原理示意图一,
图3是本案的工作原理示意图二,
图4是本案的工作原理示意图三,
图5是本案的工作原理示意图四。
具体实施方式
为能清楚说明本专利的技术特点,下面通过具体实施方式,并结合其附图,对本专利进行详细阐述。
编码器的正常计圈过程:两个磁感应器件将编码器一圈位置等分为4个区域,对应不同的格雷码。如图2所示,格雷码变化的位置都可以作为多圈零点,本案选取格雷码10和00的变化位置作为多圈零点,则0°~90°对应格雷码00,90°~180°对应格雷码01,180°~270°对应格雷码11,270°~360°对应格雷码10;当格雷码由10变为00时,圈数加1,当格雷码由00变为10时,圈数减1。
本发明方法:控制器唤醒时,格雷码发生跳变,如果只知道前两次不同的格雷码,还无法推算出丢失的格雷码。比如唤醒时,获取的格雷码是00,前两次不同的格雷码是10和11,那么丢失的格雷码存在在两种情况:可能是10,也可能是01。
如图3所示,本案将编码器一圈位置等分为8个区域,分别为区域a、区域b、区域c、区域d、区域e、区域f、区域g、区域h,其中,0°~45°为区域a,45°~90°为区域b,以此类推。主电供电期间,编码器会不断记录最新的单圈位置。为了准确推算出跳变的格雷码,主电供电期间,必须保证编码器记录最新单圈位置在8个区域中是连续变化,因此编码器记录最新位置的时间间隔必须小于,其中是最高转速,t是编码器进入低功耗模式所花费的时间t。
当格雷码发生跳变时,需要进行以下判断:如果前两次不同的格雷码是10和11,唤醒时,读取的格雷码是00,虽然同样是一次跳变,但会存在两种情况,丢失的格雷码可能是10,也可能是01,具体来说:
如图4所示,掉电前单圈位置在区域f中,此时,只有一种情况会导致跳变,即编码器在进入低功耗模式的时间t内,出现了位置变化,从区域f到了区域g,然后由于顺时针的电平变化唤醒编码器,使得格雷码跳变为00,从而可以推算出丢失的格雷码必然是10,因此,旋转过程中经过了多圈零点,圈数应该+1;如果是其他情况,因为格雷码仍然不变或仍然是连续变化,因此,将不视为跳变。
如图5所示,掉电前单圈位置是在区域e中,此时,只有一种情况会导致跳变,即编码器在进入低功耗模式的时间t内,出现了位置变化,从区域e到了区域d,然后由于逆时针的电平变化唤醒编码器,使得格雷码跳变为00,从而可以推算出丢失的格雷码是01,因此,旋转过程中没有经过多圈零点,圈数不变。其他情况同理。
本案的工作流程如图1所示,按以下步骤进行:
S1、判断控制器是否由电池供电,如果不是电池供电,则进入步骤S2;如果是电池供电,则进入步骤S3。
S2、控制器处在主电工作过程,主电工作期间,记录单圈位置,并将唤醒标志位设置为0,结束后返回步骤S1。如因主电工作而唤醒,则唤醒标志位记为0;如因电平变化而唤醒,则唤醒标志位记为1。由于跳变仅会出现在自主电工作至低功耗模式的情况下,因此,下一步需要先判断,控制器进入低功耗模式之前是否处在主电工作过程中,每次主电断开后,控制器进入低功耗,第一次唤醒(不管哪种方式唤醒)才执行纠错机制。
S3、控制器进入低功耗模式。
此后,当磁感应器件电平发生变化或主电上电时,控制器从低功耗模式被唤醒。唤醒后,控制器判断唤醒标志位是否等于0。如果唤醒标志位不等于0,即唤醒标志位为1,表示上一次因电平变化导致控制器被唤醒,则进入正常计圈过程,结束后返回步骤S1。如果唤醒标志位等于0,则进行下一步。
S4、如果唤醒标志位等于0,则判断格雷码是否发生跳变。即判断所读取到的格雷码是否为连续变化,如果是则不认为是发生跳变,如果不是则认为是发生跳变;
如果格雷码没有发生跳变,则进入正常计圈过程,结束后返回步骤S1。如果格雷码发生跳变,则进行下一步。
S5、控制器判断进入低功耗模式之前记录的两个格雷码是否为连续变化。
如果不是连续变化,则判定为计圈错误,判定为计圈错误后,对编码器进行故障排除或更换,再返回步骤S1。如果是连续变化,则进行下一步。
S6、控制器进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域具有16种可能,分别为{00,01,区域c}、{00,01,区域d }、{01,11,区域e}、{01,11,区域f}、{11,10,区域g}、{11,10,区域h}、{10,00,区域a}、{10,00,区域b}、{00,10,区域g}、{00,10,区域h}、{10,11,区域e}、{10,11,区域f}、{11,01,区域c}、{11,01,区域d}、{01,00,区域a}、{01,00,区域b},将以上16种可能分为A、B、C三组;
A组包括;{00,01,区域d}、{01,11,区域e}、{11,10,区域g}、{10,00,区域b}、{00,10,区域g}、{10,11,区域e}、{11,01,区域d}、{01,00,区域b};
B组包括;{01,11,区域f}、{11,10,区域h}、{00,10,区域h}、{10,11,区域f};
C组包括;{00,01,区域c}、{10,00,区域a}、{11,01,区域c}、{01,00,区域a};
控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在A组中。如果在A组中,则圈数计数不变,完成纠错,返回步骤S1。如果不是,则进行下一步。
具体来说:
{00,01,区域d},如果出现跳变,丢失的格雷码必然为11;
{01,11,区域e},如果出现跳变,丢失的格雷码必然为01;
{11,10,区域g},如果出现跳变,丢失的格雷码必然为11;
{10,00,区域b},如果出现跳变,丢失的格雷码必然为01;
{00,10,区域g},如果出现跳变,丢失的格雷码必然为11;
{10,11,区域e},如果出现跳变,丢失的格雷码必然为01;
{11,01,区域d},如果出现跳变,丢失的格雷码必然为11;
{01,00,区域b},如果出现跳变,丢失的格雷码必然为01;
而上述8种情况并不会导致计圈发生错误,因此,不调整圈数;
S7、控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在B组中。
如果在B组中,则将圈数计数+1,完成纠错,返回步骤S1。
具体来说:
{01,11,区域f},如果出现跳变,丢失的格雷码必然为10;
{11,10,区域h},如果出现跳变,丢失的格雷码必然为00;
{00,10,区域h},如果出现跳变,丢失的格雷码必然为00;
{10,11,区域f},如果出现跳变,丢失的格雷码必然为10;
而上述4种情况将会少记录一次10变为00,因此,少记录一次圈数增加,故需要将圈数+1;
如果不是,则必然在C组,则将圈数计数-1,完成纠错,返回步骤S1。
具体来说:
{00,01,区域c},如果出现跳变,丢失的格雷码必然为00;
{10,00,区域a},如果出现跳变,丢失的格雷码必然为10;
{11,01,区域c},如果出现跳变,丢失的格雷码必然为00;
{01,00,区域a},如果出现跳变,丢失的格雷码必然为10;
而上述4种情况将会少记录一次00变为10,因此,少记录一次圈数减少,故需要将圈数-1。
本发明具体实施途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (4)
1.一种低功耗多圈编码器圈数纠错方法,其特征在于,按以下步骤进行:
S1、判断控制器是否由电池供电,如果不是电池供电,则进入步骤S2;如果是电池供电,则进入步骤S3;
S2、控制器处在主电工作过程,主电工作期间,记录单圈位置,并将唤醒标志位设置为0,结束后返回步骤S1;
S3、控制器进入低功耗模式;
此后,当磁感应器件电平发生变化或主电上电时,控制器从低功耗模式被唤醒;唤醒后,控制器判断唤醒标志位是否等于0;如果唤醒标志位不等于0,则进入正常计圈过程,结束后返回步骤S1;如果唤醒标志位等于0,则进行下一步;
S4、如果唤醒标志位等于0,则判断格雷码是否发生跳变;
如果格雷码没有发生跳变,则进入正常计圈过程,结束后返回步骤S1;如果格雷码发生跳变,则进行下一步;
S5、控制器判断进入低功耗模式之前记录的两个格雷码是否为连续变化;
如果不是连续变化,则判定为计圈错误,返回步骤S1;如果是连续变化,则进行下一步;
S6、控制器进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域具有16种可能,分别为{00,01,区域c}、{00,01,区域d }、{01,11,区域e}、{01,11,区域f}、{11,10,区域g}、{11,10,区域h}、{10,00,区域a}、{10,00,区域b}、{00,10,区域g}、{00,10,区域h}、{10,11,区域e}、{10,11,区域f}、{11,01,区域c}、{11,01,区域d}、{01,00,区域a}、{01,00,区域b};
将以上16种可能分为A、B、C三组;
A组包括;{00,01,区域d}、{01,11,区域e}、{11,10,区域g}、{10,00,区域b}、{00,10,区域g}、{10,11,区域e}、{11,01,区域d}、{01,00,区域b};
B组包括;{01,11,区域f}、{11,10,区域h}、{00,10,区域h}、{10,11,区域f};
C组包括;{00,01,区域c}、{10,00,区域a}、{11,01,区域c}、{01,00,区域a};
控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在A组中。如果在A组中,则圈数计数不变,完成纠错,返回步骤S1;如果不是,则进行下一步;
S7、控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在B组中;
如果在B组中,则将圈数计数+1,完成纠错,返回步骤S1;
如果不是,则必然在C组,则将圈数计数-1,完成纠错,返回步骤S1。
2.根据权利要求1所述的一种低功耗多圈编码器圈数纠错方法,其特征在于,步骤S4中通过以下方法判断格雷码是否发生跳变:判断所读取到的格雷码是否为连续变化,如果是则不认为是发生跳变,如果不是则认为是发生跳变。
3.根据权利要求1所述的一种低功耗多圈编码器圈数纠错方法,其特征在于,步骤S5判定为计圈错误后,先对编码器进行故障排除或更换,再返回步骤S1。
4.根据权利要求1所述的一种低功耗多圈编码器圈数纠错方法,其特征在于,所述纠错方法加载于控制器中;
控制器保持运行状态,由电池供电时为低功耗模式,被唤醒后,如果唤醒标志位等于0,则先进行一次纠错再进入主电工作模式,进行正常计圈过程;正常计圈过程结束之后,重新进入低功耗模式,等待下一次唤醒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111647186.6A CN114279483B (zh) | 2021-12-30 | 一种低功耗多圈编码器圈数纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111647186.6A CN114279483B (zh) | 2021-12-30 | 一种低功耗多圈编码器圈数纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114279483A true CN114279483A (zh) | 2022-04-05 |
CN114279483B CN114279483B (zh) | 2024-05-14 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115031772A (zh) * | 2022-06-28 | 2022-09-09 | 重庆智能机器人研究院 | 一种交流伺服系统串行传输绝对式编码器值纠错方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103940457A (zh) * | 2014-05-12 | 2014-07-23 | 长春禹衡光学有限公司 | 一种电子式多圈编码器计圈的低功耗的实现方法 |
CN104246444A (zh) * | 2012-04-17 | 2014-12-24 | 三菱电机株式会社 | 多旋转编码器 |
US20150149112A1 (en) * | 2013-11-27 | 2015-05-28 | Dr. Johannes Heidenhain Gmbh | Multiturn Rotary Encoder |
CN107655510A (zh) * | 2017-03-02 | 2018-02-02 | 北京军立方机器人科技有限公司 | 一种多圈绝对值编码器及位置检测方法 |
EP3473986A1 (de) * | 2017-10-20 | 2019-04-24 | Dr. Johannes Heidenhain GmbH | Multiturn-drehgeber und verfahren zum betreiben eines multiturn-drehgebers |
CN109959327A (zh) * | 2017-12-14 | 2019-07-02 | 深圳市优必选科技有限公司 | 多圈舵机转动角度检测方法、装置、多圈舵机及存储介质 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246444A (zh) * | 2012-04-17 | 2014-12-24 | 三菱电机株式会社 | 多旋转编码器 |
US20150149112A1 (en) * | 2013-11-27 | 2015-05-28 | Dr. Johannes Heidenhain Gmbh | Multiturn Rotary Encoder |
CN103940457A (zh) * | 2014-05-12 | 2014-07-23 | 长春禹衡光学有限公司 | 一种电子式多圈编码器计圈的低功耗的实现方法 |
CN107655510A (zh) * | 2017-03-02 | 2018-02-02 | 北京军立方机器人科技有限公司 | 一种多圈绝对值编码器及位置检测方法 |
EP3473986A1 (de) * | 2017-10-20 | 2019-04-24 | Dr. Johannes Heidenhain GmbH | Multiturn-drehgeber und verfahren zum betreiben eines multiturn-drehgebers |
CN109959327A (zh) * | 2017-12-14 | 2019-07-02 | 深圳市优必选科技有限公司 | 多圈舵机转动角度检测方法、装置、多圈舵机及存储介质 |
Non-Patent Citations (1)
Title |
---|
胡军;赵国军;: "新型电梯轿厢绝对位置检测传感器的研究", 轻工机械, vol. 34, no. 02, 20 April 2016 (2016-04-20), pages 64 - 72 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115031772A (zh) * | 2022-06-28 | 2022-09-09 | 重庆智能机器人研究院 | 一种交流伺服系统串行传输绝对式编码器值纠错方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6745116B2 (en) | Steering angle sensor for vehicle | |
CN100460842C (zh) | 绝对转动角度和转矩的检测装置 | |
CN108844558B (zh) | 一种利用单圈绝对值编码器实现断电位置记忆的方法 | |
CN102132126B (zh) | 编码器系统、信号处理方法 | |
CN107655510B (zh) | 一种多圈绝对值编码器及位置检测方法 | |
CN101583852B (zh) | 绝对值编码器装置及多转检测方法 | |
JPWO2013157279A1 (ja) | 多回転エンコーダ | |
CN102183916A (zh) | 有限转角伺服转台用位置寻零方法 | |
CN106394669A (zh) | 传感器装置 | |
CN104677386B (zh) | 多匝旋转编码器 | |
CN114279483A (zh) | 一种低功耗多圈编码器圈数纠错方法 | |
CN114279483B (zh) | 一种低功耗多圈编码器圈数纠错方法 | |
CN104716965A (zh) | 一种bch软解码算法及其实现电路 | |
JP2004239737A (ja) | 回転角度検出装置及び回転角度検出方法 | |
JP2004190839A (ja) | 位置切換制御装置 | |
CN109814608B (zh) | 一种高精度定日镜基准位置定位检测方法及装置 | |
CN108860312B (zh) | 用于校准机动车的转向角传感装置的方法 | |
CN202255276U (zh) | 一种电机转子角度预测装置 | |
CN104553382B (zh) | 打印精度的处理方法和装置 | |
CN101082495B (zh) | 烧结台车位置跟踪装置及方法 | |
CN101586968B (zh) | 高解析绝对型编码装置及其操作方法 | |
CN201210254Y (zh) | 一种可用于机器人循迹的高精度循迹传感装置 | |
CN111824064B (zh) | 车辆防盗的方法及装置 | |
CN112678069A (zh) | 一种基于绝对传感器的车辆转向角测量系统 | |
CN103178832B (zh) | 一种利用增量型编码器的圈数记录方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |