Matlab是由Math Works公司于1984年推出的一套数值计算软件,它将不同数学分支的算法以函数的形式分类成库,使用时直接调用这些函数并赋予实际参数就可以快捷而准确的解决问题。和很多高级编程语言一样。Matlab也有图形用户界面开发环境,称为GUI,即Graphical User Interface,是由窗口、菜单、图形、光标、按键、对话框和文本等各种图形对象组成的用户界面。GUI可以允许用户定制与Matlab的交互方式,通过鼠标或键盘选择、激活这些图形对象,直观的达到用户的求解、分析目的。
在弹性力学的学习中,数学推导求解较为繁琐,学生容易在学习中产生畏难情绪,影响学习效果。考虑到Matlab-GUI具有编程简单、界面友好等特点,开发弹性力学的推导、求解界面,将一部分数学推导工作交给计算机完成,学生可以集中精力加强对原理和数学逻辑的理解,这样可在一定程度上降低弹性力学的学习难度。本文正是基于这一目标开展的教学实践,以下先介绍Matlab-GUI设计环节,然后再通过一个例题展示其计算结果。
01 问题规划及Matlab-GUI的界面设计
本节将采用应力函数法求解一个受任意载荷的简支梁模型。对于均布载荷作用下的简支梁,多项式应力函数可得到完整的弹性解,然而,对于复杂载荷,甚至是不连续载荷问题,就需要用三角级数表示的应力函数来求解,该应力函数中待定参数较多,求解过程繁琐,大多数教材中只提出该方法,不对其例题演示。基于MATLAB-GUI编程设计三角级数应力函数的求解界面,可以使学生从繁琐的数学推导和求解中解脱出来,重点理解三角级数应力函数法求解思路与过程,这对于培养学生实践能力具有积极的示范作用。
在进行Matlab-GUI编程时,要根据“人-机”交互功能,规划好输入、输出参数和输出结果,首先对问题进行分析规划,确定问题中的各项参数,包括基本输入常量,求解过程中所产生的变量以及核心算法,绘制流程如图1所示
图1
其次,将各种控件在设计区域内进行布局设计,主要包括基本输入参数以及所需显示的输出结果。本软件考虑一简支梁在上、下表面受任意载荷情况,需要输入梁的基本参数、载荷参数、材料参数等,为此设置相应的控件,完成控件的布局,并设置求解过程中的功能按钮,在控件布局中注意保证界面的简洁性与美观性。可参考图2所示界面
图2
利用菜单可设计多窗口以完成不同的功能,菜单主要包括文件操作(文件打开、保存、清除和退出),求解(可跟踪求解过程),以及结果分析(包括结果的可视化、最大值分析、项数分析和生成报告),窗口和帮助(可查看基本理论和软件使用方法)五项,如图2和图3所示。
对界面控件进行布局设计之后,控件还不具备计算、分析功能。需要对每一个控件进行Matlab编程,要将Matlab程序代码放在相应的控件代码下,这样各控件就具备了计算、分析功能。
另外,形象地展示求解结果是Matlab程序设计的优点,利用图形输出可以将分析结果可视化,使弹性力学问题中复杂繁琐的数学公式能够转变为图形结果,有利于提高学生的学习兴趣。如图3所示,将在结果中以图形方式展示应力结果和误差分析结果。
图3
运行设计好的程序,用户可依照以下使用流程进行分析:
通过自主完成编写弹性力学求解系统,学生可以形成对弹性力学基本概念、求解思路的自我归类和主动学习,对于弹性力学涉及到的相关理论形成更加深刻的理解,提高学习效率。以下将通过一个例题来展示基于Matlab-GUI编程技术分析三角级数作为应力函数的弹性力学求解问题。
02 三角级数应力函数法求解举例
图4
依据上一节中的步骤输入参数,并进行求解。观察x=90mm截面上应力分布,如图5所示。该曲线表示在x=90 mm的截面上,应力分量随简支梁高度的变化。
图5
图6
图7
总结
结合Matlab-GUI编程学习弹性力学,以图形方式展示求解结果,可以在一定程度上减小弹性力学问题求解的繁琐过程。同时,学生在自主完成编写弹性力学求解系统的过程中,可形成对弹性力学基本概念、求解思路,以及程序逻辑的主动学习,在一定程度上提高学习效率和实践能力。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删