Inertia self-rotation control method and system of force feedback knob

CN122593568APending Publication Date: 2026-08-18GUANGZHOU JIYING TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610718096.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-05-23
Publication Date
2026-08-18

AI Technical Summary

Technical Problem

现有技术通常采用简单的固定延迟(如释放旋钮后500毫秒内不允许触发)来规避此问题,但固定延迟方案会导致用户在释放后的延迟期内无法正常触发自转模式,降低了操控的灵敏性

Benefits of technology

(1)回弹锁定的精确防误触发:通过矢量点积符号判别(偏移方向×运动方向),系统能够在弹簧回弹的第一个控制周期内识别出回弹运动并设置锁定标志,无论回弹速度多快都不会误触发自转模式。与固定延迟方案相比,用户在回弹结束后可以立即触发自转,无需等待。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122593568A_ABST
    Figure CN122593568A_ABST
Patent Text Reader

Abstract

This invention discloses an inertial rotation control method and system for a force feedback knob. The method achieves complete rotation mode lifecycle control based on the basic force feedback mode of the knob. During the triggering phase, a rebound locking mechanism—utilizing the vector sign relationship between the knob's offset direction and the direction of motion—precisely distinguishes between user-initiated swinging and natural spring rebound, eliminating false triggers. During the constant speed maintenance phase, a piecewise proportional gain PI closed-loop controller is used, providing high gain for rapid correction of large errors and low gain for fine adjustment of small errors. The return control mechanism automatically reduces the control gain to 40% (the speed damping term is unaffected by attenuation) when it detects user-applied reverse force, allowing users to manually override automatic rotation. During the exit phase, a grip-and-stop mechanism—triggers exit after the angular velocity remains below the grip-and-stop threshold for an extended period—achieves an intuitive exit operation. Entering the rotation state involves a smooth transition via 150ms linear torque interpolation, and exiting involves a slight braking torque to naturally decelerate the knob. When exiting the spring mode, the spring center is automatically repositioned to prevent large rebounds, and the event queue is cleared to prevent residual events from old states from being incorrectly sent. This invention fundamentally solves four major technical problems in the force feedback knob's self-rotation mode: false triggering, unintuitive exit, difficulty in manual control, and sudden torque changes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of human-computer interaction and force feedback control technology, specifically to a complete lifecycle control method and system for inertial rotation triggering, constant speed maintenance, grip-stop and return control of a force feedback knob device. Background Technology

[0002] Force feedback knobs are an emerging type of human-computer interaction device. Through a built-in motor, they apply a programmable reaction torque to the user's rotational operation to simulate different physical sensations. Building upon basic force feedback modes such as spring rebound and viscous damping, a "spinning mode" that simulates the inertial rotation of a fidget spinner is becoming an important interaction paradigm for force feedback knobs. When the user quickly shakes the knob, the motor automatically drives it to rotate continuously at a constant speed, simulating physical inertia and continuously generating control events (such as continuous scrolling) during the rotation, thereby achieving efficient interactions such as rapid navigation.

[0003] However, the following prominent technical problems exist in the existing implementation of the force feedback knob rotation mode:

[0004] First, the rotation mode is prone to false triggering. When the force feedback knob's basic mode is spring-rebound, if the user deflects the knob to a large angle and releases it, the spring's restoring force will quickly pull the knob back to the center position. During this rebound process, the knob's instantaneous angular velocity may be very high, even exceeding the speed of the user's active shaking. If the system only uses an angular velocity threshold as the trigger condition for the rotation mode, the spring rebound process will inevitably trigger the rotation mode falsely, severely interfering with the user experience. Existing technologies typically use a simple fixed delay (e.g., not allowing triggering within 500 milliseconds after releasing the knob) to circumvent this problem, but the fixed delay scheme prevents the user from properly triggering the rotation mode during the delay period after release, reducing the sensitivity of the operation.

[0005] Second, exiting the rotation mode is not intuitive enough. Existing solutions typically require users to press a physical button or perform a specific gesture to exit rotation mode. These solutions increase the learning curve for users and do not conform to the natural human intuition for interacting with rotating objects—the instinctive human reaction to stop a rotating object is to simply hold it with their hand.

[0006] Third, users cannot manually and precisely control the rotation in the self-rotation mode. In existing self-rotation mode implementations, the motor maintains the target speed at full power. When the user attempts to manually change the direction or speed of rotation, they need to overcome the entire driving torque of the motor. This makes manual fine-tuning in self-rotation mode laborious and unnatural.

[0007] Fourth, there is a sudden change in torque when switching between the rotation state and the basic force feedback mode. When the system instantly switches from the spring rebound mode to the constant speed rotation PID control, or instantly returns from the rotation mode to the spring rebound mode, the motor output torque will change abruptly, and the user will feel obvious "shaking" or "bouncing", which will affect the operation experience. Summary of the Invention

