多孔弹性材料中传播的膨胀波方法(Matlab代码实现)

简介: 多孔弹性材料中传播的膨胀波方法(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥



🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。



⛳ 座右铭:行百里者,半于九十。


📋 📋 📋 本文目录如下: 🎁 🎁 🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

膨胀波是流体力学的基本概念之一,指流体中扰动区与未扰动区的分界面,流体通过此界面会压力降低。膨胀波问题中一个典型例子是超音速气流绕凸角的定常流动,这种流动称为普朗特-迈耶尔流动。在这种流动中,气流逐渐从一个方向转到另一个方向,同时不断加速。


📚2 运行结果


861ff985c5e59ca8bb56f418e2f2fc72.png


91f0d024e11830702821d0c1886f888f.png


部分代码:

%%
clear
%% inputs
freq=10^3;%*(2.^([-20:20]/3)); %frequency
%% setup domain and mesh
domain.dim=[0.05 0.025]; %dimensions of domain
domain.off=[0 0]; %offset of domain
domain.fce=[1 2 3 4]; %face ids (for boundary conditions) on [-x +x -y +y]
nnd=domain.dim./0.0025+1; %number of nodes in each direction
mesh=blockmesh(nnd,domain.dim,domain.off,domain.fce);
%% loop for frequency
for f=1:length(freq)
fprintf(['computing frequency ',num2str(f),' of ',num2str(length(freq)),' ... \n']);
%% setup boundary conditions
addpath('MESH')
bcs=initbcs(mesh.nodes,mesh.elems,mesh.faces,8);
bcs=addbcface(bcs,1,1,5);
bcs=addbcface(bcs,1,2,6);
bcs=addbcface(bcs,1,3,7);
bcs=addbcface(bcs,1,4,8);
bcs=addbcface(bcs,1,1,9);
% bcs=addbcface(bcs,1,2,10);
bcs=addbcface(bcs,1,3,11);
bcs=addbcface(bcs,1,4,12);
bcs.type{1}(:)=2;
bcs.coef{1}(bcs.face{1}==1,5)=1; %face 1
bcs.coef{1}(bcs.face{1}==2,1)=1; %face 2
bcs.coef{1}(bcs.face{1}==3,2)=1; %face 3
bcs.coef{1}(bcs.face{1}==4,2)=1; %face 4
bcs.coef{1}(bcs.face{1}==5,6)=1; %face 5
bcs.coef{1}(bcs.face{1}==6,3)=1; %face 6
bcs.coef{1}(bcs.face{1}==7,4)=1; %face 7
bcs.coef{1}(bcs.face{1}==8,4)=1; %face 8
bcs.coef{1}(bcs.face{1}==9,8)=1; bcs.rhds{1}(bcs.face{1}==9)=1; %face 9
% bcs.coef{1}(bcs.face{1}==10,1)=1; %face 10
bcs.coef{1}(bcs.face{1}==11,6)=1; %face 11
bcs.coef{1}(bcs.face{1}==12,6)=1; %face 12
%% setup physics
addpath('PLANES')
air=air_properties_generic;
medium=4003;
PEM.name_mat=['Mat_porous_' num2str(medium-1000*floor(medium/1000))];
PEM.typ_mat=floor(medium/1000);
eval(['PEM=Mat_porous_' num2str(medium-1000*floor(medium/1000)),'(PEM);'])
PEM=properties_JCA(PEM,air,freq(f));
PEM=properties_PEM(PEM,air,freq(f));
physics=PEM;
%% assemble
[stiff,force,err,tol,condH]=assemble(mesh,bcs,physics,freq(f));
%% solve
fprintf('solving ... \n');
operationtime=cputime;
fprintf(' solving directly ... ');
q=full(stiff\force);
fprintf('done\n');
%% postprocess
nnds=mesh.nnds;
soln.usx(:,f)=q((1:nnds)+nnds*0);
soln.usy(:,f)=q((1:nnds)+nnds*1);
soln.utx(:,f)=q((1:nnds)+nnds*2);
soln.uty(:,f)=q((1:nnds)+nnds*3);
soln.sxx(:,f)=q((1:nnds)+nnds*4);
soln.sxy(:,f)=q((1:nnds)+nnds*5);
soln.syy(:,f)=q((1:nnds)+nnds*6);
soln.p(:,f)=q((1:nnds)+nnds*7);
% soln.cond(:,f)=condest(stiff);
us=mean(reshape(soln.usx(:,f),nnd(1),nnd(2)),2);
ut=mean(reshape(soln.utx(:,f),nnd(1),nnd(2)),2);
s=mean(reshape(soln.sxx(:,f),nnd(1),nnd(2)),2);
p=mean(reshape(soln.p(:,f),nnd(1),nnd(2)),2);
Z=p(1)/ut(1);
R=(Z-air.rho*air.c)/(Z+air.rho*air.c);
alpha(:,f)=1-abs(R)^2;


🎉3 参考文献

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

[1]刘占芳,严波,唐录成.饱和多孔弹性材料中加速度波的传播[J].重庆大学学报(自然科学版),1998(02):9-17.


🌈4 Matlab代码实现

相关文章
|
8月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
8天前
|
算法 Serverless
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
253 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
151 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
|
5月前
|
计算机视觉
【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
基于灰度矩的亚像素边缘检测方法,包括理论基础和MATLAB实现,通过计算图像的灰度矩来精确定位边缘位置,并提供了详细的MATLAB代码和实验结果图。
147 6
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
123 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
5月前
|
算法 数据安全/隐私保护
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
110 0
|
6月前
|
算法 vr&ar
基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法
```markdown - MATLAB2022a中比较SG与RLS自适应波束成形算法。核心程序实现阵列信号处理,强化期望信号,抑制干扰。RLS以其高效计算权重,而SG则以简单和低计算复杂度著称。[12345] [6666666666] [777777] ```
|
8月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。