Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 教育论文 > 正文

Python 语言在复合材料教学中的应用论文

发布时间:2022-12-23 11:56:58 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com):
 
  摘要:为了激发学生的学习兴趣、提高学生的学习效率,进而提高复合材料教学质量,文章首先论述了Python语言在复合材料教学中应用面临的挑战,然后阐述了Python语言在复合材料教学中应用的思路,最后提出了Python语言在复合材料教学中应用的实例,包括二维随机圆形骨料复合材料建模、螺旋结构建模、三维短纤维增强复合材料建模。
 
  关键词:Python语言;复合材料教学;二维随机圆形骨料复合材料建模
 
  复合材料是指通过物理或化学的方法,把两种或两种以上不同性质的材料组成具备新性能的材料。复合材料取长补短,产生协同效应,且整体性能优于原材料,从而可以满足各种工程实践需求。复合材料一般具有较高的比强度、比模量,且具有结构、性能可设计的特点,被广泛应用于航空航天、汽车工业、机械制造和医学等领域。目前,复合材料教学改革面临很多问题[1],主要是因为该课程知识体系相当宽泛,内容丰富,涉及复杂的材料学和各种力学,学生学习时会觉得晦涩难懂,一般浅尝辄止,很难形成一个完整的知识体系。基于Python语言的复合材料建模[2]可以让学生直观了解复合材料的构成,然后通过数值模拟计算复合材料的整体力学性能,可以达到事半功倍的学习效果。
 
  随着理论方法的不断发展和计算机技术的不断进步,在复合材料研究领域,实验研究、理论研究和数值模拟已成为三种惯用的方法。随着复合材料学科的发展,复合材料慢慢地变成了一个交叉学科[3],且把计算机编程也纳入其中,同时很多高校都开设了交叉学科,以培养复合型人才,但是这种模式涉及多学科交叉和大量的计算机模拟软件,使很多学生望而却步,在学习初期就失去了信心和兴趣。基于此,本文提出了一种基于Python语言的复合材料建模[4]方案,可以拓宽学生学习复合材料的渠道,使学生通过简单的程序编写就能完成一般复合材料的建模设计,并结合数值模拟完成复合材料整体力学性能分析,进而促进学生对该课程涉及的基础理论知识的理解,最终帮助学生构建完整的知识体系[5]。