[0008] To address the aforementioned technical problems, the present invention aims to provide an inertial rotation control method and system for a force feedback knob, achieving precise control over the entire lifecycle of the rotation mode from triggering to exiting, including: a vector discrimination-based anti-false triggering mechanism, a grip-and-stop detection based on speed threshold and time confirmation, a gain attenuation-based back-rotation control coverage, and a smooth transition mechanism based on linear torque interpolation.

[0009] To achieve the above objectives, this invention provides an inertial rotation control method for a force feedback knob, applicable to a force feedback knob device operating at least one basic force feedback mode. This method achieves complete lifecycle control of the rotation mode through the following four stages: Self-rotation trigger phase: The knob angular velocity is detected in real time. When the angular velocity exceeds the trigger threshold and is not within the cooldown period, the trigger speed is recorded as the target self-rotation speed, the basic mode torque output is paused, and the self-rotation state is entered. When the basic mode is spring rebound mode, a rebound locking mechanism is also used to distinguish between user-initiated swinging and natural spring rebound through the vector sign relationship between the knob offset direction and the movement direction. Triggering is only allowed during active swinging. Constant speed maintenance phase: A PI closed-loop controller with piecewise proportional gain drives the motor to maintain the target speed. High gain provides rapid correction for large errors, while low gain offers fine adjustment for small errors. The integral term includes anti-saturation limiting and zero-crossing reset. When user-applied reverse force is detected, the control gain automatically drops to 40%, allowing the user to easily take over rotational control. Hold-to-stop detection phase: Exit is triggered when the angular velocity drops below the hold-to-stop threshold and remains below it for longer than the confirmation time. The timer resets immediately when the velocity recovers, ensuring that user interactions near the threshold are not misinterpreted as a hold-to-stop intention. Exiting the transition phase: A slight braking torque is applied to allow the knob to decelerate naturally, and the basic mode is restored after the speed stabilizes. For spring mode, spring center repositioning is also performed to prevent significant rebound after exiting. A smooth transition is achieved through 150 milliseconds linear torque interpolation when entering the rotation state. The event queue is cleared upon exiting to prevent residual events from the old state from being incorrectly sent.

[0010] The beneficial effects of this invention are as follows: (1) Precise anti-false triggering of spring rebound lock: By using vector dot product sign discrimination (offset direction × movement direction), the system can identify the spring rebound motion and set the lock flag within the first control cycle of spring rebound, and will not falsely trigger the rotation mode no matter how fast the rebound speed is. Compared with the fixed delay scheme, the user can trigger the rotation immediately after the rebound ends without waiting. (2) Intuitive exit with grip: Users can exit the rotation mode by simply holding the knob with their fingers to slow it down naturally, without the need for buttons or special gestures. The 950-millisecond confirmation window and the timer mechanism that resets when the speed recovers ensure a robust judgment of "no exit for short-term deceleration, exit only for continuous gripping", which perfectly matches the natural intuition of humans to hold a rotating object and stop it. (3) Manual override of the return control: When the user applies a force opposite to the direction of rotation during the rotation, the controller gain automatically drops to 40%, and the motor changes from "active drive" to "slight resistance," allowing the user to easily take over rotation control. The speed damping term is unaffected by gain attenuation, maintaining the oscillation suppression effect. This mechanism requires no special operation training from the user; it is entirely automatically detected and responded to by the system. (4) Seamless transition of linear torque interpolation: When entering the self-rotation state, the torque output smoothly transitions from the old mode value to the new mode value within 150 milliseconds. When exiting the self-rotation state, the knob is naturally decelerated by a slight braking torque. The user does not feel any sudden change in torque or discontinuity in feel during the entire switching process. Attached Figure Description

[0011] Figure 1 This is the overall state machine transition diagram of the force feedback knob inertial rotation control method of the present invention;

[0012] Figure 2 This is a schematic diagram of the vector discrimination principle of the springback locking mechanism of the present invention;

[0013] Figure 3 This is the segmented proportional gain characteristic curve of the closed-loop speed controller of the present invention;

[0014] Figure 4 This is a timing diagram of the grip-stop detection of the present invention, showing the relationship between the angular velocity curve and the grip-stop timer;

[0015] Figure 5 This is a schematic diagram illustrating the principle of gain attenuation control by callback in this invention;

[0016] Figure 6 This is a timing diagram of the torque linear interpolation transition of the present invention, showing the changes of old mode torque, new mode torque and output torque over time;

[0017] Figure 7 This is a state transition diagram of the blocking detection and recovery mechanism of the present invention. Detailed Implementation

[0018] The present invention will now be described in further detail with reference to the accompanying drawings and specific embodiments. I. System Hardware Overview

[0019] The force feedback knob control system of the present invention includes a microcontroller (in this embodiment, an ESP32-S3 chip with a dual-core Xtensa LX7 processor and a main frequency of 240MHz, and equipped with a hardware single-precision floating-point arithmetic unit), a torque actuator (in this embodiment, a 14-pole logarithmic brushless DC motor is used; those skilled in the art will understand that other types of torque actuators, such as brushed DC motors, voice coil motors, or stepper motors, can also be used), a 14-bit magnetic angle sensor (resolution 0.022°), and an event output interface for sending control events to the target device.

