马达控制方法、装置、设备及计算机可读存储介质与流程

文档序号:28748526发布日期:2022-02-07 23:54阅读:45来源:国知局
马达控制方法、装置、设备及计算机可读存储介质与流程

1.本发明涉及马达技术领域,尤其涉及一种马达控制方法、装置、设备及计算机可读存储介质。


背景技术:

2.马达在电子设备产品中的应用越来越普及,例如线性马达(linear resonant actuator,lra)凭借其振感强烈、丰富、清脆,能耗低等优点,已经广泛应用于消费电子的各种振动场合,尤其是游戏与ar/vr产品。通过构造多样化的宽频振动波形(加速度波形),马达可以实现非常丰富、真实的振感反馈。然而,游戏开发者在构造振动波形时,由于并不准确知道马达的具体物理特性和控制算法,因此难以保证该振动波形所需的驱动电压幅值始终在马达硬件驱动电路输出电压峰值的范围内。当所需驱动电压超过硬件驱动电路输出电压峰值时,实际驱动电压将被限制在该峰值从而与预期驱动电压产生较大偏差,最终产生的实际振动波动与所构造的振动波形差异较大,影响实际的振动效果。


技术实现要素:

3.本发明的主要目的在于提供一种马达控制方法、装置、设备及计算机可读存储介质,旨在解决当所需驱动电压受限于马达硬件驱动电路输出的电压峰值时,产生的实际振动波形与构造的振动波形差异较大,从而导致马达的实际振动效果与预期的振动效果差异较大的技术问题。
4.为实现上述目的,本发明提供一种马达控制方法,所述方法包括以下步骤:
5.对目标加速度波形进行采样得到第一加速度数据,其中,所述第一加速度数据包括多个加速度采样值;
6.根据所述第一加速度数据计算得到第一驱动电压数据;
7.根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据,并基于所述第二驱动电压数据驱动所述马达振动,其中,所述第二驱动电压数据中的电压值绝对值不大于所述输出电压峰值。
8.可选地,所述根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据的步骤包括:
9.将所述输出电压峰值除以所述第一驱动电压数据中各个电压值的绝对峰值得到调整系数,并判断所述调整系数是否小于1;
10.若所述调整系数大于或等于1,则将所述第一驱动电压数据作为第二驱动电压数据;
11.若所述调整系数小于1,则将所述第一驱动电压数据中各个电压值分别乘以所述调整系数得到各个调整后的电压值,将各个调整后的电压值作为第二驱动电压数据。
12.可选地,所述对目标加速度波形进行采样得到第一加速度数据的步骤包括:
13.对目标加速度波形按照第一时长进行采样得到第一加速度数据,其中,所述第一
加速度数据的时间跨度为所述第一时长;
14.所述基于所述第二驱动电压数据驱动所述马达振动的步骤之后,还包括:
15.获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态;
16.若所述马达振动状态为延时状态,则对所述第一时长进行调整得到第二时长,以基于所述第二时长对所述目标加速度波形继续进行采样,其中,所述第二时长小于所述第一时长。
17.可选地,所述获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态的步骤之后,还包括:
18.若所述马达振动状态为失真状态,则对所述第一时长进行调整得到第三时长,以基于所述第三时长对所述目标加速度波形继续进行采样,其中,所述第三时长大于所述第一时长。
19.可选地,所述对目标加速度波形进行采样得到第一加速度数据的步骤之前,还包括:
20.获取原始加速度波形和所述马达的扫频特性带宽;
21.根据所述扫频特性带宽设置滤波器的参数后采用所述滤波器对所述原始加速度波形进行滤波得到目标加速度波形。
22.可选地,所述根据所述第一加速度数据计算得到第一驱动电压数据的步骤包括:
23.获取所述马达的马达参数,其中,所述马达参数包括振子质量、磁场强度、弹簧劲度系数、阻尼系数、线圈直流电阻;
24.根据所述第一加速度数据和所述马达参数按照所述马达的电压和加速度之间的转换公式计算得到第一驱动电压数据。
25.可选地,所述基于所述第二驱动电压数据驱动所述马达振动的步骤包括:
26.基于所述第二驱动电压计算第二加速度数据,并根据所述第二加速度数据对所述目标加速度波形进行调整并输出;
27.根据所述第二加速度数据计算第三驱动电压数据,将所述第三驱动电压数据输入所述马达的功率放大器,通过所述功率放大器对所述第三驱动电压数据进行功率放大以驱动所述马达振动。
28.为实现上述目的,本发明还提供一种马达控制装置,所述装置包括:
29.采样模块,用于对目标加速度波形进行采样得到第一加速度数据,其中,所述第一加速度数据包括多个加速度采样值;
30.计算模块,用于根据所述第一加速度数据计算得到第一驱动电压数据;
31.调整驱动模块,用于根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据,并基于所述第二驱动电压数据驱动所述马达振动,其中,所述第二驱动电压数据中的电压值绝对值不大于所述输出电压峰值。
32.为实现上述目的,本发明还提供一种马达控制设备,所述马达控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的马达控制程序,所述马达控制程序被所述处理器执行时实现如上所述的马达控制方法的步骤。
33.此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有马达控制程序,所述马达控制程序被处理器执行时实现如上所述的马达
控制方法的步骤。
34.本发明中,通过对目标加速度波形进行采样得到加速度数据,根据加速度数据预测所需的驱动电压数据,对所需的驱动电压数据进行线性调整,使得调整后的电压值绝对值不大于硬件驱动电路的输出电压峰值,且驱动电压的波形与目标加速度对应的驱动电压波形一致,根据预测得到的驱动电压驱动马达振动,使得当目标加速度波形所需的驱动电压大于硬件驱动电路的输出电压峰值时,能够通过对电压进行线性调整,避免加速度波形所需的驱动电压超过硬件驱动电路的输出电压峰值,在实际的驱动电压受限于硬件驱动电路输出的电压峰值时,可以减小实际的振动波形与期望的振动波形的差异,以保证马达的实际振动效果与预期的振动效果差异较小。
附图说明
35.图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
36.图2为本发明马达控制方法第一实施例的流程示意图;
37.图3为本发明马达控制装置较佳实施例的功能模块示意图。
38.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
39.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
40.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
41.需要说明的是,本发明实施例马达控制设备,所述马达控制设备可以设置在智能手机、个人计算机、游戏机、vr/ar设备等电子设备中,在此不做具体限制。
42.如图1所示,该马达控制设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
43.本领域技术人员可以理解,图1中示出的设备结构并不构成对马达控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
44.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及马达控制程序。操作系统是管理和控制设备硬件和软件资源的程序,支持马达控制程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的马达控制程序,并执行以下操作:
45.对目标加速度波形进行采样得到第一加速度数据,其中,所述第一加速度数据包括多个加速度采样值;
46.根据所述第一加速度数据计算得到第一驱动电压数据;
47.根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线
性调整得到第二驱动电压数据,并基于所述第二驱动电压数据驱动所述马达振动,其中,所述第二驱动电压数据中的电压值绝对值不大于所述输出电压峰值。
48.进一步地,所述根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据的步骤包括:
49.将所述输出电压峰值除以所述第一驱动电压数据中各个电压值的绝对峰值得到调整系数,并判断所述调整系数是否小于1;
50.若所述调整系数大于或等于1,则将所述第一驱动电压数据作为第二驱动电压数据;
51.若所述调整系数小于1,则将所述第一驱动电压数据中各个电压值分别乘以所述调整系数得到各个调整后的电压值,将各个调整后的电压值作为第二驱动电压数据。
52.进一步地,所述对目标加速度波形进行采样得到第一加速度数据的步骤包括:
53.对目标加速度波形按照第一时长进行采样得到第一加速度数据,其中,所述第一加速度数据的时间跨度为所述第一时长;
54.所述基于所述第二驱动电压数据驱动所述马达振动的步骤之后,还包括:
55.获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态;
56.若所述马达振动状态为延时状态,则对所述第一时长进行调整得到第二时长,以基于所述第二时长对所述目标加速度波形继续进行采样,其中,所述第二时长小于所述第一时长。
57.进一步地,所述获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态的步骤之后,还包括:
58.若所述马达振动状态为失真状态,则对所述第一时长进行调整得到第三时长,以基于所述第三时长对所述目标加速度波形继续进行采样,其中,所述第三时长大于所述第一时长。
59.进一步地,所述对目标加速度波形进行采样得到第一加速度数据的步骤之前,还包括:
60.获取原始加速度波形和所述马达的扫频特性带宽;
61.根据所述扫频特性带宽设置滤波器的参数后采用所述滤波器对所述原始加速度波形进行滤波得到目标加速度波形。
62.进一步地,所述根据所述第一加速度数据计算得到第一驱动电压数据的步骤包括:
63.获取所述马达的马达参数,其中,所述马达参数包括振子质量、磁场强度、弹簧劲度系数、阻尼系数、线圈直流电阻;
64.根据所述第一加速度数据和所述马达参数按照所述马达的电压和加速度之间的转换公式计算得到第一驱动电压数据。
65.进一步地,所述基于所述第二驱动电压数据驱动所述马达振动的步骤包括:
66.基于所述第二驱动电压计算第二加速度数据,并根据所述第二加速度数据对所述目标加速度波形进行调整并输出;
67.根据所述第二加速度数据计算第三驱动电压数据,将所述第三驱动电压数据输入所述马达的功率放大器,通过所述功率放大器对所述第三驱动电压数据进行功率放大以驱
动所述马达振动。
68.基于上述的结构,提出马达控制方法的各个实施例。
69.参照图2,图2为本发明马达控制方法第一实施例的流程示意图。
70.本发明实施例提供了马达控制方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,马达控制方法的执行主体可以是用于驱动马达振动的马达控制设备,具体可以包括但不限于马达驱动电路、滤波器等组成部件。马达控制设备可以设置在智能手机、个人电脑、游戏机、vr/ar设备等电子设备中,在本实施例中并不做限制。以下省略执行主体进行各实施例的阐述。在本实施例中,所述马达控制方法包括:
71.步骤s10,对目标加速度波形进行采样得到第一加速度数据,其中,所述第一加速度数据包括多个加速度采样值;
72.在本实施例中,马达可以是各种振动马达,例如,转子马达和线性马达等。为使得马达达到一定的振动效果,可以输入一个目标加速度波形(也即目标振动波形),根据目标加速度波形预测驱动电压,期望通过驱动电压驱动马达振动达到的实际加速度波形能够尽量与该目标加速度波形一致,从而达到预期的振动效果。在具体应用场景中,目标加速度波形可以是根据游戏场景定制设计的宽频信号,也可以是游戏应用实际输出的音效。
73.为避免达到目标加速度波形所需的驱动电压超过硬件驱动电路的输出电压峰值范围,在本实施例中,根据硬件驱动电路的输出电压峰值,对目标加速度波形对应的驱动电压进行调整,通过对驱动电压的调整对目标加速度波形对应的加速度进行调整,使得调整后的加速度所需的驱动电压不会超过硬件驱动电路的输出电压峰值,避免因受限于硬件驱动电路的输出电压峰值而使得马达的实际加速度波形与目标加速度波形相差太大。
74.具体地,对输入的目标加速度波形进行采样,在进行采样时,每次可以是对一帧目标加速度波形进行采样,也可以是对多帧目标加速度波形同时进行采样,在此不作限定。以一次对一帧目标加速度波形进行采样为例,每采样得到一帧加速度数据,对采样得到的该帧加速度数据进行处理得到一帧驱动电压数据,依据该帧驱动电压数据驱动马达振动。其中,采样频率可以是预先根据需要进行设置的,例如设置为48khz;在对目标加速度波形进行采样的过程中也可以根据需要对采样频率进行动态调整,也即,上一帧第一加速度数据的采样频率与下一帧第一加速度数据的采样频率可能不同;单帧加速度数据的时间跨度可以是预先根据需要进行设置,例如设置为1ms,那么当采样频率为48khz时,一帧第一加速度数据包括48个加速度采样值;一帧第一加速度数据包括多个加速度采样值,调整单帧加速度数据的时间跨度和采样频率都可以改变一帧第一加速度数据中所包括的加速度采样值的个数;在对目标加速度波形进行采样的过程中,也可以根据需要对时间跨度进行动态调整,也即,上一帧第一加速度数据的时间跨度与下一帧第一加速度数据的时间跨度可能不同。
75.由于对采样得到的每帧加速度数据的处理方法相同,以下以一帧加速度数据为例进行阐述,并称为第一加速度数据以示区分。
76.步骤s20,根据所述第一加速度数据计算得到第一驱动电压数据;
77.对采样得到的第一加速度数据,先根据该第一加速度数据计算得到驱动电压数据(以下称为第一驱动电压数据以示区分)。可以理解的是,第一驱动电压数据是计算得到的
能够使得马达振动的实际加速度波形能够与第一加速度数据对应的加速度波形一致的电压数据。具体实施方式中,根据电压与加速度之间的传递特性,可以预先设置电压与加速度之间的转换公式,将第一加速度数据中各个加速度采样值带入该转换公式,计算得到各个加速度采样值对应的驱动电压值,各个驱动电压值即计算得到的第一驱动电压数据。其中,电压与加速度之间的转换公式可以采用双线性变换方法、单位脉冲响应不变法或欧拉离散法能变换方法,根据马达的电压和加速度之间的传递特性变换得到,在本实施例中对转换公式并不做限制。
78.步骤s30,根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据,并基于所述第二驱动电压数据驱动所述马达振动,其中,所述第二驱动电压数据中的电压值绝对值不大于所述输出电压峰值。
79.在计算得到第一驱动电压数据后,即可根据马达的硬件驱动电路的输出电压峰值,对第一驱动电压数据进行线性调整得到第二驱动电压数据,调整得到的第二驱动电压数据中的电压值绝对值是不大于该输出电压峰值的。也即,当第一驱动电压数据中电压值的绝对值大于输出电压峰值时,需要对第一驱动电压数据进行调整,以使得调整得到的第二驱动电压数据中的电压值绝对值是不大于输出电压峰值的。在本实施例中对第一驱动电压数据进行线性调整的方式并不做限制,例如在一实施方式中,可以将第一驱动电压数据中的电压值同比例缩放,使得第一驱动电压数据中绝对值最大的电压值缩放后的电压值不大于输出电压峰值,再保留其原符号,从而得到第二驱动电压数据。由于第二驱动电压数据是在目标加速度波形对应的驱动电压的基础上进行线性调整得到的,因此,第二驱动电压数据对应的加速度波形与目标加速度波形差异不大,在基于第二驱动电压数据驱动马达振动时,可以保证实际的振动效果与预期的振动效果差异较小。
80.进一步地,在一实施方式中,所述步骤s30的细化,还包括:
81.步骤s31,基于所述第二驱动电压计算第二加速度数据,并根据所述第二加速度数据对所述目标加速度波形进行调整并输出;
82.步骤s32,根据所述第二加速度数据计算第三驱动电压数据,将所述第三驱动电压数据输入所述马达的功率放大器,通过所述功率放大器对所述第三驱动电压数据进行功率放大以驱动所述马达振动。
83.在调整得到第二驱动电压数据后,可以根据第二驱动电压数据计算得到加速度数据(以下称为第二加速度数据以示区分)。可以理解的是,第二驱动电压数据是能够使得马达振动的实际加速度波形能够与第二加速度数据对应的加速度波形一致的电压数据;由于第二驱动电压数据是对第一驱动电压数据进行线性调整得到的,所以第二加速度数据对应的加速度波形与第一加速度数据对应的加速度波形(目标加速度波形的一段)会存在一定的差异,也即马达振动的实际加速度波形与预期的加速度波形会有一定差异,但是由于第二驱动电压数据的电压值绝对值不大于输出电压峰值,且是根据输出电压峰值在第一驱动电压数据的基础上进行线性调整得到的,所以不会发生因加速度波形所需的驱动电压超过硬件驱动电路的输出电压峰值而导致实际的加速度波形与预期的加速度波形差异过大,因此,也就不会出现马达实际的振动效果与预期的振动效果差异过大的情况。
84.具体实施方式中,可以预先设置加速度与电压之间的转换公式,将第二驱动电压数据中各个驱动电压值带入该转换公式,计算得到各个电压值对应的加速度值,各个加速
度值即计算得到的第二加速度数据。其中,加速度与电压之间的转换公式可以采用双线性变换方法、单位脉冲响应不变法或欧拉离散法能变换方法,根据马达的电压与加速度之间的传递特性变换得到,在本实施例中对转换公式并不做限制。
85.在计算得到第二加速度数据后,为使得马达的实际加速度波形与该第二加速度数据对应的加速度波形一致,基于计算得到的第二加速度数据调整目标加速度波形,将预期的目标加速度波形调整为实际的加速度波形并输出,以供用户在想要了解马达实际振动时的加速度波形时进行查阅,其中,输出的实际的加速度波形可以是波形,也可以是实际加速度波形对应的加速度数据或波形参数。进一步地,可根据第二加速度数据再次计算得到驱动电压数据(以下称为第三驱动电压数据以示区分)。可以理解的是,第三驱动电压数据是计算得到的能够使得马达振动的实际加速度波形能够与第二加速度数据对应的加速度波形一致的电压数据。具体实施方式中,根据第二加速度数据计算得到第三驱动电压数据的方法可以参照根据第一加速度数据计算得到第一驱动电压数据的方法,在此不再重复赘述。
86.在得到第三驱动电压数据后,可以将第三驱动电压数据输入马达硬件驱动电路中的功率放大器,通过功率放大器对第三驱动电压数据进行功率放大,也即,通过功率放大器将第三驱动电压数据中的各个电压值转换为实际的电压驱动马达振动。其中,功率放大器可以采用对输入信号进行功率匹配的放大器,例如可以采用常见的a类、b类、ab类或者d类驱动器,输入信号可以是模拟信号,也可以是一定制式的数字信号。
87.在本实施例中,通过对目标加速度波形进行采样得到加速度数据,根据加速度数据预测所需的驱动电压数据,并对所需的驱动电压数据进行线性调整,使得调整后的电压值绝对值不大于硬件驱动电路的输出电压峰值,再根据调整后的电压数据驱动马达振动,使得当目标加速度波形所需的驱动电压大于硬件驱动电路的输出电压峰值时,能够通过对电压进行线性调整,避免因加速度波形所需的驱动电压超过硬件驱动电路的输出电压峰值而导致实际的振动波形与预期的振动波形差异较大,从而保证马达实际的振动效果与预期的振动效果差异较小。
88.进一步地,在一实施方式中,所述步骤s10之前,还包括:
89.步骤s50,获取原始加速度波形和所述马达的扫频特性带宽;
90.步骤s60,根据所述扫频特性带宽设置滤波器的参数后采用所述滤波器对所述原始加速度波形进行滤波得到目标加速度波形。
91.当输入的加速度波形的频率超出马达的扫频特性带宽时,可以对输入的原始加速度波形进行滤波,将滤波后的加速度波形作为目标加速度波形,再对目标加速度波形进行后续的采样操作。
92.具体地,可以先获取原始加速度波形和马达的扫频特性带宽。其中,马达的扫频特征是指单位驱动电压下加速度幅值的频域响应特性。根据扫频特性带宽设置滤波器的参数,根据设置好参数的滤波器对原始加速度波形进行滤波,滤波得到的加速度波形作为目标加速度波形。通过根据扫频特征带宽设置滤波器的参数,可以使得滤波得到的目标加速度波形的频率在扫频特性带宽内。
93.具体地,在一实施方式中,可以将所述扫频特性带宽的上限频率设置为低通滤波器的截止频率,以及将所述扫频特性带宽的下限频率设置为高通滤波器的截止频率后,采
用所述低通滤波器和所述高通滤波器依次对所述原始加速度波形进行低通滤波和高通滤波,得到所述目标加速度波形。例如,扫频特征带宽为[f
al
,f
ah
],可将低通滤波器的截止频率设置为f
ah
,将高通滤波器的截止频率设置为f
al

[0094]
或者,在另一实施方式中,可以将所述扫频特性带宽的上限频率设置为带通滤波器的上限截止频率,以及将所述扫频特性带宽的下限频率设置为所述带通滤波器的下限截止频率后,采用所述带通滤波器对所述原始加速度波形进行带通滤波,得到所述目标加速度波形。例如,扫频特征带宽为[f
al
,f
ah
],可将带通滤波器的带宽设置为[f
al
,f
ah
]。
[0095]
进一步地,基于上述第一实施例,提出本发明马达控制方法第二实施例,在本实施例中,所述步骤s30包括:
[0096]
步骤s301,将所述输出电压峰值除以所述第一驱动电压数据中各个电压值的绝对峰值得到调整系数,并判断所述调整系数是否小于1;
[0097]
为实现在避免加速度波形所需的驱动电压超过硬件驱动电路的输出电压峰值的情况下,同时保证马达的实际加速度波形与目标加速度波形的差异相对较小,在本实施例中,可以通过设置单帧加速度数据的时间跨度,使得采样得到的第一加速度数据包括多个加速度采样值,从而使得第一驱动电压数据包括多个电压值,并对第一驱动电压数据的各个电压值进行线性调整,使得调整得到的第二驱动电压数据与第一驱动电压数据呈线性关系,从而使得最终基于第二驱动电压数据驱动马达振动达到的实际加速度波形与目标加速度波形差异相对较小。
[0098]
在一实施方式中,线性调整的方式可以是先提取出第一驱动电压数据中各个电压值的绝对值中的最大值,也即绝对峰值。例如,第一驱动电压数据包括n个电压值u1(1)、u1(2)、
……
u1(n),取绝对值得到|u1(1)|、|u1(2)|、
……
|u1(n)|,再采用顺序比较法检测其中的最大值,即比较|u1(1)|和|u1(2)|,取其中较大值作为u
1max
;再比较u
1max
与|u1(3)|,取其中较大值作为新的u
1max
;依此类推,直到比较u
1max
与|u1(n)|,取其中较大值作为最终的u
1max
,即绝对峰值。得到绝对峰值后,采用硬件驱动电路的输出电压峰值除以该绝对峰值,得到的结果作为调整系数。
[0099]
在得到调整系数后,可以判断调整系数是否小于1,用于限制驱动电路实际输出的电压峰值,以确保马达及其驱动电路的安全性。
[0100]
步骤s302,若所述调整系数大于或等于1,则将所述第一驱动电压数据作为第二驱动电压数据;
[0101]
当调整系数大于或等于1时,说明第一驱动电压数据中的各个电压值的绝对值都不超过该输出电压峰值,此时,不会出现马达所需的驱动电压超过硬件驱动电路的输出电压峰值的情况,可以直接将第一驱动电压数据作为目标加速度所需的第二驱动电压数据,也即,不需对第一驱动电压数据进行调整,以使得马达的实际加速度波形与目标加速度波形一致。
[0102]
步骤s303,若所述调整系数小于1,则将所述第一驱动电压数据中各个电压值分别乘以所述调整系数得到各个调整后的电压值,将各个调整后的电压值作为第二驱动电压数据。
[0103]
当调整系数小于1时,说明第一驱动电压数据中至少有一个电压值的绝对值超过了该输出电压峰值,此时,需要对该电压值进行调整,可以将第一驱动电压数据中各个电压
值分别乘以该调整系数得到各个调整后的电压值,将调整后的电压值作为第二驱动电压数据,可以理解的是,由于调整系数是采用硬件驱动电路的输出电压峰值除以绝对峰值得到的,所以调整得到的第二驱动电压数据中的各个电压值的绝对值都不大于输出电压峰值,并且在保证第二驱动电压数据与第一驱动电压数据之间呈线性关系的情况下,第二驱动电压数据与第一驱动电压数据之间的差异较小,从而使得最终基于第二驱动电压数据驱动马达振动达到的实际加速度波形与目标加速度波形差异相对较小。
[0104]
进一步地,在一实施方式中,所述步骤s10包括:
[0105]
步骤s101,对目标加速度波形按照第一时长进行采样得到第一加速度数据,其中,所述第一加速度数据的时间跨度为所述第一时长;
[0106]
在本实施例中,在对目标加速度波形进行采样时,可以按照当前设置的单帧加速度数据的时间跨度(以下称为第一时长以示区别)进行采样,也即,使得采样得到的第一加速度数据的时间跨度为第一时长。
[0107]
所述步骤s40之后,还包括:
[0108]
步骤a10,获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态;
[0109]
可以设置用于接收用户反馈信息的输入设备,例如游戏机的显示屏或控制手柄等,用户可以对马达的振动状态进行反馈,例如,反馈马达的振动状态是否是延时状态,是否是失真状态等。其中,延时状态是指马达的振动与用户的操作之间存在延时,例如,用户的一个操作将触发马达的一种振动效果,但用户操作一段时间后,马达才发生该振动效果,这种状态就是延时状态。失真状态是指马达的振动与预期的振动效果之间存在较大差异。
[0110]
在驱动马达振动的过程中,从输入设备获取用户反馈信息,用户反馈信息中携带有马达振动状态。具体地,该马达振动状态可能是延时状态或非延时状态。
[0111]
步骤a20,若所述马达振动状态为延时状态,则对所述第一时长进行调整得到第二时长,以基于所述第二时长对所述目标加速度波形继续进行采样,其中,所述第二时长小于所述第一时长。
[0112]
在提取得到马达振动状态后,判断马达振动状态是否是延时状态,若是,则可以对第一时长进行调整,得到比第一时长小的第二时长,在对目标加速度波形进行下一次采样时,采样该第二时长进行采样,也即下次采样得到的第一加速度数据的时间跨度为第二时长。需要说明的是,由于是在对采样得到的第一加速度数据进行处理得到第二驱动电压数据之后,才基于第二驱动电压数据驱动马达振动,所以当马达振动状态是延时状态时,说明第一时长过长,导致用户感知的马达振动发生延时,此时将单次加速度数据的时间跨度缩短后进行后续的采样,能够使得用户感知到的马达振动发生的延时更短或感知不到马达振动发生延时。具体地,在一实施方式中,对第一时长进行调整得到第二时长的方式可以是将第一时长减去一个预设值,也即,将该预设值作为一个步进,每次当根据用户反馈信息确定马达振动状态是延时状态时,将当前设置的单帧加速度数据的时间跨度减去该预设值,以缩短时间跨度;进一步地,可以设置一个最低阈值,当第一时长减去预设值后小于该最低阈值,则不对第一时长进行调整,仍然保持第一时长,以保证采样得到的第一加速度数据中至少有多个加速度采样值。
[0113]
进一步地,在一实施方式中,所述步骤a10之后,还包括:
[0114]
步骤a30,若所述马达振动状态为失真状态,则对所述第一时长进行调整得到第三
时长,以基于所述第三时长对所述目标加速度波形继续进行采样,其中,所述第三时长大于所述第一时长。
[0115]
在提取得到马达振动状态后,判断马达振动状态是否是失真状态,若是,则可以对第一时长进行调整,得到比第一时长大的第三时长,在对目标加速度波形进行下一次采样时,采用该第三时长进行采样,也即下一次采样得到的第一加速度数据的时间跨度为第三时长。需要说明的是,当单次采样的加速度数据的时间跨度较短时,可能由于一帧中的加速度采样值数量较少,而导致调整后的第二驱动电压数据与第一驱动电压数据不能保持较强的线性关系,而导致马达振动的效果对用户来说是失真的,所以当马达振动状态是失真状态时,将单帧加速度数据的时间跨度增长后进行后续的采样,能够使得用户感知到的马达振动失真不明显或感知不到马达振动失真。具体地,在一实施方式中,对第一时长进行调整得到第三时长的方式可以是将第一时长加上一个预设值,也即,将该预设值作为一个步进,每次当根据用户反馈信息确定马达振动状态是失真状态时,将当前设置的单帧加速度数据的时间跨度加上该预设值,以增长时间跨度;进一步地,可以设置一个最高阈值,当第一时长加上预设值后大于该最高阈值,则不对第一时长进行调整,仍然保持第一时长,以保证不会因为单帧加速度的时间跨度太长而导致马达振动的延时较严重。
[0116]
可以理解的是,单次采样时的帧数越少,根据用户的反馈信息对时间跨度等采样参数的调整及时性越高,当每次只对一帧加速度波形进行采样时,可以在获取到用户的反馈信息后,根据用户的反馈信息利用调整后的采样参数对下一帧加速度波形进行采样,提高用户反馈信息的响应及时性。
[0117]
进一步地,基于上述第一和/或第二实施例,提出本发明马达控制方法第三实施例,在本实施例中,所述步骤s20中根据所述第一加速度数据计算得到第一驱动电压数据的步骤包括:
[0118]
步骤s201,获取所述马达的马达参数,其中,所述马达参数包括振子质量、磁场强度、弹簧劲度系数、阻尼系数、线圈直流电阻;
[0119]
步骤s202,根据所述第一加速度数据和所述马达参数按照所述马达电压和加速度之间的转换公式计算得到第一驱动电压数据。
[0120]
在本实施例中,可以根据马达的马达参数设置电压与加速度之间的转换公式,获取马达的马达参数,将马达参数和第一加速度数据带入该转换公式进行计算,得到第一驱动电压数据。马达参数可以包括振子质量、磁场强度、弹簧劲度系数、阻尼系数、线圈直流电阻。
[0121]
具体地,在一实施方式中,可以按照如下的转换公式计算第一驱动电压数据。
[0122][0123][0124][0125]
[0126][0127][0128][0129][0130]
其中,u1(n)表示第一驱动电压数据中的第n个驱动电压值,a1(n)表示第一加速度数据中的第n个加速度采样值。m是振子质量,bl是磁场强度,k是弹簧劲度系数,r是阻尼系数,re是线圈直流电阻,t是采样周期。f
al
是马达扫频特性带宽的下限频率。当n取1时,u1(n-1)、u1(n-2)、a1(n-1)和a1(n-2)取0,当n取2时,u1(n-2)和a1(n-2)取0。
[0131]
在计算出第一驱动电压数据后,基于硬件驱动电路输出的电压峰值对第一驱动电压数据进行线性调整,得到第二驱动电压数据,然后基于第二驱动电压数据驱动马达振动时,首先根据第二驱动电压数据计算第二加速度数据,然后根据第二加速度数据计算第三驱动电压数据,将第三驱动电压数据输入至硬件驱动电路中的功率放大器中,对第三驱动电压数据进行功率放大后,驱动马达振动。
[0132]
在一实施方式中,可以按照如下的转换公式计算第二加速度数据。
[0133][0134]
b0=4k3[0135]
b1=-8k3[0136]
b2=4k3[0137][0138][0139][0140][0141]
其中,a2(n)表示第二加速度数据中的第n个加速度值,i2(n)表示第二驱动电压数据中的第n个电压值。m是振子质量,bl是磁场强度,k是弹簧劲度系数,r是阻尼系数,re是线圈直流电阻,t是采样周期。f
al
是马达扫频特性带宽的下限频率。当n取1时,a2(n-1)、a2(n-2)、i2(n-1)和i2(n-2)取0,当n取2时,a2(n-2)和i2(n-2)取0。
[0142]
在一实施方式中,可以按照如下的转换公式计算第三驱动电压数据。
[0143][0144][0145][0146][0147][0148][0149][0150][0151]
其中,a2(n)表示第二加速度数据中的第n个加速度值,u3(n)表示第三驱动电压数据中的第n个驱动电压值。m是振子质量,bl是磁场强度,k是弹簧劲度系数,r是阻尼系数,re是线圈直流电阻,t是采样周期。f
al
是马达扫频特性带宽的下限频率。当n取1时,a2(n-1)、a2(n-2)、u3(n-1)和u3(n-2)取0,当n取2时,a2(n-2)和u3(n-2)取0。
[0152]
此外,本发明实施例还提出一种马达控制装置,参照图3,所述装置包括:
[0153]
采样模块10,用于对目标加速度波形进行采样得到第一加速度数据,其中,所述第一加速度数据包括多个加速度采样值;
[0154]
计算模块20,用于根据所述第一加速度数据计算得到第一驱动电压数据;
[0155]
调整驱动模块30,用于根据所述马达的硬件驱动电路的输出电压峰值,对所述第一驱动电压数据进行线性调整得到第二驱动电压数据,并基于所述第二驱动电压数据驱动所述马达振动,其中,所述第二驱动电压数据中的电压值绝对值不大于所述输出电压峰值。
[0156]
进一步地,所述调整驱动模块30包括:
[0157]
第一计算单元,用于将所述输出电压峰值除以所述第一驱动电压数据中各个电压值的绝对峰值得到调整系数,并判断所述调整系数是否小于1;
[0158]
确定单元,用于若所述调整系数大于或等于1,则将所述第一驱动电压数据作为第二驱动电压数据;
[0159]
第二计算单元,用于若所述调整系数小于1,则将所述第一驱动电压数据中各个电压值分别乘以所述调整系数得到各个调整后的电压值,将各个调整后的电压值作为第二驱动电压数据。
[0160]
进一步地,所述采样模块10还用于对目标加速度波形按照第一时长进行采样得到第一加速度数据,其中,所述第一加速度数据的时间跨度为所述第一时长;
[0161]
所述装置还包括:
[0162]
第一获取模块,用于获取用户反馈信息,并提取所述用户反馈信息携带的马达振动状态;
[0163]
所述调整驱动模块30还用于若所述马达振动状态为延时状态,则对所述第一时长进行调整得到第二时长,以基于所述第二时长对所述目标加速度波形继续进行采样,其中,所述第二时长小于所述第一时长。
[0164]
进一步地,所述调整驱动模块30还用于若所述马达振动状态为失真状态,则对所述第一时长进行调整得到第三时长,以基于所述第三时长对所述目标加速度波形继续进行采样,其中,所述第三时长大于所述第一时长。
[0165]
进一步地,所述装置还包括:
[0166]
第二获取模块,用于获取原始加速度波形和所述马达的扫频特性带宽;
[0167]
滤波模块,用于根据所述扫频特性带宽设置滤波器的参数后采用所述滤波器对所述原始加速度波形进行滤波得到所述目标加速度波形。
[0168]
进一步地,所述计算模块20包括:
[0169]
获取单元,用于获取所述马达的马达参数,其中,所述马达参数包括振子质量、磁场强度、弹簧劲度系数、阻尼系数、线圈直流电阻;
[0170]
第三计算单元,用于根据所述第一加速度数据和所述马达参数按照所述马达的电压和加速度之间的转换公式计算得到第一驱动电压数据。
[0171]
进一步地,所述调整驱动模块30还用于:
[0172]
基于所述第二驱动电压计算第二加速度数据,并根据所述第二加速度数据对所述目标加速度波形进行调整并输出;
[0173]
根据所述第二加速度数据计算第三驱动电压数据,将所述第三驱动电压数据输入所述马达的功率放大器,通过所述功率放大器对所述第三驱动电压数据进行功率放大以驱动所述马达振动。
[0174]
本发明马达控制装置的具体实施方式的拓展内容与上述马达控制方法各实施例基本相同,在此不做赘述。
[0175]
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有马达控制程序,所述马达控制程序被处理器执行时实现如下所述的马达控制方法的步骤。
[0176]
本发明马达控制设备和计算机可读存储介质各实施例,均可参照本发明马达控制方法各个实施例,此处不再赘述。
[0177]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0178]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0179]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质
(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0180]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1