【一种新的Burton-Miller型奇异边界方法(BM-SBM)】用于声学设计灵敏度分析,2D和3D声学设计灵敏度分析的奇异边界方法研究(Matlab代码实现)

2024-01-24

???????????????? 欢迎来到本博客 ❤️❤️????????

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

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

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

2.1 2D

2.2 3D

????3 参考文献

????4 Matlab代码实现


????1 概述

Burton-Miller型奇异边界方法(BM-SBM)是一种声学设计灵敏度分析的方法,用于在声学场中计算某个设计参数对声学场性能的影响程度。这种方法结合了Burton-Miller方法和奇异边界方法,可以在2D和3D声学设计中进行应用。

Burton-Miller方法是一种用于求解边界积分方程的数值方法,它通过将边界上的物理量表示为积分形式,然后将积分转化为离散形式来近似求解。这种方法能够有效地处理复杂的边界形状和非均匀介质分布。

奇异边界方法(SBM)是一种基于奇异积分方程的数值方法,用于求解泛定问题。它将边界上的物理量表示为积分形式,并且利用奇异积分方程的特性进行近似求解。奇异边界方法在处理奇异问题和边界层问题时具有出色的表现。

BM-SBM方法将Burton-Miller方法和奇异边界方法相结合,可以在声学设计中进行灵敏度分析。它可以通过改变设计参数的数值来评估该参数对声学场性能的影响程度。这种方法在2D和3D声学设计中可以应用,可以帮助设计师优化声学系统的性能。

该方法的研究主要包括开发有效的数值算法和技术,处理复杂的边界形状和非均匀介质分布,以及提高计算效率和准确性。研究还可以探索不同的应用领域,如声学传感器设计、声学材料优化等。

综上,Burton-Miller型奇异边界方法(BM-SBM)是一种用于声学设计灵敏度分析的新方法,可以在2D和3D声学设计中应用,提供有关设计参数对声学场性能影响的评估。这种方法的研究还在不断发展,以改进计算效率和准确性,并扩展应用领域。

???? 2 运行结果

2.1 2D

2.2 3D

部分代码:

%% Parameter settings
t0 = clock;              % Time Start
n = 100;                 % Total number of soource points
m = 100;                 % The number of equal parts for design variable
a = 0.1;                 % Radius of pulsating cylinder
SS = 4*pi*a^2;
Lj = SS/n;               % The influence ranges of source point.
rho = 1.2;               % the air density
c = 341;                 % The speed of sound in air
v0=1;                    % the radial velocity
k = linspace(0.01,6,m);  % The value range of the wave number
dk = (k(end)-k(1))/(m-1);

xi = 5 ; yi = 0; zi = 0; % test point
i = sqrt(-1);


%% Analytical solution of the acoustic sensitivity with respect to the wave number
pt_exact = @(ro,k,a) i*rho*c*v0*a^2*exp(i*k.*(ro-a))./(ro.*(1-i*k*a).^2).*((1-i*k*a).^2+i*k*ro.*(1-i*k*a)+i*k*a);