[0020] The system operates at least one basic force feedback mode on the microcontroller, including but not limited to: spring rebound mode (providing tactile feedback through the superposition of spring restoring force and damping friction), viscous damping mode (providing tactile feedback through resistance proportional to angular velocity), and gear point mode (providing click-like tactile feedback through periodic magnetic attraction). Inertial rotation control logic operates on top of these basic force feedback modes, forming a composite mode. When the rotation control logic is activated, the torque output of the underlying basic mode is paused; when the rotation control logic is deactivated, the torque output of the underlying basic mode is restored.

[0021] The entire control method operates within a high-frequency main loop on a core of the microcontroller, with an execution frequency of approximately 200Hz to 1000Hz. Those skilled in the art will understand that the execution frequency of the main loop can be adjusted within the range of 100Hz to 2000Hz depending on processor performance and application requirements. II. Rotation Triggering Phase – Speed ​​Threshold Triggering and Rebound Locking

[0022] During operation in basic force feedback mode, the system detects the filtered angular velocity of the knob in each control cycle. Rotation mode is triggered when all of the following conditions are met: Condition 1: The absolute value of the angular velocity exceeds the trigger speed threshold. In this embodiment, when the base mode is spring rebound mode, the trigger speed threshold is 15 radians per second (approximately 143 RPM); when the base mode is viscous damping mode, the trigger speed threshold is also 15 radians per second; when the base mode is gear point mode, the trigger speed threshold is 12 radians per second (approximately 115 RPM). The spring composite mode and damping composite mode use higher thresholds (15 vs 12) because the speed generated by spring rebound and damping forces at high speeds may be higher than the speed when the user is freely swinging, and the higher threshold provides an additional safety margin. Condition 2: The time since the last exit from rotation mode has exceeded the cooldown period. In this embodiment, the cooldown period is 200 milliseconds (approximately 40 control cycles). This cooldown period prevents speed fluctuations upon exiting rotation mode from causing immediate re-triggering. Condition 3 (Spring return mode only): The spring return lock indicator is false (i.e., the knob is not in the spring return process). Condition 4 (Spring Return Mode Only): The knob is moving away from the center of the spring.

[0023] The rebound locking mechanism is implemented as follows: In each control cycle of the spring rebound mode, the following two quantities are calculated: Offset direction: direction_from_center = θ_current - θ_spring_center, which is the difference between the current angle of the knob and the center angle of the spring. A positive value indicates that the knob is on the positive side of the center, and a negative value indicates that it is on the negative side. Motion direction determination: is_moving_away = (direction_from_center × filtered_velocity) > 0. This is a sign determination of a vector dot product: when the offset direction and the velocity direction have the same sign (both positive or both negative), the knob is moving away from the spring center—a characteristic of active user swinging; when the offset direction and the velocity direction have opposite signs, the knob is moving towards the spring center—a characteristic of spring rebound.

[0024] The state transition logic for bounce lock is executed in the following priority order: Step 1 – Detecting the end of rebound (unlocking takes priority): If the current state is rebound locked (is_rebounding is true), and the knob has returned to the vicinity of the spring center (|direction_from_center| < 3° = 0.0524 radians), and the angular velocity has stabilized (|filtered_velocity| < 1.5 radians per second), then clear the rebound lock flag. Step 2 – Detecting the Start of Rebound (Locking): If the device is not currently in rebound lock mode, and the knob is moving towards the center (is_moving_away is false), and the knob is sufficiently far from the center (|direction_from_center| > 5° = 0.0873 radians), then the rebound lock flag is set. The 5-degree starting threshold ensures that only rebounds originating from a sufficiently far position will be locked – small oscillations near the spring center will not trigger the lock. Step 3 - Trigger Decision: The operation to enter the rotation state will only be executed when the rebound lock flag is false, the knob is moving away from the center, the angular velocity exceeds the threshold, and the cooldown period has passed.

[0025] The design intent of prioritizing unlocking is to execute the unlocking logic before the locking logic. This ensures that once the knob has stabilized near the center, even if a slight rebound motion is detected within the same control cycle (such as speed and direction jitter caused by sensor noise), the lock will be cleared instead of being reset. This guarantees that the user can immediately perform the next shake after the knob has stabilized without any additional waiting.

[0026] Perform the following actions when entering the rotation state: (a) Record the angular velocity at the trigger moment as the target spin speed (target_spin_speed); (b) Clear the integral term and angle accumulator of the PI controller; (c) Call the deactivation operation of the basic force feedback mode to pause its torque output; (d) Switch the composite state machine to the transition state and start torque linear interpolation. III. Constant Speed ​​Maintenance Phase – Piecewise Gain PI Closed-Loop Control

