一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于虚拟仿真的电学实验仿真方法

2022-11-12 10:50:58 来源:中国专利 TAG:


1.本发明涉及一种基于虚拟仿真的电学实验仿真方法,属于虚拟现实领域。


背景技术:

2.随着教育改革深化,物理实验教学条件改善,但物理实验教学仍存在弊端:学生单凭理论记忆而对知识的掌握浅薄;实验仪器比较昂贵,实验器材与材料准备繁琐且易损坏或缺失;限制的实验地点、开放时间与实验资源;当实验遇到安全问题时,会采取其他方式,甚至放弃实验等。将虚拟仿真应用于物理实验教学,不仅能实现现实教学所不具备的实验条件,还能提高实验教学效果,实现自主探究的实验目的。


技术实现要素:

3.本发明提供一种基于虚拟仿真的电学实验仿真方法,使用虚拟现实仿真电路实验,减少实物电路实验的危险性,并且可以动态判断电路通路状态。
4.为解决上述技术问题,本发明采取的技术方案是,一种基于虚拟仿真的电学实验仿真方法,包括以下步骤:
5.s1)确定每一个实验器材模型的tag标签;创建terinalstate类并定义接线点的属性;并定义实验中的通路集合;定义实验器材连通属性;
6.s2)点击实验器材的全部接线点并记录接线点为选中状态;遍历全部实验器材直至电源的正极、负极都被点击形成电路回路时,进行电路回路的通路判断;
7.s3)根据步骤s2)中记录存储的内容,判断实验连入的实验器材是否连通,并判断实验连入的实验器材是否存在串并联;
8.s4)根据确定的实验通路,确定通路中的器材,计算通路中的电流电压电阻。
9.优化的,上述基于虚拟仿真的电学实验仿真方法,在步骤s1)中,在unity中确定每一个实验器材模型的tag标签,实验器材包括电源、开关、电流表、电压表、灯泡、电阻等;创建terinalstate类赋值给实验器材模型的接线点,定义接线点的属性字段类stateinfo;创建loopconnectequipstate类,定义实验器材连通属性的属性字段;创建connectedcontroller类赋值给unity场景中的gamecontroller物体,建立实验中所有通路的集合allloop_numberterinallist,建立实验中每一条回路通路集合alllooplist。
10.优化的,上述基于虚拟仿真的电学实验仿真方法,在步骤s1)中,在visualstudio中编辑创建的terinalstate类,将该类添加到unity中存在的实验器材的每一个接线点中,在其中定义接线点的属性字段类stateinfo包括字段当前接线点curnode、与当前接线点属于同一个实验器材的另一个接线点othernode、与当前接线点连接的接线点集合curnodenextlist、另一个接线点othernode相连接的集合othernodenextlist。
11.优化的,上述基于虚拟仿真的电学实验仿真方法,步骤s1)中,在visualstudio中编辑创建的loopconnectequipstate类,包括表示是否短路的字段isshortcircuit、表示是否有开关的字段ishaveswitch、表示是否有电流表的字段ishaveammeter、表示是否有电压
表的字段ishavevolotage、表示是否有灯泡的字段ishavelight、表示开关所处状态的字段switchstate、表示一条电路通路中的所有实验器材集合的字段equips。
12.优化的,上述基于虚拟仿真的电学实验仿真方法,步骤s1)中,在visualstudio中编辑创建的connectedcontroller类,定义实验中所有通路的集合allloop_numberterinallist,用来存放所有的实验回路集合,每一条回路时从电源正极按顺序连接到电源负极,即存储的是每一条回路alllooplist;建立实验中每一条回路通路集合alllooplist,该集合是存储器材的连接的每个接线点;创建通路里包含的实验器材集合allequilist。
13.优化的,上述基于虚拟仿真的电学实验仿真方法,在unity中连接实验器材的两个接线点中,鼠标左键点击第一个接线点时,记录第一个接线点为选中状态,鼠标左键再次点击另一个接线点,分别记录属性字段类stateinfo;记录stateinfo时,第一个点击的接线点是curnode,第二次点击的接线点是othernode,将当前接线点curnode添加到othernodenextlist集合中,第二次点击的另一个接线点othernode添加到curnodenextlist集合中;每当第二次点击结束,就进行步骤s2)中的判断。
14.优化的,上述基于虚拟仿真的电学实验仿真方法,步骤s2)的具体过程包括:
15.s201)在connectedcontroller类中创建一个空的临时集合curloop,将已点击、存储到stateinfo中且连接到实验线路中的接线点存储至临时集合curloop;
16.s202)首先判断实验连入的实验器材是否存在电源的正极;若存在正极接线点,将正极接线点添加到curloop集合中;
17.以电源的正极为起点,继续判断电路是否形成回路;
18.遍历判断正极接线点的curnodenextlist集合是否存在与正极相连的接线点,判断后的三种情况分别为:
19.q1)如果存在与正极相连的接线点并且是电源负极,说明电源的首尾相连形成回路,进行步骤s3);
20.q2)如果存在与正极相连的接线点并且不是电源负极,判断该接线点的othernodenextlist是否存在与正极相连的接线点;如果存在,则加入到临时集合curloop中,并进行步骤s203);
21.q3)如果不存在,则判断电路不通;
22.s203)创建临时的集合curtemp,将步骤s202)完成后的curloop集合中的元素全部添加到curtemp集合中;
23.循环遍历curnodenextlist集合中的接线点curnode的curnodenextlist,在循环遍历时分两种种情况:
24.q4:如果此接线柱curnode的curnodenextlist中的第一个元素存在于curtemp中,则判断第二个;如果此接线柱curnode的curnodenextlist中的第一个元素不存在于curtemp中,则进行s203)的q2),直至curnodenextlist中所有的元素都遍历;
25.q5:如果这个判断的接线点的othernode的curnodenextlist数量小于1,则继续判断当前接线点curnode的curnodenextlist,并将cuenode添加到curtemp集合中,如果这个接线柱的curnode的curnodenext存在电源负极并遍历到电源负极,则进行步骤s3);如果没有不是电源负极,则继续进行遍历步骤s203)。
26.优化的,上述基于虚拟仿真的电学实验仿真方法,在步骤s3)中,将回路集合curloop赋值给alllooplist,再将alllooplist添加到allloop_numberterinallist中;下一步进行步骤s4)。
27.优化的,上述基于虚拟仿真的电学实验仿真方法,在步骤s4)中,判断中allloop_numberterinallist的元素数量,判断得出的数量为回路得条数;循环遍历allloop_numberterinallist中的alllooplist,如果同一个实验器材的两个接线柱都在alllooplist中,说明该器材在当前回路里,然后将器材添加到allequiplist中,记录loopconnectequipstate类中的每个属性字段,判断是否短路isshortcircuit,是否有开关ishaveswitch,是否有电流表ishaveammeter,是否有电压表ishavevolotage,是否有灯泡ishavelight,并将开关的状态switchstate进行记录;最后通过这些状态计算通路中的电流电压电阻并观察实验现象。
28.本技术的优点在于:本技术的技术方案包括虚拟仿真的电学实验判断方法,物理实验中各个实验器材的属性及实验电路通路判断的过程。使用本技术的技术方案,可以在电路实验过程中对实验电路的通路进行判断,辅助电路实验的有序进行,解决了虚拟现实仿真物理实验动态判断电路通路困难的问题。
附图说明
29.图1为本技术中步骤s3的流程示意图。
具体实施方式
30.下面结合附图与具体实施例进一步阐述本发明的技术特点。
31.如图1所示,本发明为一种基于虚拟仿真的电学实验仿真方法,使用unity3d引擎,结合编程工具visualstudio实现,具体包括步骤s1)至步骤s4),其步骤s1)至步骤s4)具体如下所述。
32.步骤s1):确定每一个实验器材模型的tag标签;创建terinalstate类并定义接线点的属性;并定义实验中的通路集合;定义实验器材连通属性。
33.在此步骤s1)中,在unity中确定每一个实验器材模型的tag标签,实验器材包括电源、开关、电流表、电压表、灯泡、电阻等;创建terinalstate类赋值给实验器材模型的接线点,定义接线点的属性字段类stateinfo;创建loopconnectequipstate类,定义实验器材连通属性的属性字段;创建connectedcontroller类赋值给unity场景中的gamecontroller物体,建立实验中所有通路的集合allloop_numberterinallist,建立实验中每一条回路通路集合alllooplist。
34.并且在此步骤s1)中,在visualstudio中编辑创建的terinalstate类,将该类添加到unity中存在的实验器材的每一个接线点中,在其中定义接线点的属性字段类stateinfo包括字段当前接线点curnode、与当前接线点属于同一个实验器材的另一个接线点othernode、与当前接线点连接的接线点集合curnodenextlist、另一个接线点othernode相连接的集合othernodenextlist。
35.在visualstudio中编辑创建的loopconnectequipstate类,包括表示是否短路的字段isshortcircuit、表示是否有开关的字段ishaveswitch、表示是否有电流表的字段
ishaveammeter、表示是否有电压表的字段ishavevolotage、表示是否有灯泡的字段ishavelight、表示开关所处状态的字段switchstate、表示一条电路通路中的所有实验器材集合的字段equips。
36.在visualstudio中编辑创建的connectedcontroller类,定义实验中所有通路的集合allloop_numberterinallist,用来存放所有的实验回路集合,每一条回路时从电源正极按顺序连接到电源负极,即存储的是每一条回路alllooplist;建立实验中每一条回路通路集合alllooplist,该集合是存储器材的连接的每个接线点;创建通路里包含的实验器材集合allequilist。
37.步骤s2):点击实验器材的全部接线点并记录接线点为选中状态;遍历全部实验器材直至电源的正极、负极都被点击形成电路回路时,进行电路回路的通路判断。
38.步骤s3)为:根据步骤s2)中记录存储的内容,判断实验连入的实验器材是否连通,并判断实验连入的实验器材是否存在串并联。
39.步骤s2)和步骤s3)的具体过程如果下所示:
40.在unity中连接实验器材的两个接线点中,鼠标左键点击第一个接线点时,记录第一个接线点为选中状态,鼠标左键再次点击另一个接线点,分别记录属性字段类stateinfo;记录stateinfo时,第一个点击的接线点是curnode,第二次点击的接线点是othernode,将当前接线点curnode添加到othernodenextlist集合中,第二次点击的另一个接线点othernode添加到curnodenextlist集合中;每当第二次点击结束,就进行电路回路的通路判断。
41.步骤s2)的具体过程还包括下述过程,其具体为:
42.s201)在connectedcontroller类中创建一个空的临时集合curloop,将已点击、存储到stateinfo中且连接到实验线路中的接线点存储至临时集合curloop;
43.s202)首先判断实验连入的实验器材是否存在电源的正极;若存在正极接线点,将正极接线点添加到curloop集合中;
44.以电源的正极为起点,继续判断电路是否形成回路;
45.遍历判断正极接线点的curnodenextlist集合是否存在与正极相连的接线点,判断后的三种情况分别为:
46.q1)如果存在与正极相连的接线点并且是电源负极,说明电源的首尾相连形成回路,进行步骤s3);
47.q2)如果存在与正极相连的接线点并且不是电源负极,判断该接线点的othernodenextlist是否存在与正极相连的接线点;如果存在,则加入到临时集合curloop中,并进行步骤s203);
48.q3)如果不存在,则判断电路不通;
49.s203)创建临时的集合curtemp,将步骤s202)完成后的curloop集合中的元素全部添加到curtemp集合中;
50.循环遍历curnodenextlist集合中的接线点curnode的curnodenextlist,在循环遍历时分两种种情况:
51.q4:如果此接线柱curnode的curnodenextlist中的第一个元素存在于curtemp中,则判断第二个;如果此接线柱curnode的curnodenextlist中的第一个元素不存在于
curtemp中,则进行s203)的q2),直至curnodenextlist中所有的元素都遍历;
52.q5:如果这个判断的接线点的othernode的curnodenextlist数量小于1,则继续判断当前接线点curnode的curnodenextlist,并将cuenode添加到curtemp集合中,如果这个接线柱的curnode的curnodenext存在电源负极并遍历到电源负极,则进行步骤s3);如果没有不是电源负极,则继续进行遍历步骤s203)。
53.在步骤s3)中,将回路集合curloop赋值给alllooplist,再将alllooplist添加到allloop_numberterinallist中;下一步进行步骤s4)。
54.s4)根据确定的实验通路,确定通路中的器材,计算通路中的电流电压电阻。其具体过程为:判断中allloop_numberterinallist的元素数量,判断得出的数量为回路得条数;循环遍历allloop_numberterinallist中的alllooplist,如果同一个实验器材的两个接线柱都在alllooplist中,说明该器材在当前回路里,然后将器材添加到allequiplist中,记录loopconnectequipstate类中的每个属性字段,判断是否短路isshortcircuit,是否有开关ishaveswitch,是否有电流表ishaveammeter,是否有电压表ishavevolotage,是否有灯泡ishavelight,并将开关的状态switchstate进行记录;最后通过这些状态计算通路中的电流电压电阻并观察实验现象。
55.当然,上述说明并非是对本发明的限制,本发明也并不限于上述举例,本技术领域的普通技术人员,在本发明的实质范围内,作出的变化、改型、添加或替换,都应属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献