发明名称 一种基于改进的紧凑式教学优化算法的机械参数软测量方法
摘要 一种基于改进的紧凑式教学优化算法的机械参数软测量方法,涉及制造领域的机械安装参数软测量。为了解决系统零件安装完成后用传统的传感器和测量方法常常难于测量其安装机械参数的问题。所述方法包括:建立待测系统模型,确定需测量的机械参数;测量系统模型中可以直接测得的参数,代入系统模型中,建立模型方程;建立优化算法目标函数;测量待测系统的n组输入和对应的n组输出,代入目标函数;采用改进的紧凑式教学优化算法迭代过程;将获得的结果对应到需测量的机械参数。本发明用于机械系统中测量机械参数。
申请公布号 CN105160069A 申请公布日期 2015.12.16
申请号 CN201510474812.4 申请日期 2015.08.05
申请人 哈尔滨工业大学 发明人 陈兴林;赵为志;董岳;刘杨;宋法质;王一光
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 哈尔滨龙科专利代理有限公司 23206 代理人 高媛
主权项 一种基于改进的紧凑式教学优化算法的机械参数软测量方法,其特征在于,所述方法包括如下步骤:步骤一:建立待测系统模型,确定需测量的机械参数;步骤二:测量系统模型中可以直接测得的参数,代入系统模型中,建立模型方程;步骤三:建立优化算法目标函数;步骤四:测量待测系统的n组输入和对应的n组输出,代入目标函数;步骤五:初始化计数器t=0,均值初始值μ<sub>t</sub>[i]=0,方差初始值σ<sub>t</sub>[i]=λ;i=0,…n;构成PV矩阵的初始值<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>P</mi><mi>V</mi><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><mrow><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mn>0</mn><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><msub><mi>&sigma;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mn>0</mn><mo>&rsqb;</mo></mrow></mtd></mtr><mtr><mtd><mo>...</mo></mtd><mtd><mo>...</mo></mtd></mtr><mtr><mtd><mrow><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>n</mi><mo>&rsqb;</mo></mrow></mtd><mtd><mrow><msub><mi>&sigma;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>n</mi><mo>&rsqb;</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000011.GIF" wi="455" he="234" /></maths>PV的每一行包含高斯分布的一组均值和方差;其中t为算法迭代次数计数器的计数,由PV矩阵生成随机向量Tr<sub>t</sub>的初始值;步骤六:由PV矩阵生成随机向量St<sub>t</sub>,St<sub>t</sub>中的每一个元素对应PV矩阵中一组均值和方差决定的高斯函数的随机值;步骤七:计算均值DMean<sub>t</sub>=rand<sub>1</sub>×(Tr<sub>t</sub>‑round(1+rand<sub>2</sub>(0,1))×μ<sub>t</sub>),round函数接受一个参数返回与参数最近的整数,rand<sub>1</sub>和rand<sub>2</sub>均为随机函数;步骤八:更新<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>=</mo><msub><mi>St</mi><mi>t</mi></msub><mo>+</mo><msub><mi>DMean</mi><mi>t</mi></msub><mo>;</mo></mrow>]]></math><img file="FDA0000775487230000012.GIF" wi="441" he="74" /></maths>步骤九:将<img file="FDA0000775487230000013.GIF" wi="113" he="77" />和Tr<sub>t</sub>分别代入目标函数,将获得的函数值进行比较,若<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>Tr</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>&le;</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000014.GIF" wi="392" he="77" /></maths>则<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>l</mi><mi>o</mi><mi>s</mi><mi>e</mi><mi>r</mi><mo>=</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000015.GIF" wi="298" he="74" /></maths>winner=Tr<sub>t</sub>,若<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>&lt;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>Tr</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000016.GIF" wi="391" he="77" /></maths>则loser=Tr<sub>t</sub>,<img file="FDA0000775487230000017.GIF" wi="327" he="75" />loser表示目标函数得到的较差解向量,winner表示目标函数得到的较优解向量;步骤十:轮流对winner和loser的每一项进行一次相互替换,然后比较替换后的winner和替换前的winner两者在目标函数下的表现,如果替换后的表现较好,则替换winner和loser对应的项;步骤十一:更新均值和标准差:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><msub><mi>&mu;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>=</mo><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mi>+</mi><mfrac><mi>1</mi><mi>Np</mi></mfrac><mrow><mo>(</mo><mi>w</mi><mi>i</mi><mi>n</mi><mi>n</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><mi>l</mi><mi>o</mi><mi>s</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&sigma;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>&sigma;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>&mu;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mfrac><mn>1</mn><mrow><mi>N</mi><mi>p</mi></mrow></mfrac><mrow><mo>(</mo><msup><mi>winner</mi><mn>2</mn></msup><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><msup><mi>loser</mi><mn>2</mn></msup><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow></mrow></msqrt></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000018.GIF" wi="1382" he="310" /></maths>更新PV矩阵;Np表示紧凑式教学优化算法虚拟人口数;步骤十二:由步骤十一获得的PV矩阵随机生成<img file="FDA0000775487230000021.GIF" wi="150" he="78" />步骤十三:将<img file="FDA0000775487230000022.GIF" wi="132" he="77" />和<img file="FDA0000775487230000023.GIF" wi="112" he="76" />分别代入目标函数,将获得的函数值进行比较,若<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi><mn>2</mn></mrow></msubsup><mo>)</mo></mrow><mo>&lt;</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000024.GIF" wi="441" he="79" /></maths>生成新的<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>=</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>+</mo><msub><mi>rand</mi><mn>3</mn></msub><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>-</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi><mn>2</mn></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000025.GIF" wi="747" he="93" /></maths>若<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>&lt;</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi><mn>2</mn></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000026.GIF" wi="443" he="78" /></maths>生成新的<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>=</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>+</mo><msub><mi>rand</mi><mn>3</mn></msub><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi><mn>2</mn></mrow></msubsup><mo>-</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000775487230000027.GIF" wi="763" he="83" /></maths>步骤十四:将新的<img file="FDA0000775487230000028.GIF" wi="122" he="74" />和Tr<sub>t</sub>分别代入目标函数,将获得的函数值进行比较,若<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>Tr</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>&le;</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000775487230000029.GIF" wi="393" he="77" /></maths>则<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mi>l</mi><mi>o</mi><mi>s</mi><mi>e</mi><mi>r</mi><mo>=</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>,</mo></mrow>]]></math><img file="FDA00007754872300000210.GIF" wi="310" he="76" /></maths>winner=Tr<sub>t</sub>,若<maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>&lt;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>Tr</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA00007754872300000211.GIF" wi="392" he="76" /></maths>则loser=Tr<sub>t</sub>,<maths num="0014" id="cmaths0014"><math><![CDATA[<mrow><mi>w</mi><mi>i</mi><mi>n</mi><mi>n</mi><mi>e</mi><mi>r</mi><mo>=</mo><msubsup><mi>St</mi><mi>t</mi><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>;</mo></mrow>]]></math><img file="FDA00007754872300000212.GIF" wi="326" he="71" /></maths>步骤十五:轮流对winner和loser的每一项进行一次相互替换,然后比较替换后的winner和替换前的winner两者在目标函数下的表现,如果替换后的表现较好,则替换winner和loser对应的项;步骤十六:更新均值和标准差:<maths num="0015" id="cmaths0015"><math><![CDATA[<mrow><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><msub><mi>&mu;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>=</mo><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mi>+</mi><mfrac><mi>1</mi><mi>Np</mi></mfrac><mrow><mo>(</mo><mi>w</mi><mi>i</mi><mi>n</mi><mi>n</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><mi>l</mi><mi>o</mi><mi>s</mi><mi>e</mi><mi>r</mi><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&sigma;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>&sigma;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>&mu;</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>t</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mfrac><mn>1</mn><mrow><mi>N</mi><mi>p</mi></mrow></mfrac><mrow><mo>(</mo><msup><mi>winner</mi><mn>2</mn></msup><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><msup><mi>loser</mi><mn>2</mn></msup><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>)</mo></mrow></mrow></msqrt></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA00007754872300000213.GIF" wi="1372" he="310" /></maths>更新PV矩阵;步骤十七:更新Tr<sub>t+1</sub>=winner;步骤十八:t=t+1,判断t是否等于设定的值iteration maximum,若是,则转入步骤十六,若否,则转入步骤五;步骤十九:取Tr<sub>t</sub>(t∈[0,iteration maximum])的最大值Tr<sub>max</sub>作为最优解向量St<sub>opt</sub>;步骤二十:将步骤十九所得的最优解St<sub>opt</sub>中的参数按需测量的机械参数的顺序对应到所求的参数,获得系统模型中不能直接测得的机械参数。
地址 150000 黑龙江省哈尔滨市南岗区西大直街92号