# US 11,907,032 B2 · Generating fan control signal for computing device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,032 B2
- Document ID: US11907032B2
- Status: Granted
- Kind: B2
- Application number: 17/353,510
- Filed: 2021-06-21
- Published: 2022-12-22
- Granted: 2024-02-20
- Earliest claimed: 2021-06-21
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Nikita Ramesh Wanjale; David Michael Sutherland; Jonathan Robert Pease
- Web page: https://patentgrep.com/patent/US11907032B2

## CPC

- F04D 27/004: {by varying driving speed}
- G06F 1/206: {comprising thermal management}
- G05D 23/1931: {to control the temperature of one space}
- G06F 1/20: Cooling means
- G06F 11/3058: {Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations (thermal management in cooling arrangements of a computing system G06F1/206)}
- G06N 20/00: Machine learning
- H05K 7/20136: {Forced ventilation, e.g. by fans (H05K7/202 takes precedence)}
- H05K 7/20209: {Thermal management, e.g. fan control}
- F04D: NON-POSITIVE-DISPLACEMENT PUMPS (engine fuel-injection pumps F02M; ion pumps H01J41/12; electrodynamic pumps H02K44/02)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H05K: PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS

## Abstract

A computing device is provided, including one or more processing devices, one or more temperature sensors, a fan, and a fan tachometer. The one or more processing devices may be configured to execute an application program. While executing the application program, the one or more processing devices may be further configured to collect performance data including temperature data received from the one or more temperature sensors and fan speed data received from the fan tachometer. The one or more processing devices may be further configured to generate a fan control signal at least in part by applying a machine learning model to the performance data. The one or more processing devices may be further configured to control the fan according to the fan control signal.

## Claims

### Claim 1

A computing device comprising:
one or more processing devices;
one or more temperature sensors;
a fan; and
a fan tachometer;
wherein the one or more processing devices are configured to:
execute an application program;
while executing the application program, collect performance data including:
temperature data received from the one or more temperature sensors; and
fan speed data received from the fan tachometer;
generate a fan control signal at least in part by applying a machine learning model to the performance data, wherein:
the machine learning model is a reinforcement learning model; and
the machine learning model has a loss function including:
a fan speed term computed as a function of a fan speed included in the fan speed data; and
a temperature overshoot term added to the loss function when the temperature data indicates a temperature above a predetermined temperature threshold; and
control the fan according to the fan control signal.

### Claim 2 (depends on 1)

The computing device of claim 1, wherein the loss function further includes a fan acceleration term computed as a function of a time derivative of the fan speed.

### Claim 3 (depends on 1)

The computing device of claim 1, wherein the one or more processing devices are configured to:
at the machine learning model, based at least in part on the performance data, apply a thermal control model update to a thermal control model to generate an updated thermal control model; and
generate the fan control signal at least in part by executing the updated thermal control model.

### Claim 4 (depends on 3)

The computing device of claim 3, wherein:
the thermal control model is a thermal control proportional-integral-derivative (PID) algorithm having a temperature setpoint; and
the thermal control model is configured to receive the temperature data and output a fan speed setpoint.

### Claim 5 (depends on 4)

The computing device of claim 4, wherein, at the machine learning model, the one or more processing devices are configured to apply the thermal control model update to the thermal control model at least in part by modifying one or more coefficients of the thermal control PID algorithm.

### Claim 6 (depends on 4)

The computing device of claim 4, wherein, at the machine learning model, the one or more processing devices are configured to apply the thermal control model update to the thermal control model at least in part by applying a temperature setpoint offset to the temperature setpoint of the thermal control PID algorithm.

### Claim 7 (depends on 4)

The computing device of claim 4, wherein:
the one or more processing devices are further configured to execute a fan control PID algorithm;
the fan control PID algorithm is configured to receive, as inputs, the fan speed setpoint output by the thermal control PID algorithm and the fan speed data output by the fan tachometer; and
the fan control PID algorithm is configured to output the fan control signal.