\
 
 
  一、Python语言在复合材料教学中应用面临的挑战
 
  Python语言在复合材料教学中的应用主要面临以下三点挑战,具体如下。
 
  第一,知识体系过于庞大。复合材料教学涉及很多学科,如材料学、物理、化学、力学和加工工艺等,是一个多学科交叉的课程体系。该课程课时有限,需要学生有一定的基础,且课后自学相关交叉学科知识,才能充分消化吸收课上所学知识,因此大部分学生觉得复合材料内容多且抽象,对所学内容浅尝辄止,以致对该课程知识掌握得不牢固。另外,对于多学科交叉课程的讲授,部分教师教学经验少,整体把握不足,这也会影响学生对该课程的学习。
 
  第二,编程要求高。复合材料建模大部分是借助Abaqus有限元软件实现,但当涉及复杂构成或复杂结构时,如构建纤维在树脂基体中随机分布模型、复合材料点阵结构和编织结构等,这些模型不能简单地通过软件交互界面操作实现,就需要学生采用不同算法借助前处理编程完成,同时教师在课上一般无法直观地展示模型的形成过程。基于此,对于学生而言,首先面临的是模型构建的算法实现,而数理基础薄弱的学生会耗费大量时间寻找合适的算法;然后是借助编程语言实现相应的算法,而编程语言的学习同样会耗费学生大量精力;最后是程序的调试,理想中的模型需要通过不断的调试,修改算法和相应的编程程序才能完成。整个建模过程涉及的知识面广且深入,学生往往因无从下手而产生畏惧心理,进而对复合材料学习逐渐丧失兴趣。
 
  第三,成就感不强。复合材料教学偏向基础理论知识讲解,缺乏实验研究和数值模拟等实践性操作环节,而数值模拟可以加深学生对课堂基础理论知识的理解,但是其受到编程的桎梏,学生往往态度不积极、有效反馈少,进而缺乏学习的成就感,这与该课程教学目标背道而驰[6]。一旦面临的问题积累到一定量,学生就会对课程学习丧失信心,陷入学习的死循环。
 
  这些问题是当前复合材料教学中存在的普遍问题,需要教师与学生共同努力加以解决,教师应该努力完善教学模式并改善教学方式,而学生应该巩固课程基础知识与学习编程语言。同时,教师与学生之间还需要多交流、多沟通,让教师成为复合材料学习与学生之间的纽带。具体来说,教师可以通过课堂或网上讲解的方式和学生一起编程建模,及时帮助学生解决编程或理论知识学习方面的问题,提高学生的学习积极性,进而让学生在编程建模中获得学习成就感,这有助于促使学生对这门课形成更深的了解,并有效提升教学效率。
 
  二、Python语言在复合材料教学中应用的思路
 
  Python语言是一种面向对象的语言[7]。面向对象的语言表现为:语言本身已经定义了许多模块,如数学函数、对显示模式的控制、一些对话框的编写等程序模块,模块涉及的格式相对比较固定,程序员只需要按照指定格式填空即可完成预定任务。虽然语言格式看起来非常烦琐,但是其方便实用的特性可以为程序员节约大量时间。面向对象语言的使用方式可以被比喻为“一棵树包含树干、树枝、细枝和树叶等部分,想要得到一个确定位置的树叶(且具备大小等属性),只有一个路径可以走,即‘树干—树枝—细枝—树叶’”,程序中将其转换成面向对象的格式,即“树干—树枝—细枝—树叶(树叶片数或大小等属性)”。Python语言简单易用,学习成本低,语言形式优雅干净,便于安装与移植;标准库和第三库众多,功能强大,既可以开发小工具,也可以开发界面交互,并针对不同复合材料结构做成小插件以供学生使用;站在了人工智能和大数据的“风口”上,很多库都是免费的,如Scipy数据库,学生建模时直接引用就行。因此,Python语言非常适合复合材料模型构建,可以有效促进复合材料教学的优化与改革。
 
  Python语言[8]完美地与有限元商用软件Abaqus相衔接,有助于实现对复合材料模型的构建[9]。Python语言在复合材料教学中的应用可遵循以下思路:①掌握复合材料基础理论知识;②掌握复合材料建模算法;③编写程序实现模型构建;④模拟计算;⑤计算结果分析与验证。其中,较为困难的是第③步,即学生需要依据算法编写相应的Python语言,并通过不断调试实现复合材料模型构建。在教师的协助下,整个过程都由学生自己动手完成,这会加深学生对基础理论知识的认识,提升学生的学习积极性,使其获得成就感,进而促使学生完成复合材料课程知识体系的构建。
 
  三、Python语言在复合材料教学中应用的实例
 
  工程实践中常用的纤维增强树脂基复合材料是以玻璃纤维、碳纤维和芳纶纤维等纤维作为增强材料,以环氧树脂、乙烯基酯和聚乙烯等热固性或热塑性树脂作为基体的。下面笔者将以二维随机圆形骨料复合材料、螺旋结构和三维短纤维增强复合材料建模为例,阐述Python语言在复合材料教学中的应用。
 
  (一)二维随机圆形骨料复合材料建模
 
  二维随机圆形骨料复合材料模型是构建用圆形表示的纤维骨料随机分布于用正方形表示的基体中这一二维复合材料模型。具体来说,假设圆形纤维骨料的直径为10mm,正方形基体的几何尺寸为100mm×100 mm。
 
  该模型构建的算法如下:首先随机生成第一个圆心,利用这个圆心坐标和半径形成第一个圆形纤维骨料;然后随机生成第二个圆,生成该圆时,要采用圆与圆相离的原理做接触判断,防止其与已生成的圆接触重合;最后按照同样的方式循环生成预设体积含量的圆形纤维骨料。依据上述算法,模型构建的Python语言实现如下。首先在Abaqus上构建一个100 mm×100 mm的正方形作为基体[10],这步可以直接通过交互界面生成,即课上教师可以手把手带着学生进行实践操作,以提高学生的兴趣和参与度。然后在这个正方形区域里随机生成第一个圆,假设第一个生成的圆形纤维骨料直径为10 mm,采用random.uniform函数,相应的限定边长应该是45 mm,即x=random.uniform(-45,45),y=random.uniform(-45,45)。接着随机生成第二个圆形纤维骨料,且采用接触判断防止与第一个圆接触重合,其接触判断算法的Python语言实现如下。
 
  def intercheck(point,center,radius1,radius2):
 
  sign=True
 
  for p in center:
 
  if sqrt((point[0]-p[0])**2+(point[1]-p[1])**2)<=(ra-
 
  dius1+radius2):
 
  sign=False
 
  break
 
  return sign
 
  最后循环生成预期模型,同时为了避免重复编码,提高效率,可以把接触判断算法封装成一个函数,每生成一个圆心点,都放到center字典中,通过for函数让新生成的圆心点与center中已生成的圆心进行接触判断,即比较两个圆心坐标的距离与两个圆的半径之和(radius1+ra-dius2)的关系,如果是大于,就加入center中,相反则舍去。与Abaqus衔接编译后生成了如图1所示的模型。

