发明名称 数控机床热误差贝叶斯网络补偿方法
摘要 本发明公开了一种数控机床热误差贝叶斯网络补偿方法。包括下列步骤:(1)根据实测样本数据,构建贝叶斯网络热误差预测模型;(2)根据贝叶斯网络模型预测结果,实现机床热误差的实时补偿。本发明的补偿系统结构简单,应用可靠;所采用的贝叶斯网络建模方法一方面用图论的语言直观表达产生热误差的各种因素间的因果依赖关系,另一方面按照概率论的原则对各因素间的内在关联进行分析、利用,降低推理预测的计算复杂度,具有表达直观、建模精度高和自适应的特点。
申请公布号 CN101436057A 申请公布日期 2009.05.20
申请号 CN200810163140.5 申请日期 2008.12.18
申请人 浙江大学 发明人 姚鑫骅;傅建中;陈子辰
分类号 G05B19/404(2006.01)I 主分类号 G05B19/404(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 林怀禹
主权项 1、一种数控机床热误差贝叶斯网络补偿方法,其特征在于,包括下列步骤:1)根据产生热误差的因素,构造先验贝叶斯网络:(1)选择变量,确定贝叶斯网络节点:选择与所测热误差关联度显著的温度测点及工况因素作为贝叶斯网络节点;(2)根据贝叶斯网络节点所代表的变量之间的因果依赖关系,确定网络结构;(3)变量离散化:对于连续变量X<sub>i</sub>,设其值域为V<sub>i</sub>=[low<sub>i</sub>,up<sub>i</sub>),将其进行等距划分为V<sub>i</sub>={[C<sub>i0</sub>,C<sub>i1</sub>)∪[C<sub>i1</sub>,C<sub>i2</sub>)∪...∪[C<sub>i(k-1)</sub>,C<sub>ik</sub>)},其中low<sub>i</sub>=C<sub>i0</sub>&lt;C<sub>i1</sub>&lt;C<sub>i2</sub>&lt;...&lt;C<sub>i(k-1)</sub>&lt;C<sub>ik</sub>=up<sub>i</sub>,记[C<sub>i(j-1)</sub>,C<sub>ij</sub>)为x<sub>ij</sub>,j=0,1,...,k-1,则{x<sub>ij</sub>|j=0,1,...,k-1}即为变量X<sub>i</sub>离散化后的状态域;(4)确定参数的先验概率分布;2)根据实测样本数据,进行贝叶斯网络学习,实现网络参数的修正。对于一个不存在数据缺失的完整数据样本D,以记号θ<sub>ij</sub>表示所有关于分布P(X<sub>i</sub>|π(X<sub>i</sub>)=j)的参数,其中,π(X<sub>i</sub>)为节点X<sub>i</sub>的父节点集合,若满足如下假设:(1)参数向量θ<sub>ij</sub>是相互独立的;(2)对于任一θ<sub>ij</sub>,p(θ<sub>ij</sub>)是Dirichlet分布;则对于样本数据D,参数的后验分布计算如下:<maths num="0001"><![CDATA[<math><mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mi>s</mi></msub><mo>|</mo><mi>D</mi><mo>,</mo><mi>S</mi><mo>,</mo><mi>&xi;</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mi>&Pi;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>q</mi><mi>i</mi></msub></munderover><mi>dir</mi><mrow><mo>(</mo><msubsup><mi>N</mi><mrow><mi>ij</mi><mn>1</mn></mrow><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mrow><mi>ij</mi><mn>1</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>N</mi><mrow><mi>ij</mi><msub><mi>r</mi><mi>j</mi></msub></mrow><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mrow><mi>ij</mi><msub><mi>r</mi><mi>j</mi></msub></mrow></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mi>&Pi;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>q</mi><mi>i</mi></msub></munderover><mfrac><mrow><mi>&Gamma;</mi><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>r</mi><mn>1</mn></msub></munderover><mrow><mo>(</mo><msubsup><mi>N</mi><mi>ijk</mi><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mi>ijk</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mi>&Pi;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>r</mi><mn>1</mn></msub></munderover><mi>&Gamma;</mi><mrow><mo>(</mo><msubsup><mi>N</mi><mi>ijk</mi><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mi>ijk</mi></msub><mo>)</mo></mrow></mrow></mfrac><munderover><mi>&Pi;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>r</mi><mn>1</mn></msub></munderover><msubsup><mi>&theta;</mi><mi>ijk</mi><msubsup><mi>N</mi><mrow><mi>ijk</mi><mo>-</mo><mn>1</mn></mrow><mo>&prime;</mo></msubsup></msubsup><mo>.</mo></mrow></math>]]></maths>其中,θ<sub>s</sub>表示在网络结构为S,先验知识ξ的前提下,网络中各变量的概率分布;θ<sub>ijk</sub>则是变量X<sub>i</sub>的父节点集具有第j个状态的前提下,变量X<sub>i</sub>取第k个状态的概率;N<sub>ijk</sub>为Dirichlet分布的指系数,它指定了参数向量的先验分布;N<sub>ijk</sub>为样本数据D中满足变量X<sub>i</sub>取第k个状态,且其父节点集π(X<sub>i</sub>)取第j个状态的记录个数;3)根据贝叶斯网络推理原理,计算机床热误差的预测值:对于结构确定的贝叶斯网络,设样本数据中有N个事例,则其推理公式如下:<maths num="0002"><![CDATA[<math><mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>N</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>|</mo><mi>D</mi><mo>,</mo><mi>S</mi><mo>)</mo></mrow><mo>=</mo><mo>&Integral;</mo><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>N</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>|</mo><msub><mi>&theta;</mi><mi>s</mi></msub><mo>,</mo><mi>D</mi><mo>,</mo><mi>S</mi><mo>)</mo></mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mi>s</mi></msub><mo>|</mo><mi>D</mi><mo>,</mo><mi>S</mi><mo>)</mo></mrow><mi>d</mi><msub><mi>&theta;</mi><mi>s</mi></msub><mo>=</mo><munderover><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mi>&Pi;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>q</mi><mi>i</mi></msub></munderover><mfrac><mrow><msubsup><mi>N</mi><mi>ijk</mi><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mi>ijk</mi></msub></mrow><mrow><msubsup><mi>N</mi><mi>ijk</mi><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>N</mi><mi>ijk</mi></msub></mrow></mfrac><mo>.</mo></mrow></math>]]></maths>特别地,当仅需要对一个结点状态进行预测时,得到一个简化的预测公式,假定已知X<sub>i</sub>的父节点状态为j<sub>0</sub>,要对X<sub>i</sub>的状态进行预测,则<maths num="0003"><![CDATA[<math><mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><msubsup><mi>x</mi><mi>i</mi><msub><mi>k</mi><mn>0</mn></msub></msubsup><mo>.</mo></mrow></math>]]></maths>式中,<img file="A200810163140C00032.GIF" wi="45" he="60" />表示X<sub>i</sub>的预测值,k<sub>0</sub>满足下式<maths num="0004"><![CDATA[<math><mrow><msub><mi>&theta;</mi><mrow><msub><mi>ij</mi><mn>0</mn></msub><msub><mi>k</mi><mn>0</mn></msub></mrow></msub><mo>=</mo><munder><mrow><mi>max</mi><mrow><mo>{</mo><msub><mi>&theta;</mi><mi>ijk</mi></msub><mo>}</mo></mrow></mrow><mi>k</mi></munder><mo>=</mo><munder><mi>max</mi><mi>k</mi></munder><mrow><mo>{</mo><mi>P</mi><mrow><mo>(</mo><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>|</mo><mi>&pi;</mi><msup><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>j</mi></msup><mo>,</mo><msup><mi>S</mi><mi>h</mi></msup><mo>)</mo></mrow><mo>}</mo></mrow><msup><mo>.</mo></msup></mrow></math>]]></maths>将机床热误差作为待预测的变量X<sub>i</sub>,则由该式可计算得热误差预测值。
地址 310027浙江省杭州市西湖区浙大路38号