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

简介: 非线性质量弹簧阻尼器的神经网络仿真研究(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仿真实现

相关文章
|
1月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
105 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
1月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
79 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6天前
|
机器学习/深度学习 算法
基于小波神经网络的数据分类算法matlab仿真
该程序基于小波神经网络实现数据分类,输入为5个特征值,输出为“是”或“否”。使用MATLAB 2022a版本,50组数据训练,30组数据验证。通过小波函数捕捉数据局部特征,提高分类性能。训练误差和识别结果通过图表展示。
|
2月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络的步态识别matlab仿真,数据库采用CASIA库
**核心程序**: 完整版代码附中文注释,确保清晰理解。 **理论概述**: 利用CNN从视频中学习步态时空特征。 **系统框架**: 1. 数据预处理 2. CNN特征提取 3. 构建CNN模型 4. 训练与优化 5. 识别测试 **CNN原理**: 卷积、池化、激活功能强大特征学习。 **CASIA数据库**: 高质量数据集促进模型鲁棒性。 **结论**: CNN驱动的步态识别展现高精度,潜力巨大,适用于监控和安全领域。
|
1月前
|
存储
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
31 1
|
1月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
62 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
1月前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MQAM调制识别matlab仿真
**理论**: 利用CNN自动识别MQAM调制信号,通过学习星座图特征区分16QAM, 64QAM等。CNN从原始数据提取高级特征,优于传统方法。 - **CNN结构**: 自动特征学习机制,适配多种MQAM类型。 - **优化**: 损失函数指导网络参数调整,提升识别准确度。 - **流程**: 大量样本训练+独立测试评估,确保模型泛化能力。 - **展望**: CNN强化无线通信信号处理,未来应用前景广阔。
|
1月前
|
自然语言处理
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
27 0
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于CNN卷积神经网络的MPSK调制识别matlab仿真
本项目展示一种基于CNN的MPSK调制识别算法,可在Matlab 2022a上运行。该算法能自动区分BPSK、QPSK及8PSK信号,利用卷积层捕捉相位特征并通过全连接层分类。训练过程涉及调整网络权重以最小化预测误差,最终实现对未知信号的有效识别。附带完整代码与说明视频。