\
 
  由图1可以看出,生成的模型达到了预期目标。在教学过程中,教师讲完这些内容之后,可以引导学生实践操作,加强互动,及时解决学生的疑惑和破除学生动手难的心理障碍,进而充分调动学生学习的积极性,并且可以根据学生课上学习和实践操作的情况,及时对教学进行调整,以取得高质量的教学效果。教师运用Python语言构建上述这一简单实例,可以激发学生运用Python语言进行编程建模的兴趣,基于此,学生面对的不再是枯燥乏味的课程理论知识讲解,而是融入了理论知识的实践操作,进而可强化学生的成就感。课后教师可以逐级增加建模难度,指导学生完成复杂复合材料模型的构建。例如,教师可以将该二维单一圆形纤维骨料模型扩展到不同尺寸纤维骨料模型,并进一步扩展到三维纤维骨料等模型,在不断尝试、不断总结和不断挑战中,激发学生的学习潜力,并通过Python语言实现工程实践复合材料模型的构建,提高学生解决实际问题的能力,增强学生的学习信心,提高学生的学习效果。
 
  (二)螺旋结构建模
 
  随着经济发展,社会生产实践对复合材料提出了更高的要求,复合材料结构也越来越复杂。随着3D打印技术的发展,复合材料中除了层合、蜂窝、点阵、三维织物结构,螺旋、波纹桁架等复杂结构也可实现打印制作,而Python语言可以应用于这些复杂模型的构建,有助于培养学生的科研创造能力。下面将以螺旋结构建模为例拓展学生运用Python语言构建复杂复合材料模型的思路。
 
  学生可以利用Python语言与Abaqus有限元分析软件优良的交互性进行GUI界面开发,同时可以利用Python语言内嵌getIuputs函数实现Abaqus软件界面开发。对于螺旋结构的建模,其getIuputs函数如下。
 
  R_max,R_min,Pitch,L,num=getInputs(fields=
 
  (('R_max:','50.00'),('R_min:''20.00'),('Pitch:','5.00'),
 
  ('L:','100.00'),('num:','1000')),label='spiral',dialogTitle
 
  ='Enter information.')
 
  R_max=float(R_max)
 
  R_min=float(R_min)
 
  Pitch=float(Pitch)
 
  L=float(L)
 
  num=int(num)
 
  其中,R_max是螺旋结构的最大半径,R_min是最小半径,Pitch是螺距,L是高度,num是对圈数取整,将脚本导入Abaqus后就会产生如图2所示的交互界面。
 

  \
 
  同时,学生可以根据建模需求实时调节结构的几何尺寸。螺旋结构极坐标方程为r=α+βθ,其中α、β为实数,改变α即旋转螺旋线,参数β控制两条曲线间的距离,极坐标系到笛卡尔坐标系的参数转变为x=rcosθ=(α+βθ)cosθ,y=rsinθ=(α+βθ)sinθ,z=lθ,模型构建主要代码如下。
 
  for hua in range(num+1):
 
  R=R_max-float(hua)*(R_max-R_min)/float(num)
 
  jiao=float(hua)*zongjiao/float(num)
 
  xzuobiao=R*cos(jiao)
 
  yzuobiao=R*sin(jiao)
 
  zzuobiao=float(hua)*L/float(num)
 
  huapoint.append((xzuobiao,yzuobiao,zzuobiao))
 
  运行脚本之后,就可以得到如图3所示的螺旋结构模型。如果把最大半径和最小半径设置为一样参数,则螺旋结构模型实际上就是一个弹簧模型,可以应用到机械或抗震领域进行科学研究。同时,也可以根据复合材料结构分析的需要,对该螺旋结构进行Abaqus扫掠处理生成二维壳体或三维实体模型。在复合材料教学中,教师要指导学生灵活应用Python语言进行复合材料模型的构建,如此可加强学生对课堂理论知识的理解,也可以有效拓展学生的思维,提高学生解决实际问题能力和创新能力。

