APP下载

基于Matlab GUI 的李萨如图形实现方法的研究∗

2020-11-02卫亚博冯艳平

计算机与数字工程 2020年9期
关键词:振幅图形振动

宋 璐 卫亚博 冯艳平

(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作为仿真平台,实现了不同参数情况下的李萨如图形实现方法。通过对不同情况的实验现象和仿真结果的比较,可以看出该系统运行结果与李萨如图形形成理论相符,具有响应速度快,操作简单,结果直观形象等特点,使得不具备编程能力的学生也可以独立操作。除此之外,该系统不受仪器和场地的限制,通过改变一些参数即可获得不同条件下的李萨如图形,使得理论课堂教学变得生动形象,对促进学生对振动波动的学习有积极的意义,实现了大学物理教学的现代化。

猜你喜欢

振幅图形振动
振动的思考
振动与频率
中立型Emden-Fowler微分方程的振动性
十大涨跌幅、换手、振幅、资金流向
十大涨跌幅、换手、振幅、资金流向
分图形
沪市十大振幅
找图形
图形变变变
图形配对