发明名称 后验控制与多传感器融合方法及空调节能控制装置
摘要 本发明属于控制领域。后验控制算法解决的核心问题是控制系统受先验知识的限制,在系统运行环境不同或变化时无法主动改变自身参数,自优化适应的问题。本发明选取了空调节能控制为验证对象,使系统在先验知识不足的情况下就可以开始运行,运行中控制器根据具体运行环境自动优化参数,实现控制器推广前参数一次性设计,控制器使用过程中自适应环境达到优化控制,实现节约电能为控制目标。经过主成分统计分析和专家论证的多传感器,通过后验模糊神经网络进行决策,不仅充分利用工程师给出的经验控制数据,还解决了高阶非线性不连续控制问题,解决了市场上存在控制器的输入变量不足导致的节能控制效果不佳、系统运行不稳定的问题。
申请公布号 CN100501608C 申请公布日期 2009.06.17
申请号 CN200710118069.4 申请日期 2007.06.28
申请人 北京工业大学 发明人 杨蕾;刘经纬
分类号 G05B13/02(2006.01)I;F24F11/00(2006.01)I 主分类号 G05B13/02(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 代理人 刘 萍
主权项 1.一种后验控制与多传感器融合方法,其特征在于:包括后验控制参数配置、后验模糊神经网络训练、后验模糊神经网络控制、后验优化、后验仲裁五个核心步骤:1.1 后验模糊神经网络配置和初始化:参数分为两类:配置的参数只需在系统第一次运行前输入一次即可,系统运行后其值不发生改变;初始化的参数是在系统上电运行后,由程序将其赋值,系统运行后其值会被程序改变;配置后验优化间隔T<sub>aecmax</sub>:T<sub>aecmax</sub>为每运行一次后验优化子程序的时间间隔,T<sub>aecmax</sub>要保证控制系统完成一个控制周期,即输入信号采集、计算、控制量的给出、执行并达到系统稳定的时间,T<sub>aecmax</sub>通过控制器上的键盘输入,存储到控制器的Flash存储器中;配置优化点数最大值N<sub>aecmax</sub>:N<sub>aecmax</sub>为后验算法每次最多能优化的点数,N<sub>DB</sub>×10%&lt;N<sub>aecmax</sub>&lt;N<sub>DB</sub>×30%,其中N<sub>DB</sub>为总样本点数;N<sub>aecmax</sub>通过控制器上的键盘输入,存储到控制器的Flash存储器中;配置优化目标值T<sub>old</sub>:T<sub>old</sub>为系统运行输出、性能指标或效果函数的目标值,通过控制器上的键盘输入,存储到控制器的Flash存储器中;配置样本容量N<sub>samplemax</sub>:样本数据行数的最大值,把输入变量值域均匀划分成m部分,保证输入变量值域被分割后具有足够精度时,m×20%≤N<sub>samplemax</sub>≤m×50%,N<sub>samplemax</sub>通过控制器上的键盘输入,存储到控制器的Flash存储器中;配置原始经验样本数据DB<sub>init</sub>(.):即工程师预先给出的经验控制样本,DB<sub>init</sub>(.)为一矩阵<maths num="0001"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>x</mi><mrow><mo>(</mo><mn>1,1</mn><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>x</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>y</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>x</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo><mi>y</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>,每一行表示一个控制规则;其中变量p表示一共有p个输入变量,x(i,j)其中i=1,2,…;p而j=1,2,…;n,表示第i个输入变量在第j条控制规则中的值,y(j)表示输出变量在第j条控制规则中的值,在系统第一次运行前,通过通讯总线由计算机输入,存储到控制器的Flash存储器中,这个参数只需配置一次,也可通过控制器上的键盘输入和修改;配置DB<sub>init</sub>(.)后,用户从键盘输入决定是否将DB<sub>init</sub>(.)赋值给DB<sub>old</sub>(.)所在Flash的空间;初始化上一次经验样本数据DB<sub>old</sub>(.):DB<sub>old</sub>(.)用于存放当前运行时的样本数据,系统上电后,程序从Flash中读取;初始化优化样本数据DB<sub>new</sub>(.):DB<sub>new</sub>(.)用于存放优化后用于执行的样本数据,系统上电后程序将DB<sub>old</sub>(.)赋值给DB<sub>new</sub>(.);初始化临时样本数据DB<sub>temp</sub>(.):DB<sub>temp</sub>(.)用于在运行过程中存放优化的样本数据,系统上电后程序将DB<sub>old</sub>(.)赋值给DB<sub>temp</sub>(.);初始化效果类别评价参数A<sub>aec</sub>:A<sub>aec</sub>为上一次优化的效果趋势,系统上电后,程序将其自动清零,即A<sub>aec</sub>=0;初始化效果程度评价参数E<sub>aec</sub>:即上一次优化的效果程度,E<sub>aec</sub>∈[0%,100%],系统上电运行时程序自动将其赋值为1,即E<sub>aec</sub>=1;初始化采样点号t<sub>sample</sub>:正常运行周期的采样点号,系统上电运行时清零t<sub>sample</sub>=0;配置采样周期T<sub>sample</sub>:每次采样间隔的时间,T<sub>sample</sub>要保证采样点数足够多,能够计算出系统的性能指标,T<sub>acemax</sub>×0.1%≤T<sub>sample</sub>≤T<sub>acemax</sub>×2%,Tsample通过控制器上的键盘输入,存储到控制器的Flash存储器中;初始化一个优化周期采样点数上限T<sub>samplemax</sub>:T<sub>samplemax</sub>为采样点号小于采样周期t<sub>sample</sub>≤T<sub>sample</sub>期间内,采样点数的最大值,取值要保证T<sub>samplemax</sub>个采样点的数据能够计算出一个优化周期采样点的性能指标,T<sub>samplemax</sub>通过控制器上的键盘输入,存储到控制器的Flash存储器中;1.2 后验模糊神经网络训练:1.2.1 判断训练方式:如果趋势评价参数A<sub>aec</sub>=0,直接执行到步骤1.3后验模糊神经网络控制;如果趋势评价参数A<sub>aec</sub>=±1,读取训练样本DB<sub>temp</sub>(.);1.2.2 训练样本归一化:输入变量归一化,归一化的基本形式如下:v(i)为归一化前的值,V(i)为归一化后的值,在DB<sub>temp</sub>(.)中v(i)表示x(i),y(i);V(i)表示x(i),y(i)归一化后为X(i),Y(i);<maths num="0002"><![CDATA[<math><mrow><mi>V</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>-</mo><mfrac><mrow><mn>max</mn><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mn>min</mn><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></mrow><mrow><mn>max</mn><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mn>min</mn><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>n组训练样本数据归一化为<maths num="0003"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>X</mi><mrow><mo>(</mo><mn>1,1</mn><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>X</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>Y</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mi>X</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>X</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo><mi>Y</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>1.2.3 训练后验模糊神经网络:将上述归一化的样本X(1,i),......,X(p,i),i=1,2,……,n,作为网络的输入,Y(i)作为网络的输出,对网络进行训练,得到权值矩阵W(.);1.3 后验模糊神经网络控制:1.3.1 多路传感器模拟信号输入采集:控制器将p支传感器采集的模拟信号,经过硬件电路A/D转换为数字信号(x(1)、x(2)、x(3)、...、x(p)),将输入信号归一化处理为(X(1)、X(2)、X(3)、...、X(p)),即输入向量X;1.3.2 计算输出控制量:根据输入向量X和权值矩阵W(.),通过模糊神经网络计算公式,计算出输出向量Y的过程),得到在当前输入X下的输出Y,经过反归一化变换,得到实际控制量y;反归一化的公式为:<maths num="0004"><![CDATA[<math><mrow><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mi>max</mi><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mi>min</mi><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mi>max</mi><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mi>min</mi><mrow><mo>(</mo><mi>v</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mn>2</mn></mfrac></mrow></math>]]></maths>1.3.3 输出控制量限幅:<maths num="0005"><![CDATA[<math><mrow><msub><mi>y</mi><mi>aec</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mrow><mfenced open='{' close='' separators=''><mtable><mtr><mtd><msub><mi>y</mi><mn>min</mn></msub></mtd><mtd><mi>y</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>&lt;</mo><msub><mi>y</mi><mn>min</mn></msub></mtd></mtr><mtr><mtd><mi>y</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mtd><mtd><msub><mi>y</mi><mn>min</mn></msub><mo>&le;</mo><mi>y</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>&le;</mo><msub><mi>y</mi><mn>max</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>max</mn></msub></mtd><mtd><mi>y</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>></mo><msub><mi>y</mi><mn>max</mn></msub></mtd></mtr></mtable></mfenced></mrow><mo>,</mo></mrow></math>]]></maths>y<sub>min</sub>表示输出值下界,y<sub>max</sub>表示输出值上界;1.3.4 最终控制量的执行与保存:控制量y(i)经过通讯协议封装成数据报,通过通讯网络发送给执行器执行;判断当前采样点号t<sub>sample</sub>与采样周期T<sub>sample</sub>的关系,如果t<sub>sample</sub>&gt;T<sub>sample</sub>,说明应该采集一次数据,此时将上述第t<sub>sample</sub>组向量x(.)、y(.)与当前时刻t<sub>sample</sub>一起存入运行结果向量R<sub>sample</sub>(.)的t<sub>sample</sub>行,即R<sub>sample</sub>(x(.),y(.),t<sub>sample</sub>);之后将采样点号t<sub>sample</sub>自增1,即t<sub>sample</sub>=t<sub>sample</sub>+1;并判断t<sub>sample</sub>是否超过向量T<sub>samplemax</sub>,如果t<sub>sample</sub>&gt;T<sub>samplemax</sub>表示记录数据已满,则不保存结果;采样结果矩阵<img file="C200710118069C00051.GIF" wi="1392" he="291" />为采样结果矩阵,每一行由一个采样时刻的输入向量、输出向量和时刻值组成,即R<sub>sample</sub>(x(.),y(.),t<sub>sample</sub>),共有T<sub>samplemax</sub>行;1.4 后验优化:1.4.1 计算修正强度K<sub>aec</sub>:K<sub>aec</sub>的物理意义是每次优化的力度,K<sub>aec</sub>的计算是基于上一次修正强度的,且输出范围不能过大:K<sub>aec</sub>=A<sub>aec</sub>×|K<sub>aec</sub>|×(1+E<sub>aec</sub>)修正强度K<sub>aec</sub>限幅:<maths num="0006"><![CDATA[<math><mrow><msub><mi>K</mi><mi>aec</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mrow><mfenced open='{' close='' separators=''><mtable><mtr><mtd><msub><mi>K</mi><mi>min</mi></msub></mtd><mtd><msub><mi>K</mi><mi>aec</mi></msub><mo>&lt;</mo><msub><mi>K</mi><mn>min</mn></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mi>aec</mi></msub></mtd><mtd><msub><mi>K</mi><mi>min</mi></msub><mo>&le;</mo><msub><mi>K</mi><mi>aec</mi></msub><mo>&le;</mo><msub><mi>K</mi><mn>max</mn></msub></mtd></mtr><mtr><mtd><msub><mi>K</mi><mi>max</mi></msub></mtd><mtd><msub><mi>K</mi><mi>aec</mi></msub><mo>></mo><msub><mi>K</mi><mn>max</mn></msub></mtd></mtr></mtable></mfenced></mrow><mo>,</mo></mrow></math>]]></maths>K<sub>min</sub>表示输出值下界,K<sub>max</sub>表示输出值上界1.4.2 计算后验优化结果y<sub>temp</sub>(.):y<sub>temp</sub>(.)表示后验优化器产生的新的控制量,DB<sub>old</sub>(.)中的y<sub>old</sub>(.)表示上一次的控制量,而K<sub>aec</sub>则表示修正强度,它根据每次控制效果来决定,优化出新的控制量:y<sub>temp</sub>(.)=y<sub>old</sub>(.)×K<sub>aec</sub>(K<sub>min</sub>≤K<sub>aec</sub>≤K<sub>max</sub>)1.4.3 保存后验优化结果:如果采样点号大于优化点数最大值t<sub>sample</sub>&gt;N<sub>aecmax</sub>,直接执行到步骤1.4.4判断是否启动后验仲裁;如果当前临时样本数据DB<sub>temp</sub>(.)的样本数小于样本容量N<sub>sample</sub>&lt;N<sub>samplemax</sub>时,直接将新产生的优化样本[x<sub>temp</sub>(.,t<sub>sample</sub>),y<sub>temp</sub>(.,t<sub>sample</sub>)]存入DB<sub>temp</sub>(.)末行;如果当前临时样本数据DB<sub>temp</sub>(.)的样本数N<sub>sample</sub>≥N<sub>samplemax</sub>时,首先找到DB<sub>new</sub>(.)中与向量x<sub>temp</sub>(.)欧式空间距离最近的点,即min(ρ(x<sub>new</sub>(.,i),x<sub>temp</sub>(.,t<sub>sample</sub>))),其中i=1,2,…,N<sub>samplemax</sub>,将这一行的行向量将新产生的优化样本[x<sub>temp</sub>(.,i),y<sub>temp</sub>(.,i)]被新产生的优化样本[x<sub>temp</sub>(.,t<sub>sample</sub>),y<sub>temp</sub>(.,t<sub>sample</sub>)]替代;1.4.4 判断是否启动后验仲裁距上次后验优化间隔的时间T<sub>aec</sub>≤T<sub>aecmax</sub>,即还没有到达一个后验优化周期时,则重复执行步骤1.3~步骤1.4.,继续正常的系统运行;如果距上次后验优化间隔的时间T<sub>aec</sub>&gt;T<sub>aecmax</sub>,即系统已经运行了一个后验优化周期,则停止后验模糊神经网络控制,进入步骤1.5后验仲裁;1.5 后验仲裁:1.5.1 后验仲裁计算:根据运行结果向量R<sub>sample</sub>(.),计算出当前控制效果特征值或目标值T<sub>new</sub>进行比较;如果新的控制效果比旧的控制效果好,就保留新的控制参数代替旧的,并标记控制效果被接受A<sub>aec</sub>=1,如果新的控制效果比旧的控制效果差,就保留新的控制参数代替旧的,并标记控制效果A<sub>aec</sub>=-1;并记录控制效果改善的程度<maths num="0007"><![CDATA[<math><mrow><msub><mi>E</mi><mi>aec</mi></msub><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>T</mi><mi>new</mi></msub><mo>-</mo><msub><mi>T</mi><mi>old</mi></msub><mo>|</mo></mrow><msub><mi>T</mi><mi>old</mi></msub></mfrac><mo>&times;</mo><mn>100</mn><mo>%</mo><mo>,</mo></mrow></math>]]></maths>其中T<sub>old</sub>表示系统优化以前的性能指标,而T<sub>new</sub>表示系统优化之后的性能指标;1.5.2 计算结果的处理:如果新的控制效果比旧的控制效果好,即A<sub>aec</sub>=1,说明后验优化起到了更好的效果,保存模糊神经网络权值W(.,i<sub>aec</sub>)=W(.)、样本DB(.,i<sub>aec</sub>)=DB<sub>old</sub>(.)、趋势评价参数A<sub>aed</sub>(i<sub>aec</sub>)=A<sub>aec</sub>和效果评价参数E<sub>aed</sub>(i<sub>aec</sub>)=E<sub>aec</sub>,之后更新样本为新的样本,把DB<sub>new</sub>赋值给DB<sub>new</sub>(.),即DB<sub>old</sub>(.)=DB<sub>new</sub>(.);如果新的控制效果比旧的控制效果差,即A<sub>aec</sub>=-1,说明后验优化是系统性能指标变差,同样保存模糊神经网络权值W(.,i<sub>aec</sub>)=W(.)、样本DB(.,i<sub>aec</sub>)=DB<sub>old</sub>、趋势评价参数A<sub>aed</sub>(i<sub>aec</sub>)=A<sub>aec</sub>和效果评价参数E<sub>aed</sub>(i<sub>aec</sub>)=E<sub>aec</sub>,但放弃优化结果DB<sub>new</sub>(.),DB<sub>old</sub>(.)不更新;把DB<sub>temp</sub>复制给DB<sub>new</sub>:即DB<sub>new</sub>=DB<sub>temp</sub>,DB<sub>temp</sub>用于装载新的优化样本;1.5.3 后验周期结束,变量清零返回:初始化采样点号t<sub>sample</sub>清零,即t<sub>sample</sub>=0;返回步骤1.3后验模糊神经网络控制。
地址 100022北京市朝阳区平乐园100号