Temperature estimation system, control system, program, and method

The temperature estimation system for voice coil motors uses measurement waves below the audible range and adaptive filtering to accurately estimate temperature, reducing unintended vibrations and processor load, thus effectively controlling the motor.

JP2025105449APending Publication Date: 2025-07-10NINTENDO CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024184986
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-28
Filing Date
2024-10-21
Publication Date
2025-07-10

AI Technical Summary

Technical Problem

Existing systems face challenges in accurately estimating the temperature of voice coil motors used for vibration feedback, which can lead to unintended vibrations due to measurement waves within the audible range.

Method used

A temperature estimation system for voice coil motors that generates measurement waves below the audible range, performs low-pass filtering, and calculates resistance values to estimate temperature, with adaptive filter order changes based on load and temperature, allowing for precise temperature estimation and reduced processor load.

Benefits of technology

Accurately estimates voice coil motor temperature while minimizing unintended vibrations and processor load, enabling effective control of the motor based on temperature measurements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025105449000001_ABST
    Figure 2025105449000001_ABST
Patent Text Reader

Abstract

To provide an improved estimation method of a temperature of a vibration motor.SOLUTION: A temperature estimation system in the inside of a voice coil motor includes: measurement wave generation means that generates a measurement wave for estimating a temperature, the measurement wave having a frequency lower than that in an audible region; superimposing control data generation means that generates superimposing control data by superimposing the measurement wave on control data of vibration of the voice coil motor; control data input means that inputs the superimposing control data to the voice coil motor; current and voltage acquisition means that acquires a current value and a voltage value in the inside of the voice coil motor to which the superimposing control data has been input; low-pass filter means that performs low-pass filter processing on the acquired current value and voltage value; resistance value calculation means that calculates a resistance value in the inside of the voice coil motor on the basis of the current value and the voltage value that have been subjected to the low-pass filter processing; and temperature estimation means that estimates a temperature in the inside of the voice coil motor on the basis of the calculated resistance value.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a temperature estimation system, a control system, a program, and a method.

Background Art

[0002] An information processing system that gives vibrations to a user is known. For example, Japanese Patent Application Laid-Open No. 2016-202486 (Patent Document 1) discloses a vibration signal generation program capable of changing vibration parameters.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] There is room for improvement in estimating the temperature of a vibration motor.

Means for Solving the Problems

[0005] (Configuration 1) A temperature estimation system inside a voice coil motor according to an embodiment includes measurement wave generation means for generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; superimposed control data generation means for generating superimposed control data by superimposing the measurement wave on control data for controlling the vibration of the voice coil motor; control data input means for inputting the superimposed control data to the voice coil motor; current / voltage acquisition means for acquiring the current value and voltage value inside the voice coil motor into which the superimposed control data has been input; low-pass filter means for performing low-pass filter processing on the acquired current value and voltage value; resistance value calculation means for calculating the resistance value inside the voice coil motor based on the low-pass filter processed current value and voltage value; and temperature estimation means for estimating the temperature inside the voice coil motor based on the calculated resistance value.

[0006] According to Configuration 1, even in a system that employs a voice coil motor capable of outputting audible sound as a vibration motor, the temperature of the vibration motor can be estimated.

[0007] (Configuration 2) In Configuration 1, the measurement wave generation means may use a frequency of 20 Hz or less as the frequency of the measurement wave. According to Configuration 2, by adopting a frequency of 20 Hz or less as a frequency lower than the audible range, it is possible to reduce giving the user an unintended vibration feeling due to the measurement wave.

[0008] (Configuration 3) In Configuration 1 or 2, the measurement wave generation means may generate a measurement wave having a frequency lower than the lower limit frequency of the control data of the vibration of the voice coil motor. According to Configuration 3, by adopting a measurement wave having a frequency lower than the lower limit frequency of the control data of the vibration of the voice coil motor as a frequency lower than the audible range, it is possible to reduce giving the user an unintended vibration feeling due to the measurement wave.

[0009] (Configuration 4) In any of Configurations 1 to 3, the low-pass filter means may include first changing means for changing the order of the low-pass filter according to the temperature estimated by the temperature estimation means. According to Configuration 4, it is possible to ensure the accuracy of temperature estimation while reducing the processing load by lowering the accuracy of temperature estimation according to the situation.

[0010] (Configuration 5) In any of Configurations 1 to 4, the low-pass filter means may include second changing means for changing the order of the low-pass filter according to the load on the processor that executes the processing of the low-pass filter means. According to Configuration 5, by changing the order of the low-pass filter, it is possible to reduce the load on the processor that also executes other processing.

[0011] (Configuration 6) In any of Configurations 1 to 5, the resistance value calculation means may acquire the current value and voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, and thereby calculate the resistance value a plurality of times. The temperature estimation means may estimate the temperature based on the resistance values obtained a plurality of times.

[0012] (Configuration 7) In any of Configurations 1 to 6, the measurement wave generation means may determine the amplitude value of the measurement wave according to the amplitude value of the control data. According to Configuration 7, by adaptively determining the amplitude value of the measurement wave, the accuracy of temperature estimation can be improved, and the possibility of giving the user an unintended vibration feeling caused by the measurement wave can be reduced.

[0013] (Configuration 8) A control system for a voice coil motor according to another embodiment includes the temperature estimation system described above, and control means for stopping or restricting the driving of the voice coil motor when the temperature estimated by the temperature estimation means becomes equal to or higher than a predetermined value.

[0014] According to Configuration 8, even in a system that employs a voice coil motor capable of outputting audible sound as a vibration motor and / or a system with a short control cycle, the vibration motor can be controlled based on the estimated temperature of the vibration motor.

[0015] (Configuration 9) A control system for a voice coil motor according to still another embodiment includes the temperature estimation system described above, and frequency shift means for shifting the control data of the vibration of the voice coil motor to a value lower than the instructed frequency.

[0016] According to Configuration 9, even in a system that employs a voice coil motor capable of outputting audible sound as a vibration motor and / or a system with a short control cycle, the vibration motor can be controlled based on the estimated temperature of the vibration motor.

[0017] (Configuration 10) In Configuration 8 or 9, the control system may further include temperature measurement means for measuring the temperature by a temperature sensor disposed outside the voice coil motor, and second stop means for stopping or restricting the driving of the voice coil motor when the temperature measured by the temperature sensor becomes equal to or higher than a predetermined value. The period of temperature estimation by the temperature estimation means may be longer than the period in which the temperature is measured by the temperature sensor.

[0018] (Configuration 11) In any of Configurations 8 to 10, the control system may further include amplitude value determination means for determining the amplitude value in the vibration control data by changing the maximum amplitude value according to the frequency in the instruction of the vibration of the voice coil motor.

[0019] (Configuration 12) A program according to yet another embodiment causes one or more computers to perform steps of: generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; generating superimposed control data by superimposing the measurement wave on the control data of the vibration of the voice coil motor; inputting the superimposed control data to the voice coil motor; acquiring the current value and voltage value inside the voice coil motor into which the superimposed control data has been input; performing low-pass filter processing on the acquired current value and voltage value; calculating the internal resistance value of the voice coil motor based on the low-pass filtered current value and voltage value; and estimating the internal temperature of the voice coil motor based on the calculated resistance value.

[0020] (Configuration 13) In Configuration 12, the step of generating the measurement wave may include the step of setting the frequency of the measurement wave to 20 Hz or less.

[0021] (Configuration 14) In Configuration 12 or 13, the step of generating the measurement wave may include the step of generating a measurement wave having a frequency lower than the lower limit frequency of the control data of the vibration of the voice coil motor.

[0022] (Configuration 15) In any of Configurations 12 to 14, the step of performing low-pass filter processing may include the step of changing the order of the low-pass filter according to the estimated temperature.

[0023] (Configuration 16) In any of Configurations 12 to 15, the step of performing low-pass filter processing may include the step of changing the order of the low-pass filter according to the load on the processor that executes the low-pass filter processing.

[0024] (Configuration 17) In any of Configurations 12 to 16, the step of calculating the resistance value may include the step of obtaining the current value and voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, and thereby calculating the resistance value multiple times. The step of estimating the temperature may include the step of estimating the temperature based on the multiple resistance values.

[0025] (Configuration 18) In any of Configurations 12 to 17, the step of generating the measurement wave may include the step of determining the amplitude value of the measurement wave according to the amplitude value of the control data.

[0026] (Configuration 19) In any of Configurations 12 to 18, the program may further cause one or more computers to stop or limit the driving of the voice coil motor when the estimated temperature becomes a predetermined value or more.

[0027] (Configuration 20) In any of Configurations 13 to 19, the program may further cause one or more computers to shift the control data of the vibration of the voice coil motor to a value lower than the instructed frequency when the estimated temperature becomes a predetermined value or more.

[0028] (Configuration 21) In any of Configurations 13 to 20, the program may further cause one or more computers to measure the temperature with a temperature sensor disposed near the vibration motor, and to stop the driving of the vibration motor when the temperature measured by the temperature sensor becomes a predetermined value or more. The period at which the temperature is measured by the temperature sensor may be shorter than the period at which the temperature is calculated based on the calculated resistance value.

[0029] (Configuration 22) In any of Configurations 13 to 21, the program may further cause one or more computers to execute a step of determining a maximum amplitude value of a waveform for driving a vibration motor according to the frequency indicated by the vibration instruction data.

