主权项 |
基于Kabsch算法的NURBS曲线的变精度优化匹配方法,采用“先粗糙,后精细”的两步匹配方法,该方法包括对于已知的参考轨迹或期望轨迹<img file="FDA0001002025010000011.GIF" wi="446" he="63" />和轨迹库CurveBank1、CurveBank2、CurveBank3,其中,<img file="FDA0001002025010000012.GIF" wi="270" he="71" /><img file="FDA0001002025010000013.GIF" wi="118" he="62" />为NURBS轨迹的节点矢量参数,轨迹库CurveBank1中含有N条NURBS轨迹<img file="FDA0001002025010000014.GIF" wi="950" he="62" />为轨迹库中第一条轨迹,j=1,……,N,轨迹库CurveBank2中含有从CurveBank1中粗糙匹配出的n条NURBS轨迹,分割参数<img file="FDA0001002025010000015.GIF" wi="43" he="54" />和<img file="FDA0001002025010000016.GIF" wi="50" he="54" />分割CurveBank2的第j条轨迹形成临时基元El<sub>j</sub>,基元即轨迹上的片段;轨迹库CurveBank3用来存放将临时基元El<sub>j</sub>经旋转平移后的轨迹基元El″<sub>j</sub>参数;步骤1,对于确定的N条曲线的曲线库CurveBank1和已知的期望曲线<img file="FDA0001002025010000017.GIF" wi="475" he="63" />其“粗糙”匹配算法步骤如下:Step1:从轨迹库CurveBank1中取一条轨迹<img file="FDA0001002025010000018.GIF" wi="458" he="71" />初始化参数T=0,用T的大小来衡量轨迹的相似程度;Step2:初始化搜索步长v=1和分割参数<img file="FDA0001002025010000019.GIF" wi="115" he="55" />Step3:判断<img file="FDA00010020250100000110.GIF" wi="334" he="87" />与<img file="FDA00010020250100000111.GIF" wi="387" he="78" />是否满足相似度条件lrms<ε,若满足跳入4),若不满足,则令v=v/2,<img file="FDA00010020250100000112.GIF" wi="198" he="70" />跳入Step5;Step4:判断是否满足<img file="FDA00010020250100000113.GIF" wi="115" he="55" />若满足则进行T=T+1,跳入6),若不满足,则令v=v/2,<img file="FDA00010020250100000114.GIF" wi="182" he="55" />T=T+1跳入Step5;Step5:判断搜索步长v的大小,是否满足abs(v)<β,β表示终止搜索步长;若满足,将期望轨迹未匹配部分进行归一化,跳入Step2,若不满足则跳入Step3;Step6:将T的大小与设定的相似阈值χ进行比较,判断是否满足T>χ,若满足则将该轨迹保存到轨迹库CurveBank2中,若不满足则不输出该轨迹;跳入Step1;通过以上匹配算法从曲线库CurveBank1中搜索出n条含有较多与期望轨迹相似特征的轨迹,即含有较多与期望轨迹相似的片段,并将其放入轨迹库CurveBank2中,n<<N;步骤2,接着提高相应的匹配精度指标对含有n条轨迹的轨迹库CurveBank2的轨迹进行“精细”匹配,得到m条轨迹基元,该部分已有相关文献说明,不再赘述;该部分得到匹配基元El<sub>j</sub>,j=1,……,m,El″<sub>j</sub>为匹配基元El<sub>j</sub>在其质心坐标系{j}下的表示,对其进行旋转和平移变换后保存到曲线库CurveBank3中;组合旋转平移后的匹配基元El″<sub>j</sub>,j=1,……,m,获得ILC参考轨迹的S(C<sub>S</sub>(0),C<sub>S</sub>(1))的相似参考轨迹;通过以上“粗糙,精细”两个阶段的匹配,得出一条满足匹配进度的组合轨迹<img file="FDA0001002025010000021.GIF" wi="467" he="81" /> |