一种用于风扇转速控制的温度估算方法及装置与流程

文档序号:25328766发布日期:2021-06-04 17:58阅读:105来源:国知局
一种用于风扇转速控制的温度估算方法及装置与流程

1.本发明涉及电子设备控制领域,特别涉及一种用于风扇转速控制的温度估算方法及装置。


背景技术:

2.在信息系统中,主板上的bmc系统负责采集各个温区的温度并控制风扇转速。其中,主cpu所在温区通常是主板上温度最高的温区。主cpu一般都内置温度传感器。bmc系统软件与主cpu系统软件通信,获取主cpu温区的温度。
3.在重新启动主cpu、主cpu宕机、或者bmc与主cpu之间的温度采集通信链路出现误码、等等情况下,bmc系统无法获得cpu温区的温度,在决策风扇转速控制时出现困难。
4.现有的风扇控制方法,一般忽略无法读取的温区,因而存在以下缺点:一是仅依据其它温区的温度可能使风扇转速过低。如果因主cpu宕机而无法获取主cpu温度,则风扇转速过低会使cpu温区的温度快速升高而造成主cpu物理损坏。如果因通信链路误码、主cpu重启而无法获取主cpu温度,则风扇转速会出现明显的波动,产生明显的噪音;二是获取不到主cpu温度,就控制风扇到最高转速。如果因通信链路误码、主cpu重启而无法获取主cpu温度,则风扇转速会出现剧烈的波动,产生巨大的噪音;三是获取不到主cpu温度时,就认为主cpu温度不变。如果因主cpu负载很高而持续获取不到主cpu温度,则风扇转速不能及时提高,造成主cpu温度持续升高而物理损坏。


技术实现要素:

