A non-transitory, computer-readable memory medium including instructions that, when executed by at least one processor of an information handling system, cause the information handling system to:
- provide a pulse width modulation (PWM) control signal with a first PWM duty cycle to an input of a given fan, the first PWM duty cycle being greater than or equal to a predetermined confidence threshold duty cycle;
- receive a tachometer signal output by the given fan while the PWM control signal has the first PWM duty cycle, the tachometer signal comprising a pair of pulses for each rotation of the given fan such that the frequency of the tachometer signal expressed in terms of revolutions per minute (RPM) is proportional to the speed of the given fan;
- compare the frequency of the tachometer signal output by the given fan while the PWM control signal has the first PWM duty cycle to an expected tachometer frequency for fans of a first fan type when receiving a PWM control signal of the first PWM duty cycle;
- determine, based on the comparison, whether or not the given fan is a fan of the first fan type;
- provide an indication of whether or not the given fan is a fan of the first fan type to a fan controller;
- calculate a first average frequency of the tachometer signal output by the given fan during a first time period in which the PWM control signal has the first PWM duty cycle;
- generate a first data structure representing a histogram comprising multiple bins, wherein each bin represents a respective range of tachometer frequency values for the tachometer signal output by the given fan during the first time period and each bin is associated with a respective count value indicating the number of occurrences of a tachometer frequency value for the tachometer signal falling within the respective range of tachometer frequency values represented by the bin during the first time period;
- determine a predetermined number of top bins associated with the highest respective count values in the first data structure;
- save reference data representing one or more of the calculated average frequency, identifiers of the top bins in the first data structure, and the respective count values associated with the top bins;
- calculate a second average frequency of the tachometer signal output by the given fan during a second time period in which the PWM control signal has the first PWM duty cycle;
- generate a second data structure representing a histogram comprising multiple bins, wherein each bin represents a respective range of tachometer frequency values for the tachometer signal output by the given fan during the second time period and each bin is associated with a respective count value indicating the number of occurrences of a tachometer frequency value for the tachometer signal falling within the respective range of tachometer frequency values represented by the bin during the second time period;
- determine a predetermined number of top bins associated with the highest respective count values in the second data structure;
- compare data representing one or more of the calculated second average frequency, identifiers of the top bins in the second data structure, and the respective count values associated with the top bins in the second data structure to the saved reference data;
- and
- responsive to detecting a discrepancy between the data representing the calculated second average frequency, identifiers of the top bins in the second data structure, or the respective count values associated with the top bins in the second data structure and the saved reference data, provide an indication of an anomaly associated with the given fan to the fan controller.