基于Matlab GUI 的李萨如图形实现方法的研究∗
2020-11-02卫亚博冯艳平
宋 璐 卫亚博 冯艳平
(1.陕西中医药大学医学技术学院 咸阳 712046)(2.平顶山学院 平顶山 467000)(3.郑州职业技术学院 郑州 450121)
1 引言
振动的合成,由于是研究声波、光波和电磁波合成的基础,所以它是大学物理教学中一个非常重要的内容。而两个相互垂直的简谐振动在合成的时候,振动结果是两个分振动的叠加,在不同情况下形成各种各样的李萨如图形,所以其合成的过程比一维振动复杂的多[1~3]。在传统课堂教学中,由于合成的图形较为抽象,学生很难理解李萨如图形的合成过程,需要进行随堂演示。在各种实现李萨如图形的方法中,使用最为广泛的就是利用示波器,但是对于传统的示波器来说,不仅受到显示原理的限制,很难观测到初相位变化时的李萨如图形,而且由于体积较大,非常不便于携带,所以使用起来有一定的局限性[4]。文献[5]给出了一种使用AVR 单片机实现的李萨如图形合成器的方法,合成效果良好,但是由于仪器本身的限制,不便于教师和学生随时随地的使用。文献[2]给出了一种使用Matlab程序法实现的李萨如图形合成方法,但由于对编程基础有一定的要求,所以也无法推广到没有任何编程经验的学生中去。
为此,设计了基于GUI 的Matlab 程序,不仅能够实现各种李萨如图形的仿真,用户还可根据需要任意修改参数,使系统的可操作性大大提高,除此之外,基于Matlab 程序的可移植性,可以将设计好的程序在任何一个计算机中运行,可供用户随时随地的使用,有助于提高学生对李萨如图形的理解。
2 李萨如图的形成原理
李萨如图是由两个相互垂直的简谐振动所合成的,形状取决于两个简谐振动频率和初相位之间的关系。一般情况下,合振动的轨迹不能形成稳定的图案,但若两个分振动频率成整数比,则合成振动的轨迹就为稳定的曲线,曲线的花样和分振动的频率比、初相位有关,得出的图形叫李萨如图[7~9]。假设两个相互垂直的简谐振动分别用x和y来进行表示,则:
当两个分振动的振幅和频率均相等时,合成的结果为椭圆,椭圆的形状由两振动的相位差所决定;当两个分振动的频率为任意值时,合成的结果就是不稳定且较为复杂的不闭合曲线;而当两个振动的频率为整数比时,合成的结果就为稳定的、闭合的曲线图形,称为李萨如图形[10~11]。
3 李萨如图程序和Simulink实现方法
Matlab 矩阵实验室是美国MathWorks 公司出品的商业数学软件,广泛的应用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。它以矩阵作为基本数据单位,提供了众多的工具箱,是通用的科学计算、数值仿真及数据可视化的重要工具[12~15]。
李萨如图程序实现方法,指的是利用Matlab的.m 文件编程实现李萨如图形的仿真。假设两路振动参数分别为振动1 振幅为1V,频率100Hz,初相位0°;振动2 振幅为1V,频率200Hz,初相位0°,设计的程序如下:
clear
k=2; %设定频率的比
w1=2*100*pi; %设定振动1频率为100Hz
w2=k*w1; %设定振动2频率为200Hz
t=0:0.0001:6.28;
fa=0;
A1=1; %设定振动1振幅
A2=1; %设定振动2振幅
x=A1*sin(w1*t); %定义振动1
y=A2*sin(w2*t+fa); %定义振动2
plot(x,y)
xlabel(‘x’);
ylabel(‘y’);
运行后,两个相互垂直的简谐振动的合成结果如图1所示。
图1 李萨如的程序实现
或者也可以采用Matlab 中所提供的Simulink仿真工具箱,设计一个如图2 所示的Simulink 仿真框图,分别设定两个分振动的参数,点击运行仿真按钮,即可实现不同参数情况下李萨如图形的合成。
图2 李萨如的simulink实现框图
设定参数分别为振动1 的振幅为1V,频率500Hz,初 相 位0rad;振 动2 的 振 幅 为1V,频 率300Hz,初相位0rad,点击运行仿真按钮,仿真结果如图3(a)所示;若将频率分别改为500Hz 和400Hz,合成的李萨如图形如图3(b)所示。
图3 李萨如Simulink合成结果
可以看出,当频率之比为无理数时,其合成的为不稳定且较为复杂为不闭合的曲线,而当它们的频率之比为有理数时,得到的是一闭合曲线,即为李萨如图形,与理论分析结果一致。
使用程序法或者是Simulink 仿真法都可以获得各种情况下的李萨如图形,但当需要频繁修改参数时,使用这两种方法实现仿真就会变得非常复杂,对使用者的要求提高,使得学生这样的初学者难以独立完成。所以,如果能针对此开发出通用的图形用户交互界面,用户只需输入一些参数,就可以获得各种情况下的李萨如图形,对于学生来说,将会非常有意义。
4 基于GUI李萨如图的实现方法
基于Matlab GUI的李萨如图形实现界面如图4所示,用户可以根据需要输入合适的参数,点击执行仿真按钮,即可查看不同情况下的合成结果。
图4 基于GUI的李萨如图形的实现
在设计好的GUI软件中,输入不同情况下的各个参数,点击执行仿真按钮,即可实现各种李萨如图形的仿真。假设两振动频率相同而相位差不同,具体的参数和仿真结果如图5 所示,可以看出当频率相同时,两个相互垂直的振动合成结果为一椭圆,椭圆的形状由相位差所决定,与理论分析结果一致。
图5 频率相同相位差不同的李萨如图
假设当两振动相位相同而频率不同时,具体的参数和仿真结果如图6 所示,相位不同频率也不同的情况如图7 所示。可以看出,当两个分振动的频率为任意值时,合成的结果就不稳定且较为复杂的不闭合曲线;而当两个振动的频率为整数比时,合成的结果就为稳定的、闭合的曲线图形,与程序法分析结果一致。
图6 相位为0°频率不同的李萨如图
图7 相位不同频率不同的李萨如图
从以上各种情况下的李萨如仿真结果可以看出,该系统运行稳定,相较于采用程序设计实现李萨如的方法,基于GUI 的方法具有操作简单,结果直观清晰的优点。
5 结语
采用Matlab GUI作为仿真平台,实现了不同参数情况下的李萨如图形实现方法。通过对不同情况的实验现象和仿真结果的比较,可以看出该系统运行结果与李萨如图形形成理论相符,具有响应速度快,操作简单,结果直观形象等特点,使得不具备编程能力的学生也可以独立操作。除此之外,该系统不受仪器和场地的限制,通过改变一些参数即可获得不同条件下的李萨如图形,使得理论课堂教学变得生动形象,对促进学生对振动波动的学习有积极的意义,实现了大学物理教学的现代化。