[0030] (Configuration 23) According to yet another embodiment, a method executed by one or more computers is provided. The method includes generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; generating superimposed control data by superimposing the measurement wave on control data for controlling the vibration of a voice coil motor; inputting the superimposed control data to the voice coil motor; acquiring current values and voltage values inside the voice coil motor into which the superimposed control data has been input; performing low-pass filter processing on the acquired current values and voltage values; calculating an internal resistance value of the voice coil motor based on the low-pass filter processed current values and voltage values; and estimating the internal temperature of the voice coil motor based on the calculated resistance value.

[0031] (Configuration 24) In Configuration 23, the step of generating a measurement wave may include setting the frequency of the measurement wave to 20 Hz or less.

[0032] (Configuration 25) In Configuration 23 or 24, the step of generating a measurement wave may include generating a measurement wave having a frequency lower than the lower limit frequency of the control data for controlling the vibration of the voice coil motor.

[0033] (Configuration 26) In any of Configurations 23 to 25, the step of performing low-pass filter processing may include changing the order of the low-pass filter according to the estimated temperature.

[0034] (Configuration 27) In any of Configurations 23 to 26, the step of performing low-pass filter processing may include changing the order of the low-pass filter according to the load on the processor that executes the low-pass filter processing.

[0035] (Configuration 28) In any of Configurations 23 to 27, the step of calculating the resistance value may include the step of obtaining the current value and voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, and thereby calculating the resistance value a plurality of times.

[0036] (Configuration 29) In any of Configurations 23 to 28, the step of generating the measurement wave may include the step of determining the amplitude value of the measurement wave according to the amplitude value of the control data.

[0037] (Configuration 30) In any of Configurations 23 to 29, the method may further include the step of stopping or restricting the driving of the voice coil motor when the estimated temperature reaches or exceeds a predetermined value.

[0038] (Configuration 31) In any of Configurations 23 to 30, the method may further include the step of shifting the control data of the vibration of the voice coil motor to a value lower than the instructed frequency when the estimated temperature reaches or exceeds a predetermined value.

[0039] (Configuration 32) In any of Configurations 23 to 31, the method may further include the step of measuring the temperature by a temperature sensor disposed outside the voice coil motor, and the step of stopping or restricting the driving of the voice coil motor when the temperature measured by the temperature sensor reaches or exceeds a predetermined value. The period for estimating the temperature inside the voice coil motor may be longer than the period for measuring the temperature by the temperature sensor.

[0040] (Configuration 33) In any of Configurations 23 to 31, the method may further include the step of determining the amplitude value in the control data of the vibration by changing the maximum amplitude value according to the frequency in the instruction of the vibration of the voice coil motor.

[0041] (Configuration 34) A temperature estimation system inside a vibration motor according to yet another embodiment includes a measurement wave for estimating temperature, a measurement wave generation means for generating a measurement wave having a frequency lower than the lower limit frequency allowed in control data for driving the vibration motor, a superimposed control data generation means for generating superimposed control data by superimposing the measurement wave on the control data, a control data input means for inputting the superimposed control data to the vibration motor, a current / voltage acquisition means for acquiring the current value and voltage value inside the vibration motor into which the superimposed control data is input, a low-pass filter means for performing low-pass filter processing on the acquired current value and voltage value, a resistance value calculation means for calculating the resistance value inside the vibration motor based on the current value and voltage value that have undergone low-pass filter processing, and a temperature estimation means for estimating the temperature inside the vibration motor based on the calculated resistance value.

[0042] (Configuration 35) In Configuration 34, the measurement wave generation means may use a frequency of 20 Hz or less as the frequency of the measurement wave.

[0043] According to Configurations 34 and 35, the temperature of the vibration motor can be estimated even in a system with low control processing capabilities.

[0044] In any of the above configurations, it is not necessary for a single processor to execute all the processing, and a plurality of processors may execute the processing in cooperation. Also, when a plurality of processors are employed, each processor may be present within the same device or in different devices.

[0045] In any of the above configurations, the necessary processing may be realized by executing a single program, or the necessary processing may be realized by a plurality of processors each executing a different program.

Brief Description of the Drawings

[0046]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Embodiments for Carrying Out the Invention

[0047] This embodiment will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and the description thereof will not be repeated.

[0048] [A. System Configuration Example] First, a configuration example of a game system 10 according to this embodiment will be described.

[0049] FIG. 1 is a schematic diagram showing a configuration example of a game system 10 according to the present embodiment. The game system 10 includes a game device 100 and a game controller 200. The game device 100 executes an application program such as a game program. The game device 100 outputs an image or a picture generated by the execution of the application program to a display device (not shown).

[0050] The game controller 200 receives an operation from the user and transmits operation data indicating the received operation content to the game device 100. The game controller 200 has a vibration motor 206 and drives the vibration motor 206 according to an instruction from the game device 100.

[0051] FIG. 1 shows a configuration example in which the game system 10 includes one game controller 200, but the game system 10 may include a plurality of game controllers 200.

[0052] The game device 100 includes a processor 101, a non-volatile memory 102, a volatile memory 103, and a communication interface (I / F) 104.

[0053] The processor 101 is a processing entity (processing means) for executing processing in the game device 100. The processor 101 is a processing circuit, for example, a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The processor 101 expands and executes a program stored in the non-volatile memory 102 in the volatile memory 103. The processor 101 may be a SoC (System on Chip) in which the functions of the CPU and the GPU are integrated.

[0054] As used herein, the term "processor" includes at least a processing circuit that executes processing according to computer-readable instructions such as a CPU and a GPU, a SoC in which multiple functions are integrated, and a hard-wired circuit such as an ASIC (Application Specific Integrated Circuit) and an FPGA (Field Programmable Gate Array).

[0055] The non-volatile memory 102 is a storage medium accessible by the processor 101, such as a flash memory, a ROM (Read Only Memory), and an SSD (Solid State Drive). Note that the non-volatile memory 102 may be a removable storage medium for the game device 100, such as an optical disk and a cartridge.

[0056] The non-volatile memory 102 stores a system program 102P1 and a game program 102P2.

[0057] The system program 102P1 includes computer-readable instructions for executing basic processing such as communication processing between the game device 100 and the game controller 200. The game program 102P2 includes a vibration file 105. The system program 102P1 may include libraries necessary for executing the game program 102P2.

[0058] The game program 102P2 includes computer-readable instructions for executing game processing. The game program 102P2 includes a vibration file 105.

[0059] The processing in the game device 100 described below is realized by the processor 101 executing at least one of the system program 102P1 and the game program 102P2.

[0060] The volatile memory 103 is a storage medium accessible by the processor 101, such as a DRAM (Dynamic Random Access Memory). During the execution of game processing, the volatile memory 103 includes a data area 103B1 for game progress, an operation data area 103B2, and a vibration instruction data area 103B3.

[0061] The data area 103B1 is an area for temporarily storing data necessary for game progress. The processor 101 refers to the data area 103B1 and updates the data in the data area 103B1 during the execution of the game program 102P2.

[0062] The operation data area 103B2 is an area (buffer) for temporarily storing operation data transmitted from the game controller 200. The processor 101 refers to the operation data area 103B2 during the execution of the game program 102P2.

[0063] The vibration instruction data area 103B3 is an area for temporarily storing vibration instruction data for vibrating the vibration motor 206. The processor 101 writes the vibration instruction data to the vibration instruction data area 103B3 at a predetermined cycle (e.g., 60 fps (frames per second); approximately 16 msec cycle) according to the execution of the game program 102P2. Details of the vibration instruction data will be described later.

[0064] In this specification, the term "memory" includes at least the non-volatile memory 102 and the volatile memory 103.

[0065] The communication interface 104 performs data communication with the game controller 200 using at least one of wireless communication and wired communication. When wireless communication is used, the communication interface 104 includes, for example, a wireless chip that complies with the Bluetooth (registered trademark) standard. When wired communication is used, the communication interface 104 includes, for example, a wired communication controller that complies with the USB (Universal Serial Bus) communication standard.

[0066] The game controller 200 includes an MCU (Micro Controller Unit) 201 as an example of a processor, an amplifier 205, a vibration motor 206, a communication interface (I / F) 207, an acceleration sensor 208, a gyro sensor 209, an operation switch 210, and a temperature sensor 211.

[0067] The game controller 200 is typically held by the user's both hands or one hand, and receives operations from the user when the operation switch 210 is operated by the user's fingers. Note that the game controller 200 is not limited to a game controller in a form held by the user, and may be, for example, a general-purpose keyboard and / or mouse including a vibration motor 206, or a game controller in a form that is laid on the floor and receives input when the user's sole touches it.

[0068] The MCU 201 includes a processor 202, a non-volatile memory 203, and a volatile memory 204.

[0069] The processor 202 is a processing entity (processing means) for executing processing in the game controller 200. The processor 202 expands and executes a program stored in the non-volatile memory 203 in the volatile memory 204. Since the hardware configuration of the processor 202 is the same as that of the above-described processor 101, detailed description will not be repeated.

[0070] The non-volatile memory 203 stores the system program 203P. Since the hardware configuration of the non-volatile memory 203 is the same as that of the non-volatile memory 102 described above, a detailed description will not be repeated.

