
Hello, i need a help about the plotting of reflection and ttansmission coefficient and to plot a dispersion function as a function of frequency or incident angle by using SMM
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I want to plot by using stiffness matrix method of Rokhlin and wang
0 Kommentare
Antworten (1)
Prathamesh
am 7 Mär. 2025
Hi @MANYINGA MARC, I understand that you need help in plotting of reflection and transmission coefficient and to plot a dispersion fucntion as a function of frequency or incident angle by using SMM.
I have done some modifications in the code file you provided. Below is the code after modification
%% Step 1: Define the Units %%%
Pa = 1;
GPa = 1e9 * Pa;
meters = 1;
micrometers = 1e-6 * meters;
mm = 1e-3 * meters;
deg = pi / 180;
cf = 1400; % speed of sound in fluid
%%% Parameters %%%
n = 30;
H = 3.434 * mm;
h = H / 30;
rho = 1500;
rho_f = 1000;
c11 = 12.1 * GPa; c12 = 5.5 * GPa; c44 = 6.95 * GPa; c22 = 12.3 * GPa;
c13 = 5.9 * GPa; c55 = 6.21 * GPa; c33 = 132 * GPa; c23 = 6.9 * GPa; c66 = 3.32 * GPa;
n11 = 0.043 * GPa; n22 = 0.037 * GPa; n33 = 0.4 * GPa; n12 = 0.021 * GPa;
n23 = 0.001 * GPa; n13 = 0.016 * GPa; n44 = 0.02 * GPa; n55 = 0.015 * GPa; n66 = 0.009 * GPa;
f = 2.242 * 1e6;
w = 2 * pi * f;
k = w / cf;
theta = (-90:1:90) * deg; % Convert degrees to radians
Tx = zeros(size(theta));
Rx = zeros(size(theta));
Dx = zeros(size(theta));
c = cos(theta);
s = sin(theta);
for q = 1:length(theta)
T = diag([c55 - 1i * w * n55, c44 - 1i * w * n44, c33 - 1i * w * n33]);
R = zeros(3, 3);
R(1,3) = (-c13 + 1i * w * n13) * c(q);
R(2,3) = (-c23 + 1i * w * n23) * c(q);
R(3,1) = (c55 - 1i * w * n55) * c(q);
R(3,2) = (c44 - 1i * w * n44) * s(q);
Q = zeros(3, 3);
Q(1,1) = (c11 - 1i * w * n11) * (c(q))^2 - rho * (c(q))^2 + (c66 - 1i * w * n66) * (s(q))^2;
Q(1,2) = (c12 + c66 - 1i * w * (n12 + n66)) * s(q) * c(q);
Q(2,1) = (c12 + c66 - 1i * w * (n12 + n66)) * s(q) * c(q);
Q(2,2) = (c66 - 1i * w * n66) * (c(q))^2 - rho * (c(q))^2 + (c22 - 1i * w * n22) * (s(q))^2;
Q(3,3) = (-c55 + 1i * w * n55) * (c(q))^2 - rho * (c(q))^2 + (-c44 + 1i * w * n44) * (s(q))^2;
N = [(T^-1) * R', T^-1; -Q - R * (T^-1) * R', -R * (T^-1)];
[V, D] = eig(N);
A1 = V(1:3, 1:3);
A2 = V(1:3, 4:6);
B1 = V(4:6, 1:3);
B2 = V(4:6, 4:6);
EXP = diag([exp(D(1,1) * k * h), exp(D(6,6) * k * h), exp(D(4,4) * k * h)]);
KJ = [B2, B1 * EXP; B2 * EXP, B1] * ([A2, A1 * EXP; A2 * EXP, A1])^-1;
KJ11 = KJ(1:3, 1:3);
KJ12 = KJ(1:3, 4:6);
KJ21 = KJ(4:6, 1:3);
KJ22 = KJ(4:6, 4:6);
% Redefine KB11, KB12, KB21, KB22 for the iterative process
KB11 = KJ11;
KB12 = KJ12;
KB21 = KJ21;
KB22 = KJ22;
for ii = 1:10
KA11 = KJ11;
KA12 = KJ12;
KA21 = KJ21;
KA22 = KJ22;
kg = [KA11 + KA12 * ((KB11 - KA22)^-1) * KA21, -KA12 * ((KB11 - KA22)^-1) * KB12;
KB21 * ((KB11 - KA22)^-1) * KA21, KB22 - KB21 * ((KB11 - KA22)^-1) * KB12];
KJ11 = kg(1:3, 1:3);
KJ12 = kg(1:3, 4:6);
KJ21 = kg(4:6, 1:3);
KJ22 = kg(4:6, 4:6);
end
K = [KJ11, KJ12; KJ21, KJ22];
S = K^-1;
lamda = c(q) / (1i * w * rho_f * cf);
T = (2 * lamda * S(6,3)) / ((S(3,3) + lamda) * (S(6,6) - lamda) - S(6,3) * S(3,6));
Tx(q) = T;
R = (-(S(1,1) - lamda) * (S(2,2) - lamda) + S(1,2) * S(2,1)) / ((S(2,2) - lamda) * (S(1,1) + lamda) - S(1,2) * S(2,1));
Rx(q) = R;
D = ((S(3,3) + lamda) * (S(6,6) - lamda) - S(6,3) * S(3,6));
Dx(q) = D;
end
figure(1)
plot(theta / deg, abs(Tx), 'r', 'linewidth', 1)
xlabel('\theta (degrees)', 'fontsize', 14)
ylabel('T (Transmission)', 'fontsize', 14)
title('Transmission Coefficient (T)', 'fontsize', 14)
set(gcf, 'color', 'white');
figure(2)
plot(theta / deg, abs(Rx), 'b', 'linewidth', 1)
xlabel('\theta (degrees)', 'fontsize', 14)
ylabel('R (Reflection)', 'fontsize', 14)
title('Reflection Coefficient (R)', 'fontsize', 14)
set(gcf, 'color', 'white');
figure(3)
plot(theta / deg, abs(Dx), 'g', 'linewidth', 1)
xlabel('\theta (degrees)', 'fontsize', 14)
ylabel('D (Dispersion)', 'fontsize', 14)
title('Dispersion Function (D)', 'fontsize', 14)
set(gcf, 'color', 'white');
Below is the screenshot of the output:

2 Kommentare
Prathamesh
am 12 Mär. 2025
@MANYINGA MARC maybe you can accept the answer this might help others as well if it helps you.
Siehe auch
Kategorien
Mehr zu Scatter Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!