Simulink model testing method based on program mutation
-
摘要: 为解决当前Simulink模型变异测试中测试执行开销大、测试用例生成效率低等问题,首先根据当前的Simulink模型变异算子集,基于程序变异技术提出了Simulink模型的变异测试过程和一组改进变异算子集.实验表明,在不影响测试用例集变异评分的情况下,该组变异算子集能够有效减少变异模型的生成数量,从而降低测试开销.其次,设计了一种基于搜索的Simulink模型变异测试用例生成方法,该方法将变异模型的测试用例生成问题转换为目标函数极小化问题,通过模拟退火算法对目标函数寻优,最终搜索出能够杀死该变异模型的测试用例.最后,将该方法应用于典型案例,验证了方法的正确性和有效性.
-
关键词:
- 软件测试 /
- 程序变异 /
- Simulink模型测试 /
- 测试用例生成 /
- 模拟退火算法
Abstract: In order to solve the current problems (expensive testing cost and low efficiency of test case generation) in mutation test for Simulink models, a mutation testing process and an optimized set of mutation operators were proposed for Simulink models based on program mutation according to the current mutation operators for the Simulink models. Experiments show that this set of mutation operators can effectively reduce the generation number of mutation models without prejudice to the mutation score of testing case set, thus it will effectively save the testing cost. Then a search-based test case generation method for Simulink models mutation testing was described. The test case generation problem was transformed into the objective function minimization problem, and the test cases which can kill the mutation models were ultimately obtained through the optimization of objective function by algorithm of simulated annealing. Finally, the application of a typical case for the method verified the correctness and effectiveness. -
环面蜗杆传动具有同时接触齿数多、蜗杆啮入端为双线接触、齿面诱导法曲率小并且滑动角接近90°等特点,这些特点使得环面蜗杆与蜗轮啮合时具有齿面接触应力小以及齿面间弹性流体动压润滑条件好等特性[1]。因此, 环面蜗杆传动的承载能力强,传动效率高,广泛应用于矿冶、起重运输和船舶等的传动装置[2-3]。组成环面蜗杆副的蜗轮主要由环面蜗轮滚刀滚切而成,由于环面蜗轮滚刀各个刀齿的形状不同、滚刀基本蜗杆齿面螺旋线上各处的螺旋升角也不相同,导致环面蜗轮滚刀的制造比较复杂,特别是环面蜗轮滚刀前刀面的成形及加工方法,将影响刀齿的切削性能和滚切蜗轮的效率[4-6]。
对于头数较少的环面蜗轮滚刀,为便于加工制造,通常采用直容屑槽[6]。董李扬[7]和柳冠伊[8]建立了直容屑槽环面蜗轮滚刀前刀面的数学模型并对直容屑槽滚刀进行了加工制造。采用直容屑槽时,滚刀刀齿一侧是正前角,另一侧是负前角[9-11];滚刀头数较多时,绝对值较大的负前角一侧引起主切削力增大,导致切削条件恶劣甚至无法加工,因此需要采用螺旋容屑槽前刀面,以降低刀齿负前角的绝对值,并均衡刀齿左右两侧的切削条件[12-14]。
杨杰等[9-11]研究了由圆柱产形面加工螺旋容屑槽环面蜗轮滚刀前刀面的方法,但是,此方法采用的圆柱形刀具加工效率较低。Chang[15]采用盘形铣刀加工圆柱滚刀前刀面的方法,提高了加工效率,适用于螺旋容屑槽的粗加工,但是,对于前刀面的精加工,通常需要采用盘形砂轮磨削的方法。采用平面砂轮加工直容屑槽滚刀的前刀面是可行的,但是磨削螺旋容屑槽前刀面时会出现非常明显的中凸现象,同时易产生砂轮平面与刀齿干涉的问题[16];为避免上述问题,刘杰华[17]采用修形轴截面的平面砂轮磨削齿轮滚刀的螺旋容屑槽前刀面。对于圆柱滚刀和齿轮滚刀而言,采用唯一的砂轮轴截形即可磨削出螺旋容屑槽前刀面[18],但是,对于环面蜗轮滚刀而言,每个刀齿两侧的刃口曲线及其上每点在滚刀基本蜗杆齿面螺旋线上的螺旋升角都不一样,加工每个刀齿都需要采用不同轴向截形的成形砂轮,这在实际生产中是很难实现的。
本文首先提出采用双锥砂轮磨削螺旋容屑槽环面蜗轮滚刀前刀面的方法,建立由双锥产形面展成平面二次包络环面蜗轮滚刀螺旋容屑槽前刀面的数学模型,给出每个刀齿两侧在分度环面螺旋线上的前角计算公式。然后,分别计算螺旋容屑槽滚刀和直容屑槽滚刀对应的前角,对比分析螺旋容屑槽对前角的改善效果;对环面蜗轮滚刀螺旋容屑槽进行仿真加工,并且在仿真软件中对前角进行测量。最后,对比理论计算结果和仿真结果,验证环面蜗轮滚刀前刀面成形方法的正确性。
1. 前刀面的数学模型
滚刀的前刀面是在滚刀基本蜗杆螺旋面的基础上开制容屑槽而得到。以平面Σd为产形面,一次包络滚刀基本蜗杆螺旋面Σ1;以双锥面Σqd为产形面,一次包络滚刀前刀面Σ2。
1.1 加工前刀面的坐标系及相对运动关系
建立如图 1所示的右旋直角坐标系,取静坐标系σqo1(Oqo1;iqo1,jqo1,kqo1)与机架固连,动坐标系σq1(Oq1;iq1,jq1,kq1)与滚刀基本蜗杆固连,Oq1为坐标原点,Oqo1和Oq1重合,kqo1=kq1与滚刀基本蜗杆回转轴线重合, 双锥砂轮的自身坐标系为σa(O; ia; ja; ka)。
取静坐标系σqod(Oqod;iqod,jqod,kqod)与机架固连,iqod=iqo1,kqod=-jqo1。取动坐标系σqd(Oqd;iqd,jqd,kqd)与刀座固连,kqd=kqod,kqd与刀座轴线重合,刀座轴心Oqd到O点的距离为a0,aq=
是两静坐标系的中心距,本文中取aq=a,a为环面蜗杆副的中心距。由双锥产形面Σqd展成螺旋槽前刀面Σ2时,刀座绕回转轴kqod的转速为ωqd,转角为φqd,滚刀基本蜗杆绕回转轴kqo1的转速为ωq1,转角为φq1。φq1与φqd成正比,即
(1) 式中:iqd1为滚刀基本蜗杆与刀座的速比。当φq1=0时,即速比iqd1=0,加工出直容屑槽滚刀,形成直槽滚刀的前刀面;当φq1≠0时,双锥产形面以一定的速比iqd1加工出圆弧槽底的螺旋槽,形成螺旋槽滚刀的前刀面。
1.2 坐标变换
采用回转矩阵法变换坐标[1],例如由坐标系σa变换到σqd,表示为σa→σqd。加工滚刀前刀面时,用到坐标变换回转矩阵如下:
式中:βa为产形锥面绕iqd轴逆时针旋转的角度。
1.3 滚刀基本蜗杆与刀座速比iqd1的求解
滚刀基本蜗杆齿面螺旋线喉部分度圆导程角为γm,前刀面螺旋线喉部分度圆导程角为γq,为减小每个刀齿的侧前角,保证前刀面螺旋线和齿面螺旋线在喉部分度圆处垂直,其导程角需满足
(2) 滚刀基本蜗杆齿面螺旋线喉部分度圆导程角γm(螺旋面右旋时为正)由式(3)求得
(3) 式中:i1d为蜗杆毛坯和刀座的速比,其值等于蜗杆副的速比i12;r1为滚刀基本蜗杆喉部分度圆半径;r2为滚刀分度圆弧半径。
滚刀前刀面螺旋线喉部分度圆导程角γq由式(4)求得
(4) 将式(3)和式(4)代入式(2)求得
(5) 1.4 滚刀基本蜗杆螺旋面的矢量表达式
加工滚刀基本蜗杆时,其毛坯与σq1固连,式(6)为滚刀基本蜗杆螺旋面在σq1中的方程[1-2]:
(6) 展开即为
滚刀基本蜗杆螺旋面上任一点处的法矢量在σq1中的表达式为[1-2]
(7) 式中:u和v为产形平面Σd的参数;rb为蜗轮主基圆的半径;β为产形平面轴线倾角;φd为刀座的瞬时转角,与蜗杆毛坯的瞬时转角φ1成正比,即φ1=i1dφd。
1.5 双锥产形面的矢量表达式
如图 2所示,展成滚刀前刀面的双锥产形面Σqd在砂轮中间平面的右侧。取坐标系σa(O;ia,ja, ka)与砂轮固连;ka与砂轮轴线重合,ia和ja在砂轮中间平面上。
利用圆矢量函数和球矢量函数,右边产形锥面Σqd在坐标系σa中的矢量表达式为
(8) 式中:sa为双锥砂轮顶宽;αd为双锥砂轮齿形角;ud和θ为Σqd的参数; ea()为圆矢量函数;Rd为双锥砂轮半径。
右边产形锥面Σqd上任一点Q处的单位法矢量为
(9) 砂轮在刀座上处于图 3所示的位置时,即产形锥面绕iqd轴逆时针旋转βa,将式(8)依次进行σa→σqd、σqd→σqod、σqod→σqo1及σqo1→σq1的坐标变换,得到产形锥面Σqd在动坐标系σq1中的矢量表达式为
(10) 式中:
将式(9)进行σa→σqd、σqd→σqod、σqod→σqo1及σqo1→σq1的坐标变换,得到右边产形锥面Σqd上任一点Q在动坐标系σq1中的单位法矢量为
(11) 式中:
本文中取:
1.6 在σq1中滚刀前刀面的方程
在σqod坐标系中,双锥产形面与前刀面的相对速度为(vqd1)qod,由齿轮啮合原理[19-21]得到双锥产形面与前刀面共轭条件函数为
(12) 由Фqod=0得到双锥产形面的一次包络共轭条件方程为
(13) 式中:
(14) (15) 联立式(10)和式(13)可得滚刀前刀面Σ2在σq1中的方程为
(16) 1.7 前角Vq的表达式
将滚刀基本蜗杆螺旋面Σ1的方程式(6)和前刀面Σ2的方程式(16)联立组成方程组,即可求得滚刀刀齿的刃口线。
在σq1坐标系中,由刃口线上任一点在前刀面上的法向量(nqd)q1和在螺旋面上的法向量(nd)q1求得该点处的前角Vq表达式为[10-11, 22]
(17) 式中:arccos[(nqd)q1·(nd)q1]为该点处的夹角Wq。
2. 算例及结果分析
滚刀基本蜗杆左侧螺旋面和前刀面的交线为左侧刃口线,左侧刃口线上任一点处的前角为左侧前角,同理,右侧刃口线上任一点处的前角为右侧前角,刃口线上任一点处的前角对应滚刀的轴向位置为Zi。本文针对表 1中提供的算例[6],通过改变双锥砂轮各个参数的取值来计算对应的前角,选取了一组较为合理的双锥砂轮参数。选取双锥砂轮的参数分别为:双锥砂轮半径Rd=50 mm,双锥砂轮顶宽sa=6 mm,双锥砂轮齿形角αd=15°,双锥砂轮轴线倾角βa=116.5°,分别求解直槽和螺旋槽滚刀的前角。令式(1)中φq1=0,即速比iqd1=0,求得对应的直槽滚刀在分度环面上从出口到入口的前角大小如表 2所示;由式(5)求得速比iqd1=-1.54时,对应的螺旋槽滚刀在分度环面上从出口到入口的前角大小如表 3所示。
表 1 平面二次包络环面蜗轮滚刀及双锥砂轮的基本参数[6]Table 1. Basic parameters of planar double enveloping hourglass worm gear hob and double-cone grinding wheel [6]参数 数值 中心距a/mm 160 速比i12 10 滚刀头数z1 4 蜗轮分度圆压力角α/(°) 21.8667 蜗轮分度圆直径d2/mm 255 蜗杆分度圆直径d1/mm 65 滚刀齿顶圆弧半径Ra1/mm 122.24 滚刀齿根圆弧半径Rf1/mm 133.24 滚刀工作长度Lw/mm 90 滚刀喉部分度圆导程角γm/(°) 21.4205 产形平面轴线倾角β/(°) 22.5 主基圆直径db/mm 95 表 2 直槽前刀面对应分度环面上各刀齿左右两侧的前角Table 2. Rake angles of both sides of each tooth on indexing torus corresponding to rake face of hob with straight flutes齿号 左侧 右侧 前角/(°) 轴向位置/mm 前角/(°) 轴向位置/mm 1号 -15.7159 -43.5 16.9998 -35.8 2号 -18.1932 -24.5 19.0122 -15.4 3号 -19.5303 -4.71 19.5304 4.71 4号 -19.0126 15.4 18.1937 24.5 5号 -17.0004 35.8 15.7165 43.5 表 3 螺旋槽前刀面对应分度环面上各刀齿左右两侧的前角Table 3. Rake angles of both sides of each tooth on indexing torus corresponding to rake face of hob with spiral flutes齿号 左侧 右侧 前角/(°) 轴向位置/mm 前角/(°) 轴向位置/mm 1号 5.5645 -37.6659 -5.4788 -30.6111 2号 6.6612 -21.2130 3.0636 -13.3234 3号 7.2522 -4.1854 6.2043 3.9941 4号 1.6208 13.3526 0.7470 21.4250 5号 -1.3445 31.1470 -8.1071 38.3567 根据表 2和表 3的数据,绘制直槽滚刀和螺旋槽滚刀对应的前角变化规律,如图 4所示。
由表 2可知,环面蜗轮滚刀的容屑槽为直槽时,刀齿分度环面上左右两侧前角近似在±20°之间。左侧为负前角,右侧为正前角。由图 4可知,左侧刀齿从出口(Zi=-0.5Lw处)到入口(Zi=0.5Lw处)前角的绝对值先增大后减小,喉部齿位置(3号齿)前角的绝对值最大;右侧刀齿从入口(Zi=-0.5Lw处)到出口(Zi=0.5Lw处)前角的绝对值先增大后减小,喉部齿位置(3号齿)前角的绝对值最大。较大的负前角会导致刀齿切削条件恶劣,甚至无法正常滚切蜗轮。刀齿左右两侧前角一正一负且相差较大,会造成两侧刀齿切削力不均衡,引起更大的刀齿磨损。
由表 3可知,环面蜗轮滚刀的容屑槽为螺旋槽时,刀齿分度环面上左右两侧前角近似在±8.1°之间。左侧为正前角,右侧为绝对值较小的负前角。由图 4可知,喉部齿位置(3号齿)前角较为均衡,左侧前角为7.252 2°,右侧前角为6.204 3°;2个边齿(1号齿和5号齿)左右两侧的前角绝对值相差较大。原因是由于滚刀基本蜗杆螺旋线的导程角从出口到入口都是变化的,本文以喉部螺旋线的导程角为依据计算的速比iqd1。但是,相较于直槽滚刀,刀齿两侧前角绝对值有明显下降,降幅约为60%。左侧负前角的一侧切削条件能够得到改善,而且有利于均衡刀齿左右两侧的切削条件。
3. VERICUT加工滚刀螺旋槽
以表 1中的4头滚刀为例,在VERICUT软件中建立具有B轴和C轴联动的环面蜗杆专用数控机床[23-24],进行滚刀基本蜗杆螺旋面以及滚刀螺旋容屑槽的仿真加工。仿真加工滚刀基本蜗杆螺旋面和螺旋容屑槽的过程如图 5所示。
螺旋容屑槽滚刀仿真加工完成后,测量分度环面上刀齿两侧的夹角Wq,如图 6所示。
由Vq=Wq-90°,计算出刀齿两侧的前角Vq,如表 4所示。
表 4 测量螺旋槽前刀面对应分度环面上各刀齿左右两侧的前角Table 4. Measured rake angles of both sides of each tooth on indexing torus corresponding to rake face of hob with spiral flutes齿号 左侧 右侧 前角/(°) 轴向位置/mm 前角/(°) 轴向位置/mm 1号 5.6286 -37.6659 -5.3759 -30.6111 2号 6.3011 -21.2130 2.5098 -13.3234 3号 7.1336 -4.1854 5.6398 3.9941 4号 1.6094 13.3526 0.1771 21.4250 5号 -1.0385 31.1470 -8.3156 38.3567 将表 4测量结果和表 3中理论计算结果对比可知,测量结果是有误差的,最大误差出现在4号齿的右侧前角,为0.569 9°;最小误差出现在4号齿的左侧前角,为0.011 4°;测量误差主要是由测量点选取位置的误差造成的。
4. 结论
1) 针对直槽滚刀负前角绝对值较大、刀齿左右两侧切削条件不均衡的问题,提出了采用双锥砂轮磨削加工环面蜗轮滚刀螺旋槽前刀面的方法。
2) 通过建立磨削加工坐标系,推导由双锥产形面展成平面二次包络环面蜗轮滚刀螺旋容屑槽前刀面的数学模型,完成每个刀齿在分度环面螺旋线上的前角数值的计算。计算结果表明,相较于直容屑槽滚刀,螺旋容屑槽滚刀对应的前角下降了60%,有效减小了负前角的绝对值,有利于均衡刀齿两侧的切削条件。
3) 对滚刀的螺旋容屑槽进行仿真加工并且在仿真软件中对前角进行测量,测量结果与理论计算误差小于0.6°,验证了本文方法的正确性。
致谢: 感谢中南大学高性能复杂制造国家重点实验室对VERICUT软件提供的技术支持。 -
[1] Molina J M, Pan X,Grimm C,et al.A framework for model-based design of embedded systems for energy management[C]//Modeling and Simulation of Cyber-Physical Energy Systems(MSCPES).Piscataway,NJ:IEEE,2013:1-6. [2] He N, Rümmer P,Kroening D.Test-case generation for embedded Simulink via formal concept analysis[C]//Proceedings of the 48th Design Automation Conference.New York:ACM,2011:224-229. [3] DeMillo R A, Lipton R J,Sayward F G.Hints on test data selection:help for the practicing programmer[J].Computer,1978,11(4): 34-41. [4] Jia Y, Harman M.An analysis and survey of the development of mutation testing[J].IEEE Transactions on Software Engineering,2011,37(5):649-678. [5] King K N, Offutt A J.A fortran language system for mutation-based software testing[J].Software:Practice and Experience,1991,21(7):685-718. [6] Mathur A P. Performance,effectiveness,and reliability issues in software testing[C]//15th Annual International Computer Software and Applications Conference.New York:IEEE,1991:604-605. [7] Offutt A J, Rothermel G,Zapf C.An experimental evaluation of selective mutation[C]//Proceedings of the 15th International Conference on Software Engineering.Piscataway,NJ:IEEE Computer Society Press,1993:100-107. [8] Offutt A J, Lee A,Rothermel G,et al.An experimental determination of sufficient mutant operators[J].ACM Transactions on Software Engineering and Methodology(TOSEM),1996,5(2):99-118. [9] Barbosa E F, Maldonado J C,Vincenzi A M R.Toward the determination of sufficient mutant operators for C[J].Software Testing,Verification and Reliability,2001,11(2):113-136. [10] Binh N T. Mutation operators for Simulink models[C]//Knowledge and Systems Engineering(KSE),2012 Fourth International Conference on.Piscataway,NJ:IEEE,2012:54-59. [11] Zhan Y, Clark J.Search based automatic test-data generation at an architectural level[C]//Genetic and Evolutionary Computation-GECCO 2004.Berlin:Springer,2004:1413-1424. [12] 邓绍鹏,杨志义, 王宇英.基于搜索的Simulink测试数据生成[J].计算机应用研究,2012,29(7):2527-2530. Deng S P,Yang Z Y,Wang Y Y.Search-based test-data generation for Simulink[J].Application Research of Computers,2012,29(7):2527-2530(in Chinese). [13] Bottaci L. Predicate expression cost functions to guide evolutionary search for test data[C]//Genetic and Evolutionary Computation—GECCO 2003.Berlin:Springer,2003:2455-2464. [14] Zhan Y, Clark J A.Search-based mutation testing for Simulink models[C]//Proceedings of the 2005 Conference on Genetic and Evolutionary Computation.New York:ACM,2005:1061-1068. [15] McMinn P. Search-based software test data generation:a survey[J].Software Testing,Verification and Reliability,2004,14(2): 105-156. 期刊类型引用(1)
1. 芮成杰,李霞,徐进友. 环面蜗轮滚刀侧后角面磨削干涉分析. 重型机械. 2020(06): 42-46 . 百度学术
其他类型引用(1)
-

计量
- 文章访问数: 1679
- HTML全文浏览量: 83
- PDF下载量: 664
- 被引次数: 2