[0071] The volatile memory 204 includes a vibration instruction data area 204B1, a control data area 204B2, a resistance value area 204B3, and an operation data area 204B4 during the execution of the processing of the game controller 200. Since the hardware configuration of the volatile memory 204 is the same as that of the volatile memory 103 described above, a detailed description will not be repeated.

[0072] The vibration instruction data area 204B1 is an area (FIFO (First-In First-Out) buffer) for temporarily storing vibration instruction data transmitted from the game device 100.

[0073] The control data area 204B2 is an area (FIFO buffer) for temporarily storing control data generated by the processor 202 for vibrating the vibration motor 206. As will be described later, in the present embodiment, the control data is generated based on the vibration instruction data.

[0074] The operation data area 204B4 is an area (buffer) for temporarily storing detection values of the acceleration sensor 208, the gyro sensor 209, the operation switch 210, and the like. Operation data is generated based on the data stored in the operation data area 204B4.

[0075] The resistance value area 204B3 is an area for temporarily storing a resistance value calculated from the current value and voltage value supplied by the amplifier 205 to the vibration motor 206.

[0076] FIG. 1 shows a configuration example using the MCU 201 including the processor 202, the non-volatile memory 203, and the volatile memory 204, but each element may adopt an independent configuration.

[0077] The amplifier 205 supplies power to the vibration motor 206 according to the control data 220. The amplifier 205 may supply a PWM (Pulse Width Modulation) signal with a predetermined carrier frequency (for example, 8 kHz) to the vibration motor 206. The amplifier 205 determines the duty ratio based on the control data 220 every operation cycle corresponding to one carrier (1 / 8 kHz = 0.125 ms) and generates a PWM signal. The control data 220 stored in the control data area 204B2 of the volatile memory 204 is written to the amplifier 205 at a predetermined cycle, for example, by DMA (Direct Memory Access).

[0078] The vibration motor 206 is, for example, an eccentric motor in which a weight with a bias in shape is attached to a rotation shaft. When the vibration motor 206 rotates, vibration is generated. The vibration motor 206 may be a linear motor or a coin-type motor, etc. Thereby, the vibration motor 206 can give vibration to the user holding the game controller 200 in which the vibration motor 206 is stored. In the game controller 200 of the present embodiment, the vibration motor 206 is a voice coil motor that can output audible sound.

[0079] The communication interface 207 performs data communication with the game device 100 using at least one of wireless communication and wired communication. The hardware configuration of the communication interface 207 is the same as that of the communication interface 104 described above, so detailed description will not be repeated. The communication cycle between the communication interface 104 and the communication interface 207 may be variable based on commands from the processor 101 and / or the processor 202, etc.

[0080] The acceleration sensor 208 detects the magnitude of the linear acceleration along a predetermined three-axis direction. Note that the acceleration sensor 208 may detect acceleration in one-axis direction or two-axis direction.

[0081] The gyro sensor 209 detects the inclination, angular velocity, angular acceleration, etc. of the game controller 200.

[0082] The operation switch 210 is at least one button, key, or stick provided on the surface of the game controller 200. Typically, the operation switch 210 may be a button associated with characters such as the A button and the B button, a cross key for inputting the up, down, left, and right directions, and a 3D stick for inputting the tilt direction and tilt amount.

[0083] The temperature sensor 211 is a sensor for measuring the internal temperature of the game controller 200. The temperature sensor 211 is, for example, a thermistor. The temperature sensor 211 may be arranged in the vicinity of the vibration motor 206. Also, if the temperature sensor 211 is arranged in a location near the MCU as well, it is possible to detect the temperature rise of both the vibration motor 206 and the MCU 201.

[0084] One or more peripheral devices (not shown) may be connectable to the game controller 200. In this case, the game controller 200 may have an interface for connecting to the peripheral device.

[0085] The system program 203P includes computer-readable instructions for executing the necessary processes in the game controller 200. The system program 203P includes, for example, (1) processes for generating control data 220 provided to the amplifier 205 based on vibration instruction data received from the game device 100, (2) processes for estimating the temperature of the vibration motor 206 and stopping or restricting the vibration motor 206 based on the estimated temperature, (3) processes for stopping the vibration motor 206 based on the temperature measured by the temperature sensor 211, (4) processes for filtering the detection values of the acceleration sensor 208 and the gyro sensor 209, (5) processes for calculating the attitude based on the detection values of the acceleration sensor 208 and the gyro sensor 209, and (6) processes for communicating between the game controller 200 and the game device 100. The system program 203P includes computer-readable instructions for executing a plurality of such processes in parallel. Note that some or all of the processes (1) to (6) may be independent computer-readable instructions. That is, the system program 203P may be a set of software prepared for each process.

[0086] The communication process between the game device 100 and the game controller 200 includes a process of transmitting operation data including detection values of the acceleration sensor 208, the gyro sensor 209, and the operation switch 210, etc. to the game device 100, and a process of receiving vibration instruction data from the game device 100.

[0087] [B. Vibration Instruction Data] Next, the vibration instruction data transmitted from the game device 100 to the game controller 200 will be described.

[0088] The vibration instruction data is data for instructing a vibration effect. The vibration instruction data is, for example, data for specifying the waveform of control data for controlling vibration at a certain timing. The vibration instruction data 116 includes one or more vibration parameters for instructing the waveform of the control data. The vibration instruction data 116 may include a set of an amplitude parameter and a frequency parameter as an example of the vibration parameters.

[0089] In this embodiment, by designating one or more (N pieces) of vibration instruction data 116 for each vibration instruction period T (msec) in time series order, the vibration effect for a period of T×N (msec) is designated. Hereinafter, the N pieces of vibration instruction data 116 designated in time series order are also referred to as a "time series vibration instruction data group". For example, the vibration instruction period T may be set to 5 msec.

[0090] By adopting such a data format, it is possible to easily designate a vibration effect in which the amplitude value and the frequency change.

[0091] FIG. 2 is a diagram for explaining the generation process of the time series vibration instruction data group 110 in the game device 100 according to this embodiment. Referring to FIG. 2, the vibration file 105 includes information for instructing the vibration effect for each vibration event.

[0092] More specifically, in the vibration file 105, for each vibration event, in addition to the vibration parameters (amplitude parameter and frequency parameter), a wavelength number parameter is set. The wavelength number parameter is used to determine the number of vibration parameters that make up the time series vibration parameter group.

[0093] For example, in vibration event 1, the frequency is set to "100 Hz" and the wavelength number parameter is set to "1". Therefore, the vibration effect corresponding to vibration event 1 continues for a period of 10 msec, which is one wavelength of 100 Hz. As a result, the time series vibration instruction data group for instructing the vibration effect corresponding to vibration event 1 includes two pieces of vibration instruction data. That is, the time series vibration instruction data group includes vibration instruction data for two cycles of the vibration instruction period.

[0094] In the vibration file 105 shown in FIG. 2, among the amplitude instruction data, the amplitude parameters are normalized to 0 to 1. By executing the game program 102P2, vibration instruction data 116 (time-series vibration instruction data group 114) including the normalized amplitude parameters is generated. By executing the system program 102P1, the amplitude parameters of the vibration instruction data 116 are multiplied by the maximum allowable voltage corresponding to the frequency, thereby generating the vibration instruction data 112. The amplitude parameter of the vibration instruction data 112 indicates the voltage amplitude value. The generated vibration instruction data 112 (time-series vibration instruction data group 110) is written into the vibration instruction data area 103B3 (see FIG. 1).

[0095] FIG. 3 is a diagram showing an example of the frequency characteristics of the maximum allowable voltage in the game system 10 according to the present embodiment. Referring to FIG. 3, the maximum voltage (maximum allowable voltage) that can be applied to the vibration motor 206 is different for each frequency. The system program 102P1 can refer to the frequency characteristics of the maximum allowable voltage as shown in FIG. 3.

[0096] With such a configuration, it is also possible to effectively utilize the maximum allowable voltage for each frequency to increase the output of vibration. In addition, since the time-series vibration instruction data group 110 can be generated without considering the specifications of the vibration motor 206 and the like, the implementation of the game program 102P2 can be facilitated.

[0097] In the above description, a processing example is shown in which the time-series vibration instruction data group 110 (one or more vibration instruction data 112) is generated each time based on the vibration file 105. However, the time-series vibration instruction data group 110 (one or more vibration instruction data 112) may be prepared in advance as file format data. In this case, the processor 101 may read out the data each time during the execution of the game program 102P2. By using such file format data, the process of generating the time-series vibration instruction data group 110 each time becomes unnecessary, so the implementation of the game program 102P2 can be facilitated. Note that the vibration instruction data 112 may be generated in real time without using the vibration file 105.

[0098] In the above description, an example of a process using vibration instruction data for specifying vibration at a certain timing is shown, but variation instruction data for specifying a change from the immediately preceding vibration may be adopted. The variation instruction data indicates, for example, the amount of change in the amplitude value and frequency compared to the vibration parameters in the immediately preceding vibration instruction cycle. In this case, the vibration parameters in the current vibration instruction cycle are calculated based on the vibration parameters in the immediately preceding vibration instruction cycle and the amounts of change in the amplitude value and frequency. The process of calculating such vibration parameters may be performed by the processor 101 of the game device 100, or all or part of the process may be performed by the MCU 201 of the game controller 200.