%% Arrangement of Boundary Points
[nodes] = Creat_Sources(n);
xp = a.*nodes(:, 1);
yp = a.*nodes(:, 2);
zp = a.*nodes(:, 3);
n_x = -xp/a; n_y = -yp/a; n_z = -zp/a;
r=sqrt((xp-xp').^2+(yp-yp').^2+(zp-zp').^2);

%% Unknown coefficient solving process
alpha = zeros(n,m);
for j=1:m
lamda=i/(k(j)+1);
b = i*rho*k(j)*c*v0*ones(n,1) ; % boundary condition (Nuemann)

[~,F,~,H] = GFEH(k(j),r,xp,yp,zp,xp',yp',zp',n_x,n_y,n_z,n_x',n_y',n_z');
A=F+lamda*H;

[~,H0] = FH0(r,xp,yp,zp,xp',yp',zp',n_x,n_y,n_z,n_x',n_y',n_z');
[~,E0] = GE0(r,xp,yp,zp,xp',yp',zp',n_x',n_y',n_z');
E0(logical(eye(n)))=0;
Asum1 = sum(E0,2);
H0(logical(eye(n)))=0;
Asum2 = sum(H0,2);
H(logical(eye(n)))=0;
Asum3 = sum(H,2);

%Source intensity factors (SIFs)
uii=1/(4*pi)*(i*k(j)+pi^4./(25*sqrt(Lj))+(log(pi))^2/SS);
qii=1/Lj-Asum1;
qii_BM=-Asum2+k(j)^2/2*uii;

A(logical(eye(n))) = qii+lamda*qii_BM;  % Source intensity factors (SIFs)

alpha(:,j)=A\b;
end

%% Central difference method
alpha_k(:,1) = (alpha(:,2)-alpha(:,1))/dk; %(-alpha(:,3)+4*alpha(:,2)-3*alpha(:,1))/(2*dk);
alpha_k(:,2:m-1) = (alpha(:,3:m)-alpha(:,1:m-2))/(2*dk);
alpha_k(:,m) = (alpha(:,m)-alpha(:,m-1))/dk;  %(3*alpha(:,m)-4*alpha(:,m-1)+alpha(:,m-2))/(2*dk);

%% Numerical solution and exact solution
Pe=zeros(m,1);
for j = 1:m
lamda=i/(k(j)+1);

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] Koo B U .Shape design sensitivity analysis of acoustic problems using a boundary element method[J].Computers & Structures, 1997, 65(5):713-719.DOI:10.1016/S0045-7949(96)00322-7.

[2]张汝毅,王发杰,程隋福,等.振动体声学灵敏度分析的Burton-Miller奇异边界法及其MATLAB工具箱开发[J].计算机辅助工程, 2022, 31(4):1-6.

???? 4 Matlab代码 实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【一种新的Burton-Miller型奇异边界方法(BM-SBM)】用于声学设计灵敏度分析,2D和3D声学设计灵敏度分析的奇异边界方法研究(Matlab代码实现) 的相关文章

  • 如何在matlab中检查字符串中的模式?

    我想检查字符串中是否存在特定模式来执行某些操作 filename pathname uigetfile fullpath pathname filename 在我的程序中 我只会浏览图片 所有图片都以该模式命名 cam1 jpg cam1
  • 如何绘制频谱图函数的结果?

    在我的图中 我有两个轴 第一个是信号的时间序列 第二个是信号的时间序列ifft信号的 我想添加包含信号频谱图的第三个轴 我怎样才能做到这一点 Create the raw signal fs 40 t 0 1 fs 4 y1 sin 2 p
  • 从 Excel 读取字符串到 Matlab 中?

    我想从 Excel 文件中将字符串读入 Matlab ID xlsread data xlsx 1 D2 D4 D2 D4 范围内的单元格中包含字符串 当我尝试将字符串导入 Matlab 时 我得到的只是一个空列表 我能做什么来解决这个问题
  • 检测 MATLAB 帮助浏览器

    我想为大型 MATLAB 应用程序创建一些 HTML 文档 主要在 MATLAB 帮助浏览器 从 11b 开始的任何版本的 MATLAB 中 查看 这将有一些自定义 CSS 但没有什么非常复杂的 但是 我还希望在其他浏览器中可以查看相同的文
  • Matlab - 神经网络训练

    我正在努力创建一个具有反向传播的 2 层神经网络 神经网络应该从 20001x17 向量获取数据 该向量在每行中包含以下信息 前 16 个单元格包含从 0 到 15 的整数 它们充当变量 帮助我们确定在看到这些变量时要表达的 26 个字母中
  • GUI 中的 Matlab 缩放监听器

    我有一个 GUI 由 MATLAB 中的绘图和静态文本组成 我想在绘图上有一个缩放侦听器 以便我可以用放大倍率更新静态文本 无论如何 我可以做到这一点吗 脚本文件 或者您可以将其作为嵌套函数执行 无论您喜欢什么 f figure 1 z z
  • 改变眼睛图像中特定区域的颜色[Matlab]

    I am trying to change the pupil of the following image This is not a feature extraction or eye detection task I want to
  • Matlab:在类中导入函数

    我在 Matlab 中有一个类文件 我使用包规范创建了 i 目录结构 MyPkg F1 F2 F3 fun m myc m 我的班级是myc并将其插入包装中MyPkg 一个功能fun保存在子包中F3在主要的一处 我想使用函数fun在我的课堂
  • 如何在输入对话框中预设光标或选择默认答案

    如果创建一个输入对话框inputdlg和默认答案 看起来像这样 我需要哪个回调命令才能使它看起来像那样 这里缺少很多文档 这是为客户提供的一种 豪华服务 但我认为如果它很容易实现的话那就太好了 这个问题实际上已经解决了 因为我发现有一些方便
  • 如何在 Matlab 中使用变化的输入/时间相关的输入函数求解 DAE?

    我正在使用 ode15i 求解器求解 DAE 问题 我有 8 个变量和 8 个方程 系统很复杂 到目前为止唯一可用的求解器是 ode15i 我使用过该指南 http se mathworks com help symbolic set up
  • Matlab更新子图并坚持下去

    我在更新子图时遇到问题 我将我的问题归结为以下示例 win figure 1 win sub1 subplot 2 2 1 win sub2 subplot 2 2 2 win sub3 subplot 2 2 3 win sub4 sub
  • 如何去掉 Matlab 单元格中的双引号?

    我在 Matlab 中有一个单元格数组 单元格中的所有元素都表示为 something 我怎样才能创建一个数组 something 这里有两个解决方案 strrep删除所有双引号实例 同时regexprep只删除字符串开头和结尾的双引号 感
  • 如何在 MATLAB 中调整矩阵大小?

    假设我有一个1 by 12矩阵 我想将其调整为4 by 3矩阵 我怎么能这样做呢 我当前的解决方案有点丑陋 for n 1 length mat 3 out n 1 3 mat n 1 3 1 n 1 3 3 end 有一个更好的方法吗 r
  • 将 MATLAB 单元格类型转换为 C++

    我正在使用 C 转换 MATLAB 程序犰狳 http arma sourceforge net docs html syntax对于矩阵代数 我被困住了cell http blogs mathworks com loren 2006 06
  • Octave/Matlab:向向量添加新元素

    有一个向量x我必须添加一个元素 newElem 有什么区别吗 x end 1 newElem and x x newElem x end 1 newElem更稳健一些 x x newElem 仅当x是行向量 如果它是列向量x x newEl
  • 如何在不使用 MATLAB 的情况下打开 .mat 文件?

    我在Matlab中做了一个项目 现在我已经卸载了Matlab 现在 我需要一些我的项目的参考 我留下了所有 mat 文件 我正在尝试在记事本中打开它们 并且我在那里得到了 unicode 字符 我的问题很简单 如何在记事本或某些文字处理器中
  • SPMD 与 Parfor

    我对 matlab 中的并行计算很陌生 我有一个创建分类器 SVM 的函数 我想用几个数据集来测试它 我有一个 2 核工作站 所以我想并行运行测试 有人可以向我解释一下以下之间的区别 dataset array dataset1 datas
  • 在 MATLAB 中分析 wav 文件

    所以我有这个钢琴录音 wav 格式 我能够做一个FFT整体记录并识别频率 然而 根据我读过的一些文章 最好将 wav 文件分解为多个窗口 其中每个窗口都包含一个特定的音符 为此 我需要首先绘制时域信号的 功率包络 考虑音符平均能量概念 因此
  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • 在 MATLAB 中绘制圆

    我被要求找到在 MATLAB 中绘制圆的不同方法 看起来很无聊 不过我可以想出一些想法 有些可能效率低下 Method 1 ezpolar x 1 Method 2 t linspace 0 2 pi 100 plot sin t cos

随机推荐