非线性质量弹簧阻尼器的神经网络仿真研究(Matlab代码&Simulink仿真实现)

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码、Simulink仿真实现](#🌈4 Matlab代码、Simulink仿真实现)


💥1 概述

非线性质量弹簧阻尼器(Nonlinear Mass-Spring-Damper,NMSD)是一种常见的振动控制装置,广泛应用于工程结构的减震和振动控制中。为了进行NMSD的神经网络仿真研究,以下步骤进行:

  1. 数据收集:收集NMSD系统的输入和输出数据。输入可以是外部激励力或加速度,输出可以是系统的位移、速度或加速度响应。

  2. 数据预处理:对收集到的数据进行预处理,包括数据清洗、滤波、降采样等。确保数据的质量和准确性。

  3. 神经网络模型选择:根据仿真的目标和问题特点,选择合适的神经网络模型。常用的模型包括多层感知机(Multi-Layer Perceptron,MLP)、卷积神经网络(Convolutional Neural Network,CNN)等。

  4. 数据划分:将数据集划分为训练集、验证集和测试集。通常采用交叉验证的方法,确保模型的泛化能力。

  5. 网络训练:使用训练集对选定的神经网络模型进行训练。可以采用梯度下降法等优化算法来最小化损失函数,调整网络的权重和参数。

  6. 模型评估:使用验证集评估训练得到的模型的性能,包括准确度、误差等指标。如果需要改进模型,可以通过调整网络结构、超参数等来优化模型。

  7. 模型测试:使用测试集对优化后的模型进行测试,评估其在未见过的数据上的性能表现。可以比较模型的预测结果和实际观测值,分析模型的准确度和可靠性。

在进行非线性质量弹簧阻尼器神经网络仿真研究时,需要充分理解NMSD系统的原理和特性,并对神经网络的训练过程和参数调整有一定的了解。同时,根据具体问题的需求,可以进行更加深入和复杂的模型设计与研究。

📚 2 运行结果

主函数代码:

function\[\]=main()

close all

clear all

clc

%Call network creating functions

Bnet=NNdamper();

Snet=NNspring();

close all

%Time

timestep=.1;

t=0:timestep:5;

st=size(t,2);

%Choice of Forcing Function

F=2*sin(2*t).*exp(-t/2);

for i=floor(st/2):st

F(1,i)=0;

end

%F=zeros(size(t));

%plot(t,F)

%size init.

pos=zeros(size(t));

vel=pos;

B=pos;

K=pos;

D=pos;

pdot_real=pos;

p_real=pos;

pos_real=pos;

vel_real=pos;

p=pos;

pdot=pos;

%I.C's!

pos(1)=0;%redundant but clear, ok?redundant but clear, ok?

vel(1)=0;

pos_real(1)=pos(1);

vel_real(1)=vel(1);

mass=5;%tons!

p(1)=vel(1)*mass;

p_real=p(1);

K0=sim(Snet,0);% In order to cancel(reduce) steady state error due to neural nets.

B0=sim(Bnet,0);

for i=1:size(t,2)-1;

D(i)=Dtanal(i);

% D(i)=0;

K(i)=sim(Snet,pos(i));

B(i)=sim(Bnet,vel(i));

pdot(i+1)=F(1,i)+D(i)-K(i)-B(i)+K0+B0;

%Momentum integrator

p(i+1)=p(i)+pdot(i+1)*timestep;

vel(i+1)=p(i)/mass;

%Vel integrator

pos(i+1)=pos(i)+vel(i+1)*timestep;

end

%Real solution

for i=1:size(t,2)-1;

pdot_real(i+1)=F(1,i)+D(i)-Fxanal(pos_real(i))-Bvanal(vel_real(i));

%Momentum integrator

p_real(i+1)=p_real(i)+pdot_real(i+1)*timestep;

vel_real(i+1)=p_real(i)/mass;

%Vel integrator

pos_real(i+1)=pos_real(i)+vel_real(i+1)*timestep;

end

%-------------------------------------------------

figure(2)

subplot(3,1,3);

plot(t,pdot/mass,'+',t,pdot_real/mass);

legend('acc','acc real');

subplot(3,1,2);

plot(t,vel,'+',t,vel_real);

legend('v','v real');

subplot(3,1,1);

plot(t,pos,'+',t,pos_real);

legend('p','p real');

%-------------------------------------------------

figure(3)

subplot(4,1,1);

plot(t,K,'+',t,Fxanal(pos));

legend('Spring Force','Spring Force real for NN pos');

subplot(4,1,2);

plot(t,B,t,Bvanal(vel));

legend('Damper force','Damper force real for NN vel')

subplot(4,1,3);

plot(t,p,t,p_real);

legend('p','p real')

subplot(4,1,4);

plot(t,pdot,'+',t,pdot_real);

legend('pdot','pdot_real');

figure(4)

a=linspace(-2,2);

subplot(1,2,1)

plot(a,sim(Snet,a),a,Fxanal(a))

legend('k nn', 'k real')

subplot(1,2,2)

plot(a,sim(Bnet,a),a,Bvanal(a))

legend('B nn', 'B real')

figure(5)

plot(t,D)

legend('Disturbance')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

1谭蔚,贾占斌,聂清德.弹簧阻尼器在塔器防振中的应用J.化学工程,2013,41(12):16-19+34.

2周瑜,李敬豪.基于自适应弹簧阻尼器的变频凝泵低频共振治理方法研究J.科技风,2023(07):58-61.DOI:10.19392/j.cnki.1671-7341.202307019.

3梁红玉,屈铁军.基于弹簧阻尼器的风机桥架的减振设计J.北方工业大学学报,2011,23(01):84-88.

🌈4 Matlab代码、Simulink仿真实现

相关推荐
我叫唧唧波15 分钟前
Python+AI 全栈学习笔记
人工智能·python·学习
哈哈,柳暗花明1 小时前
人工智能专业术语详解(E)
人工智能·专业术语
AI极客菌1 小时前
AI绘画工具中,为什么专业玩家爱用Stable Diffusion,普通玩家却喜欢Midjourney?
大数据·人工智能·ai·ai作画·stable diffusion·aigc·midjourney
人工智能AI技术1 小时前
FLUX.2[klein]开源!小香蕉平替,本地部署AI绘画的极简方案
人工智能·ai作画·aigc
腾视科技AI1 小时前
腾视科技大模型一体机解决方案:低成本私有化落地,重塑行业智能应用新格局
大数据·人工智能·科技·ai·边缘计算·算力·ai算力
pusheng20251 小时前
IFSJ全英文专访:中国创新力量重塑先进气体感知技术,赋能全球关键基础设施安全
前端·网络·人工智能·物联网·安全
魔点科技1 小时前
魔点门禁门常开计划解决早高峰排队、忘落锁、多门手动调模式痛点
人工智能·智能硬件·智能门禁·考勤门禁·魔点科技
程序员大辉1 小时前
ComfyUI整合包V8中文版 | 2026年3月最新版,开箱即用,零门槛跑AI绘画和AI视频,新手进阶都能上手,附整合包
人工智能·ai作画
Hello_WOAIAI1 小时前
还在手打Prompt?这份2025最新AI绘画关键词+教程+报告资料包直接拿走
人工智能·ai作画·prompt
weikecms1 小时前
麦当劳在线下单接口
人工智能·微客云