牛燕 姚明辉 吴启亮
天津工业大学人工智能学院 天津 300387
近年来,随着科技的进步以及工业的发展,对工程结构性能的需求也逐渐提升,既要实现高性能,又要满足高可靠性,而振动问题也必然成为亟须解决的关键问题。机械振动是机械、力学等专业重要的专业基础课,是一门理论基础要求高且综合性强的课程。掌握振动的基本理论,合理地利用或避免振动,为学生提供基本的技能知识,是该课程的主要目标。本课程主要学习线性振动相关知识,从单自由度系统进行介绍,逐步扩展到多自由度系统,最后介绍连续体系统,讲述不同系统相关的基本理论以及在工程中的应用。此课程可以满足机械或结构振动相关岗位的需求,对于有兴趣在振动方面进行深入研究的学生,可以继续学习后续振动相关知识,例如非线性振动、随机振动以及瞬态振动等。机械振动课程需要扎实的数学知识和大量的计算过程,内容抽象晦涩,学生反映课程枯燥无趣,难以理解,所以传统的机械振动教学模式效果不佳,迫切需要探索新的教学模式。
机械振动课程中涉及大量的公式推导,如果纯粹是教师和学生自己推导,会浪费大量的时间,也打击学生的积极性和主动性。以求解固有频率和主振型为例,主要是利用线性代数中的求解特征值和特征向量知识。此时,MATLAB 软件因其强大的计算功能,可用于辅助计算。此种融合MATLAB 软件的混合教学模式既可以将学生从枯燥乏味的公式推导中解脱出来,还可以提高计算的准确性,激发学生的科研兴趣。学生熟练掌握MATLAB 软件后,只需要掌握基本原理和求解方法,耗时耗力的求解过程通过辅助软件进行,学生可以对知识进行灵活运用并拓展思维,有更多的精力和兴趣放在重点、难点知识上,在实践中理解理论知识,在融汇理论知识的基础上再进行实践应用,实现“实践—理论—实践”的飞跃[1],将理论和实践融会贯通,做到学以致用。杨帆[2]利用MATLAB 软件对简谐波进行合成,利用软件的可视化功能将抽象复杂的振动知识呈现出来。吕书峰等[3]利用MATLAB 软件分别求解单自由度系统线性振动和非线性振动的幅频特性曲线。
常年的学习过程中,学生理论知识水平掌握很扎实,但是也仅限于理论学习,在面对工程应用时往往会力不从心、无从下手,这不仅打击他们学习的积极性,也会让他们产生迷茫感。适当地混合教学模式可以充分调动学生的积极性,培养学生的创造性思维,寓教于乐,使学生主动探索书本上的知识,而不是被动接受教师的灌输。
MATLAB 软件是1982 年美国MathWorks 公司开发的一款高性能数值计算和可视化软件,MATLAB软件编程计算与人类进行计算的思路完全一致,无需专业的编程语言基础,比其他高级语言更容易掌握,在工科专业中广泛使用。以下是MATLAB 软件一些常用的功能。
MATLAB 软件中函数非常全面,还有专门的Toolbox 工具箱,可以快速准确地解决复杂的数学计算,常见的案例为MATLAB 软件在线性代数以及高等数学中的应用,例如快速求解矩阵的秩、行列式、特征值以及特征向量等。针对计算量非常大的情况,MATLAB 计算机辅助软件的优势就显而易见,对于庞大的矩阵运算,计算机几秒就可以准确计算出结果。
MATLAB 软件的一个重要优势在于数据可视化[4],工科专业中经常会遇到函数,有些函数过于抽象,难以直观想象。通过MATLAB 软件的绘图功能,简单的语句就可以将抽象函数具体化,因此在教学、科研中广泛应用,例如最常用的二维图形、三维图形以及隐函数图形的绘制。应用最为广泛的二维曲线绘图函数为plot 函数。将二维曲线绘图函数plot 扩展到三维空间,可以利用plot3 函数绘制三维曲线。空间曲面是高等数学课程中常见的内容,也是比较抽象的内容,很难想象出来,此处可以利用MATLAB 软件进行绘制。常用的绘制三维曲面的函数为surf 函数和mesh 函数,其中surf 函数用来绘制三维曲面图,mesh函数用来绘制三维网格图。此外还有很多绘制三维图的函数,例如waterfall函数、contour3 函数、stem3 函数、bar3 函数等。
利用MATLAB 软件进行建模或仿真十分便利,例如Simulink 系统,可以用来对各种动态系统的交互环境进行建模和仿真。此外,MATLAB 软件的应用使得之前需要进行简化假设的随机因素、非线性因素等可以考虑在内,因此求解范围更广,准确性更高。在MATLAB 软件中直接进行简单编程也可以对方程进行数值仿真,例如高维非线性常微分方程的解基本难以求得,此时可以利用不同的算法进行数值仿真,通过仿真分析可以得出系统的响应曲线等等,从而对工程实践进行指导,将数学知识与工程应用进行有效结合。
按照自由度进行分类,振动系统可以分为单自由度系统、多自由度系统和连续体系统(无限自由度系统)。首先以多自由度系统—弹簧质量块系统为例,其次以连续体系统—薄板结构为例,引入MATLAB 辅助教学软件,分别求解固有振动特性,用实例来探索混合教学模式的便利和优势。
以一个三自由度的弹簧质量块系统为例[5],如图1 所示,其中k1=3k,k2=2k,k3=k,m1=2m,m2=1.5m,m3=m,假设k=m=1,求系统的固有频率和主振型。求解过程如下:
图1 弹簧质量块系统示意图
首先取x1,x2和x3为广义坐标,则三自由度系统的质量矩阵和刚度矩阵可以求解为:
系统自由振动的微分方程表示如下:
采用MATLAB 软件进行求解,求解结果如图2
图2 MATLAB 软件运行结果
所示,具体求解程序如下:
clear;
M = [2 0 0; 0 1.5 0; 0 0 1]; % 质量矩阵
K = [5 -2 0; -2 3 -1; 0 -1 1]; % 刚度矩阵
[PPP,lamuda] = eig(K,M); % 求解特征值和特征向量
np = sort(diag(lamuda)); % 求解出的特征值从小到大进行排序
frequency = sqrt(np) % 开根号得出固有频率
for i = 1:1:3
Modeshape(:,i) = PPP(:,i); % 前三阶振型
end
% 规定每一阶主振型中最大的一个坐标幅值为1
f1 = 1/Modeshape(3,1);
Mode1 = f1 * Modeshape(:,1) % 第一阶主振型
f2 = 1/Modeshape(3,2);
Mode2 = f2 * Modeshape(:,2) % 第二阶主振型
f3 = 1/Modeshape(3,3);
Mode3 = f3 * Modeshape(:,3) % 第三阶主振型
其中%后面内容是为方便理解添加的注释,此部分内容在运行程序时不执行。首先求解三自由度系统的质量矩阵M和刚度矩阵K,利用eig函数求解特征值和特征向量,利用diag 函数得到对角线上的广义特征值,再利用sort 函数进行排序,最后通过sqrt 函数开平方得到固有频率。前面程序可以求解出相应的特征向量,假设每一阶主振型中第三个元素为1,需要同时对前面的特征向量进行同比放大或缩小,也就需要引入系数f1、f2、f3,从而得到每一阶主振型Mode1、Mode2 和Mode3。
运行结果如图2 所示。
运用上述MATLAB 软件进行求解,只需要写出多自由度系统的质量矩阵M和刚度矩阵K,即可简单求解出固有频率和主振型。课程教学中,要求学生掌握基本的MATLAB 编程技能,使用此计算机辅助软件对机械振动课程进行计算,还可以增加系统难度,锻炼学生举一反三的能力以及提升编程能力。此处只是一个简单的三自由度系统,所以质量矩阵和刚度矩阵都是三阶方阵,学生自己进行手动计算也可以很快得出结果。但是对于实际工程需求或者科研需求,系统的自由度往往很多,那么K和M就是高阶方阵,计算过程很复杂,计算结果也容易出现错误,对于学生而言,手动推导是很头疼的一件事,此时MATLAB 软件的优势显而易见,学生只需要掌握计算方法和简单的编程原理就可以准确求解,这对于解决学生面临的实际工况或者激发学生科研兴趣均有极大的帮助,也是探索混合教学模式的目的所在。针对手动难以求解的问题进行案例介绍,下面以一个连续体系统为例,探索MATLAB辅助计算机软件的优势,并采用绘图功能生动形象地向学生展示理论基础对应的工程应用。
工程中常见的结构为连续体结构,例如梁、板、壳等结构,其固有频率和模态振型也备受关注。求解过程比多自由度系统复杂很多,没法直接列出质量矩阵和刚度矩阵。以板结构为例,简单介绍一种求解方法,需要利用一阶剪切变形理论对其进行动力学建模,分别推导出结构的动能和势能表达式,利用瑞利—里茨法求解固有频率和模态振型。连续体系统考虑为无限自由度系统,实际求解过程中可以发现考虑前五阶或六阶模态就可以收敛,一阶剪切变形理论中有五个变量,再考虑前五阶模态,计算量十分庞大,此过程如果手动推导难以实现,学生不仅耗时耗力,还很难保证结果的准确性。此时采用MATLAB 软件进行计算非常便利,既可以保证计算推导的准确性,又能显著提高效率,是科研工作中经常采用的方法。
以一块长度为a=300 mm,宽度为b=300 mm,厚度为h=3 mm 的平板为例,如图3 所示,板的边界条件是悬臂边界条件。假设材料属性如下:杨氏模量为,密度为,泊松比为μ=3.0,利用MATLAB 软件求解平板结构前五阶无量纲固有频率,与Gu 等[6]结果进行对比,如表1 所示,本文采用MATLAB 软件求解得到的结果与参考文献吻合得很好。
表1 平板结构前五阶无量纲固有频率对比
图3 平板结构示意图
工程中除了常用的固有频率,模态也十分关键。通过模态分析可以了解结构各阶模态的主要特性,进而预测结构的实际振动响应。因此,模态分析是进行结构设计和故障诊断所采用的重要方法之一。利用MATLAB软件求解上述平板结构的模态振型图,如表2 所示。利用软件的绘图功能和可视化功能向学生生动地展示平板的振动形式。传统的课程教学中教师的讲解很枯燥,学生也难以直观想象平板究竟会出现何种振动形式,甚至于很难理解何为模态。但是采用混合教学模式,可以清晰地向学生展示出各阶模态图,由表中可以看出第一阶模态振型为一阶弯曲模态(First Bending mode,1B),第二阶模态振型为一阶扭转模态(First Torsional mode,1T),第三阶模态振型为一阶边缘弯曲模态(First Edgewise Bending mode,1EB),第四阶模态振型为一阶弦向弯曲模态(First Chordwise Bending mode,1CB),第五阶模态振型为二阶扭转模态(Second Torsional mode,2T)[7]。单纯听教师在课堂上对固有振动特性相关知识进行讲解,对于没有工程背景或立体感比较差的学生来说很难理解,也会导致对本课程逐渐产生抵触和厌学心理。然而对照表2,学生可以清晰地看出平板结构在悬臂边界条件下的各阶模态形式,也会形成一个立体的认识,甚至可以举一反三,自己动手对不同边界条件或者结构尺寸下平板结构的模态振型进行求解,极大地调动学生学习的积极性和探索心理,这也是大学或者研究生期间课堂教学的主要目的。
以求解多自由度系统和连续体系统的固有振动特性为案例,将MATLAB 辅助软件融入机械振动课堂,探索混合教学模式的实用性和便捷性。在引导学生掌握固有振动特性含义的过程中,通过计算机仿真软件生动直观地向学生进行展示,这对于学生的理解和领悟有着极大的帮助。熟练掌握解决振动相关知识,对于很多工科专业学生来说至关重要,是学生解决工程实际所需的基本技能,也是后续进行科研工作的基础。此外,将MATLAB 软件融入实践教学中,有助于缓解学生对于枯燥公式推导的抵触心理,调动学生的课堂参与度并激发学习积极性,使学生产生浓厚的编程兴趣。在机械振动课程教学中,教师多鼓励学生对相关知识进行MATLAB 编程,培养学生的编程能力,并锻炼学生进行自主学习,利用软件编程来辅助解决机械振动相关知识,达到培养学生实践能力和科研兴趣的目的。