[0099] In the above description, an example of a process in which the processor 101 executes the game program 102P2 to generate vibration instruction data 116 including a normalized amplitude parameter is shown, but vibration instruction data 112 (time-series vibration instruction data group 110) including an amplitude parameter for instructing a voltage amplitude value may be directly generated by the execution of the game program.

[0100] When the time-series vibration instruction data group 110 (one or more pieces of vibration instruction data 112) is stored in the vibration instruction data area 103B3, a predetermined number of pieces of vibration instruction data 112 are sequentially transmitted from the game device 100 to the game controller 200 every communication cycle (for example, 5 msec) between the communication interface 104 and the communication interface 207.

[0101] [C. Example of Processing in Game Device 100] Next, an example of processing in the game device 100 will be described.

[0102] FIG. 4 is a flowchart showing an example of the processing of the game program 102P2 in the game apparatus 100 according to the present embodiment. Each step shown in FIG. 4 is realized by the processor 101 of the game apparatus 100 executing the game program 102P2. The game program 102P2 may be, for example, an action game, but the type of the game is not limited at all.

[0103] Referring to FIG. 4, the processor 101 executes game processing (step S100). The game processing includes processing for determining the state of the game character based on the operation data and processing for generating an image to be output to the display device.

[0104] The processor 101 determines whether a vibration event has occurred by executing the game processing (step S101). The vibration event is a trigger for giving vibration to the user, and is, for example, an event such as a game object colliding with another game object or an explosion in the virtual space. The vibration event may occur at a predetermined timing. When a predetermined condition is satisfied as the game progresses, the vibration event occurs.

[0105] If a vibration event has occurred (YES in step S101), the processor 101 passes the time-series vibration instruction data group 114 corresponding to the vibration effect to the system program 102P1 (step S102). If a vibration event has not occurred (NO in step S101), the processing of step S102 is skipped.

[0106] The processor 101 executes other game processing (step S103). The processing of steps S101 to S103 is repeated until the end condition of the game processing is satisfied.

[0107] FIG. 5 is a flowchart showing an example of the processing of the system program 102P1 in the game apparatus 100 according to the present embodiment. Each step shown in FIG. 5 is realized by the processor 101 of the game apparatus 100 executing the system program 102P1.

[0108] By executing the system program 102P1, the processor 101 of the game apparatus 100 generates a time-series vibration instruction data group 114 that instructs a waveform having a predetermined frequency or higher for driving the vibration motor 206 in accordance with an instruction generated by executing an application program (game program 102P2).

[0109] Referring to FIG. 5, the processor 101 selects one of the vibration instruction data 116 included in the time-series vibration instruction data group 114 passed from the game program 102P2 (step S150). Then, the processor 101 determines the order set in the low-pass filter (hereinafter also abbreviated as "LPF") of the game controller 200 (step S151). As will be described later, the order of the LPF of the game controller 200 can be changed. As an example, the case where it is set to either the fourth order or the sixth order will be described. Note that the order of the LPF may be set or changed to any value.

[0110] If the order of the LPF of the game controller 200 is set to the sixth order ( "sixth order" in step S151), the processor 101 sets the lower limit value of the frequency parameter indicated by the time-series vibration instruction data group 114 transmitted to the game controller 200 to 40 Hz (step S152).

[0111] If the order of the LPF of the game controller 200 is set to 4 ( "4th order" in step S151), the processor 101 sets the lower limit value of the frequency parameter to 50 Hz (step S153). When the order of the LPF is set to 4, the lower limit value of the frequency parameter is set higher by a predetermined value (for example, 10 Hz) compared to the case where the order of the LPF is set to 6. In this way, when the order of the LPF is changed, a margin may be added to the certain range that limits the frequency parameter.

[0112] Subsequently, the processor 101 determines whether the frequency parameter of the selected vibration instruction data 116 is less than or equal to the lower limit value (step S154).

[0113] If the frequency parameter is less than or equal to the lower limit value (YES in step S154), the processor 101 changes the frequency parameter to the lower limit value (step S155). If the frequency parameter is not less than or equal to the lower limit value (NO in step S154), the process of step S155 is skipped.

[0114] The processes of steps S150 to S155 are for restricting the lower limit value of the frequency parameter indicated by the time-series vibration instruction data group 114 transmitted to the game controller 200. Note that 40 Hz and 50 Hz are examples of the lower limit frequencies allowed in the control data, and the lower limit frequency can be arbitrarily set according to the amplifier 205 and the vibration motor 206 of the game controller 200. Specifically, in the present embodiment, the frequency at which effective vibration can occur as the frequency characteristic of the vibration motor 206 is higher than about 40 Hz. For example, when it drops to 30 Hz or lower, the vibration becomes considerably weak. Therefore, the lower limit frequency that can be used in the game application is set to 40 Hz or 50 Hz.

[0115] In step S152, the amplitude parameter may be set to 0. By adopting such a process, the frequency parameter of the vibration instruction data 116 is not reflected, so it is canceled or invalidated.

[0116] Note that the processes of steps S150 to S155 may be included in the game program 102P2 instead of the system program 102P1.

[0117] The processor 101 determines the maximum allowable voltage according to the frequency parameter of the selected vibration instruction data 116 (step S156). The processor 101 multiplies the maximum allowable voltage by the amplitude parameter (0 to 1) of the selected vibration instruction data 116 to calculate the voltage amplitude value (step S157). In this way, the processor 202 determines the amplitude value in the vibration control data 220 by changing the maximum amplitude value according to the frequency in the instruction of the vibration of the vibration motor 206.

[0118] The processor 101 writes a set of the calculated voltage amplitude value (amplitude parameter) and the frequency parameter of the selected vibration instruction data 116 into the vibration instruction data area 103B3 (step S158). The written one or more sets correspond to the time-series vibration instruction data group 110 (vibration instruction data 112).

[0119] The processor 101 determines whether all the vibration instruction data 116 included in the time-series vibration instruction data group 114 passed from the game program 102P2 have been processed (step S159). If not all the vibration instruction data 116 included in the time-series vibration instruction data group 114 passed from the game program 102P2 have been processed (NO in step S159), the processes below step S150 are repeated.

[0120] If all the vibration instruction data 116 included in the time-series vibration instruction data group 114 passed from the game program 102P2 have been processed (YES in step S159), the process ends.

[0121] The process shown in FIG. 5 may be repeatedly executed at a predetermined period, or may be executed triggered by a predetermined condition being satisfied (for example, the time-series vibration instruction data group 114 being passed from the game program 102P2).

[0122] [D. Temperature Estimation Processing] Next, the temperature estimation processing according to the present embodiment will be described.

[0123] The game system 10 according to the present embodiment includes a temperature estimation system inside the vibration motor 206 which is a voice coil motor. For example, the game controller 200 (processor 202) estimates the temperature of the vibration motor 206 based on the resistance value of the vibration motor 206. More specifically, the amplifier 205 acquires the current value and voltage value of the vibration motor 206 and outputs them to the MCU. Based on the current value and voltage value corresponding to the measurement wave among this current value and voltage value, the resistance value and / or temperature is calculated.

[0124] In this specification, the "measurement wave" is a signal or waveform for estimating the temperature of the vibration motor 206. The measurement wave is used to measure the resistance value of the vibration motor 206. The measurement wave is typically a sine wave, but may be other waveforms.

[0125] The temperature estimated by the temperature estimation processing indicates the temperature inside the vibration motor 206, and for example, can be used to prevent thermal degradation of the vibration motor 206. The temperature measured by the temperature sensor 211 is the temperature outside the vibration motor 206 and indicates the internal temperature of the game controller 200 and / or the surface temperature of the game controller 200.

[0126] The temperature estimation system according to the present disclosure is executed by the processing on the game controller 200 side, but a part or all of it may be executed by the processing on the game system 10 side.

[0127] The game system 10 according to the present embodiment includes a control system for the vibration motor 206 which is a voice coil motor. For example, the game controller 200 (processor 202) can stop and / or limit the driving of the vibration motor 206 based on the estimated temperature of the vibration motor 206.

[0128] The control system according to the present disclosure may be configured using at least a part of the game system 10, not limited to the game controller 200 alone.

[0129] [E. Processing Example in Game Controller 200] Next, a processing example in the game controller 200 will be described.

[0130] (e1: Generation Process of Control Data 220) In the game controller 200, control data 220 is generated. The control data 220 is data input to the amplifier 205 to control the vibration of the vibration motor 206. More specifically, the time-series vibration instruction data group 110 is transmitted from the game device 100 to the game controller 200, and the processor 202 of the game controller 200 generates the control data 220 based on the time-series vibration instruction data group 110. The control data 220 is typically data indicating the voltage value of a waveform for driving the vibration motor 206, and is output or updated at a predetermined period. The control data 220 may be data indicating the instantaneous value of the voltage for each period. Hereinafter, the period at which the control data 220 is output or updated is also referred to as the "control period".

[0131] The control period may be the same as the vibration instruction period (for example, 5 msec), but finer control can be achieved by making the control period shorter than the vibration instruction period. When generating the control data 220 at a period shorter than the vibration instruction period, by generating the control data on the game controller 200 side, it is possible to reduce the communication volume between the game device 100 and the game controller 200 while achieving finer control. For example, the control period may be 1 / 40 of the vibration instruction period (for example, 5 msec). That is, the control period may be 0.125 msec.