5.本发明实施例的目的是提供一种用于风扇转速控制的温度估算方法方法及装置,在当前检测周期内无法获取第一温区的温度时,通过利用第一温区和其他温区的历史温度数据获取当前检测周期中第一温区的温度估算值,并依据温度估算值控制风扇的转速,来实现风扇转速的平滑升降,以平衡温度过高和噪音过大之间的矛盾。
6.为解决上述技术问题,本发明实施例的第一方面提供了一种用于风扇转速控制的温度估算方法,主板包括:第一温区和第二温区,所述第一温区位于所述主板的cpu内,所述第二温区与风扇的控制装置直接连接,包括如下步骤:检测当前检测周期内的所述第一温区的温度检测数据;如在当前检测周期内未检测到所述第一温区的所述温度检测数据,则结合历史温度队列中的温度检测数据,通过最小二乘法计算所述第一温区的温度估算值,并依据所述温度估算值控制所述风扇的转速;如在所述当前检测周期内检测到所述第一温区的所述温度检测数据,则依据所述温度检测数据控制所述风扇的转速。
7.进一步地,所述结合历史温度队列中的温度检测数据并通过最小二乘法计算所述第一温区的温度估算值中,所述温度估算值为:,
其中,为第一线性回归参数,所述第一线性回归参数为所述第一温区相对于所述第二温区的最大温升值,为第二线性回归参数, 为第二温区的温度检测值;所述第一线性回归参数为:,所述第二线性回归参数为:,,,其中,为校正差积和,为校正平方和,为所述历史温度队列中第一温区的第一个历史检测数据,为所述历史温度队列中第一温区的历史检测数据平均值,为所述历史温度队列中第一温区的第n个历史检测数据, 为所述历史温度队列中第二温区的第一个历史检测数据,为所述历史温度队列中第二温区的历史检测数据平均值,为所述历史温度队列中第二温区的第n个历史检测数据。
8.进一步地,所述结合历史温度队列中的温度检测数据并通过最小二乘法计算所述第一温区的温度估算值之前,还包括:获取所述历史温度队列中的历史检测数据;当所述历史温度队列中所述温度检测数据的数量少于第一预设数值且未检测到所述第一温区温度检测数据的时长小于预设时长时,将所述第一线性回归参数和所述第二线性回归参数分别设定为预设数值。
9.进一步地,所述获取所述历史温度队列中的历史检测数据之前,还包括:获取所述当前检测周期的所述第一温区和所述第二温区的温度检测数据;判断所述温度检测数据与前一检测周期的所述温度检测数据的差值是否大于第二预设数值;如是则将所述当前检测周期的所述温度检测数据存入所述历史温度队列;如否则舍弃所述当前检测周期的所述温度检测数据。
10.进一步地,所述第一温区为高温区,所述第二温区为低温区。
11.相应地,本发明实施例的第二方面提供了一种用于风扇转速控制的温度估算方法,主板包括:第一温区和第二温区,所述第一温区位于所述主板的cpu内,所述第二温区与风扇的控制装置直接连接,包括:第一检测模块,其用于检测当前检测周期内的所述第一温区的温度检测数据;控制模块,其用于在当前检测周期内未检测到所述第一温区的所述温度检测数据时,结合历史温度队列中的温度检测数据,通过最小二乘法计算所述第一温区的温度估算值,并依据所述温度估算值控制所述风扇的转速;所述控制模块还用于在所述当前检测周期内检测到所述第一温区的所述温度检测数据时依据所述温度检测数据控制所述风扇的转速。
12.进一步地,所述控制模块计算所述温度估算值:,其中,为第一线性回归参数,所述第一线性回归参数为所述第一温区相对于所述第二温区的最大温升值,为第二线性回归参数, 为第二温区的温度检测值所述第一线性回归参数为:,所述第二线性回归参数为:,,,其中,为校正差积和,为校正平方和,为所述历史温度队列中第一温区的第一个历史检测数据,为所述历史温度队列中第一温区的历史检测数据平均值,为所述历史温度队列中第一温区的第n个历史检测数据, 为所述历史温度队列中第二温区的第一个历史检测数据,为所述历史温度队列中第二温区的历史检测数据平均值,为所述历史温度队列中第二温区的第n个历史检测数据。
13.进一步地,所述用于风扇转速控制的温度估算装置还包括:历史数据获取模块;所述历史数据获取模块包括:第一获取单元和参数设定单元;所述第一获取单元用于获取所述历史温度队列中的历史检测数据;所述参数设定单元用于当所述历史温度队列中所述温度检测数据的数量少于第一预设数值且未检测到所述第一温区温度检测数据的时长小于预设时长时,将所述第一线性回归参数和所述第二线性回归参数分别设定为预设数值。
14.进一步地,所述历史数据获取模块还包括:第二获取单元、数据判断单元和控制单元;所述第二获取单元用于获取所述当前检测周期的所述第一温区和所述第二温区的温度检测数据;所述数据判断单元用于判断所述温度检测数据与前一检测周期的所述温度检测数据的差值是否大于第二预设数值;所述控制单元在所述温度检测数据与前一检测周期的所述温度检测数据的差值大于所述第二预设数值时将所述当前检测周期的所述温度检测数据存入所述历史温度队列;所述控制单元还在所述温度检测数据与前一检测周期的所述温度检测数据的差值小于或等于所述第二预设数值时舍弃所述当前检测周期的所述温度检测数据。
15.所述第一温区为高温区,所述第二温区为低温区。
16.本发明实施例的上述技术方案具有如下有益的技术效果:
在当前检测周期内无法获取第一温区的温度时,通过利用第一温区和其他温区的历史温度数据获取当前检测周期中第一温区的温度估算值,并依据温度估算值控制风扇的转速,来实现风扇转速的平滑升降,以平衡温度过高和噪音过大之间的矛盾。
附图说明
17.图1是本发明实施例提供的用于风扇转速控制的温度估算方法流程图;图2是本发明实施例提供的用于风扇转速控制的温度估算方法逻辑示意图;图3是本发明实施例提供的历史温度队列逻辑示意图;图4是本发明实施例提供的用于风扇转速控制的温度估算装置模块框图;图5是本发明实施例提供的历史数据获取模块框图。
18.附图标记:1、第一检测模块,2、控制模块,3、历史数据获取模块,31、第一获取单元,32、参数设定单元,33、第二获取单元,34、数据判断单元,35、控制单元,4、第二检测模块。
具体实施方式
19.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
20.图1是本发明实施例提供的用于风扇转速控制的温度估算方法流程图。
21.图2是本发明实施例提供的用于风扇转速控制的温度估算方法逻辑示意图;。
22.请参照图1和图2,本发明实施例的第一方面提供了一种用于风扇转速控制的温度估算方法,主板包括:第一温区和第二温区,第一温区位于主板的cpu内,第二温区与风扇的控制装置直接连接,包括如下步骤:s200,检测当前检测周期内的第一温区的温度检测数据。
23.s400,如在当前检测周期内未检测到第一温区的温度检测数据,则结合历史温度队列中的温度检测数据,通过最小二乘法计算第一温区的温度估算值,并依据温度估算值控制风扇的转速。
24.s600,如在当前检测周期内检测到第一温区的温度检测数据,则依据温度检测数据控制风扇的转速。
25.上述温度估算方法适用于满足以下所有条件的应用场景:一是主板有两个或更多温区;二是其中的第一温区是主cpu温区(高温区),其温度传感器位于主cpu内部,需要风扇控制程序与主cpu通信来读取其温度值;三是其中另一个温区(以下称为低温区)的温度传感器直接连接在风扇控制处理器的总线上;四是风扇控制程序依据高温区的温度来控制风扇转速。
26.上述技术方案采用统计学中的线性回归模型,用温度采集过程更可靠的低温区温度值来估计温度采集过程不可靠的高温区温度值,使得在cpu重新启动、温度采集通信链路误码等情况下,平滑调整风扇转速,减小风扇噪音。
27.具体的,在步骤s400中,温度估算值为:
,其中,为第一线性回归参数,第一线性回归参数为第一温区相对于第二温区的最大温升值,为第二线性回归参数, 为第二温区的温度检测值。
28.第一线性回归参数为:,第二线性回归参数为:,,,其中,为校正差积和,为校正平方和,为历史温度队列中第一温区的第一个历史检测数据,为历史温度队列中第一温区的历史检测数据平均值,为历史温度队列中第一温区的第n个历史检测数据, 为历史温度队列中第二温区的第一个历史检测数据,为历史温度队列中第二温区的历史检测数据平均值,为历史温度队列中第二温区的第n个历史检测数据。
29.此外,在本发明实施例的一个具体实施方式中,步骤s400中的结合历史温度队列中的温度检测数据并通过最小二乘法计算第一温区的温度估算值的步骤之前,还包括:s320,获取历史温度队列中的历史检测数据。
30.s330,当历史温度队列中温度检测数据的数量少于第一预设数值且未检测到第一温区温度检测数据的时长小于预设时长时,将第一线性回归参数和第二线性回归参数分别设定为预设数值。
31.具体的,当历史温度队列q的记录数很少时,或者已经持续超过timeout时间无法读取c
h
时,采用温度高估的一对经验值,例如,可以取b1=1,b0=x,x是实验室测得的高温区相对低温区的最大温升值。超时时间timeout一般取值为主cpu的启动时间,例如2分钟。
32.图3是本发明实施例提供的历史温度队列逻辑示意图。
33.进一步地,请参照图3,获取历史温度队列中的历史检测数据之前,还包括如下步骤:s311,获取当前检测周期的第一温区和第二温区的温度检测数据。
34.s312,判断温度检测数据与前一检测周期的温度检测数据的差值是否大于第二预设数值。
35.s313,如是则将当前检测周期的温度检测数据存入历史温度队列。
36.当历史温度队列中的温度检测数据的数量达到最大存储量时,删除最早检测周期的温度检测数据,并存储当前检测周期的温度检测数据。
37.s314,如否则舍弃当前检测周期的温度检测数据。
38.总体流程图图1中的历史队列q,按时间先后顺序,保存着最大n条历史温度记录,记为{(c
hi
,c
li
) | i=1,

,n}。其中,
1)n是队列中实际元素个数,取值不超过n。其中n>=2是预设的队列最大大小,一般取值50即可。
39.2)队列中下标i=1对应的记录(c
h1
,c
l1
),产生时间在前,位于队列头部。
40.3)队列中下标i=n对应的记录(c
hn
,c
ln
),产生时间在后,位于队列尾部。
41.具体的,第二预设数值为ε:当前高温区温度与队列中时间最近的一条记录的高温区温度相差小于ε时,不会被记录到队列中。一般取值0.5摄氏度即可。
42.在收集历史温度时,限定相邻历史温度的最小差值,从而避免当温度稳定到一个很小的范围内时,历史温度过于聚集导致通过线性回归方法估计的温度与实际温度偏差过大。
43.进一步地,在当前检测周期内未检测到第一温区的温度检测数据之后,还包括:s341,检测当前检测周期内的第二温区的温度检测数据;s342,当未检测到第二温区的温度检测数据时,将风扇的转速调整为最高转速。
44.当高温区温度和低温区温度都无法读取时,直接按最高温度t
u
调整风扇转速,通常为最高转速。
45.图4是本发明实施例提供的用于风扇转速控制的温度估算装置模块框图。
46.相应地,请参照图4,本发明实施例的第二方面提供了一种用于风扇转速控制的温度估算方法,主板包括:第一温区和第二温区,第一温区位于主板的cpu内,第二温区与风扇的控制装置直接连接,包括:第一检测模块1和控制模块2。其中,第一检测模块1用于检测当前检测周期内的第一温区的温度检测数据;控制模块2用于在当前检测周期内未检测到第一温区的温度检测数据时,结合历史温度队列中的温度检测数据,通过最小二乘法计算第一温区的温度估算值,并依据温度估算值控制风扇的转速;控制模块2还用于在当前检测周期内检测到第一温区的温度检测数据时依据温度检测数据控制风扇的转速。
47.上述温度估算装置适用于满足以下所有条件的应用场景:一是主板有两个或更多温区;二是其中的第一温区是主cpu温区(高温区),其温度传感器位于主cpu内部,需要风扇控制程序与主cpu通信来读取其温度值;三是其中另一个温区(以下称为低温区)的温度传感器直接连接在风扇控制处理器的总线上;四是风扇控制程序依据高温区的温度来控制风扇转速。
48.进一步地,控制模块2计算温度估算值:,其中,为第一线性回归参数,第一线性回归参数为第一温区相对于第二温区的最大温升值,为第二线性回归参数, 为第二温区的温度检测值。
49.进一步地,第一线性回归参数为:,第二线性回归参数为:,,
,其中,为校正差积和,为校正平方和,为历史温度队列中第一温区的第一个历史检测数据,为历史温度队列中第一温区的历史检测数据平均值,为历史温度队列中第一温区的第n个历史检测数据, 为历史温度队列中第二温区的第一个历史检测数据,为历史温度队列中第二温区的历史检测数据平均值,为历史温度队列中第二温区的第n个历史检测数据。
50.图5是本发明实施例提供的历史数据获取模块框图。
51.进一步地,请参照图5,用于风扇转速控制的温度估算装置还包括:历史数据获取模块3。历史数据获取模块3包括:第一获取单元31和参数设定单元32。其中,第一获取单元31用于获取历史温度队列中的历史检测数据;参数设定单元32用于当历史温度队列中温度检测数据的数量少于第一预设数值且未检测到第一温区温度检测数据的时长小于预设时长时,将第一线性回归参数和第二线性回归参数分别设定为预设数值。
52.具体的,当历史温度队列q的记录数很少时,或者已经持续超过timeout时间无法读取c
h
时,参数设定单元32采用温度高估的一对经验值,例如,可以取b1=1,b0=x,x是实验室测得的高温区相对低温区的最大温升值。超时时间timeout一般取值为主cpu的启动时间,例如2分钟。
53.进一步地,历史数据获取模块3还包括:第二获取单元33、数据判断单元34和控制单元35。其中,第二获取单元33用于获取当前检测周期的第一温区和第二温区的温度检测数据;数据判断单元34用于判断温度检测数据与前一检测周期的温度检测数据的差值是否大于第二预设数值;控制单元35在温度检测数据与前一检测周期的温度检测数据的差值大于第二预设数值时将当前检测周期的温度检测数据存入历史温度队列;控制单元35还在温度检测数据与前一检测周期的温度检测数据的差值小于或等于第二预设数值时舍弃当前检测周期的温度检测数据。
54.数据判断单元34判断温度检测数据与前一检测周期的温度检测数据的差值是否大于第二预设数值为ε,当前高温区温度与队列中时间最近的一条记录的高温区温度相差小于ε时,不会被记录到队列中。一般取值0.5摄氏度即可。
55.在收集历史温度时,限定相邻历史温度的最小差值,从而避免当温度稳定到一个很小的范围内时,历史温度过于聚集导致通过线性回归方法估计的温度与实际温度偏差过大。
56.当历史温度队列中的温度检测数据的数量达到最大存储量时,控制单元35还用于删除最早检测周期的温度检测数据,并存储当前检测周期的温度检测数据。
57.进一步地,用于风扇转速控制的温度估算装置还包括:第二检测模块4。第二检测模块4用于检测当前检测周期内的第二温区的温度检测数据;控制模块2在第二检测模块4未检测到第二温区的温度检测数据时,将风扇的转速调整为最高转速。
58.相应地,本发明实施例第三方面还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行上述用于风
扇转速控制的温度估算方法。
59.相应地,本发明实施例第四方面还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述用于风扇转速控制的温度估算方法。
60.本发明实施例旨在保护一种用于风扇转速控制的温度估算方法及装置,主板包括:第一温区和第二温区,第一温区位于主板的cpu内,第二温区与风扇的控制装置直接连接,其中方法包括:检测当前检测周期内的第一温区的温度检测数据;如在当前检测周期内未检测到第一温区的温度检测数据,则结合历史温度队列中的温度检测数据,通过最小二乘法计算第一温区的温度估算值,并依据温度估算值控制风扇的转速;如在当前检测周期内检测到第一温区的温度检测数据,则依据温度检测数据控制风扇的转速。上述技术方案具备如下效果:在当前检测周期内无法获取第一温区的温度时,通过利用第一温区和其他温区的历史温度数据获取当前检测周期中第一温区的温度估算值,并依据温度估算值控制风扇的转速,来实现风扇转速的平滑升降,以平衡温度过高和噪音过大之间的矛盾。
61.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
62.本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
63.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
64.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
65.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1