一种服务器系统风扇PID调速控制计算方法与系统与流程

文档序号:18296593发布日期:2019-07-31 09:27阅读:824来源:国知局
一种服务器系统风扇PID调速控制计算方法与系统与流程
本发明涉及服务器功耗控制
技术领域
,特别是一种服务器系统风扇pid调速控制计算方法与系统。
背景技术
:随着服务器技术的发展,服务器内部的集成部件数量越来越多,密度越来越高,单个器件功耗越来越高,服务器系统风扇的调速控制直接影响到系统运行的功耗、可靠性以及噪音大小。pid调控作为一种能够实现高精度、快速响应的控制方式,在服务器系统风扇的转速调节中逐渐开始得到应用。最初的pid调控是针对单变量及反馈的一种计算方法。但在服务器内部,cpu、gpu、内存、硬盘、fpga卡以及各个主板芯片等都具有较高的发热功耗,这就需要系统风扇的调速控制依据不同的应用工况进行转速调节。上述的发热器件都有可能成为散热瓶颈,为保证系统的可靠运行,需要对所有的发热器件温度进行监控,应用pid控制策略来进行系统风扇转速的计算,最后依据所需的最大风扇转速进行响应输出系统风扇的值。如图1给出的pid控制系统原理示意图所示,给定r(t)与输出y(t)之间构成一定的控制关系。在服务器系统风扇调速控制应用时,每隔一段时间,针对每个调控点的温度对系统风扇转速进行输出计算,一般采取如下简化计算公式:fs(k)=fs(k-1)+kp*[t(k)-t(k-1)]+ki*[t(k)-tref]+kd*[t(k)+t(k-2)-2*t(k-1)]上式中,fs(k)为当前需要输出的风扇转速值;fs(k-1)为前一时刻风扇转速值;t(k)、t(k-1)、t(k-2)为当前、前一时刻、前两时刻的温度值;tref为调控目标点;kp、ki、kd为pid计算参数。公式中fs(k-1)的取值问题,直接导致下述两种计算方法的存在。如图2所示,第一种方法是以上一周期的最大值fs作为下一周期计算的参数,即调控点ab的计算均以上一周期风扇的最大转速,也就是输出的控制风扇转速作为基础。但是此种控制方式极易出现风扇转速的超调,造成风扇转速的波动。如表1所示,设置a的调控参数kp=5、ki=0.5、kd=1;设置b的调控参数kp=6、ki=0.3、kd=0.8。表1时间次数012345a温度808080787576tref(a)808080808080a计算转速100100100143.3132.3139.3b温度303040424140tref(b)797979797979b计算转速4085.3156.3150.8131114.6最终输出风扇转速100100156.3150.8131114.6由上述数据可知,调控过程中出现了超调,造成风扇转速的波动,而由0、1的读数可以判读,如风扇一直保持转速为100,即能满足使用要求(a、b均处于tref之下)。如图3所示,第二种方法采用的基础转速为上一计算周期,本调控点的计算转速值,以此来克服第一种方法所带来的风扇转速超调问题,但此种情况下又会导致调控滞后的问题。如表2所示,设置a的调控参数kp=5、ki=0.5、kd=1;设置b的调控参数kp=6、ki=0.3、kd=0.8。表2时间次数012345a温度808080808080tref(a)808080808080a计算转速100100100100100100b温度787878787878tref(b)797979797979b计算转速9897.797.497.196.896.5最终输出风扇转速100100100100100100由上表可知,在a、b温度保持不变的情况下,b计算转速是一直降低的,直至计算到326次后,b计算转速为0.2,这个转速是不能实际反映当前b所需的转速值的;在下个计算周期,即次数为327次,b的温度值突然升高,情况如表3:表3时间次数325326327328329330a温度808080808080tref(a)808080808080a计算转速100100100100100100b温度787882869094tref(b)797979797979b计算转速0.50.228.354.481.7110.2最终输出风扇转速100100100100100110.2可见b的调控存在严重的滞后性,即在三个计算周期后风扇转速才开始提升。技术实现要素:本发明的目的是提供一种服务器系统风扇pid调速控制计算方法与系统,旨在解决现有技术中服务器风扇调速控制方法中存在的超调或滞后的问题,实现提高调控精度和响应速度,提高系统可靠性。为达到上述技术目的,本发明提供了一种服务器系统风扇pid调速控制计算方法,所述方法包括以下步骤:s1、为每个调控点设置计算参数;s2、读取每个调控点的温度数据t(x),将其与对比计算温度点s(x)进行比较;s3、如果t(x)≥s(x),则进行pid计算获取fs值,否则停止当前计算,记录当前调控点fs为转速最低值fsmini(x);s4、将所有调控点的fs值进行比较,取最大值fs作为风扇输出值。优选地,所述计算参数包括对比计算温度点s(x),调控目标点tref(x),调控pid参数kp(x)、ki(x)、kd(x),转速最低值fsmini(x)。优选地,所述pid计算公式如下:fs(k)=fs(k-1)+kp*[t(k)-t(k-1)]+ki*[t(k)-tref]+kd*[t(k)+t(k-2)-2*t(k-1)]其中,fs(k-1)取值为前一时刻的风扇运行值;如果当前计算为第一次计算,fs(k-1)无记录,则自动按照转速最低值fsmini(x)计算。优选地,所述调控点包括cpu、gpu以及硬盘。本发明还提供了一种服务器系统风扇pid调速控制计算系统,所述系统包括:参数设置模块,用于为每个调控点设置计算参数;温度对比模块,用于读取每个调控点的温度数据t(x),将其与对比计算温度点s(x)进行比较;调控点fs值确定模块,用于如果t(x)≥s(x),则进行pid计算获取fs值,否则停止当前计算,记录当前调控点fs为转速最低值fsmini(x);风扇输出值确定模块,用于将所有调控点的fs值进行比较,取最大值fs作为风扇输出值。优选地,所述计算参数包括对比计算温度点s(x),调控目标点tref(x),调控pid参数kp(x)、ki(x)、kd(x),转速最低值fsmini(x)。优选地,所述pid计算公式如下:fs(k)=fs(k-1)+kp*[t(k)-t(k-1)]+ki*[t(k)-tref]+kd*[t(k)+t(k-2)-2*t(k-1)]其中,fs(k-1)取值为前一时刻的风扇运行值;如果当前计算为第一次计算,fs(k-1)无记录,则自动按照转速最低值fsmini(x)计算。优选地,所述调控点包括cpu、gpu以及硬盘。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本发明通过设置对比计算温度点,将每个调控点的温度数据与其进行相比较,如果大于则进行pid计算获取转速值,否则将转速最低值作为调控点的转速值,并将最大值fs作为风扇输出值,实现服务器系统风扇pid调速控制的计算。本发明通过引入对比计算温度点,过滤掉温度较低的器件温度变化对调控风扇转速的影响,同时减少了pid计算的数据量,克服了现有技术方案的弊端,保证调控精度和响应速度,风扇调控转速过渡平稳,使得系统噪音值控制在一定范围内,风扇的供电浪费较小,可靠性大幅提高。附图说明图1为现有技术中所提供的一种常规pid控制器系统原理示意图;图2为现有技术中所提供的第一种服务器系统风扇转速控制方法原理示意图;图3为现有技术中所提供的第二种服务器系统风扇转速控制方法原理示意图;图4为本发明实施例中所提供的一种服务器系统风扇pid调速控制计算方法原理示意图;图5为本发明实施例中所提供的一种服务器系统风扇pid调速控制计算方法流程图;图6为本发明实施例中所提供的一种服务器系统风扇pid调速控制计算系统结构框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。下面结合附图对本发明实施例所提供的一种服务器系统风扇pid调速控制计算方法与系统进行详细说明。如图4、5所示,本发明实施例公开了一种服务器系统风扇pid调速控制计算方法,所述方法包括以下步骤:s1、为每个调控点设置计算参数;s2、读取每个调控点的温度数据t(x),将其与对比计算温度点s(x)进行比较;s3、如果t(x)≥s(x),则进行pid计算获取fs值,否则停止当前计算,记录当前调控点fs为转速最低值fsmini(x);s4、将所有调控点的fs值进行比较,取最大值fs作为风扇输出值。为每个调控点,例如cpu、gpu以及硬盘等,设置计算参数,所述计算参数包括:对比计算温度点s(x),调控目标点tref(x),调控pid参数kp(x)、ki(x)、kd(x),转速最低值fsmini(x)。通过对比计算温度点s(x)的存在,使得一些温度较低器件的温度波动被忽略掉,不再对系统的调控计算有影响。分别读取每个调控点的温度数据,记为t(x),将其与对比计算温度点s(x)进行比较,如果t(x)≥s(x),则利用如下公式进行计算:fs(k)=fs(k-1)+kp*[t(k)-t(k-1)]+ki*[t(k)-tref]+kd*[t(k)+t(k-2)-2*t(k-1)]fs(k-1)取值为前一时刻的风扇运行值;如果当前计算为第一次计算,fs(k-1)无记录,则自动按照转速最低值fsmini(x)计算;如果t(x)<s(x),则停止当前计算,记录此调控点所得数据fs为fsmini(x)。将上述所得的所有有效fs值进行比较,取最大值fs作为风扇输出值,如此输出值已经大于风扇的最高转速则以风扇的最高转速为准。因对比计算温度点s(x)温度点较tref低,使得调控的起始时间提前,且计算时采用上一时刻风扇的时刻运行值,避免出现滞后性。点s(x)作为一个对比点,使得参与调控的所有器件温度都进行了过滤,使得最终进行pid计算的调控点数量较少,这与服务器运行的特性是比较相符的。一般在服务器运行时只有少数的器件,如cpu或gpu等大功耗器件,温度接近tref值,大部分器件都存在较大余量,低于s(x)。通过筛选过程,能够使pid计算的计算量大幅减少。为验证本发明技术方案所实现的效果,将第一种方法中出现超调时温度变化情况进行模拟,同时增大b的温度波动范围。结果如表4所示,设置a的调控参数kp=5、ki=0.5、kd=1;设置b的调控参数kp=6、ki=0.3、kd=0.8。表4结果显示,调控转速比较理想,不会因为b在较低温度下的温度波动而出现超调现象。将第二种方法中出现滞后调控现象进行模拟,结果如表5所示,设置a的调控参数kp=5、ki=0.5、kd=1;设置b的调控参数kp=6、ki=0.3、kd=0.8。表5时间次数012345a温度808080808080tref(a)808080808080s(a)707070707070a计算转速100100100100100128.1b温度787878788286tref(b)797979797979s(b)696969696969b计算转速9899.799.799.7128.1154.2最终输出风扇转速100100100100128.1154.2由上述结果可知,在0-3次计算过程中,b的计算转速始终是不变的,这与b的温度没有发生波动是保持一致的,当从第4次计算开始,b的温度值突然变化增大,b的计算转速立即发生响应,使得最终输出风扇转速立即提高。本发明实施例通过设置对比计算温度点,将每个调控点的温度数据与其进行相比较,如果大于则进行pid计算获取转速值,否则将转速最低值作为调控点的转速值,并将最大值fs作为风扇输出值,实现服务器系统风扇pid调速控制的计算。本发明通过引入对比计算温度点,过滤掉温度较低的器件温度变化对调控风扇转速的影响,同时减少了pid计算的数据量,克服了现有技术方案的弊端,保证调控精度和响应速度,风扇调控转速过渡平稳,使得系统噪音值控制在一定范围内,风扇的供电浪费较小,可靠性大幅提高。如图6所示,本发明实施例还公开了一种服务器系统风扇pid调速控制计算系统,所述系统包括:参数设置模块,用于为每个调控点设置计算参数;温度对比模块,用于读取每个调控点的温度数据t(x),将其与对比计算温度点s(x)进行比较;调控点fs值确定模块,用于如果t(x)≥s(x),则进行pid计算获取fs值,否则停止当前计算,记录当前调控点fs为转速最低值fsmini(x);风扇输出值确定模块,用于将所有调控点的fs值进行比较,取最大值fs作为风扇输出值。为每个调控点,例如cpu、gpu以及硬盘等,设置计算参数,所述计算参数包括:对比计算温度点s(x),调控目标点tref(x),调控pid参数kp(x)、ki(x)、kd(x),转速最低值fsmini(x)。分别读取每个调控点的温度数据,记为t(x),将其与对比计算温度点s(x)进行比较,如果t(x)≥s(x),则利用如下公式进行计算:fs(k)=fs(k-1)+kp*[t(k)-t(k-1)]+ki*[t(k)-tref]+kd*[t(k)+t(k-2)-2*t(k-1)]fs(k-1)取值为前一时刻的风扇运行值;如果当前计算为第一次计算,fs(k-1)无记录,则自动按照转速最低值fsmini(x)计算;如果t(x)<s(x),则停止当前计算,记录此调控点所得数据fs为fsmini(x)。将上述所得的所有有效fs值进行比较,取最大值fs作为风扇输出值,如此输出值已经大于风扇的最高转速则以风扇的最高转速为准。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1