[0132] The control data 220 indicates the waveform of the vibration (sine wave). However, the control data 220 may indicate a rectangular wave, or may indicate other waveforms depending on the system configuration. Also, instead of supplying a PWM modulation signal obtained by PWM-modulating the waveform of the vibration indicated by the control data 220 to the vibration motor 206, power amplified from the waveform of the vibration indicated by the control data 220 as it is may be supplied to the vibration motor 206.

[0133] FIG. 6 is a flowchart showing an example of the generation process of the control data 220 in the game controller 200 according to the present embodiment. Each step shown in FIG. 6 is realized by the processor 202 of the game controller 200 executing the system program 203P. The process shown in FIG. 6 may be repeatedly executed at a predetermined period (for example, vibration instruction period).

[0134] Referring to FIG. 6, the processor 202 determines whether or not there is data in the vibration instruction data area 204B1 (step S200). If there is no data in the vibration instruction data area 204B1 (NO in step S200), the process of step S200 is repeated.

[0135] If there is data in the vibration instruction data area 204B1 (YES in step S200), the processor 202 acquires the vibration instruction data 112 (step S201). At this time, among the data stored in the vibration instruction data area 204B1, the first (oldest) vibration instruction data 112 is acquired.

[0136] The processor 202 sets the index X to 1 (step S202). The processor 202 calculates a phase advanced by one control period (0.125 msec) from the phase of the current control data (previously calculated control data) based on the frequency parameter of the acquired vibration instruction data 112 (step S203). The processor 202 calculates control data (voltage value) based on the amplitude parameter of the acquired vibration instruction data 112 and the phase calculated in step S203 (step S204).

[0137] Incidentally, immediately after the vibration instruction data 112 is newly acquired, the amplitude parameter and the frequency parameter may change significantly. In such a case, for at least one of the amplitude parameter (step S204) and the frequency parameter (step S203), instead of applying the indicated value as it is, it may be gradually changed from the previous value to the indicated value.

[0138] Based on the phase calculated in step S203, the processor 202 calculates the voltage value of the measurement wave (for example, the amplitude value is 0.1 V and the frequency is 10 Hz) (step S205). In this way, the processor 202 generates a measurement wave for estimating the temperature inside the vibration motor 206.

[0139] The processor 202 superimposes the voltage value of the measurement wave calculated in step S205 on the control data (voltage value) calculated in step S204 (step S206). In this way, the processor 202 generates superimposed control data by superimposing the measurement wave on the control data for the vibration of the voice coil motor, which is the vibration motor 206. The superimposed control data indicates a waveform in which the measurement wave is superimposed on the waveform by the vibration instruction data 112 for driving the vibration motor 206.

[0140] The processor 202 writes the addition result (superimposed control data in which the voltage of the measurement wave is superimposed on the control data) to the control data area 204B2 (step S207). In this way, the processor 202 inputs the addition result (superimposed control data in which the voltage of the measurement wave is superimposed on the control data) to the voice coil motor, which is the vibration motor 206. The amplifier 205 drives the vibration motor 206 based on the addition result written to the control data area 204B2.

[0141] The processor 202 increments the index X by 1 (step S208). The processor 202 determines whether the incremented index X exceeds 40 (step S209).

[0142] If the incremented index X does not exceed 40 (= vibration instruction period / control period) (NO in step S209), the processing from step S203 and below is repeated. If the incremented index X exceeds 40 (YES in step S209), the processor 202 deletes the vibration instruction data 112 acquired in step S201 from the vibration instruction data area 204B1 (step S210). Then, the processing from step S200 and below is repeated.

[0143] In the example of the generation process of the control data 220 according to the present embodiment, since a measurement wave having a frequency lower than the audible range (for example, 20 Hz to 20,000 Hz) (for example, 10 Hz) is adopted, it is possible to avoid the sound due to the measurement wave from being heard from the voice coil motor. Further, even when a high frequency cannot be generated due to the processing ability of the processor and a measurement wave having a frequency higher than the audible range cannot be used, temperature estimation becomes possible. Further, the temperature inside the vibration motor 206 can be estimated in a state where the influence on the vibration given to the user is small.

[0144] The frequency of the measurement wave is not limited to 10 Hz, and may be set to any frequency lower than, for example, 40 Hz (the lower limit value of the frequency parameter available for the application). That is, a measurement wave having a frequency lower than the lower limit frequency of the control data of the vibration of the vibration motor 206, which is a voice coil motor, may be adopted. Further, from another point of view, it may be set to any frequency lower than the audible range. The frequency of the measurement wave can also be set to a frequency of 20 Hz or less, and may be set to, for example, 20 Hz, 15 Hz, etc., or may be set to a frequency of 10 Hz or less. Thus, a frequency of 20 Hz or less may be used as the frequency of the measurement wave.

[0145] In the generation process example shown in FIG. 6, although the amplitude value of the measurement wave is constant (for example, 0.1 V), the amplitude value of the measurement wave may be determined based on the amplitude parameter of the vibration instruction data 112. In this case, typically, when the amplitude parameter of the vibration instruction data 112 is large, the amplitude value of the measurement wave may be increased, and when the amplitude parameter of the vibration instruction data 112 is small, the amplitude value of the measurement wave may be decreased. FIG. 7 is a flowchart for realizing this modification example.

[0146] FIG. 7 is a flowchart showing a modification example of the generation process of the control data 220 in the game controller 200 according to the present embodiment. Each step shown in FIG. 7 is realized by the processor 202 of the game controller 200 executing the system program 203P. In the modification example shown in FIG. 7, steps S214 and S215 are adopted instead of step S205 in the generation process example shown in FIG. 6.

[0147] The processor 202 determines the amplitude value of the measurement wave based on the amplitude parameter of the acquired vibration instruction data 112 (step S214). In this way, the processor 202 determines the amplitude value of the measurement wave according to the amplitude value of the control data.

[0148] Specifically for illustration, for example, if the amplitude parameter of the vibration instruction data 112 is 3 V or more, the amplitude value of the measurement wave may be determined to be 0.2 V, and if the amplitude parameter of the vibration instruction data 112 is lower than 3 V, the amplitude value of the measurement wave may be determined to be 0.1 V. Alternatively, a value obtained by multiplying the amplitude parameter of the vibration instruction data 112 by a predetermined ratio (for example, 5% or the like) may be determined as the amplitude value of the measurement wave.

[0149] The processor 202 calculates the voltage value of the measurement wave based on the phase calculated in step S203 so that the measurement wave (the amplitude value is the value determined in step S214 and the frequency is 10 Hz) is generated (step S215). In this way, the processor 202 adaptively determines the voltage value of the measurement wave for estimating the temperature of the vibration motor 206.

[0150] The processes other than steps S215 and S216 are the same as the corresponding processes in FIG. 6, and thus detailed descriptions will not be repeated.

[0151] The larger the amplitude value of the measurement wave, the higher the accuracy of temperature estimation. However, if the amplitude value of the measurement wave becomes too large, it will give the user an unintended feeling. As described above, by dynamically changing the amplitude value of the measurement wave according to the amplitude value of the vibration originally given to the user, the accuracy of temperature estimation can be improved, and the feeling of the unintended measurement wave can be reduced for the user.

[0152] (e2: Temperature Estimation Process and Vibration Motor Stop Process) In the game controller 200, the temperature of the vibration motor 206 is estimated based on the resistance value of the vibration motor 206. Based on the estimated temperature, the vibration motor 206 may be stopped.

[0153] FIG. 8 is a flowchart showing Temperature Estimation Process Part 1 in the game controller 200 according to the present embodiment. Each step shown in FIG. 8 is realized by the processor 202 of the game controller 200 executing the system program 203P.

[0154] Referring to FIG. 8, the processor 202 acquires the current values and voltage values of a predetermined number (for example, 40) of vibration motors 206 from the amplifier 205 (step S220). That is, the processor 202 acquires the current value and voltage value inside the vibration motor 206 into which the superimposed control data with the measurement wave superimposed on the control data is input. For example, a set of current values and voltage values detected every operation period (for example, 0.125 ms) of the amplifier 205 may be acquired 40 in chronological order (that is, for 5 msec).

[0155] The processor 202 executes the LPF order determination process (step S221). Note that the higher the order of the LPF, the higher the calculation accuracy. The processor 202 executes the LPF process for each of the 40 current values and 40 voltage values acquired in step S220 with the order determined in step S221 (step S222). In this way, the processor 202 performs the LPF process on the acquired current values and voltage values.

[0156] The LPF process extracts components of 10 Hz or less from, for example, 40 current values (time waveform of current values) and 40 voltage values (time waveform of voltage values), respectively. By the LPF process, components corresponding to the measured wave calculated in step S205 of FIG. 6 are extracted. Any filter structure may be used, for example, an IIR (Infinite Impulse Response) filter or an FIR (Finite Impulse Response) filter can be used.

[0157] As an example, for the input x n and the corresponding output y n at time n, the second-order IIR digital filter can be described using the following calculation formulas (1) and (2).

[0158] u n = x n - a1u n-1 - a2u n-2 ···(1) y n = b0u n + b1u n-1 + b2u n-2 ···(2) However, u n is a value adopted for calculation convenience, and a1, a2, b0, b1, b2 are parameters that determine the filter characteristics.