[0027] In rotation mode, the system uses a PI closed-loop controller to calculate the target torque and drive a brushless DC motor to maintain the constant speed rotation of the knob. The controller performs the following calculations in each control cycle: Speed ​​error calculation: speed_error = target_spin_speed - filtered_velocity. The speed error is clamped to a range of [-8, +8] radians per second to prevent extreme error values ​​from causing integral saturation.

[0028] Segmented proportional gain calculation: When |speed_error| > 3.0 radians per second: Kp = 0.6; When 1.0 < |speed_error| ≤ 3.0 radians per second: Kp = 0.5; When |speed_error| ≤ 1.0 radians per second: Kp = 0.3 The physical meaning of the three-level gain is as follows: when the knob is significantly blocked or the speed deviation is large (|error| > 3), the target speed is quickly restored with a high gain (0.6); when the deviation is moderate (1 < |error| ≤ 3), the speed is stably adjusted with a medium gain (0.5); when the speed is close to the target speed (|error| ≤ 1), the speed is finely controlled with a low gain (0.3) to avoid speed oscillation caused by excessive gain.

[0029] Integral term calculation: integral_error += speed_error × 0.001 The integral accumulation is clamped to the range of [-2.0, +2.0] (anti-saturation limit). The integral step size of 0.001 is extremely conservative, meaning that under a sustained maximum error (8 radians per second) input, the integral term requires approximately 250 control cycles (approximately 1.25 seconds) to accumulate from zero to the limit value. This conservative integral strategy ensures that the integral term is used only to eliminate long-term small deviations (steady-state error) and does not cause overshoot during transient processes. Zero-crossing reset: When the sign of speed_error flips during an adjacent control cycle (i.e., the error changes from positive to negative or vice versa), the integral accumulator is immediately reset to zero. This prevents the cumulative effect of the integral term during speed oscillations. Low error decay: When |speed_error| < 1.0 radians per second, the integral accumulation is multiplied by a decay factor of 0.95 per cycle. This ensures that the integral term naturally returns to zero as the speed approaches the target speed, avoiding small steady-state deviations caused by integral residues.

[0030] Torque output calculation: τ_spinner = speed_error × Kp + integral_error × 0.1 - filtered_velocity × 0.015 The first term is the proportional control torque, the second term is the integral control torque (with a weight of 0.1 to further reduce the output influence of the integral term), and the third term is the velocity damping torque (-velocity × 0.015), whose direction is always opposite to the direction of motion, thus suppressing overshoot and oscillation. IV. Hold and Stop Detection Phase

[0031] In both SPINNING_ACTIVE and BLOCKED_SLOWDOWN states, the system continuously monitors the knob's angular velocity to detect the user's intention to stop it. When |filtered_velocity| decreases to below grip_velocity (6.0 radians per second, approximately 57 RPM): If grip_start_time is 0 (first reduction), record the current time as grip_start_time; If (current time - grip_start_time) > grip_time_ms (950 milliseconds), trigger the exit transition process. When |filtered_velocity| rises above grip_velocity: Reset grip_start_time to 0 and cancel grip stop timer.

[0032] The engineering significance of a 6 radians per second (approximately 57 RPM) stop threshold: When a normal user's fingers grip a rotating knob, it will decelerate the knob from any speed to near rest within approximately 0.5-1 seconds. 6 radians per second is a relatively low speed (approximately 1 revolution per second), and the deceleration process at this speed requires almost no additional force from the human hand. Furthermore, if the user merely lightly touches the knob, causing a brief deceleration below 6 radians before immediately resuming, the 950-millisecond confirmation window is sufficient to rule it out.

[0033] The engineering significance of a 950-millisecond confirmation time: A confirmation window of nearly 1 second is roughly equivalent to 190 200Hz control cycles. When a normal person holds the knob, the speed will inevitably drop to far below 6 radians per second within 1 second. This time is long enough to rule out false triggers (brief contact or vibration) and short enough to ensure that the user's perceived delay from "holding to stopping" is within an acceptable range. V. Difference Control Gain Attenuation Mechanism

[0034] During rotation, the system detects whether the user is applying a force opposite to the target's rotation direction. The detection logic is as follows: user_manual_control = (target_spin_speed > 0 AND filtered_velocity <-1.0) OR (target_spin_speed < 0 AND filtered_velocity > 1.0) In other words, when the target is rotating clockwise (target > 0) but the actual speed has reversed to counterclockwise (velocity < -1.0), it is determined that the user is manually controlling the direction in the opposite direction. The reverse is also true. A counterclockwise detection threshold of 1.0 radians per second (approximately 10 RPM) ensures that only explicit counterclockwise operations are recognized, and sensor noise or minor speed fluctuations will not trigger false judgments.

[0035] Upon detecting manual user control, the system sets the gain attenuation factor to 0.4 (normally 1.0): gain_modifier = user_manual_control ? 0.4 : 1.0 Both the proportional gain and integral output are multiplied by this coefficient: τ_spinner = speed_error × (Kp × gain_modifier) ​​+ integral_error ×(0.1 × gain_modifier) ​​- filtered_velocity × 0.015 Note: The velocity damping term (-velocity × 0.015) is unaffected by gain decay. This is because the physical function of the damping term is to suppress oscillations, and this stabilizing effect is still necessary when the user is manually controlling the device.

