发明名称 控制系统中点定位方法
摘要 控制系统中点定位方法。二级网格法分为两个主要的阶段——离线预处理阶段和在线计算阶段。离线预处理阶段引入了多参数二次规划理论,计算机能自行将控制系统的状态空间划分为一个个凸的分区并计算得到每个分区对应的控制率,然后在状态空间上构造哈希表网格区域,对每一个网格区域作不同的处理。在线计算阶段就是通过哈希函数确定系统当前的状态点所处的哈希表网格区域,进一步查找状态点分区,并得到该分区对应的控制率,通过简单线性运算得到系统的控制输出量。
申请公布号 CN104503225A 申请公布日期 2015.04.08
申请号 CN201410489482.1 申请日期 2014.09.23
申请人 浙江工业大学 发明人 张聚;胡标标;谢作樟;修晓杰;崔文强
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 控制系统中点定位方法,包括如下步骤:步骤1.二级网格法离线预处理过程1.1,在控制系统中引入多参数二次规划,将系统状态空间划分为一个个凸的分区,并计算得到每个分区对应的控制率,保存在FG数组中;1.2,计算同义分区;空间中分区的划分是依据特征值——同一分区中的所有点具有相同的特征值;我们将特征值相等的分区称为同义分区;显式模型预测控制中分区特征值(在这里即显式模型预测控制的控制率)被称为FG矩阵;例如某个显式模型预测控制输出维度为1的二维状态空间分区P的FG矩阵为,P是分区的代号:FG<sub>1</sub>=[f<sub>11</sub> f<sub>12</sub> g<sub>1</sub>]            (1)相邻另一个分区Q的FG矩阵为,同理Q也是分区的一个代号:FG<sub>2</sub>=[f<sub>21</sub> f<sub>22</sub> g<sub>2</sub>]               (2)若满足:(f<sub>11</sub>‑f<sub>21</sub>)<sup>2</sup>+(f<sub>12</sub>‑f<sub>22</sub>)<sup>2</sup>+(g<sub>1</sub>‑g<sub>2</sub>)<sup>2</sup>≤δ            (3)其中f和g是组成特征值矩阵的元素,我们需要的控制输出是由特征值和状态向量计算得到;当δ是一个极小的正数,则认为P和Q是同义的,它们互为同义分区;1.3,根据划分参数构造一级哈希表网格区域多胞形;这时可以看到,不同的网格区域内特征值分布呈现5种不同的状况:a.整个网格区域在空间内部,且内部只有1种特征值;b.整个网格区域在空间内部,且分布着2种以上不同的特征值;c.部分网格区域在空间外部,且分布着2种以上不同的特征值;d.部分网格区域在空间外部,且内部只有1种特征值;e.整个网格均在空间外部;1.4,在划分好的一级哈希表网格区域基础上,依次选择一个网格区域进行一级网格处理;若该网格区域属于a类网格区域,假设其特征值编号为nfg,将Hash数组中对应的记录记为‑nfg;Hash数组是一个一维化的哈希表,在确定点所处的网格区域后,查找该网格区域在Hash数组上对应的值能够快速知道点是否在对象空间,或者快速指向该点所在区域特征值;若该网格区域属于d类,根据第二步计算的同义分区将各子分区取并(取并的过程包括了对非凸区域的凸化剖分),这里原先的分区被新的分区所覆盖,所以新分区的编号要记录在Hash数组对应的位置,同时也要更新新分区在HK描述矩阵中的值;HK描述矩阵的作用就是判断状态点是否在该分区中;若该网格区域属于e类网格区域,则直接在Hash数组相应位置记录0,表示该点完全处于对象空间外部;这三类网格区域的处理方法和哈希表法一致;若该网格区域属于b、c两类,这里就需要我们引入一个阀值概念;当这一级哈希表网格区域内分区数量高于这个阀值,我们需要在这个网格区域内进行二级网格划分,与一级网格划分类似,二级划分的不同在于对象空间只有一个一级网格区域那么大;如果分区数不足以进行二级划分,这类网格处理方法与d类一致,并跳至第6步;若是分区数目高于阀值,跳至下一步;1.5,对这类网格区域进行二级划分,Hash数组的值在原有基础上加上0.5,这样通过整数与非整数的判断我们就可以知道在线阶段是否需要跳至二级哈希表处理;在二级网格区域中,特征值的分布同样存在上述5种情况;遍历所有二级网格区域,它们的处理方法与所有类别的一级网格区域相同,唯一的区别在于,不需要引入阀值在构建新的网格区域;1.6,处理完一个一级网格区域后,依次选取下一个网格区域,作第4步的处理,直到所有一级网格区域处理完成,离线预处理阶段结束;步骤2.二级网格法在线计算过程2.1,读取目标点坐标,根据哈希函数快速定位所处的一级网格区域;哈希函数如下式:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>=</mo><mi>floor</mi><mrow><mo>(</mo><mrow><mo>(</mo><mi>X</mi><mo>-</mo><mi>a</mi><mo>)</mo></mrow><mo>&times;</mo><mfrac><mi>N</mi><mrow><mi>b</mi><mo>-</mo><mi>a</mi></mrow></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000575116300000021.GIF" wi="1100" he="119" /></maths>这里的N代表划分参数,a和b是某个维度上的边界坐标,X则代表空间维度坐标;2.2,取该网格区域对应的Hash数组值;若值为0,说明点不在对象空间内,退出在线查找过程;若值为负数,说明该网格区域属于a类网格区域,可直接映射到FG矩阵上取得特征值,退出在线查找过程;若该值为正整数,则需要采用直接查找法,取得这个网格区域内所有分区的描述矩阵,依次判断该点是否在分区内,若找到对应分区,通过映射取得对应特征值并退出,若找不到满足条件的分区,说明该点不在对象空间内,退出在线过程;否则,执行下一步;2.3,如果一级Hash数组的值不为负数、0或者整数,说明它是非整数,需要我们跳至第二级哈希表;同理,首先通过哈希函数确定状态点所处的二级哈希表网格区域,并取得相应的二级Hash数组值;若该值等于0,直接断定该状态点不在对象空间内,跳出查找过程;若该值小于0,说明直接可以取到特征值,退出查找过程;否则需要采用直接查找法,取得这个网格区域内所有分区的描述矩阵,依次判断该点是否在分区内,若找到对应分区,通过映射取得对应特征值并退出,若找不到满足条件的分区,说明该点不在对象空间内,退出在线过程。
地址 310014 浙江省杭州市下城区潮王路18号