### Claim 8 (depends on 1)

The computing device of claim 1, wherein the one or more processing devices are configured to:
at the machine learning model, based at least in part on the performance data, apply a fan control model update to a fan control model to generate an updated fan control model, wherein the fan control model is a proportional-integral-derivative (PID) algorithm having a fan speed setpoint; and
generate the fan control signal at least in part by executing the updated fan control model.

### Claim 9 (depends on 1)

The computing device of claim 1, wherein:
the performance data further includes one or more operating mode indications of an operating mode in which the application program is executed; and
the operating mode is a setting of the application program or a state of executing a predefined computational process included in the application program.

### Claim 10 (depends on 1)

The computing device of claim 1, wherein the performance data further includes one or more respective utilization levels and/or one or more respective performance counters of the one or more processing devices.

### Claim 11 (depends on 1)

The computing device of claim 1, wherein the performance data further includes power consumption data of the one or more processing devices.

### Claim 12 (depends on 1)

The computing device of claim 1, wherein the one or more processing devices are further configured to:
detect, at least in part at the machine learning model, a vent blockage condition in which a vent in a case of the computing device is obstructed; and
in response to detecting the vent blockage condition, output a vent blockage notification for display at a graphical user interface (GUI).

### Claim 13 (depends on 1)

The computing device of claim 1, further comprising memory configured to store a plurality of machine learning models including the machine learning model, wherein the plurality of machine learning models are configured to generate the fan control signal during execution of a respective plurality of application programs including the application program.

### Claim 14

A method for use with a computing device, the method comprising:
executing an application program;
while executing the application program, collecting performance data including:
temperature data received from one or more temperature sensors; and
fan speed data received from a fan tachometer;
generating a fan control signal at least in part by applying a machine learning model to the performance data, wherein:
the machine learning model is a reinforcement learning model; and
the machine learning model has a loss function including:
a fan speed term computed as a function of a fan speed included in the fan speed data; and
a temperature overshoot term added to the loss function when the temperature data indicates a temperature above a predetermined temperature threshold; and
controlling a fan according to the fan control signal.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
at the machine learning model, based at least in part on the performance data, applying a thermal control model update to a thermal control model to generate an updated thermal control model, wherein:
the thermal control model is a thermal control proportional-integral-derivative (PID) algorithm having a temperature setpoint; and
the thermal control model is configured to receive the temperature data and output a fan speed setpoint; and
generating the fan control signal at least in part by executing the updated thermal control model.

### Claim 16 (depends on 15)

The method of claim 15, further comprising executing a fan control PID algorithm, wherein:
the fan control PID algorithm is configured to receive, as inputs, the fan speed setpoint output by the thermal control PID algorithm and the fan speed data output by the fan tachometer; and
the fan control PID algorithm is configured to output the fan control signal.

### Claim 17 (depends on 14)

The method of claim 14, further comprising:
at the machine learning model, based at least in part on the performance data, applying a fan control model update to a fan control model to generate an updated fan control model, wherein the fan control model is a proportional-integral-derivative (PID) algorithm having a fan speed setpoint; and
generating the fan control signal at least in part by executing the updated fan control model.

### Claim 18

A computing device comprising:
one or more processing devices;
one or more temperature sensors;
a fan; and
a fan tachometer;
wherein the one or more processing devices are configured to:
receive a reinforcement learning model from a server computing device;
execute an application program;
while executing the application program, collect performance data including:
temperature data received from the one or more temperature sensors; and
fan speed data received from the fan tachometer;
generate a fan control signal at least in part by applying the reinforcement learning model to the performance data, wherein the reinforcement learning model has a loss function including:
a fan speed term computed as a function of a fan speed included in the fan speed data; and
a temperature overshoot term added to the loss function when the temperature data indicates a temperature above a predetermined temperature threshold;
control the fan according to the fan control signal; and
perform additional training on the reinforcement learning model based at least in part on the performance data and the loss function of the reinforcement learning model.