\
 
 
  (三)三维短纤维增强复合材料建模
 
  短纤维增强复合材料是复合材料课程中教师要重点讲解的内容,且是工程实践中常用的复合材料构件结构,如钢纤维混凝土就是日常生活中常见的典型代表,学生对其进行学习时,不仅可以通过具体的实物,还可以通过它们对应的材料参数建立模型,并且研究短纤维增强复合材料,使用Python进行短纤维增强建模是案例1的进阶建模方法,具有一定的挑战性,可以锻炼学生的创造力和编程能力。实际操作过程中,教师可以通过一边编程一边调试的方法建立模型,因为模型的最终建立往往需要学生不断试错修改,最终达到预期的模型结果。

\
 
  短纤维增强复合材料的建模有两种方法,纤维可以由实体或线来表示,然后赋予截面属性、单元,其具体步骤分解如下:①生成矩形基体;②定义纤维的属性、纤维的长度及数量;③随机生成纤维的起点;④随机生成纤维的转动角度;⑤干涉判断;⑥Abaqus中重构。其中,大部分基本建模过程已经在第一个案例中详细讲述了,但是短纤维增强复合材料Python建模过程中有两个特别重要的点。第一个是纤维两点坐标的确认方法,先假设纤维第一个点为P(x,y,z),x=random.uniform(fibre_length,length-fibre_length);y=random.uniform(fibre_length,width-fibre_length);z=random.uniform(fibre_length,height-fibre_length)。然后定义纤维的随机角度:angle_x=random.uniform(0,2*3.1415926);angle_z=random.uniform(0,2*3.1415926)。最后可以计算出短纤维的第二个点:z2=z+fibre_length*sin(angle_z);x2=x+fibre_length*cos(angle_z)*cos(angle_x);y2=y+fibre_length*cos(angle_z)*sin(angle_x)。第二个较为重要的点是短纤维的干涉判断,因为按照上面的操作纤维之间容易交叉,干涉判断的思路如下:判断两个线段的最短距离,这个最小距离要比圆柱纤维的直径要大,满足此条件的纤维才是符合要求的纤维,否则就要重新生成。对于其最小距离,可以使用穷举法,假设2条线段ab与cd,在线段ab上取m个点,在cd线段上取n个点,然后两两判断距离,然后取其最小值作为ab、cd间的最小值,那么总共需要判断(m-n)次,具体的Python实现代码如下。
 
  def interact_judgement(points,line,diameter):
 
  c=line[0]
 
  d=line[1]
 
  num=50
 
  sign=True
 
  for point in points:
 
  a=point[0]
 
  b=point[1]
 
  for i in range(num+1):
 
  mx=c[0]+(d[0]-c[0])*i*(1./num)
 
  my=c[1]+(d[1]-c[1])*i*(1./num)
 
  mz=c[2]+(d[2]-c[2])*i*(1./num)
 
  for j in range(num+1):
 
  nx=a[0]+(b[0]-a[0])*j*(1./num)
 
  ny=a[1]+(b[1]-a[1])*j*(1./num)
 
  nz=a[2]+(b[2]-a[2])*j*(1./num)
 
  distance=sqrt((mx-nx)**2+(my-ny)**2+
 
  (mz-nz)**2)
 
  if distance<diameter:
 
  sign=False
 
  break
 
  从上面的代码格式中,可以发现Python语言的可读性还是相对较好的,整体语言格式也较为整洁,首行的缩进也增加了程序的可读性,方便学生调试修改。最后教师要把Python脚本导入Abaqus软件,具体运行结果如图4所示。
 