[0159] Since the IIR filter according to the above equation is a second-order filter, a fourth-order filter can be realized by connecting two of them in series, and a sixth-order filter can be realized by connecting three of them in series. Note that connecting IIR filters in series means using the output y n of the previous IIR filter as the input x n of the subsequent IIR filter. In implementation, at one operation timing, the filtering result by a fourth-order filter can be obtained by repeating the calculations according to calculation formulas (1) and (2) twice, and the filtering result by a sixth-order filter can be obtained by repeating the calculations according to calculation formulas (1) and (2) three times.

[0160] Note that fourth-order and sixth-order IIR filters may be used. In this case, it is not necessary to connect the IIR filters in series. Specifically, an Nth-order IIR digital filter can be described using the following calculation formulas (3) and (4).

[0161] u n =x n -a1u n-1 -…-a N u n-N ···(3) y n =b0u n +b1u n-1 +…+b N u n-N ···(4) Thus, according to the change in the order, the calculation formula used for frequency filtering is changed. The change in the calculation formula may be a change in the order of the calculation formula. Also, in frequency filtering, the lower the set order, the lower the calculation load. Since the FIR filter is described by a different calculation formula from the IIR filter, the calculation formula is also changed when the FIR filter is changed to an IIR filter.

[0162] As an example of frequency filtering, the LPF process has been described, but filtering processes using a band-pass filter or a high-pass filter may also be employed. For frequency filtering, any filter (LPF, high-pass filter, and band-pass filter) can be used.

[0163] The processor 202 calculates a resistance value using the current value (time waveform of the current value) and the voltage value (time waveform of the voltage value) after the LPF process (step S223). In this way, the processor 202 calculates the resistance value inside the vibration motor 206, which is a voice coil motor, based on the current value and voltage value that have been LPF-processed. The resistance value calculated in step S223 is the value at each execution period (for example, 50 msec) of the first part of the temperature estimation process.

[0164] The processor 202 writes the calculated resistance value to the resistance value area 204B3 (step S224). Note that the resistance value area 204B3 is configured to be able to store 40 resistance values. In this case, the resistance values for 2 seconds (50 msec × 40) are stored in time series in the resistance value area 204B3.

[0165] The process shown in FIG. 8 may be repeatedly executed at a predetermined execution period (for example, 50 msec). The execution period of the process shown in FIG. 8 may be set longer than the execution period of the temperature measurement by the temperature sensor 211 shown in FIG. 11. By making the execution period of the temperature estimation process longer than the execution period of the temperature measurement by the temperature sensor 211, it is possible to reduce the load on the MCU 201 (processor 202) that has to execute a plurality of processes while maintaining the level of temperature management.

[0166] FIG. 9 is a flowchart showing the second temperature estimation process in the game controller 200 according to the present embodiment. In addition to the first temperature estimation process, the processor 202 executes the second temperature estimation process. Each step shown in FIG. 9 is realized by the processor 202 of the game controller 200 executing the system program 203P. The process shown in FIG. 9 may be repeatedly executed at a predetermined execution cycle (for example, 50 msec).

[0167] Referring to FIG. 9, the processor 202 calculates the average resistance value from the 40 resistance values stored in the resistance value area 204B3 (step S240). Note that other representative values such as the median or the mode may be used instead of the average value. The processor 202 calculates the temperature from the calculated average resistance value (step S241). The process of calculating the temperature from the average resistance value may use a predetermined calculation formula or a table defining the correspondence between the resistance value and the temperature. As shown in step S240, the processor 202 may acquire the current value and the voltage value for a predetermined period or a predetermined number of times, thereby calculating the resistance value a plurality of times. Then, the processor 202 may estimate the temperature based on the resistance values obtained a plurality of times.

[0168] The processor 202 determines the order set in the LPF (step S242). If the order of the LPF is set to 6 (in step S242, "6th order"), the processor 202 sets the first threshold temperature and the second threshold temperature according to the order of the LPF (6th order) (step S243). In the present embodiment, a value larger than the second threshold temperature is set as the first threshold temperature.

[0169] If the order of the LPF is set to 4 (i.e., "4th order" in step S242), the processor 202 sets the first threshold temperature and the second threshold temperature according to the order of the LPF (4th order) (step S244). In the present embodiment, the first threshold temperature when the order of the LPF is 4th is set to a value lower than the first threshold temperature when the order of the LPF is 6th. Also, the second threshold temperature when the order of the LPF is 4th is set to a value lower than the second threshold temperature when the order of the LPF is 6th.

[0170] The processor 202 determines whether the calculated temperature is equal to or higher than the first threshold temperature (step S245).

[0171] If the calculated temperature is equal to or higher than the first threshold temperature (i.e., YES in step S245), the processor 202 changes the amplitude parameter of the leading vibration instruction data 112 among the vibration instruction data 112 stored in the vibration instruction data area 204B1 to zero (step S246). Subsequently, the processor 202 determines whether a predetermined time has elapsed (step S247). If the predetermined time has not elapsed (i.e., NO in step S244), the processes below step S247 are repeated. If the predetermined time has elapsed (i.e., YES in step S247), the processes below step S246 are repeated.

[0172] If the calculated temperature is lower than the first threshold temperature (i.e., NO in step S245), the processor 202 determines whether the calculated temperature is equal to or higher than the second threshold temperature (step S248). If the calculated temperature is lower than the second threshold temperature (i.e., NO in step S248), the processes below step S240 are repeated.

[0173] On the other hand, if the calculated temperature is equal to or higher than the second threshold temperature (i.e., YES in step S248), the driving of the vibration motor 206 is restricted.

[0174] More specifically, the processor 202 determines whether the frequency parameter of the first vibration instruction data 112 among the vibration instruction data 112 stored in the vibration instruction data area 204B1 is 150 Hz or more (step S249).

[0175] If the frequency parameter of the first vibration instruction data 112 is 150 Hz or more (YES in step S249), the processor 202 changes the frequency parameter of the first vibration instruction data 112 to 100 Hz (step S250).

[0176] In this way, when the calculated temperature becomes equal to or higher than a predetermined value, the processor 202 stops or limits the driving of the vibration motor 206, which is a voice coil motor (S246, S250).

[0177] Further, when the calculated temperature becomes equal to or higher than a predetermined value, the processor 202 shifts the control data of the vibration of the vibration motor 206, which is a voice coil motor, to a value lower than the instructed frequency (S250). Note that the limitation of the driving of the vibration motor 206 includes a process of shifting the frequency of the waveform for driving the vibration motor 206 to a frequency with better vibration efficiency. As can be seen with reference to FIG. 3, the vibration motor 206 of the present embodiment has the characteristic of being most likely to vibrate at a frequency of 100 Hz (the characteristic that the vibration is large even at a low driving voltage).

[0178] If the frequency parameter of the leading vibration instruction data 112 is lower than 150 Hz (NO in step S249), the processor 202 reduces the amplitude parameter of the leading vibration instruction data 112 (for example, changes it to half the value) (step S251). Note that the processor 202 may change the amplitude parameter of the leading vibration instruction data 112 to the upper limit value only when the amplitude parameter of the leading vibration instruction data 112 exceeds the upper limit value. In this way, the limitation of driving the vibration motor 206 includes a process of reducing the amplitude of the waveform for driving the vibration motor 206. In this way, in the present embodiment, as a method of limiting vibration, both a frequency shift and a method of reducing the amplitude are adopted, but only one of them may be used.

[0179] Subsequently, the processor 202 determines whether or not a predetermined time has elapsed (step S252). If the predetermined time has not elapsed (NO in step S252), the processes from step S249 and below are repeated. If the predetermined time has elapsed (YES in step S252), the processes from step S240 and below are repeated.

[0180] Note that in step S246, the control data 220 existing in the control data area 204B2 may be changed to zero. Also, in step S247, instead of waiting for the elapse of a predetermined time, steps S24 and S241 may be executed again and waiting may be continued until the temperature calculated (or the temperature measured by the temperature sensor 211) becomes equal to or lower than a predetermined threshold temperature.

[0181] When a large amount of power is supplied to the vibration motor 206, the resistance value of the vibration motor 206 instantaneously increases. Even with such an instantaneous increase in the resistance value, the influence of thermal degradation of the vibration motor 206 is small. Therefore, as shown in step S240, the vibration motor 206 is stopped and / or limited based on the result of averaging the resistance values over a predetermined period. As a result, the output from the vibration motor 206 can be instantaneously increased.

[0182] Also, when the frequency of the measurement wave is low, if the prediction period is short, the accuracy of temperature estimation decreases. Therefore, as shown in step S240, by using a plurality of resistance values over a longer period and using the averaged value, the accuracy of temperature estimation can be improved.

[0183] FIG. 10 is a flowchart showing a more detailed processing example of the LPF order determination process (step S221) shown in FIG. 8. Referring to FIG. 10, the processor 202 determines whether the load on the MCU 201 is at a predetermined level or higher (step S2210). Whether the load on the MCU 201 is at a predetermined level or higher may employ one or more of the following determination methods.

[0184] (1) Measure the operating rate of the MCU 201, and when the measured operating rate is equal to or higher than a predetermined value, determine that the load on the MCU 201 is at a predetermined level or higher.

