matlab求单自由度振动方程为,单自由度振动方程与Matlab/Simulink求解

1.问题

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

引用1:质量-弹簧-阻尼系统

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

引用2:模型推导

2.运动方程

Step1: 将微分方程最高阶变量移到等式左边

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

式1

Step2: 为每一阶微分式选择状态变量,最高阶除外

2.1

math?formula=x_%7B1%7D%20%20%3D%20x

math?formula=x_%7B2%7D%20%20%3D%20x'

math?formula=x_%7B3%7D%20%20%3D%20x''

...

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

式2: 通项

2.2: 同时求导

math?formula=%5Cdot%7Bx_%7B1%7D%20%7D%20%3D%5Cdot%7Bx%7D%20

math?formula=%5Cdot%7Bx_%7B2%7D%20%7D%20%3D%5Cddot%7Bx%7D%20

2.3:整理为

math?formula=%5Cfrac%7Bdy%7D%7Bdt%7D%20形式,各阶微分式替换为状态变量

math?formula=%5Cfrac%7Bdx(1)%7D%7Bdt%7D%20%3D%20%5Cdot%7Bx%7D%20%20%3Dx_%7B2%7D%20%20

math?formula=%5Cfrac%7Bdx(2)%7D%7Bdt%7D%20%3D%20%5Cddot%7Bx%7D%20%3D%5Cfrac%7B1%7D%7Bm%7D%20*%20(%5Cmu%20-c*x(2)-k*x(1))

3.1 Matlab 求解代码与结果

clear;clc;

tic

options = odeset('reltol',1e-13);

tspan = [0,80];

[tspan,x]=ode45(@vibration,tspan,[1 1],options);

toc

figure

plot(tspan,x(:,1),tspan,x(:,2));

legend('Position','Acceleration')

%Time Domain

fig = figure('Name','Position');

plot(x(:,1))

%Purpose Function

function dxdt = vibration(~ ,x)

%for t= 0:0.01:40

%f = cos(10*t);

f=0;

c = 0.3;

k = 5;

m = 1;

dxdt = [0;0];

dxdt(1) = x(2);

dxdt(2) =(1/m)*( f - c*x(2) - k*x(1));

end

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图1: 加速度与位移

3.2 Simulink程序图与结果

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图2:初值x(0) = 0, x(1) = 1, m = 1, k = 4, c = 0.1

Scope显示为:

d12e36fab174?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值