\
  图4短纤维增强复合材料结构模型
 
  概言之,学生在学习复合材料这门课时,应该积极发挥自己的主观能动性,对于感兴趣的结构或模型都可以尝试使用Python复现它们,这有助于对复合材料实现更深一步的理解。
 
  四、结语
 
  复合材料是一门理论性强、概念抽象、涉及实验编程等实践操作的多学科交叉课程。本文提出了Python语言在复合材料教学中应用的思路,且阐述了Python语言在复合材料课程教学中的运用案例。通过研究可以发现,Python语言在复合材料教学中的应用可以减少教学和学习流程,加强教师与学生的互动,激发学生的学习兴趣,提升学生的实践操作能力,提高学生学习的积极性和创造力,大幅度降低复合材料课程的学习门槛和学习难度。此外,Python语言在复合材料教学中的应用还可以直观地展现复合材料具体的结构形态和受力状态,有助于复合材料理论教学及科学研究,从而为复合材料课程教学效果的提升提供有力的支撑。
 
  参考文献:
 
  [1]张小敏,杨晓莉,王昆彦,等.高等院校复合材料专业教改与实践探索[J].中国校外教育,2018(18):74.
 
  [2]顾鸿虹,杨娜,张虹.面向新工科的Python程序设计基础课程的建设[J].现代计算机,2021(20):118-121.
 
  [3]司利平.《复合材料》教学过程中的难点剖析与教学方式探索[J].广东化工,2021,48(7):281,283.
 
  [4]郁荣,陈剑波,李欣烨,等.基于Python语言的ABAQUS前处理程序在内凹蜂窝的应用[J].船舶工程,2020,42(S1):153-156,327.
 
  [5]孙琳,徐文正.Python编程语言教学中问题分析能力培养的研究[J].产业与科技论坛,2022,21(4):182-183.
 
  [6]丁毅涛,任水利.基于Python语言的数理统计课程应用改革探索:以应用统计学专业为例[J].科技风,2021(28):25-27.
 
  [7]柯琦,胡小春,李国祥,等.Python程序设计教学改革探讨[J].科技视界,2021(27):108-109.
 
  [8]苏景鹤,江丙云.CAE分析大系ABAQUS Python二次开发攻略[M].北京:人民邮电出版社,2016:318.
 
  [9]张强,马永,李四超.基于Python的ABAQUS二次开发方法与应用[J].舰船电子工程,2011,31(2):131-134.
 
  [10]齐威.ABAQUS 6.14超级学习手册[M].北京:人民邮电出版社,2016:673.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
 

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/48852.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml