Vibration control method, vibration execution equipment and vibration control system
By determining the target vibration information in the game console device and generating corresponding driving signals, the driving motor generates a diverse vibration waveform, solving the problem of single vibration effect in the prior art and enhancing the user's control experience.
Patent Information
- Application Number
- CN202510569967.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-30
- Publication Date
- 2025-08-19
AI Technical Summary
In the prior art, the vibration mode of the motor in the vibration execution device of the game console is usually pre-set, resulting in a single vibration effect and cannot meet the diverse user needs.
When the vibration execution device triggers the target vibration scene through the host device, the target vibration information matching the target vibration scene is determined and a corresponding target driving signal is generated. The driving motor generates a vibration waveform matching the target vibration scene, including generating different vibration modes according to the waveform parameters and audio signals.
It realizes the vibration execution device to vibrate in multiple vibration modes at the same time, which improves the user's control experience and diversification of spatial touch.
Smart Images

Figure CN120508154A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of vibration control technology, and more specifically, to a vibration control method, a vibration execution device, and a vibration control system. Background Art
[0002] Vibration generated by drive motors is widely used in many fields, including modern electronic devices and industrial automation. These applications range from portable electronic devices like mobile phones and tablets, which utilize vibration motors to implement features like incoming call notifications and touch feedback, providing a convenient user experience. Industrial vibratory screening equipment and vibratory conveying devices also rely on the vibration generated by drive motors to achieve efficient material screening and precise conveying.
[0003] In the prior art, a game console usually triggers a target vibration scene with a vibration execution device. The vibration mode of the motor in the vibration execution device is usually pre-set, and the vibration effect is single. Summary of the Invention
[0004] One purpose of the embodiments of the present disclosure is to provide a new technical solution for controlling motor vibration.
[0005] According to a first aspect of an embodiment of the present disclosure, there is provided a vibration control method, comprising:
[0006] When the vibration execution device triggers a target vibration scene, the host device determines target vibration information that matches the target vibration scene and sends the target vibration information to the vibration execution device;
[0007] The vibration execution device determines a target vibration pattern represented by the target vibration information, calls a target vibration controller corresponding to the target vibration pattern to generate a target drive signal matching the target vibration information, and drives a motor in the vibration execution device according to the target drive signal to generate a vibration waveform matching the target vibration scene.
[0008] Optionally, determining a target vibration mode represented by the target vibration information includes:
[0009] determining the target vibration mode to be a first vibration mode when the target vibration information includes waveform parameters representing a vibration condition of the motor;
[0010] In a case where the target vibration information includes a target audio signal, the target vibration pattern is determined to be a second vibration pattern.
[0011] Optionally, when the target vibration mode is the first vibration mode, the waveform parameters include shape parameters representing the envelope shape of the vibration waveform, waveform fitting parameters for fitting the vibration waveform, and waveform combination parameters for generating a signal according to the waveform;
[0012] Generating a target driving signal matching the target vibration information, comprising:
[0013] generating a prototype waveform conforming to the envelope shape according to the shape parameters, wherein the integral of the prototype waveform within one cycle is zero;
[0014] generating a first vibration waveform whose envelope matches the prototype waveform according to the waveform fitting parameters;
[0015] processing the first vibration waveform according to the waveform combination parameter to obtain a first vibration signal matching the first vibration waveform;
[0016] The target drive signal required for the motor to achieve the first vibration signal is determined.
[0017] Optionally, the method further includes:
[0018] The first vibration waveform is rationally processed so that the first vibration waveform conforms to the actual vibration condition of the motor.
[0019] Optionally, when the target vibration mode is the second vibration mode, generating a driving signal matching the target vibration information includes:
[0020] generating a second vibration signal according to the target audio signal;
[0021] The target driving signal required for the motor to achieve the second vibration signal is determined.
[0022] Optionally, generating a second vibration signal according to the target audio signal includes:
[0023] generating a superposition signal having a frequency identical to a resonant frequency of the motor;
[0024] The second vibration signal is obtained according to the target audio signal and the superimposed signal.
[0025] Optionally, driving a motor in the vibration execution device according to a target driving signal to generate vibration matching the target vibration scenario includes:
[0026] Determining a target sampling time corresponding to a rhythm start position of the target audio signal;
[0027] At the target sampling moment, the motor is driven according to the target driving signal to generate vibration matching the target vibration scenario.
[0028] Optionally, the method further includes:
[0029] In a process in which the vibration execution device drives the motor according to the target drive signal, detecting a first voltage and a first current of the motor at a first sampling moment;
[0030] The vibration execution device adjusts the voltage of the target drive signal at a second sampling time according to the first voltage and the first current, wherein the second sampling time is a sampling time after the first sampling time.
[0031] According to a second aspect of the present disclosure, a vibration execution device is provided, comprising a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to execute the method steps implemented by the vibration execution device as described in the first aspect of the present disclosure under the control of the computer program.
[0032] According to a third aspect of the present disclosure, there is provided a vibration control system, comprising a host device, at least one vibration execution device according to the second aspect of the present disclosure;
[0033] The host device is configured to determine target vibration information matching the target vibration scene when the vibration execution device triggers the target vibration scene, and send the target vibration information to the vibration execution device.
[0034] Through the embodiments of the present disclosure, when the vibration execution device triggers the target vibration scene, the host device determines the target vibration information that matches the target vibration scene and sends the target vibration information to the vibration execution device; the vibration execution device determines the target vibration mode represented by the target vibration information, calls the target vibration controller corresponding to the target vibration mode to generate a target drive signal that matches the target vibration information, and drives the motor in the vibration execution device according to the target drive signal to generate a vibration waveform that matches the target vibration scene. In this way, the host device can control the vibration execution devices to vibrate according to their respective vibration modes at the same time, thereby realizing the diversification of spatial tactile sensation and enhancing the user's control experience.
[0035] Further features and advantages of the present invention will become apparent from the following detailed description of exemplary embodiments of the present invention with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
[0037] Figure 1 is a block diagram showing a hardware configuration of a vibration control system that can implement an embodiment of the present disclosure;
[0038] Figure 2 is a flow chart of a vibration control method according to one embodiment of the present disclosure;
[0039] Figure 3 is a block diagram of a vibration execution device according to one embodiment of the present disclosure;
[0040] Figure 4 is a block diagram of a vibration control system according to one embodiment of the present disclosure. DETAILED DESCRIPTION
[0041] Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that unless otherwise specifically stated, the relative arrangement of components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention.
[0042] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application, or uses.
[0043] Technologies, methods and equipment known to persons of ordinary skill in the relevant art may not be discussed in detail, but where appropriate, such technologies, methods and equipment should be considered part of the specification.
[0044] In all examples shown and discussed herein, any specific values should be interpreted as merely exemplary and not limiting. Therefore, other examples of the exemplary embodiments may have different values.
[0045] It should be noted that like reference numerals and letters refer to like items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.
[0046] <Hardware Configuration>
[0047] Figure 1 is a block diagram showing a hardware configuration of a vibration control system 1000 that can implement an embodiment of the present disclosure.
[0048] like Figure 1 As shown, the vibration control system 1000 may include a host device 1100 , at least one vibration execution device 1200 , and a network 1300 .
[0049] In this embodiment, the host device 1100 can interact with the vibration execution device 1200 through communication methods such as Bluetooth, WiFi, 2G / 3G / 4G / 5G, and data cables.
[0050] The host device 1100 may be, for example, a mobile phone, a computer, a game console, etc. Figure 1 As shown, the host device 1100 may include a processor 1110, a memory 1120, an interface device 1130, a communication device 1140, a display device 1150, and an input device 1160. Although the server may also include a speaker, a microphone, etc., these components are not relevant to the present invention and are therefore omitted here. The processor 1110 may be, for example, a central processing unit (CPU), a microprocessor (MCU), etc. The memory 1120 may include, for example, a ROM (read-only memory), a RAM (random access memory), a non-volatile memory such as a hard disk, etc. The interface device 1130 may include, for example, a USB interface, a serial interface, etc. The communication device 1140 may be capable of wired or wireless communication. The display device 1150 may be, for example, a liquid crystal display. The input device 1160 may include, for example, a touch screen, a keyboard, etc.
[0051] The vibration execution device 1200 can be a game controller, a chair, etc. Figure 1 As shown, the vibration execution device 1200 may include a processor 1210, a memory 1220, an interface device 1230, a communication device 1240, a display device 1250, an input device 1260, a speaker 1270, a microphone 1280, and the like. The processor 1210 may be a central processing unit (CPU), a microprocessor (MCU), or the like. The memory 1220 may include, for example, a ROM (read-only memory), a RAM (random access memory), or a non-volatile memory such as a hard disk. The interface device 1230 may include, for example, a USB interface or a headphone jack. The communication device 1240 may be capable of wired or wireless communication. The display device 1250 may be, for example, an LCD display or a touchscreen display. The input device 1260 may include, for example, a touchscreen or a keyboard. The user may input / output voice information through the speaker 1270 and the microphone 1280.
[0052] The communication network 1300 can be a wireless network or a wired network, a local area network or a wide area network. Figure 1 In the vibration control system 1000 shown, the vibration execution device 1200 and the host device 1100 can communicate via a communication network 1300 .
[0053] Figure 1 The illustrated vibration control system 1000 is illustrative only and is in no way intended to limit the invention, its application, or uses.
[0054] In the embodiments of the present invention, the memory 1120 of the host device 1100 is used to store instructions for controlling the processor 1110 to perform any of the methods provided in the embodiments of the present invention. The memory 1220 of the vibration execution device 1200 is used to store instructions for controlling the processor 1210 to perform any of the methods provided in the embodiments of the present invention.
[0055] It should be understood by those skilled in the art that although Figure 1 While multiple devices are shown for both host device 1100 and vibration execution device 1200, the present invention may only involve some of these devices. For example, host device 1100 may only involve processor 1110 and storage device 1120, or vibration execution device 1200 may only involve processor 1210 and storage device 1220. A skilled artisan can design instructions based on the disclosed scheme. How instructions control processor operations is well known in the art and will not be described in detail here.
[0056] <Method Example>
[0057] The present disclosure provides a vibration control method, which can be implemented by a vibration control system, specifically, by the aforementioned vibration control system 1000 .
[0058] Figure 2 4 is a flow chart of a vibration control method according to an embodiment of the present disclosure.
[0059] like Figure 2 As shown, the vibration control method includes steps S2100 to S2200 as shown below:
[0060] Step S2100 : When the vibration execution device triggers the target vibration scene, the host device determines target vibration information that matches the target vibration scene, and sends the target vibration information to the vibration execution device.
[0061] In some embodiments, the host device can be a device that displays a virtual scene. In response to a trigger operation on a button in the vibration execution device, the vibration execution device sends a control signal corresponding to the trigger operation to the host device. The host device receives the control signal sent by the vibration execution device and sends a control message carrying the control signal to the server. The server renders virtual scene data based on the control signal carried by the control message. The virtual scene data is used for the terminal device to display the virtual object in the virtual scene to perform the operation corresponding to the control signal; when it is determined that the triggered scene is a target vibration scene that requires vibration feedback, the scene information of the target vibration scene is sent to the host device. The virtual scene data is used for the host device to display the virtual object in the virtual scene to perform the operation corresponding to the control signal. The host device receives the scene information of the target vibration scene sent by the server, and determines that the vibration execution device triggers the target vibration scene based on the scene information.
[0062] In this embodiment, the scene information may include target vibration information that matches the target vibration scene.
[0063] In this embodiment, the virtual scene displayed (or provided) when the application is running on the host device. The virtual scene can be a simulation of the real world, a semi-simulation and semi-fictitious virtual environment, or a purely fictitious virtual environment. The virtual scene can be any one of a two-dimensional virtual scene, a 2.5-dimensional virtual scene, or a three-dimensional virtual scene. The embodiment of the present application does not limit the dimension of the virtual scene. For example, the virtual scene may include the sky, land, ocean, etc., and the land may include environmental elements such as deserts and cities. The user can control the movement of virtual objects in the virtual scene.
[0064] In some embodiments, the virtual scene can be an environment for game characters to interact. For example, it can be an environment for game characters to fight in the virtual scene. By controlling the actions of the game characters, both parties can interact in the virtual scene, allowing users to relieve life stress during the game.
[0065] Virtual objects are interactive images of people and objects in a virtual scene, or movable objects within the virtual scene. These movable objects can be virtual people, virtual animals, cartoon characters, and more. For example, people, animals, plants, oil drums, walls, rocks, and so on displayed within a virtual scene. A virtual object can be a virtual character within the virtual scene that represents the user. A virtual scene can include multiple virtual objects, each with its own unique shape and volume, occupying a portion of the space within the virtual scene.
[0066] Optionally, the virtual object can be a user character controlled through client operations, an artificial intelligence (AI) trained to compete in a virtual scene, or a non-player character (NPC) set up for interactive use in the virtual scene. Optionally, the virtual object can be a virtual person engaging in adversarial interaction within the virtual scene. Optionally, the number of virtual objects participating in the interaction within the virtual scene can be pre-set or dynamically determined based on the number of clients participating in the interaction. Taking a shooting game as an example, a user can control a virtual object to freely fall, glide, or descend via parachute within the virtual scene; to run, jump, crawl, or stoop on land; or to swim, float, or dive within the ocean. Of course, a user can also control a virtual object to move within the virtual scene in a virtual vehicle, such as a virtual car, a virtual aircraft, or a virtual yacht. These scenarios are merely examples and are not specifically limited in this embodiment of the present invention. Users can also control virtual objects to interact with other virtual objects in a confrontational manner through virtual props. For example, the virtual props can be throwing virtual props such as grenades, cluster mines, and sticky grenades, or shooting virtual props such as machine guns, pistols, and rifles (i.e., virtual shooting props), or skill-related virtual props such as healing and attacking.
[0067] Scene data represents the various characteristics of objects in the virtual scene during the interaction process, for example, it can include the position of the object in the virtual scene. Of course, different types of characteristics can be included depending on the type of virtual scene; for example, in a virtual scene of a game, scene data can include the waiting time required for various functions configured in the virtual scene (depending on the number of times the same function can be used within a specific time period), and can also represent the attribute values of various states of the game character, such as health (also known as red volume) and mana (also known as blue volume).
[0068] In some embodiments, the host device can display a virtual scene. In response to a trigger operation on a button on the vibration execution device, the vibration execution device transmits a control signal corresponding to the trigger operation to the host device. The host device receives the control signal sent by the vibration execution device and, based on the control signal carried in the control message, renders virtual scene data. The virtual scene data is used by the terminal device to display virtual objects in the virtual scene and execute the operation corresponding to the control signal. The host device also determines, based on the control signal carried in the control message, whether the scene triggered by the vibration execution device is a target vibration scene requiring vibration feedback.
[0069] In this embodiment, the host device (or server) can be pre-set with vibration information corresponding to multiple vibration scenarios. When it is determined that the scenario triggered by the vibration execution device is a target vibration scenario that requires vibration feedback, the vibration information that matches the target vibration scene is determined as the target vibration information.
[0070] In this embodiment, the target vibration information may include waveform parameters representing the vibration condition of the motor, and may also include a target audio signal.
[0071] In step S2200, the vibration execution device determines the target vibration pattern represented by the target vibration information, calls the target vibration controller corresponding to the target vibration pattern to generate a target drive signal that matches the target vibration information, and drives the motor in the vibration execution device according to the target drive signal to generate a vibration waveform that matches the target vibration scene.
[0072] In this embodiment, the motor of the vibration execution device may vibrate according to the target vibration pattern to generate a vibration waveform that matches the target vibration scenario.
[0073] In some embodiments, determining the target vibration mode represented by the target vibration information includes: when the target vibration information includes waveform parameters representing the vibration condition of the motor, determining the target vibration mode as the first vibration mode; when the target vibration information includes the target audio signal, determining the target vibration mode as the second vibration mode.
[0074] In the first vibration mode, the vibration execution device can automatically generate a vibration signal according to the waveform parameters, and then drive the motor to vibrate according to the target driving signal required for the motor to implement the vibration signal, so that the motor generates a vibration waveform that matches the waveform parameters.
[0075] In the second vibration mode, the vibration execution device may drive the motor to generate a vibration waveform having a waveform matching that of the target audio signal.
[0076] Through the embodiments of the present disclosure, when the vibration execution device triggers the target vibration scene, the host device determines the target vibration information that matches the target vibration scene and sends the target vibration information to the vibration execution device; the vibration execution device determines the target vibration mode represented by the target vibration information, calls the target vibration controller corresponding to the target vibration mode to generate a target drive signal that matches the target vibration information, and drives the motor in the vibration execution device according to the target drive signal to generate a vibration waveform that matches the target vibration scene. In this way, the host device can control the vibration execution devices to vibrate according to their respective vibration modes at the same time, thereby realizing the diversification of spatial tactile sensation and enhancing the user's control experience.
[0077] In some embodiments, when the target vibration mode is the first vibration mode, the waveform parameters include shape parameters representing the envelope shape of the vibration waveform, waveform fitting parameters for fitting the vibration waveform, and waveform combination parameters for generating a signal based on the waveform; then, generating a target drive signal that matches the target vibration information includes steps S2211 to S2214 as shown below:
[0078] Step S2211: Generate a prototype waveform that conforms to the envelope shape according to the shape parameters, and the integral of the prototype waveform within one cycle is zero.
[0079] In this embodiment, multiple prototype waveforms can be pre-set in the vibration execution device. Each prototype waveform needs to meet the constraint condition that the integral within one period is zero. The prototype waveform can be an axisymmetric waveform or a non-axisymmetric waveform.
[0080] In some embodiments, the prototype waveform may include, but is not limited to, a waveform in the shape of a rectangular wave, a triangle wave, a trapezoidal wave, a sine wave, or the like.
[0081] When the prototype waveform is an axisymmetric waveform, the waveform amplitude am_p of the positive half coordinate axis, the waveform duration t_p of the positive half coordinate axis, the waveform amplitude am_n of the negative half coordinate axis, and the waveform duration t_n of the negative half coordinate axis satisfy the following condition: am_p*t_p=am_n*t_n.
[0082] The prototype waveform of this embodiment may be a periodic waveform.
[0083] Step S2212: Generate a first vibration waveform whose envelope matches the prototype waveform according to the waveform fitting parameters.
[0084] In some embodiments, the waveform fitting parameters include at least one of the following: fitting order, fitting base waveform, fitting function, and motor resonant frequency. The waveform combination parameters include at least one of the following: amplitude, frequency, amplitude asymmetry, direction, number of cycles, and silence duration.
[0085] In this embodiment, the fitting function may be any one or more combinations of a polynomial function, an exponential function, a sine function, a cosine function, and a Gaussian function.
[0086] The fitting basic waveform may be any one or more combinations of a sine waveform, a cosine waveform, a rectangular waveform, and a triangle waveform.
[0087] In an embodiment where the prototype waveform is a periodic waveform, the obtained first vibration waveform may also be a periodic waveform.
[0088] In this embodiment, the first vibration waveform may be obtained by signal fitting.
[0089] Step S2213: Process the first vibration waveform according to the waveform combination parameter to obtain a first vibration signal matching the first vibration waveform.
[0090] The first vibration signal that matches the first vibration waveform may have a waveform that is the same as the first vibration waveform.
[0091] Step S2214: determining a target driving signal required for the motor to realize the first vibration signal.
[0092] In this embodiment, the target drive signal may be obtained based on the first vibration signal and motor parameters of the motor to be driven. The motor parameters may include, but are not limited to, at least one of the following parameters: resonant frequency, motor vibrator mass, damping coefficient, spring rate, electromagnetic coupling parameter, DC resistance, etc.
[0093] The motor parameters in this embodiment may be pre-stored in the vibration execution device, or may be obtained by detecting the voltage and current at both ends of the motor during the motor driving process.
[0094] Furthermore, the drive signal required to realize the first vibration signal, ie, the target drive signal, may be calculated by utilizing the mathematical relationship between physical quantities such as acceleration, velocity, displacement, temperature, momentum, impulse, current, voltage, and back electromotive force.
[0095] In one embodiment, the first vibration signal may be input into a preset transfer function model to obtain a target driving signal.
[0096] In some embodiments, while the motor is being driven to vibrate according to the target drive signal, the voltage and current across the motor may also be detected. The transfer function model may include a nonlinear compensation module, which, based on a neural network inverse model, is used to calculate motor parameters based on the voltage and current and adjust the motor parameters in the transfer function model. This allows the transfer function model to determine the target drive signal based on the adjusted motor parameters, enabling the target drive signal to more accurately drive the motor to generate the first vibration signal.
[0097] The nonlinear compensation module can be constructed based on a second-order nonlinear inverse model or a neural network inverse model.
[0098] In some embodiments, before executing step S2214 , the method further includes: performing rational processing on the first vibration waveform so that the first vibration waveform conforms to the actual vibration condition of the motor.
[0099] In this embodiment, the first vibration waveform is rationalized, which may be an adjustment to the first vibration waveform to conform to the actual vibration condition of the motor.
[0100] Vibration rationalization can appropriately adjust the numerical values of the vibration state observables (including displacement, velocity, acceleration, or voltage) in the first vibration waveform. The adjustment method can be any one or more of dynamic range compression, fade-in and fade-out, data calibration, etc.
[0101] When the numerical value of the vibration state observation quantity represented in the first vibration waveform is unreasonable (such as the case of acceleration with DC bias, the case of amplitude divergence of the first vibration waveform), the first vibration waveform can be rationalized by generating a rationalization calibration curve, wherein the rationalization calibration curve can include at least one of a polynomial fitting calibration curve and a least squares fitting calibration curve.
[0102] When the numerical value representing the vibration state observation amount in the first vibration waveform is insufficient, a first waveform having the same frequency as the resonant frequency of the motor may be generated; and the first vibration waveform may be adjusted based on the first waveform.
[0103] Specifically, the resonant frequency of the motor may be calculated based on the voltage and current across the motor during the process of driving the motor.
[0104] In this embodiment, the first vibration waveform is rationalized, and a set percentage of the first waveform may be added to the first vibration waveform.
[0105] In some embodiments, when the target vibration mode is the second vibration mode, generating a driving signal matching the target vibration information includes steps S2221 to S2222 as shown below:
[0106] Step S2221: Generate a second vibration signal according to the target audio signal.
[0107] In some embodiments, the target audio signal may be obtained by downsampling the audio signal played by the host device.
[0108] In some embodiments, generating the second vibration signal according to the target audio signal may be to use the target vibration signal as the second vibration signal.
[0109] In other embodiments, generating the second vibration signal according to the target audio signal may include: generating a superimposed signal having a frequency the same as the resonant frequency of the motor; and obtaining the second vibration signal according to the target audio signal and the superimposed signal.
[0110] Specifically, the resonant frequency of the motor may be calculated based on the voltage and current across the motor during the process of driving the motor.
[0111] In this embodiment, the envelope of the superimposed signal may be the envelope of an audio signal, or may be an envelope of a square wave, a sine wave, a triangle wave, or the like.
[0112] In this embodiment, the second vibration signal is obtained according to the target audio signal and the superimposed signal. The second vibration signal may be obtained by adding a set percentage of the superimposed signal to the second vibration signal.
[0113] In some embodiments, when a second vibration signal is obtained, the numerical value representing the vibration state observation quantity in the second vibration signal can be adjusted. The adjustment method can be any one or more of dynamic range compression, fade-in and fade-out, data calibration, etc.
[0114] In some embodiments, when the second vibration signal is obtained, the second vibration signal may be subjected to low-pass filtering to eliminate low-frequency signals in the second vibration signal.
[0115] Through this embodiment, the obtained second vibration signal can be made more consistent with the vibration condition of the motor.
[0116] Step S2222: Determine the target driving signal required for the motor to achieve the second vibration signal.
[0117] In this embodiment, the target drive signal may be obtained based on the second vibration signal and motor parameters of the motor to be driven. The motor parameters may include, but are not limited to, at least one of the following parameters: resonant frequency, motor vibrator mass, damping coefficient, spring constant, electromagnetic coupling parameter, DC resistance, etc.
[0118] The motor parameters in this embodiment may be pre-stored in the vibration execution device, or may be obtained by detecting the voltage and current at both ends of the motor during the motor driving process.
[0119] Furthermore, the drive signal required to realize the second vibration signal, ie, the target drive signal, may be calculated by utilizing the mathematical relationship between physical quantities such as acceleration, velocity, displacement, temperature, momentum, impulse, current, voltage, and back electromotive force.
[0120] In one embodiment, the second vibration signal may be input into a preset transfer function model to obtain a target driving signal.
[0121] In some embodiments, while the motor is being driven to vibrate according to the target drive signal, the voltage and current across the motor can also be detected. The transfer function model can include a nonlinear compensation module. This module, based on an inverse neural network model, is used to calculate motor parameters based on the voltage and current and adjust the motor parameters in the transfer function model. This module allows the transfer function model to determine the target drive signal based on the adjusted motor parameters, enabling the target drive signal to more accurately drive the motor to produce the second vibration signal.
[0122] The nonlinear compensation module can be constructed based on a second-order nonlinear inverse model or a neural network inverse model.
[0123] In some embodiments, driving a motor in a vibration execution device according to a target drive signal to generate vibrations that match a target vibration scene includes: determining a target sampling moment corresponding to a rhythm start position of a target audio signal; and driving the motor according to the target drive signal at the target sampling moment to generate vibrations that match the target vibration scene.
[0124] In this embodiment, while the motor is driven according to the target driving signal to generate vibrations matching the target vibration scene at the target sampling moment, the host device can also play the corresponding target audio signal at the target sampling moment, so that the user can feel the vibration matching the played audio signal.
[0125] In some embodiments, the vibration control method also includes: in the process of the vibration execution device driving the motor according to the target drive signal, detecting the first voltage and the first current of the motor at a first sampling moment; the vibration execution device adjusts the voltage of the target drive signal at a second sampling moment according to the first voltage and the first current, wherein the second sampling moment is a sampling moment after the first sampling moment.
[0126] In this embodiment, the voltage across the motor and the current flowing through the motor may be sampled to obtain the first voltage and the first current.
[0127] In some embodiments, adjusting the voltage of the target drive signal at the second sampling moment according to the first voltage and the first current includes: determining the first vibration displacement of the motor at the first sampling moment according to the first voltage and the first current; predicting the second vibration displacement of the motor at the second sampling moment according to the first vibration displacement; determining the displacement difference between the second vibration displacement and the set vibration displacement when the second vibration displacement is greater than the set vibration displacement; and adjusting the voltage of the target drive signal at the second sampling moment according to the displacement difference.
[0128] In this embodiment, the set vibration displacement may be a preset maximum vibration displacement of the motor.
[0129] In this embodiment, first mapping data reflecting the mapping relationship between voltage, current and displacement can be pre-set; based on the first voltage, first current and the first mapping data, the displacement corresponding to the first voltage and first current is obtained as the first vibration displacement.
[0130] The first mapping data may be a first mapping function, or a first comparison table, etc., which is not limited here.
[0131] For the first mapping function, the dependent variable of the first mapping function is displacement, and the independent variables are voltage and current. In this way, by substituting the first voltage and the first current into the first mapping function, the displacement corresponding to the first voltage and the first current can be obtained as the first vibration displacement.
[0132] For the first lookup table, the displacement corresponding to the first voltage and the first current may be searched in the first lookup table as the first vibration displacement.
[0133] In some embodiments, predicting the second vibration displacement of the motor at the second sampling moment based on the first vibration displacement includes: obtaining the second voltage of the target drive signal at the second sampling moment, the third voltage of the motor at the third sampling moment, and the third vibration displacement of the motor at the third sampling moment; wherein the third sampling moment is the previous sampling moment of the first sampling moment; and predicting the second vibration displacement based on the first voltage, the second voltage, the third voltage, the first vibration displacement, and the second vibration displacement.
[0134] In this embodiment, the time interval between the first sampling moment and the third sampling moment is equal to the time interval between the second sampling moment and the first sampling moment.
[0135] In this embodiment, second mapping data reflecting the mapping relationship between the displacement difference and the voltage gain may be preset; based on the displacement difference and the second mapping data, a voltage gain corresponding to the displacement difference is obtained as the first voltage gain.
[0136] The second mapping data may be a second mapping function, or a second comparison table, etc., which is not limited here.
[0137] For the second mapping function, the dependent variable of the second mapping function is the voltage gain, and the independent variable is the displacement difference. Thus, by substituting the displacement difference into the second mapping function, the voltage gain corresponding to the displacement difference can be obtained as the first voltage gain.
[0138] The second lookup table can be used to find the voltage gain corresponding to the displacement difference and use it as the first voltage gain. If the displacement difference cannot be directly found in the second lookup table, two values adjacent to the displacement difference can be found and, based on these two values and the voltage gains corresponding to them, the voltage gain corresponding to the displacement difference can be obtained by interpolation as the first voltage gain.
[0139] When the first voltage gain is obtained, the voltage of the target driving signal at the second sampling moment may be reduced according to the first voltage gain.
[0140] This embodiment ensures that the motor will not exceed the displacement limit due to excessive voltage, which may damage the motor or produce abnormal noise and cause a bad user experience.
[0141] In some embodiments, adjusting the voltage of the target drive signal at the second sampling moment according to the first voltage and the first current includes: determining the first DC resistance of the motor at the first sampling moment according to the first voltage and the first current; determining the first temperature of the motor at the first sampling moment according to the first DC resistance, the initial DC resistance of the motor at the initial temperature, and the initial temperature; when the first temperature is greater than the set temperature, determining the temperature difference between the first temperature and the set temperature; and adjusting the voltage of the target drive signal at the second sampling moment according to the temperature difference.
[0142] In this embodiment, third mapping data reflecting the mapping relationship between the temperature difference and the voltage gain may be preset; based on the temperature difference and the third mapping data, a voltage gain corresponding to the temperature difference is obtained as the second voltage gain.
[0143] The third mapping data may be a third mapping function, or a third comparison table, etc., which is not limited here.
[0144] For the third mapping function, the dependent variable of the third mapping function is the voltage gain, and the independent variable is the temperature difference. Thus, by substituting the temperature difference into the third mapping function, the voltage gain corresponding to the temperature difference can be obtained as the second voltage gain.
[0145] The third lookup table can be used to find the voltage gain corresponding to the temperature difference and use it as the second voltage gain. If the temperature difference cannot be directly found in the third lookup table, two values adjacent to the temperature difference can be found and, based on these two values and the voltage gains corresponding to them, the voltage gain corresponding to the temperature difference can be obtained by interpolation as the second voltage gain.
[0146] When the second voltage gain is obtained, the voltage of the target driving signal at the second sampling moment may be reduced according to the second voltage gain.
[0147] This embodiment can prevent the motor from being damaged due to excessive temperature and poor heat dissipation.
[0148] <Vibration Execution Device Embodiment>
[0149] This embodiment provides a vibration execution device, such as Figure 3 As shown, the vibration execution device 3000 may include a processor 3100 and a memory 3200, the memory 3200 is used to store a computer program, and the processor 3100 is used to control the vibration execution device to execute the steps and methods performed by the vibration execution device described in any embodiment of the present disclosure under the control of the computer program.
[0150] <Vibration Control System Example>
[0151] This embodiment provides a vibration control system, such as Figure 4 As shown, the vibration control system 4000 may include a host device 4100 and at least one vibration execution device 3000, and the host device 4100 is used to determine target vibration information matching the target vibration scene when the vibration execution device triggers the target vibration scene, and send the target vibration information to the vibration execution device.
[0152] When the vibration control system 4000 includes at least two vibration execution devices 3000, the host device 4100 can control the at least two vibration execution devices 3000 to execute different vibration strategies. For example, when the at least two vibration execution devices 3000 include two handles, one handle can be vibrated in a rotation mode, and the other handle can be vibrated in a pulling mode. For another example, when the at least two vibration execution devices 3000 include two handles and a seat, one handle can be vibrated in a left-right pulling mode, the other handle can be vibrated in an up-and-down pulling mode, and the seat can be vibrated in a sound-following mode (i.e., a second vibration mode).
[0153] Through this embodiment, users can experience a variety of directional force sensations, thereby improving the differentiation and entertainment of the game.
[0154] <Readable Storage Medium Embodiment>
[0155] This embodiment provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the method described in any method embodiment of the present disclosure is executed.
[0156] The present invention may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present invention.
[0157] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.
[0158] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.
[0159] The computer program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. The computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), is personalized by utilizing the state information of the computer readable program instructions, and the electronic circuit can execute the computer readable program instructions, thereby realizing various aspects of the present invention.
[0160] Various aspects of the present invention are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0161] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0162] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0163] The flowcharts and block diagrams in the accompanying drawings show the possible implementation architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present invention. In this regard, each box in the flowchart or block diagram can represent a module, program segment or part of an instruction, and the module, program segment or part of the instruction contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that implementation by hardware, implementation by software, and implementation by a combination of software and hardware are all equivalent.
[0164] While various embodiments of the present invention have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technological improvements in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein. The scope of the present invention is defined by the appended claims.
Claims
1. A vibration control method, characterized in that: include: When the vibration execution device triggers a target vibration scene, the host device determines target vibration information that matches the target vibration scene and sends the target vibration information to the vibration execution device; The vibration execution device determines a target vibration pattern represented by the target vibration information, calls a target vibration controller corresponding to the target vibration pattern to generate a target drive signal matching the target vibration information, and drives a motor in the vibration execution device according to the target drive signal to generate a vibration waveform matching the target vibration scene.
2. The method according to claim 1, characterized in that Determining a target vibration mode represented by the target vibration information includes: determining the target vibration mode to be a first vibration mode when the target vibration information includes waveform parameters representing a vibration condition of the motor; In a case where the target vibration information includes a target audio signal, the target vibration pattern is determined to be a second vibration pattern.
3. The method according to claim 2, characterized in that In the case where the target vibration mode is the first vibration mode, the waveform parameters include shape parameters representing the envelope shape of the vibration waveform, waveform fitting parameters for fitting the vibration waveform, and waveform combination parameters for generating a signal according to the waveform; Generating a target driving signal matching the target vibration information, comprising: generating a prototype waveform conforming to the envelope shape according to the shape parameters, wherein the integral of the prototype waveform within one cycle is zero; generating a first vibration waveform whose envelope matches the prototype waveform according to the waveform fitting parameters; processing the first vibration waveform according to the waveform combination parameter to obtain a first vibration signal matching the first vibration waveform; The target drive signal required for the motor to achieve the first vibration signal is determined.
4. The method according to claim 3, characterized in that The method further comprises: The first vibration waveform is rationally processed so that the first vibration waveform conforms to the actual vibration condition of the motor.
5. The method according to claim 2, characterized in that When the target vibration mode is the second vibration mode, generating a driving signal matching the target vibration information includes: generating a second vibration signal according to the target audio signal; The target driving signal required for the motor to achieve the second vibration signal is determined.
6. The method according to claim 5, characterized in that Generating a second vibration signal according to the target audio signal includes: generating a superposition signal having a frequency identical to a resonant frequency of the motor; The second vibration signal is obtained according to the target audio signal and the superimposed signal.
7. The method according to claim 5, characterized in that The step of driving a motor in the vibration execution device according to the target driving signal to generate vibration matching the target vibration scene includes: Determining a target sampling time corresponding to a rhythm start position of the target audio signal; At the target sampling moment, the motor is driven according to the target driving signal to generate vibration matching the target vibration scenario.
8. The method according to claim 1, characterized in that The method further comprises: In a process in which the vibration execution device drives the motor according to the target drive signal, detecting a first voltage and a first current of the motor at a first sampling moment; The vibration execution device adjusts the voltage of the target drive signal at a second sampling time according to the first voltage and the first current, wherein the second sampling time is a sampling time after the first sampling time.
9. A vibration execution device, characterized in that: The device comprises a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to execute the method steps implemented by the vibration execution device according to any one of claims 1 to 8 under the control of the computer program.
10. A vibration control system, characterized in that: comprising a host device, at least one vibration execution device according to claim 9; The host device is configured to determine target vibration information matching the target vibration scene when the vibration execution device triggers the target vibration scene, and send the target vibration information to the vibration execution device.