line not appear in plot

6 visualizzazioni (ultimi 30 giorni)
amirul
amirul il 28 Gen 2024
Commentato: Star Strider il 29 Gen 2024
Below are my code, why the plot not appear. someone help
% PEM Electrolyzer Activation Overvoltage Plot
% Constants
ioa = 2e-9; % Anode exchange current density (A/cm2)
ioc = 2e-3; % Cathode exchange current density (A/cm2)
T = 297; % Temperature (K)
R = 8.314; % General gas constatnt (J/Kmol)
ctca = 0.5 ; % charge transfer coefficient anode
ctcc = 0.5 ; % charge transfer coefficient cathode
z = 2 ; % stoichiometric coefficient
F = 96485; % Faradays constant
% Operating current density range
i_density = linspace(0, 1.5, 100); % Current density range (A/m^2)
% Calculate activation overvoltage
a = R.*T/ctca.*z.*F;
b = R.*T/ctcc.*z.*F;
eta_activation = log((i_density/ioa).^(a))+(-log((i_density/ioc).^(b)))
eta_activation = 1×100
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
% Plot the results
plot(i_density, eta_activation,"b");
  2 Commenti
Dyuman Joshi
Dyuman Joshi il 28 Gen 2024
The plot is empty because all the values are NaN, see the edit above.
amirul
amirul il 29 Gen 2024
Thank you

Accedi per commentare.

Risposte (1)

Star Strider
Star Strider il 28 Gen 2024
The ‘i_density’ vector begins with 0 and the log of 0 is -Inf.
Starting it instead with a very small value, and re-writing ‘eta_activation’ to use simple log identities produces finite results.
There is some variation in ‘eta_activation’, as demonstrated by the derivative plot (added) —
% PEM Electrolyzer Activation Overvoltage Plot
% Constants
ioa = 2e-9; % Anode exchange current density (A/cm2)
ioc = 2e-3; % Cathode exchange current density (A/cm2)
T = 297; % Temperature (K)
R = 8.314; % General gas constatnt (J/Kmol)
ctca = 0.5 ; % charge transfer coefficient anode
ctcc = 0.5 ; % charge transfer coefficient cathode
z = 2 ; % stoichiometric coefficient
F = 96485; % Faradays constant
% Operating current density range
i_density = linspace(1E-12, 1.5, 100); % Current density range (A/m^2)
% Calculate activation overvoltage
a = R.*T/ctca.*z.*F;
b = R.*T/ctcc.*z.*F;
eta_activation = log((i_density/ioa).^(a))+(-log((i_density/ioc).^(b))) % Original
eta_activation = 1×100
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
eta_activation = a*log(i_density/ioa) - b*log(i_density/ioc) % Rewritten
eta_activation = 1×100
1.0e+10 * 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166 1.3166
deta_activation_di_density = gradient(eta_activation,i_density) % Derivative
deta_activation_di_density = 1×100
1.0e-03 * 0 0 0 -0.0629 -0.1259 0.0629 0.0629 -0.0629 0.0629 0 -0.0629 0.0629 0 -0.1259 0 0 0 0 0.0629 0 -0.0629 0.0629 0 0.0629 -0.0629 0 0 -0.0629 0.0629 0
% Plot the results
figure
plot(i_density, eta_activation,"b");
xlabel('i\_density')
ylabel('eta\_activation')
figure
plot(i_density, deta_activation_di_density,"g");
xlabel('i\_density')
ylabel('$\frac{d(eta\_activation)}{d(i\_density)}$', 'Interpreter','latex')
.
  4 Commenti
amirul
amirul il 29 Gen 2024
Thank you very much my friends. Appriciate it
Star Strider
Star Strider il 29 Gen 2024
Our pleasure!

Accedi per commentare.

Categorie

Scopri di più su Vibration Analysis in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by