Trying to make the plot of potency along Z that is a decaying exponential but it goes straight to zero
20 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Leonardo
el 28 de Nov. de 2024 a las 15:31
Respondida: Star Strider
el 28 de Nov. de 2024 a las 16:04
I tried altering values and at low values it gets similar to how it should be but with the real values it goes straight to zero.
I believe the problem may be in trying to add alpha_p and alpha_s to use in the integral but I am unsure whats wrong with it and how to fix.
clc;
clear;
% Parâmetros
lambdL = 1550e-9; % Comprimento de onda do laser
z = linspace(0, 10000, 1000); % Posições (m)
T = 25 * ones(size(z)); % Temperatura inicial
T(z >= 1500 & z <= 1600) = T(z >= 1500 & z <= 1600) + 25; % Degrau de temperatura
% Funções
alpha_as = @(z) 0.21 * z; % Exemplo de função para alpha_as
alpha_s = @(z) 0.216 * z; % Exemplo de função para alpha_s
alpha_p = @(z) 0.2 * z; % Exemplo de função para alpha_p
alpha_ras = @(z) z*0.2; % Exemplo de função para alpha_ras
B_as = 0.25; % Exemplo de constante
Ep0 = 10;
% Velocidade de grupo
V_g = 1.4682; % m/s
% Vetorizando o cálculo de eta_as
eta_as = (1/2) * alpha_ras(z) .* V_g * B_as; % Multiplicação elemento a elemento
% Inicializando o vetor de potência Pas
Pas = zeros(size(z));
% Cálculo da potência com decaimento exponencial
for i = 1:length(z)
% Função integrando
fun = @(u) (alpha_p(u) + alpha_as(u)); % Somatório de absorção
% Cálculo da integral numérica de 0 até z(i)
integral_value = integral(fun, 0, z(i));
% Verificar a integral e decaimento
% Modificar o decaimento para ser mais gradual
Pas(i) = Ep0 * eta_as(i) * exp(-0.1 * integral_value); % Fator de decaimento mais controlado
end
% Plotando o resultado
figure;
plot(z, Pas);
xlabel('Posição (m)');
ylabel('Potência \(P_{as}\)');
title('Perfil de \(P_{as}\) com Decaimento Exponencial Controlado');
grid on;
0 comentarios
Respuestas (2)
Abhas
el 28 de Nov. de 2024 a las 15:43
The problem might be with how the exponential decay is being computed, especially if the integral values become too large, which can cause the exponential function to approach zero very quickly. We might need to adjust the decay factor to 0.001 instead of 0.1.
Here's an updated code to fix the issue:
clc;
clear;
% Parameters
lambdL = 1550e-9; % Wavelength of the laser
z = linspace(0, 10000, 1000); % Positions (m)
T = 25 * ones(size(z)); % Initial temperature
T(z >= 1500 & z <= 1600) = T(z >= 1500 & z <= 1600) + 25; % Temperature step
% Functions
alpha_as = @(z) 0.21 * z; % Example function for alpha_as
alpha_s = @(z) 0.216 * z; % Example function for alpha_s
alpha_p = @(z) 0.2 * z; % Example function for alpha_p
alpha_ras = @(z) 0.2 * z; % Example function for alpha_ras
B_as = 0.25; % Example constant
Ep0 = 10; % Initial potency
% Group velocity
V_g = 1.4682; % m/s
% Pre-calculate eta_as
eta_as = (1/2) * alpha_ras(z) .* V_g * B_as; % Element-wise multiplication
% Initialize the potency vector Pas
Pas = zeros(size(z));
% Calculate potency with exponential decay
for i = 1:length(z)
% Integrating function
fun = @(u) (alpha_p(u) + alpha_as(u)); % Sum of absorption
% Calculate the numerical integral from 0 to z(i)
integral_value = integral(fun, 0, z(i));
% Check the integral and decay
% Modify decay to be more gradual by adjusting the factor
decay_factor = 0.001; % Adjust this factor as needed
Pas(i) = Ep0 * eta_as(i) * exp(-decay_factor * integral_value);
end
% Plot the result
figure;
plot(z, Pas);
xlabel('Position (m)');
ylabel('Potency \(P_{as}\)');
title('Profile of \(P_{as}\) with Controlled Exponential Decay');
grid on;
I hope this helps!
0 comentarios
Star Strider
el 28 de Nov. de 2024 a las 16:04
I am not certain what you are calculating.
The ‘integral_value’ value gets very large very quickly, so ‘Pas’ decays quickly to zero.
My only suggestion is to check to be sure that ‘z’ is scaled correctly, or is scaled correctly in the calculations using it.
% clc;
% clear;
% Parâmetros
lambdL = 1550e-9; % Comprimento de onda do laser
z = linspace(0, 10000, 1000); % Posições (m)
T = 25 * ones(size(z)); % Temperatura inicial
T(z >= 1500 & z <= 1600) = T(z >= 1500 & z <= 1600) + 25; % Degrau de temperatura
% Funções
alpha_as = @(z) 0.21 * z; % Exemplo de função para alpha_as
alpha_s = @(z) 0.216 * z; % Exemplo de função para alpha_s
alpha_p = @(z) 0.2 * z; % Exemplo de função para alpha_p
alpha_ras = @(z) z*0.2; % Exemplo de função para alpha_ras
B_as = 0.25; % Exemplo de constante
Ep0 = 10;
% Velocidade de grupo
V_g = 1.4682; % m/s
% Vetorizando o cálculo de eta_as
eta_as = (1/2) * alpha_ras(z) .* V_g * B_as; % Multiplicação elemento a elemento
% Inicializando o vetor de potência Pas
Pas = zeros(size(z));
% Cálculo da potência com decaimento exponencial
for i = 1:3%length(z)
% Função integrando
fun = @(u) (alpha_p(u) + alpha_as(u)); % Somatório de absorção
% Cálculo da integral numérica de 0 até z(i)
integral_value = integral(fun, 0, z(i));
% Verificar a integral e decaimento
% Modificar o decaimento para ser mais gradual
Pas(i) = Ep0 * eta_as(i) * exp(-0.1 * integral_value); % Fator de decaimento mais controlado
end
Pas
% Plotando o resultado
figure;
plot(z, Pas);
xlabel('Posição (m)');
ylabel('Potência \(P_{as}\)');
title('Perfil de \(P_{as}\) com Decaimento Exponencial Controlado');
grid on;
.
0 comentarios
Ver también
Categorías
Más información sobre Get Started with MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!