[0036] The physical effect of gain dropping to 40%: During normal rotation, the motor maintains the target speed at full power, and the user feels the knob "turning on its own"; when the user applies force in the opposite direction, the motor torque drops to 40% of its normal value, and the user feels the knob change from "firmly turning on its own" to "slightly resisting," allowing for easy takeover of directional control. This transition is continuous—when the user releases the reverse force, gain_modifier automatically returns to 1.0 in the next control cycle, and the motor resumes full-power rotation.

[0037] In the blocked slowdown state (BLOCKED_SLOWDOWN), the gain of the dialback control is further reduced: the control strength is reduced from the normal 0.3 to 0.15 (half of the normal value) when the user controls it manually, giving the user a more relaxed manual control experience when the knob is blocked. VI. Torque Linear Interpolation Transition Mechanism

[0038] When transitioning from the basic force feedback mode to the rotation state, the system undergoes a 150-millisecond transition phase (TRANSITION_TO_SPINNER state). During this phase, the output torque is calculated using the following formula: elapsed = (current_time - state_start_time) / 150.0 elapsed = min(1.0, elapsed) τ_output = τ_base × (1 - elapsed) + τ_spinner × elapsed Where τ_base is the calculated torque of the basic force feedback mode in the current knob state, and τ_spinner is the calculated torque of the self-rotating PI controller in the current state. Both torque values ​​are recalculated in each control cycle based on the current knob angle and speed, rather than using the static values ​​at the moment of switching. This ensures that the torque always reflects the real-time state of the knob during transitions.

[0039] When exiting the self-rotation state and returning to the basic force feedback mode, the system enters an exit transition state, applying a slight braking torque in the opposite direction to the knob's movement: τ_brake = filtered_velocity × (-0.01) The braking torque coefficient (0.01) is extremely conservative, allowing the knob to decelerate naturally without producing a sudden braking sensation. Once the knob speed stabilizes, the torque output returns to the basic mode.

[0040] A 150-millisecond transition time is roughly equivalent to 30 200Hz control cycles or 9 frames of 60Hz LED rendering. The minimum perceptual delay for human fingers to torque changes is about 50-100 milliseconds. A 150-millisecond transition time ensures that the rate of torque change is always below the human perception threshold, thus achieving a smooth transition that is imperceptible to the user. VII. Exit Transition and State Recovery

[0041] When the hold-and-stop detection triggers the exit, the system enters the exit transition phase: Exit completion conditions (dual threshold logic): (a) The shortest exit waiting time (200 milliseconds) has elapsed and the angular velocity has stabilized (|filtered_velocity| < 1.5 radians per second); (b) The longest exit timeout (3000 milliseconds) has been exceeded, and the exit is forced to complete.

[0042] State restoration operations after exiting: (a) Invoke the activation operation of the basic force feedback mode to restore its torque output; (b) If the basic mode is spring rebound mode, reset the spring center angle to the knob angle position at the time of exit (spring_mode->setSpringCenter(state.filtered_angle)). The engineering significance of this relocation is that: without relocation, the spring center will remain at the position before entering the rotation (possibly tens of degrees away from the current position), and after exiting the rotation, a huge spring restoring force will be generated instantly, causing the knob to rebound violently—this is both unsafe and seriously affects the user experience. After relocation, the spring force is smoothly built up from zero, and the user gets the same experience as when restarting the operation. (c) Record the current time as the start of the cooldown period, and prohibit the re-triggering of the rotation mode within 200 milliseconds. (d) Clear the event queue to prevent events remaining from the old state from being sent incorrectly. VIII. Blockage Detection and Recovery Mechanism

