本申请涉及计算机技术领域,尤其涉及一种风扇转速的控制方法和装置。
背景技术
目前,在服务器风扇转速控制方案中,单一部件温度仅采用一种控制方式,例如采用分段法调控、线性调控或pid(proportionintegrationdifferentiation,微积分调控)调控。
而分段法调控与线性调控为开环控制,风扇转速与部件温度值直接对应,无法针对温度的异常变化反馈调节风扇转速,如设定部件温度对应的风扇pwm最大值为50%,即使异常状况导致部件温度超标,风扇转速也不会提高到更高转速,导致恶劣工作条件下部件温度存在超标风险。
pid调控为闭环控制机制,当部件温度升高时风扇转速可以持续提升,如部件温度始终高于参考值,风扇转速可以提升到全速,针对散热状况良好及恶劣的状况,pid调控可以实现不同的风扇转速将部件温度控制在参考值附近。pid调控能改善开环控制存在的问题。然而,pid调控存在以下问题:
由于服务器部件温度变化较快,导致风扇转速无法稳定在固定值,容易出现转速波动;这是因为pid算法与温度差值及温度变化快慢有关,需要调整参数使不同压力下风扇转速实现稳定,该调试工作需要时间极长,且最终的参数也无法保证任意情况下风扇转速均可以保持稳定。
技术实现要素:
有鉴于此,本申请提供了一种风扇转速控制方法和装置,以在解决开环控制风扇转速存在的问题的同时,解决pid调控带来的风扇转速波动的问题。
为了解决上述技术问题,本申请采用了如下技术方案:
一种风扇转速的控制方法,包括:
获取服务器部件温度;
根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的风扇的第一pwm值;
根据所述服务器部件温度通过开环控制算法获取所述服务器部件温度对应的风扇的第二pwm值;
比较所述第一pwm值和所述第二pwm值的大小;
利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速。
可选地,根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的第一风扇pwm值,具体包括:
计算所述服务器部件温度与参考温度之间的温度差;
根据所述服务器部件温度和所述温度差计算风扇的pwm值变化量;
将所述pwm值变化量与风扇的当前pwm值相加,得到第一pwm值。
可选地,所述开环控制算法包括分段法调控算法或线性调控算法。
可选地,所述方法还包括:
将所述所述第一pwm值和所述第二pwm值中的较大值替换当前存储的pwm值。
可选地,所述第二pwm值小于所述服务器部件散热实际需求pwm值。
一种风扇转速的控制装置,包括:
获取单元,用于获取服务器部件温度;
第一pwm获取单元,用于根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的风扇的第一pwm值;
第二pwm获取单元,用于根据所述服务器部件温度通过开环控制算法获取所述服务器部件温度对应的风扇的第二pwm值;
比较单元,用于比较所述第一pwm值和所述第二pwm值的大小;
控制单元,用于利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速。
可选地,第一pwm获取单元,具体包括:
第一计算子单元,用于计算所述服务器部件温度与参考温度之间的温度差;
第二计算子单元,用于根据所述服务器部件温度和所述温度差计算风扇的pwm值变化量;
处理子单元,用于将所述pwm值变化量与风扇的当前pwm值相加,得到第一pwm值。
可选地,所述开环控制算法包括分段法调控算法或线性调控算法。
可选地,所述装置还包括:
替换单元,用于将所述所述第一pwm值和所述第二pwm值中的较大值替换当前存储的pwm值。
可选地,所述第二pwm值小于所述服务器部件散热实际需求pwm值。
相较于现有技术,本申请具有以下有益效果:
本申请提供的风扇转速的控制方法是根据服务器部件温度通过pid调控算法获取风扇的第一pwm值以及通过开环控制算法获取风扇的第二pwm值,并利用第一pwm值和第二pwm值中的较大值控制风扇转速的。因而,该方法通过利用pid调控与开环控制综合控制风扇转速,避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题;还改善了pid调控带来的风扇转速波动问题,使得风扇转速可以快速的稳定;也简化了pid调控参数的设定,使得将参数调试的时间缩短时,不会导致风扇转速的大幅度波动。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的风扇转速的控制方法的流程图;
图2为本申请实施例二提供的风扇转速的控制方法的流程图;
图3为本申请实施例三提供的风扇转速的控制装置的结构示意图。
具体实施方式
为了解决背景技术部分所述的技术问题,本申请提供了一种风扇转速的控制方法,该方法包括:获取服务器部件温度;根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的风扇的第一pwm值;根据所述服务器部件温度通过开环控制算法获取所述服务器部件温度对应的风扇的第二pwm值;比较所述第一pwm值和所述第二pwm值的大小;利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速。
本申请提供的风扇转速的控制方法是根据服务器部件温度通过pid调控算法获取风扇的第一pwm值以及通过开环控制算法获取风扇的第二pwm值,并利用第一pwm值和第二pwm值中的较大值控制风扇转速的。因而,该方法通过利用pid调控与开环控制综合控制风扇转速,避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题;还改善了pid调控带来的风扇转速波动问题,使得风扇转速可以快速的稳定;也简化了pid调控参数的设定,使得将参数调试的时间缩短时,不会导致风扇转速的大幅度波动。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
参见图1,该图为本申请实施例一提供的风扇转速的控制方法的流程图。
本申请提供的风扇转速的控制方法包括
s101:获取服务器部件温度;
s102:根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的风扇的第一pwm值;
pid调控算法可以根据当前温度获取相应的pwm值。
为了进一步避免开环控制无法针对温度的异常变化反馈调节风扇转速的问题,s102可以具体为:
s102a:计算所述服务器部件温度与参考温度之间的温度差;
参考温度是pid调控算法中的设定温度,且参考温度可以预先设定。
温度差=服务器部件温度-参考温度。
s102b:根据所述服务器部件温度和所述温度差计算风扇的pwm值变化量;
温度差是pid调控算法的输入值,pwm值变化量是pid调控算法的输出值。
其中,pid调控算法的计算公式如下:
式中,t为时间变量;
e(t)为温度差值;
u(t)为pwm变化量;
kp为比例系数;
ki为积分系数;
kd为微分系数。
s102c:将所述pwm值变化量与风扇的当前pwm值相加,得到第一pwm值。
第一pwm值=pwm值变化量+当前pwm值。
s103:根据所述服务器部件温度通过开环控制算法获取所述服务器部件温度对应的风扇的第二pwm值;
开环控制算法可以为线性调控算法,也可以为分段法调控算法。
作为示例,下面将以线性调控算法为例进行说明。
为了进一步改善pid调控带来的风扇转速波动问题,并减短风扇转速稳定的时间,s103可以具体为:
服务器部件温度作为线性调控算法的输入值,第二pwm值为线性调控算法的输出值。
其中,线性调控算法的计算公式可以为
pwm2=kat+kb
式中,t为部件温度;
pwm2为计算得到的第二pwm值;
ka、kb为对应的线性控制系数。
s104:比较所述第一pwm值是否大于所述第二pwm值;若是,执行s105,若否,执行s106。
s105:利用所述第一pwm值控制风扇转速。
s106:利用所述第二pwm值控制风扇转速。
本申请提供的风扇转速的控制方法是根据服务器部件温度通过pid调控算法获取风扇的第一pwm值以及通过开环控制算法获取风扇的第二pwm值,并利用第一pwm值和第二pwm值中的较大值控制风扇转速的。因而,该方法通过利用pid调控与开环控制综合控制风扇转速,避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题;还改善了pid调控带来的风扇转速波动问题,使得风扇转速可以快速的稳定;也简化了pid调控参数的设定,使得将参数调试的时间缩短时,不会导致风扇转速的大幅度波动。
为了进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题,本申请实施例还提供了另外一种风扇转速的控制方法,下面结合附图进行介绍。
实施例二
实施例二是在实施例一的基础上改进得到的,因此,实施例二与实施例一的部分内容相似,为了简要起见,在此不再赘述。
实施例二在利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速之后,还包括:将所述所述第一pwm值和所述第二pwm值中的较大值替换当前存储的pwm值。
参见图2,该图为本申请实施例二提供的风扇转速的控制方法的流程图。
本申请实施例提供的风扇转速的控制方法可以具体为:
s201至s206与s101至s106相同,在此不再赘述。
s207:将所述第一pwm值替换当前存储的pwm值。
在步骤s205之后,为了便于之后获取控制风扇转速的pwm,需将第一pwm值替换当前存储的pwm值。
s208:将所述第二pwm值替换当前存储的pwm值。
在步骤s206之后,为了便于之后获取控制风扇转速的pwm,需将第二pwm值替换当前存储的pwm值。
本申请实施例提供的的风扇转速的控制方法在利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速之后,还包括:将所述所述第一pwm值和所述第二pwm值中的较大值替换当前存储的pwm值,以便于将之后获取控制风扇转速的pwm,从而进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题。
本申请实施例还提供了一种风扇转速的控制装置,下面将结合附图进行说明。
实施例三
参见图3,该图为本申请实施例三提供的风扇转速的控制装置的结构示意图。
本申请实施例提供的风扇转速的控制装置,包括:
获取单元301,用于获取服务器部件温度;
第一pwm获取单元302,用于根据所述服务器部件温度通过pid调控算法获取所述服务器部件温度对应的风扇的第一pwm值;
第二pwm获取单元303,用于根据所述服务器部件温度通过开环控制算法获取所述服务器部件温度对应的风扇的第二pwm值;
比较单元304,用于比较所述第一pwm值和所述第二pwm值的大小;
控制单元305,用于利用所述第一pwm值和所述第二pwm值中的较大值控制风扇转速。
为了进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题,第一pwm获取单元302可以具体包括:
第一计算子单元,用于计算所述服务器部件温度与参考温度之间的温度差;
第二计算子单元,用于根据所述服务器部件温度和所述温度差计算风扇的pwm值变化量;
处理子单元,用于将所述pwm值变化量与风扇的当前pwm值相加,得到第一pwm值。
为了进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题,所述开环控制算法可以为分段法调控算法,也可以为线性调控算法。
为了进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题,风扇转速的控制装置还包括:
替换单元,用于将所述所述第一pwm值和所述第二pwm值中的较大值替换当前存储的pwm值。
为了进一步避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题以及改善pid调控带来的风扇转速波动问题,所述第二pwm值小于所述服务器部件散热实际需求pwm值。
本申请实施例提供的风扇转速的控制装置根据服务器部件温度通过pid调控算法获取风扇的第一pwm值以及通过开环控制算法获取风扇的第二pwm值,并利用第一pwm值和第二pwm值中的较大值控制风扇转速的。因而,该装置通过利用pid调控与开环控制综合控制风扇转速,避免了开环控制无法针对温度的异常变化反馈调节风扇转速的问题;还改善了pid调控带来的风扇转速波动问题,使得风扇转速可以快速的稳定;也简化了pid调控参数的设定,使得将参数调试的时间缩短时,不会导致风扇转速的大幅度波动。
作为示例,本申请实施例提供的风扇转速的控制装置可以集成在服务器的基板管理控制器(bmc,baseboardmanagementcontroller)上。
以上为本申请实施例提供的具体实施方式。