[0185] (2) Determine whether the MCU 201 is executing a predetermined process. If it is executing a predetermined process, determine that the load on the MCU 201 is at a predetermined level or higher. The predetermined process may be, for example, (a) processing of input or output of sensors of the game controller 200 (e.g., motion sensors (acceleration sensor 208 and gyro sensor 209), camera, microphone, infrared sensor, etc.), or (b) processing of input or output of external devices connected to the game controller 200. At least a part of the motion sensor, camera, microphone, and infrared sensor may be peripheral devices connectable to the game controller 200.

[0186] (3) When the period of communicating vibration instruction data (control data for controlling vibration) between the game device 100 and the game controller 200 is variable, if the period of the communication is at a predetermined level or higher (the communication rate is at a predetermined value or higher or the time interval is at a predetermined value or less, etc.), determine that the load on the MCU 201 is at a predetermined level or higher.

[0187] If the load on the MCU201 is equal to or greater than a predetermined level (YES in step S2210), the processor 202 determines that the order of the LPF is 4 (step S2211). In this way, the processor 202 changes the order of the LPF according to the load on the MCU201 (the processor 202 that executes the LPF process).

[0188] If the load on the MCU201 is lower than the predetermined level (NO in step S2210), the processor 202 acquires the temperature estimated in step S241 (step S2212), and determines whether or not the estimated temperature is equal to or higher than a predetermined value (step S2213).

[0189] If the temperature estimated in step S241 is equal to or higher than the predetermined value (YES in step S2213), the processor 202 determines that the order of the LPF is 6 (step S2214). On the other hand, if the temperature estimated in step S241 is not equal to or higher than the predetermined value (NO in step S2213), the processor 202 determines that the order of the LPF is 4 (step S2215). In this way, the processor 202 changes the order of the LPF according to the estimated temperature.

[0190] The temperature estimation process places a large load on the MCU201. Therefore, as shown in step S2210, by changing the order of the LPF that determines the magnitude of the load required for execution according to the load on the MCU201, the impact on other processes executed by the MCU201 can be reduced.

[0191] Note that the processor in the game controller may be of lower performance than the processor in the game device. In such a case, it is necessary to reduce the load on the processor in the game controller.

[0192] As shown in step S2213, when the temperature becomes equal to or higher than a predetermined value, while increasing the order of the LPF to improve the accuracy of temperature estimation, otherwise, since the necessity for the accuracy of temperature estimation is low, the order of the LPF is decreased to reduce the load required for processing. In this way, in a situation where the accuracy of temperature estimation is not required, by reducing the load required for execution, even in the case of the MCU201 with limited processing resources, a plurality of processes can be executed in parallel.

[0193] Note that the specific numerical value of the order is merely an example. In step S2211, for example, the order may be decreased from the fifth order to the third order, or the order may be decreased from the sixth order to the fifth order, etc. The order when the load of the MCU201 is high (the order set in S2211) and the order when the estimated temperature is low (the order set in S2215) may be different.

[0194] The process of step S2211 may be executed only when the estimated temperature is less than a predetermined value. The predetermined value used for determining whether to execute the process of step S2211 may be set higher than the temperature used in the determination of step S2213. Thereby, only when the temperature becomes equal to or higher than the predetermined value, the accuracy of temperature estimation may be increased, and when the temperature is less than the predetermined value, the load on the MCU201 may not be increased.

[0195] When the load of the MCU201 is equal to or higher than a predetermined level or when the temperature is less than a predetermined value, the process of decreasing the order of the LPF may also be applied when using the FIR filter as the LPF.

[0196] When the load of the MCU201 is equal to or higher than a predetermined level, the FIR filter may be changed to an IIR filter. Also, when the temperature is less than a predetermined value, the FIR filter may be changed to an IIR filter. At this time, the order of the calculation formula of the FIR filter and the order of the calculation formula of the IIR filter may be the same. Generally, the IIR filter can obtain a larger filter effect with a smaller order (that is, a lower calculation load) compared to the FIR filter.

[0197] (e3: Temperature measurement process and vibration motor stop process using a temperature sensor) In the game controller 200, the temperature is measured using the temperature sensor 211. Based on the measured temperature, the vibration motor 206 may be stopped.

[0198] FIG. 11 is a flowchart showing the vibration motor stop process based on the measured temperature in the game controller 200 according to the present embodiment. Each step shown in FIG. 11 is realized by the processor 202 of the game controller 200 executing the system program 203P. The process shown in FIG. 11 may be repeatedly executed at a predetermined execution cycle (for example, 5 msec).

[0199] Referring to FIG. 11, the processor 202 calculates the temperature from the resistance value of the temperature sensor 211 (thermistor) (step S260). That is, the processor 202 measures the temperature with the temperature sensor 211 disposed outside the vibration motor 206.

[0200] The processor 202 determines whether or not the temperature measured by the temperature sensor 211 is equal to or higher than the third threshold temperature (step S261). If the calculated temperature is lower than the third threshold temperature (NO in step S261), the processes below step S260 are repeated. In the present embodiment, the third threshold temperature is set to a value lower than the first threshold temperature.

[0201] If the calculated temperature is equal to or higher than the third threshold temperature (YES in step S261), the processor 202 changes the amplitude parameter of the leading vibration instruction data 112 among the data stored in the vibration instruction data area 204B1 to zero (step S262). Subsequently, the processor 202 determines whether or not a predetermined time has elapsed (step S263). If the predetermined time has not elapsed (NO in step S263), the processes from step S262 and below are repeated. If the predetermined time has elapsed (YES in step S263), the processes from step S260 and below are repeated.

[0202] Note that in step S262, instead of changing the amplitude parameter to zero, as shown in steps S247 and S248 (see FIG. 9), the reduction of the amplitude parameter or the shift of the frequency parameter may be performed. In this way, when the temperature measured by the temperature sensor 211 becomes equal to or higher than a predetermined value, the processor 202 stops or restricts the driving of the vibration motor 206 which is a voice coil motor (S262).

[0203] As shown in FIG. 11, when the temperature measured by the temperature sensor 211 becomes equal to or higher than the third threshold temperature, the processor 202 stops the driving of the vibration motor 206. Since the execution period of the process shown in FIG. 11 is, for example, 5 msec, the period (5 msec) in which the temperature is measured by the temperature sensor 211 is shorter than the period in which the temperature is calculated based on the resistance value (the execution period of the process shown in FIG. 9 is, for example, 50 msec). By providing such a difference in the execution period, the execution frequency of the temperature estimation process with a large load on the MCU 201 can be reduced.

[0204] [F. Modified Example] In the above description, as an example of the application program, a processing example in which a game program generates vibration instruction data is shown. However, it is not limited to the game program, and any application program can generate vibration instruction data.

[0205] FIG. 1 shows a configuration example in which the game device 100 includes one processor 101, but the game device 100 may include a plurality of processors 101. Similarly, FIG. 1 shows a configuration example in which the MCU 201 of the game controller 200 includes one processor 202, but the MCU 201 may include a plurality of processors 101.

[0206] FIG. 1 shows a configuration example in which the game device 100 includes one non-volatile memory 102 and one volatile memory 103, but the game device 100 may include a plurality of non-volatile memories 102 and / or a plurality of volatile memories 103. Similarly, FIG. 1 shows a configuration example in which the MCU 201 of the game controller 200 includes one non-volatile memory 203 and one volatile memory 204, but the MCU 201 may include a plurality of non-volatile memories 203 and / or volatile memories 204.

[0207] In the above description, a configuration example in which the processor 101 of the game device 100 and the MCU 201 (processor 202) of the game controller 200 share the processing is shown, but only the processor 101 of the game device 100 (or the MCU 201 (processor 202) of the game controller 200) may execute the processing.

[0208] Also, the sharing of the processing between the processor 101 of the game device 100 and the MCU 201 (processor 202) of the game controller 200 is an example, and the processing may be arbitrarily shared. For example, the generation process of the control data 220 may be executed in the game device 100.

[0209] The program means including source code, intermediate code, object code, native code, script, etc., and the form of the code is not limited. Also, it may operate on an interpreter or an emulator.

[0210] The program may be executed by one processor, or each part of the program may be executed by different processors. Also, each function of the present embodiment may be realized by a plurality of programs divided into several parts. In this case, it can be said that the set of the plurality of programs is a program.

[0211] Each function of the present embodiment does not necessarily have to be realized only by the processing of the processor, and may be realized by using various functions of a computer (software such as a main processor, a memory, a sub-processor, peripheral circuits, firmware, etc., and in some cases, a computer constituted by an interpreter or an emulator). For example, when the processor executes a program to issue instructions to other processors, peripheral circuits, etc., and finally, other processors, peripheral circuits, etc. execute each function, such an aspect is also included in the embodiments of the present embodiment.

[0212] Also, a system in which the game device 100 and the game controller 200 are integrated may be used. Note that, in the present embodiment, an aspect in which a plurality of processors share and cooperate to execute the processing executed by a single processor is also included in this specification as a modification example.

[0213] The embodiments disclosed this time should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the scope of claims, and it is intended that all modifications within the meaning and scope equivalent to the scope of claims are included.

Description of Reference Numerals

[0214] 10 game system, 100 game device, 101, 202 processor, 102, 203 non-volatile memory, 102P1, 203P system program, 102P2 game program, 103, 204 volatile memory, 103B3, 204B1 vibration instruction data area, 103B2, 204B4 operation data area, 103B1 data area, 104, 207 communication interface, 105 vibration file, 110, 114 time-series vibration instruction data group, 112, 116 vibration instruction data, 200 game controller, 204B3 resistance value area, 204B2 control data area, 205 amplifier, 206 vibration motor, 208 acceleration sensor, 209 gyro sensor, 210 operation switch, 211 temperature sensor, 220 control data.