[0043] During rotation, the system detects external obstructions (such as a decrease in speed caused by a user's finger touching the knob) using the speed ratio: Entering the Blocked Deceleration State: When |filtered_velocity| < |target_spin_speed| × 0.3 (speed drops below 30% of the target), and no blockage was previously detected, the system enters the BLOCKED_SLOWDOWN state. Upon entering this state, the target speed is reduced to 70% of the original target_spin_speed, and the control gain is correspondingly reduced (using constrain(speed_error, -3, 3) × 0.3 instead of the normal PID output), providing the user with easier control. When manual control is detected in the Blocked Deceleration State, the control strength is further reduced from 0.3 to 0.15, providing an even easier manual control experience for the user. Restore normal spin: When |filtered_velocity| recovers to above |target_spin_speed| × 0.7, exit the BLOCKED_SLOWDOWN state, restore the SPINNING_ACTIVE state and normal PID control, and reset the integral term.

[0044] The engineering significance of the 30% / 70% asymmetric threshold for blockage detection: The 30% entry threshold means that only when the speed drops significantly (to less than one-third of the target) is it considered a blockage, avoiding frequent state switching caused by normal speed fluctuations. The 70% recovery threshold is higher than 30%, forming a 20%-40% hysteresis range, further preventing state jitter near the threshold. IX. Event Sending in Rotation Mode

[0045] In rotation mode, the system generates discrete control events based on the accumulated actual rotation angle of the knob. The specific method is as follows: Calculate the angle increment in each control cycle: delta_angle = filtered_angle - last_angle_for_accumulation. Handling angle rotation: Subtract 2π when delta_angle > π, and add 2π when delta_angle < -π. This ensures that the angle increment correctly reflects the actual rotation amount when the knob passes the 0° / 360° dividing point. Angle accumulation and event generation: The angle increment is accumulated into accumulated_send_angle. When the absolute value of the accumulated angle exceeds the angle threshold corresponding to each event (angle_per_click = 2π / clicks_per_revolution), the corresponding number of events are generated and pushed into the event queue.

[0046] Event queue management strategy: Maximum queue depth is 10, minimum event interval is 4 milliseconds (corresponding to a maximum event sending rate of 250Hz), and event lifetime is 30 milliseconds. Events exceeding the depth limit or timeout are automatically discarded, with the strategy being non-blocking discarding of the oldest event. 10. Complete State Machine Transition Diagram

[0047] Taking the SpringSpinnerMode as an example, the complete state machine includes the following states and transitions: SPRING_ACTIVE (Spring mode active) → TRANSITION_TO_SPINNER (Transition state): Conditions: !is_rebounding AND is_moving_away AND |velocity| > 15 AND cooldown > 200ms TRANSITION_TO_SPINNER → SPINNER_ACTIVE (Self-rotation active): Condition: Transition time > 150ms SPINNER_ACTIVE → BLOCKED_SLOWDOWN (Blocking and Slowing Down): Condition: |velocity| < |target| × 0.3 AND !blocking_detected BLOCKED_SLOWDOWN → SPINNER_ACTIVE: Condition: |velocity| > |target| × 0.7 SPINNER_ACTIVE or BLOCKED_SLOWDOWN → EXIT_TRANSITION (Exit Transition): Condition: |velocity| < 6.0 Duration > 950ms EXIT_TRANSITION → SPRING_ACTIVE: Condition: (elapsed ≥ 200ms AND |velocity| < 1.5) OR elapsed ≥ 3000ms Operations: setSpringCenter(current angle), record cooldown start point, clear event queue

[0048] Embedded bounce-lock sub-state machine (within SPRING_ACTIVE): Lock OFF → Lock ON: Condition: Knob moved towards the center AND |Offset| > 5° Lock ON → Lock OFF: Condition: |Offset| < 3° AND |velocity| < 1.5 rad / s XI. Alternative Implementation Methods

[0049] Those skilled in the art will understand that the above-described specific embodiments are merely preferred embodiments of the present invention and should not be construed as limiting the scope of protection of the present invention. Without departing from the core concept of the present invention, the following alternative embodiments are all within the scope of protection of the present invention: (1) Alternative implementation of closed-loop speed controller The closed-loop speed controller is not limited to a PI controller. Alternatives include PID controllers (with an added derivative term), fuzzy PID controllers, adaptive gain controllers, sliding mode controllers, or lookup table-based controllers. All alternatives share the common characteristic of using the difference between the target rotational speed and the actual angular velocity as input, and outputting a driving torque to make the actual speed approach the target speed. The target rotation speed is not limited to a constant value. Alternative methods include setting the target rotation speed as a variable that decays exponentially with time (e.g., target(t) = target_initial × e^(-λt), where λ is the decay constant) to simulate the frictional deceleration effect in real physical inertia. In this case, the closed-loop controller tracks a gradually decreasing target speed in each control cycle. Other alternative methods include setting the target speed as a time-varying variable that decays linearly in a piecewise manner or varies according to a preset speed curve. A common feature of all alternative methods is that the target speed is initially determined based on the angular velocity at the trigger moment or its mapped derivative. The segmented proportional gain is not limited to three segments. Alternatives include two-segment (high / low), four-segment or more segmented gains, or the use of a continuous gain function (such as Kp = f(|error|), where f is a monotonically increasing function) instead of discrete segments. (2) Alternative implementation of rebound lock detection The vector sign discrimination is not limited to the form "direction × velocity > 0". Alternative methods include using the sign of angular acceleration as an auxiliary criterion, using the cosine similarity between the direction of the rate of change of angle and the offset direction, or using a motion intent classifier based on machine learning. All alternative methods share the common feature of distinguishing whether the knob's movement is the result of active user force or driven by elastic restoring force. The spring center position in this invention can also be understood as the equilibrium position of the elastic restoring force, i.e., the angular position where the elastic restoring torque is zero. When the basic force feedback mode is a magnetic locking mode or other modes with elastic restoring force characteristics, the equilibrium position corresponds to the zero-torque angle of the magnetic point or other force field. (3) Alternative implementation of hold-and-stop detection The speed threshold and time-based hand-holding detection are not limited to a fixed threshold plus a fixed time window. Alternative methods include adaptive thresholds (dynamically adjusting the hand-holding threshold according to the proportion of the current rotation speed), detection based on deceleration rate (detecting the slope of the speed decrease rather than the absolute value), direct detection based on torque sensor (inferring the gripping force applied by the user through motor current), or evaluation logic based on sliding window (calculating the average angular velocity or weighted angular velocity within the most recent preset time window, and determining a hand-holding intention when the average speed within the window is consistently below the threshold). (4) Alternative implementation of callback control The gain attenuation coefficient is not limited to a fixed value of 0.4. Alternative methods include dynamically adjusting the attenuation coefficient according to the magnitude of the user's reverse force (the greater the reverse force, the greater the attenuation), using a continuous gain modulation function (such as gain = 1 / (1 + β ×|reverse_velocity|)), or directly switching to torque follower mode (the motor torque is entirely determined by the user's operation, rather than by PID calculation). (5) Alternative implementation of torque transition The linear torque interpolation is not limited to linear functions. Alternative methods include using easing functions (such as ease-in-out, cosine interpolation) for torque transition, or using S-curves (such as Hermite interpolation) to achieve a more natural torque change. The transition time is not limited to 150 milliseconds and can be adjusted within the range of 50 to 500 milliseconds. (6) Alternative types of torque actuators The torque actuator is not limited to a brushless DC motor. Alternatives include any actuator capable of outputting controllable torque, such as a brushed DC motor, voice coil motor, stepper motor, or piezoelectric motor. (7) Alternative types of event output interfaces The event output interface is not limited to a USB HID interface. Alternatives include Bluetooth Low Energy HID interfaces, 2.4GHz proprietary wireless protocol interfaces, Wi-Fi interfaces, CAN bus interfaces, or other standard communication interfaces. The system can switch between different interfaces at runtime, and the rotation control logic is independent of the specific transmission interface type. (8) Alternative types of basic force feedback mode The basic force feedback mode is not limited to spring rebound mode, viscous damping mode, or gear point mode. Alternative modes include magnetic locking mode, multi-stage gear mode, custom force curve mode, or any force feedback mode capable of outputting programmable torque. The inertial rotation control logic of this invention can be superimposed on any basic force feedback mode to form a composite mode.

Claims

1. A method for controlling the inertial rotation of a force feedback knob, applied to a force feedback knob device having a torque actuator and an angle sensor, said device operating at least one basic force feedback mode, characterized in that, include: Self-rotation triggering phase: During the operation of the basic force feedback mode, the knob angular velocity collected by the angle sensor is detected in real time; When the absolute value of the angular velocity exceeds the preset trigger speed threshold, and the time since the last exit from the self-rotation state has exceeded the preset cooling time, the target self-rotation speed state is determined based on the angular velocity at the trigger time or its mapped derivative value, and the torque output of the basic force feedback mode is suppressed or suspended so that the basic force feedback mode no longer dominates the knob movement, and the self-rotation state is entered. Constant speed maintenance phase: During the rotation state, the torque actuator is driven by the closed-loop speed controller to output torque, so that the actual angular velocity of the knob dynamically approaches the target rotation speed state, wherein the target rotation speed state is a constant value or a decaying variable set with time. Grip-to-stop detection phase: The knob's angular velocity is continuously monitored during rotation; when the absolute value of the angular velocity drops below a preset grip-to-stop speed threshold, grip-to-stop timing or sliding window evaluation logic is initiated; if the angular velocity continuously meets the grip-to-stop condition within a preset grip-to-stop confirmation time, the exit transition process is triggered; within the confirmation time window, any operation that causes the angular velocity to rise will be interrupted and the exit determination will be reset. Exit Transition Phase: During the exit transition process, a deceleration torque is applied to the torque actuator or the target speed of the closed-loop speed controller is set to zero; when the knob angular velocity stabilizes below the preset static speed threshold and the preset minimum exit waiting time has passed, the torque output of the basic force feedback mode is restored, the cooling time start point is set to prevent immediate re-triggering, and the exit is completed.

2. The method according to claim 1, characterized in that, When the basic force feedback mode is a force feedback mode with elastic restoring force characteristics, the self-rotation triggering stage also includes a rebound locking mechanism: Calculate the offset direction between the current angle of the knob and the equilibrium position of the elastic restoring force, as well as the current direction of movement of the knob; when the product of the offset direction and the direction of movement is greater than zero, it is determined as a user actively swinging away from the equilibrium position; when the product is less than or equal to zero, it is determined as a rebound movement of the knob toward the equilibrium position; the discrimination formula for the product of the offset direction and the direction of movement is: distance judgment value = (θ_current - θ_center) × ω, where θ_current is the current angle of the knob, θ_center is the equilibrium position angle, and ω is the current angular velocity of the knob; when the distance judgment value is greater than zero, it is determined as a distance movement, otherwise it is determined as a rebound movement; When a rebound motion is detected and the offset of the knob from the balance position |θ_current - θ_center| exceeds the preset rebound lock start threshold between 3 and 8 degrees, a rebound lock flag is set; when the rebound lock flag is true, even if the angular velocity exceeds the trigger speed threshold, entering the rotation state is prohibited. When the knob offset is less than the preset rebound release angle threshold between 1 degree and 4 degrees, and the absolute value of the angular velocity is less than the preset rebound release speed threshold between 0.5 and 3 radians per second, the rebound lock flag is automatically cleared.

3. The method according to claim 1, characterized in that, The closed-loop speed controller employs a piecewise proportional gain strategy and includes an integral control term: The absolute value of the speed error is divided into at least two intervals, each interval corresponding to a different proportional gain value. The interval with a larger absolute value of speed error corresponds to a higher proportional gain value. The segmentation threshold of the interval is taken in the range of 0.5 radians per second to 5 radians per second, and the proportional gain value is taken in the range of 0.1 to 1.

0. The integral accumulation of the integral control item is provided with a preset upper limit and a lower limit to prevent integral saturation. The upper limit is in the range of 1.0 to 5.

0. When the sign of the speed error is flipped, the integral accumulation is automatically reset to zero. When the absolute value of the speed error is less than the preset low error threshold, the integral accumulation decreases periodically with a preset attenuation coefficient between 0.85 and 0.

99.

4. The method according to claim 1, characterized in that, The rotation state also includes a callback control mechanism: In the rotation state, when the actual angular velocity direction of the knob is detected to be opposite to the direction of the target rotation speed state, and the absolute value of the actual angular velocity exceeds the preset reverse detection threshold between 0.3 radians per second and 3 radians per second, it is determined to be in the user manual control state. In response to the user manual control state, the driving force-related gain parameter in the closed-loop speed controller used to maintain rotation is reduced to 10% to 80% of the corresponding value under normal rotation state, so that the rotation driving torque is lower than the driving torque under normal rotation state, thereby allowing the user to manually cover the rotation direction or speed with lower resistance; wherein, the damping control component in the closed-loop speed controller used to suppress oscillation remains unchanged under the user manual control state.

5. The method according to claim 1, characterized in that, When transitioning from the basic force feedback mode to the rotation state, a smooth transition is achieved through torque interpolation, with the transition duration T being a preset value between 30 milliseconds and 800 milliseconds. τ_output(t) = τ_old × (1 - f(t / T)) + τ_new × f(t / T) Where τ_output(t) is the output torque at time t, τ_old is the calculated torque of the old state at time t, τ_new is the calculated torque of the new state at time t, and f is a monotonically increasing transition function with f(0)=0 and f(1)=1. When exiting the self-rotation state to the basic force feedback mode, a gradual deceleration transition is achieved by applying a deceleration torque or setting the target speed of the closed-loop speed controller to zero.

6. The method according to claim 1, characterized in that, After the exit transition phase is completed, when the basic force feedback mode is a force feedback mode with elastic restoring force characteristics, the equilibrium position of the elastic restoring force is reset to the knob angle position at the time of exit, so as to avoid rebound due to sudden change in elastic restoring force after exiting. When entering and exiting the self-rotation state, the cache of control events is cleared to prevent residual control events from the old state from being incorrectly sent in the new state; the cooldown time is a preset value between 50 milliseconds and 800 milliseconds.

7. The method according to claim 1, characterized in that, The grip stop speed threshold is a preset value between 2 radians per second and 15 radians per second; the grip stop confirmation time is a preset value between 300 milliseconds and 2000 milliseconds.

8. The method according to claim 1, characterized in that, The rotation state also includes a blockage detection and recovery mechanism: When the actual angular velocity of the knob decreases below a preset entry ratio for the target rotation speed state, it is determined to be an external blockage, and the knob enters a blockage deceleration state. The preset entry ratio is a preset value between 5% and 60%. In the blockage deceleration state, the target speed and control gain are reduced. When manual control by the user is detected in the blockage deceleration state, the control gain is further reduced. When the actual angular velocity of the knob recovers to above a preset recovery ratio for the target rotation speed state, the knob exits the blockage deceleration state and resumes normal rotation control. The preset recovery ratio is a preset value between 40% and 95%. The preset recovery ratio is greater than the preset entry ratio to form an asymmetric hysteresis interval to prevent state jitter.

9. An inertial rotation control system for a force feedback knob, characterized in that, include: microcontroller; A torque actuator, electrically connected to the microcontroller, is used to output torque to provide tactile feedback; An angle sensor is used to detect the rotation angle and angular velocity of the knob and output the detection results to the microcontroller; An event output interface is used to send the control events generated by the microcontroller to the target device; The microcontroller runs at least one basic force feedback mode and executes the inertial rotation control method according to any one of claims 1 to 8.

10. The system according to claim 9, characterized in that, The torque actuator is a brushless DC motor; the microcontroller uses a dual-core processor; the rotation control method runs in a high-frequency main cycle of one of the cores; the basic force feedback mode includes any one or a combination of spring rebound mode, viscous damping mode or gear point mode.