利用Matlab绘制弹簧—阻尼动态振动模型

前言

Matlab是进行数值计算的重要工具,更是科学研究中非常强大的辅助工具,其不仅在数值计算、数据绘图、科学仿真等方面广泛应用,而且在科研中一些动态模型的绘制也可以用其实现。本文就以弹簧—阻尼振动模型为例,使用Matlab软件制作动态的弹簧—阻尼振动模型。
绘制振动模型需要了解到其组成部分,振动模型共有四部分组成:地基、弹簧、阻尼器、质量块。其中弹簧、阻尼器和质量块要实现振荡运动。一下为各组成部分使用Matlab代码实现过程。

地基模型

地基模型使用实线段表示 ,代码如下:

%绘制地基线段
hold on;
axis([-1 6 -5 10]);%设置轴坐标
plot([0 1 1 1 4 4 4 5],[0 0 1 0 0 2 0 0],'Color',[0.6,0.2,0.2],'LineWidth',2.5);
plot([3.4 3.4 4.6 4.6],[3.5 2 2 3.5],'Color',[0.6,0.6,0.2],'LineWidth',1.5);

弹簧模型

弹簧模型使用折线段表示,代码如下:

%绘制弹簧
H=1:0.2:6;
num=length(H);
x=mod(1:num,2)*2;
x(1)=1;
x(end-3:end)=1;
K=plot(x,H);

阻尼器模型

代码实现如下:

%绘制阻尼器
cx=[4 4 3.45 4.55];
cy=[6 2.75 2.75 2.75];
C=plot(cx,cy,'Color',[0.6,0.6,0.2],'LineWidth',2);

质量块模型

质量块使用长为5,宽为2的矩形表示,代码如下:

%绘制质量块
mx=[0 5 5 0 0];
my=[6 6 8 8 6];
M=fill(mx,my,[0.9 0.9 0.9]);%填充颜色

模型动态实现

弹簧—阻尼振动模型中需要运动的部分是弹簧、阻尼器和质量块,振动的往复周期实现使用正弦函数sin(pi*T)实现,T为振动时间,代码如下:

%实现动态画面
T=0;
td=[];
yd=[];
while T<20
    pause(0.2);
    Kd=1-sin(pi*T)/12;%振荡循环
    Y=1+(H-1)*Kd;%弹簧下端固定
    yd=[yd,Y(end)];
    set(K,'ydata',Y);
    set(C,'ydata',cy-cy(1)+Y(end));
    set(M,'ydata',my-my(1)+Y(end));
    T=T+0.1;
end

结果显示

请添加图片描述
以上为本文的全部内容,更多关于matlab方面的知识,可多多讨论。

  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值