Claims

1. A temperature estimation system inside a voice coil motor, comprising: Measurement wave generation means for generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; Superposition control data generation means for generating superposition control data by superimposing the measurement wave on control data for controlling vibration of the voice coil motor; Control data input means for inputting the superposition control data to the voice coil motor; Current-voltage acquisition means for acquiring the current value and voltage value inside the voice coil motor into which the superposition control data has been input; Low-pass filter means for performing low-pass filter processing on the acquired current value and voltage value; Resistance value calculation means for calculating the resistance value inside the voice coil motor based on the current value and voltage value that have undergone low-pass filter processing; A temperature estimation system comprising temperature estimation means for estimating the temperature inside the voice coil motor based on the calculated resistance value.

2. The temperature estimation system according to claim 1, wherein the measurement wave generation means sets the frequency of the measurement wave to 20 Hz or less.

3. The temperature estimation system according to claim 1, wherein the measurement wave generation means generates a measurement wave having a frequency lower than the lower limit frequency of the control data for controlling vibration of the voice coil motor.

4. The temperature estimation system according to any one of claims 1 to 3, wherein the low-pass filter means includes first change means for changing the order of the low-pass filter according to the temperature estimated by the temperature estimation means.

5. The temperature estimation system according to any one of claims 1 to 3, wherein the low-pass filter means includes second change means for changing the order of the low-pass filter according to the load on the processor that executes the processing of the low-pass filter means.

6. The resistance value calculation means acquires the current value and voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, thereby calculating the resistance value a plurality of times. The temperature estimation system according to any one of claims 1 to 3, wherein the temperature estimation means estimates the temperature based on the plurality of resistance values.

7. The temperature estimation system according to any one of claims 1 to 3, wherein the measurement wave generation means determines the amplitude value of the measurement wave according to the amplitude value of the control data.

8. A control system for a voice coil motor, comprising: The temperature estimation system according to claim 1, and A control system comprising control means for stopping or restricting the drive of the voice coil motor when the temperature estimated by the temperature estimation means reaches a predetermined value or more.

9. A control system for a voice coil motor, the temperature estimation system according to claim 1, and frequency shift means for shifting the control data of the vibration of the voice coil motor to a value lower than the instructed frequency when the temperature estimated by the temperature estimation means reaches a predetermined value or more.

10. temperature measurement means for measuring temperature by a temperature sensor disposed outside the voice coil motor, and second stop means for stopping or restricting the drive of the voice coil motor when the temperature measured by the temperature sensor reaches a predetermined value or more, The control system according to claim 8, wherein the period of temperature estimation by the temperature estimation means is longer than the period in which temperature is measured by the temperature sensor.

11. The control system according to any one of claims 8 to 10, further comprising amplitude value determination means for determining the amplitude value in the vibration control data by changing the maximum amplitude value according to the frequency in the instruction of the vibration of the voice coil motor.

12. On one or more computers, generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; generating superimposed control data by superimposing the measurement wave on the control data of the vibration of the voice coil motor; inputting the superimposed control data to the voice coil motor; acquiring the current value and voltage value inside the voice coil motor into which the superimposed control data has been input; performing low-pass filter processing on the acquired current value and voltage value; calculating the internal resistance value of the voice coil motor based on the low-pass filter processed current value and voltage value; estimating the internal temperature of the voice coil motor based on the calculated resistance value.

13. The program according to claim 12, wherein the step of generating the measurement wave includes a step of setting the frequency of the measurement wave to 20 Hz or less.

14. The step of generating the measurement wave includes the step of generating a measurement wave having a frequency lower than the lower limit frequency of the control data of the vibration of the voice coil motor, according to the program of claim 12.

15. The step of performing the low-pass filter processing includes the step of changing the order of the low-pass filter according to the estimated temperature, according to the program of any one of claims 12 to 14.

16. The step of performing the low-pass filter processing includes the step of changing the order of the low-pass filter according to the load of the processor that executes the low-pass filter processing, according to the program of any one of claims 12 to 14.

17. The step of calculating the resistance value includes the step of acquiring the current value and voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, thereby calculating the resistance value multiple times. The step of estimating the temperature includes the step of estimating the temperature based on the resistance values obtained multiple times, according to the program of any one of claims 12 to 14.

18. The step of generating the measurement wave includes the step of determining the amplitude value of the measurement wave according to the amplitude value of the control data, according to the program of any one of claims 12 to 14.

19. The program causes the one or more computers to further execute the step of stopping or restricting the driving of the voice coil motor when the estimated temperature becomes equal to or higher than a predetermined value, according to the program of any one of claims 12 to 14.

20. The program causes the one or more computers to further execute the step of shifting the control data of the vibration of the voice coil motor to a value lower than the instructed frequency when the estimated temperature becomes equal to or higher than a predetermined value, according to the program of any one of claims 12 to 14.

21. The program causes the one or more computers to measure the temperature by a temperature sensor disposed outside the voice coil motor, and further execute the step of stopping or restricting the driving of the voice coil motor when the temperature measured by the temperature sensor becomes equal to or higher than a predetermined value. The period in which the temperature inside the voice coil motor is estimated is longer than the period in which the temperature is measured by the temperature sensor, according to the program of any one of claims 12 to 14.

22. The program causes the one or more computers to further execute a step of determining an amplitude value in vibration control data by changing a maximum amplitude value according to a frequency in an instruction of vibration of the voice coil motor, the program according to any one of claims 12 to 14. **Claim 23** A method executed by one or more computers, comprising: generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than the audible range; generating superimposed control data by superimposing the measurement wave on control data for vibration of the voice coil motor; inputting the superimposed control data to the voice coil motor; acquiring a current value and a voltage value inside the voice coil motor into which the superimposed control data has been input; performing a low-pass filter process on the acquired current value and voltage value; calculating an internal resistance value of the voice coil motor based on the low-pass filtered current value and voltage value; estimating an internal temperature of the voice coil motor based on the calculated resistance value. **Claim 24** The method according to claim 23, wherein the step of generating the measurement wave includes a step of setting a frequency of 20 Hz or less as the frequency of the measurement wave. **Claim 25** The method according to claim 23, wherein the step of generating the measurement wave includes a step of generating a measurement wave having a frequency lower than a lower limit frequency of control data for vibration of the voice coil motor. **Claim 26** The method according to any one of claims 23 to 25, wherein the step of performing the low-pass filter process includes a step of changing an order of the low-pass filter according to the estimated temperature. **Claim 27** The method according to any one of claims 23 to 25, wherein the step of performing the low-pass filter process includes a step of changing an order of the low-pass filter according to a load on a processor that executes the low-pass filter process. **Claim 28** The step of calculating the resistance value includes a step of acquiring a current value and a voltage value inside the voice coil motor for a predetermined period or a predetermined number of times, thereby calculating the resistance value a plurality of times. The method according to any one of claims 23 to 25, wherein the step of estimating the temperature includes a step of estimating the temperature based on the plurality of resistance values. **Claim 29** The method according to any one of claims 23 to 25, wherein the step of generating the measurement wave includes a step of determining an amplitude value of the measurement wave according to an amplitude value of the control data.

30. The method according to any one of claims 23 to 25, further comprising a step of stopping or restricting driving of the voice coil motor when the estimated temperature becomes a predetermined value or more.

31. The method according to any one of claims 23 to 25, further comprising a step of shifting control data of vibration of the voice coil motor to a value lower than an instructed frequency when the estimated temperature becomes a predetermined value or more.

32. A step of measuring temperature by a temperature sensor disposed outside the voice coil motor; A step of stopping or restricting driving of the voice coil motor when the temperature measured by the temperature sensor becomes a predetermined value or more; and The method according to any one of claims 23 to 25, wherein a period in which the temperature inside the voice coil motor is estimated is longer than a period in which the temperature is measured by the temperature sensor.

33. The method according to any one of claims 23 to 25, further comprising a step of determining an amplitude value in control data of vibration by changing a maximum amplitude value according to a frequency in an instruction of vibration of the voice coil motor.

34. A temperature estimation system inside a vibration motor, comprising: Measurement wave generation means for generating a measurement wave for estimating temperature, the measurement wave having a frequency lower than a lower limit frequency allowed in control data for driving the vibration motor; Superimposed control data generation means for generating superimposed control data by superimposing the measurement wave on the control data; Control data input means for inputting the superimposed control data to the vibration motor; Current / voltage acquisition means for acquiring an internal current value and voltage value of the vibration motor into which the superimposed control data is input; Low-pass filter means for performing low-pass filter processing on the acquired current value and voltage value; Resistance value calculation means for calculating an internal resistance value of the vibration motor based on the low-pass filter processed current value and voltage value; and Temperature estimation means for estimating the internal temperature of the vibration motor based on the calculated resistance value.

35. The temperature estimation system according to claim 34, wherein the measurement wave generation means sets a frequency of 20 Hz or less as the frequency of the measurement wave.

Citation Information

Patent Citations

  • Vibration signal creation program, vibration signal creation system, vibration signal creation device, vibration signal creation method and data output program

    JP2016202486A