質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

1回答

2499閲覧

matlabでの球面状トランスデューサが作る音場についてのシミュレーション

sasataka

総合スコア11

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2017/09/19 04:45

###前提・実現したいこと
matlabでの球面状トランスデューサが作る音場についてのシミュレーションについての課題が出されましたがうまくいきません
(x,y)平面に音圧Pの音場を下記の3次元のグラフのようにしなければならないのですが私の作ったものではトゲトゲのものになってしまいます。どこを直せばいいか教えてください。
式: P=(ρAee^jωt/2π)Σ(e^-jkri/ri)dSi
それぞれの値はコードに記入しているものと同様です
ここでΣ以降のri,dSiはΣで和を取ります
イメージ説明
###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード

clear all;
close all;

h=0.2;
rho=1000;
Ae=1;
t=1;
v=1500;
omega=2pi1000000;
k=omega/v;
r=1;

x_start=-3;
x_end=3;
num_div=50;
delta_x=(x_end-x_start)/num_div;
x=x_start:delta_x:x_end;
y_start=-3;
y_end=3;
delta_y=(y_end-y_start)/num_div;
y=y_start:delta_y:y_end;
[X,Y]=meshgrid(x,y);

P1=0;
for i=0:pi/120:pi/6
for j=0:pi/10:2*pi

a=i;
b=j;

x1=rcos(b)sin(a);
y1=r
sin(b)sin(a);
z1=r
cos(a);
deltaS=r^2
sin(a)(pi/100)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
P=(rhoAe.exp(1iomegat).deltaS)./(2pi.R.exp(1ikR));

P1=P1+P;

end

end

P1=abs(P1);
mesh(X,Y,P1)

grid on
###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2017/09/21 06:37 編集

h=0.2、r=1ということは場所によってはR=0になって微小部分dSが出す波が発散すると思うんですが、パラメータあってます?
sasataka

2017/09/21 07:06

h=0で行い、x,yのパラメータの範囲を見直したところうまくいきました。ありがとうございました。
guest

回答1

0

clear all;
close all;

h=0;
rho=1000;
Ae=0.001;
t=1;
v=1500;
omega=2pi1000000;
k=omega/v;
r=0.1;

x_start=-0.003;
x_end=0.003;
num_div=50;
delta_x=(x_end-x_start)/num_div;
x=x_start:delta_x:x_end;
y_start=-0.003;
y_end=0.003;
delta_y=(y_end-y_start)/num_div;
y=y_start:delta_y:y_end;
[X,Y]=meshgrid(x,y);

P1=0;

for i=0:pi/60:pi/3
for j=0:pi/10:(2*pi-pi/10)

a=i;
b=j;

x1=rcos(b)sin(a);
y1=r
sin(b)sin(a);
z1=r
cos(a);
deltaS=r^2
sin(a)(pi/60)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
P=(rhoAe.exp(1iomegat).deltaS)./(2pi.R.exp(1ikR));

P1=P1+P;

end
end

P1=abs(P1);
mesh(X,Y,P1)

grid on

で似たようなグラフは作れました

投稿2017/09/21 07:07

sasataka

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問