Plot: Dots won't go higher than y=0

1 visualizzazione (ultimi 30 giorni)
Eric Junaeus
Eric Junaeus il 8 Feb 2025
Risposto: Star Strider il 8 Feb 2025
The green dots are supposed to be where the red dots are located but I can't get them to go higher than y=0.
Code:
clc
clear
% Inledande data
d0 = 30e-3; % Diameter (m)
h0 = 40e-3; % Ursprunglig höjd (m)
h1 = 34e-3; % Höjd efter första tryckning (m)
h2 = 29e-3; % Höjd efter andra tryckning (m)
F1 = 67e3; % Kraft för första försök (N)
F2 = 83e3; % Kraft för andra försök (N)
% Sann töjning (logaritmisk töjning)
fi1 = log(h0/h1);
fi2 = log(h0/h2);
disp(['fi1: ', num2str(fi1)]);
disp(['fi2: ', num2str(fi2)]);
% Beräkning av areor
A0 = pi*(d0/2)^2; % Ursprunglig area
A1 = A0*h0/h1; % Area efter första deformationen
A2 = A0*h0/h2; % Area efter andra deformationen
% Beräkning av sann spänning
sigma1 = F1/A1;
sigma2 = F2/A2;
disp(['sigma1: ', num2str(sigma1)]);
disp(['sigma2: ', num2str(sigma2)]);
% Anpassning av Ludwiks lag: sigma = K * fi^n
fi = [fi1, fi2];
sigma = [sigma1, sigma2];
% Logaritmisk anpassning för att lösa K och n
p = polyfit(log(fi), log(sigma), 1);
n = p(1);
K = exp(p(2));
% Skapa ett intervall av töjningar för att plotta kurvan
fi_vals = linspace(0, max(fi)*1.2, 100); % Extrapolera lite utanför mätpunkterna
sigma_vals = K * fi_vals.^n;
% Beräkning av linjära kf-värden
kf1 = 76.00 + 28.24 * fi1;
kf2 = 76.00 + 28.24 * fi2;
% Kontrollutskrift för att se om kf1 och kf2 beräknas korrekt
disp(['kf1: ', num2str(kf1)]);
disp(['kf2: ', num2str(kf2)]);
% Plotta kf-kurvan
figure;
plot(fi_vals, sigma_vals, 'b-', 'LineWidth', 2); % Ludwik's ansats
hold on;
plot(fi, sigma, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r'); % Mätpunkter
% Lägg till punkterna för kf1 och kf2
plot(fi1, kf1, 'go', 'MarkerSize', 8, 'MarkerFaceColor', 'g');
plot(fi2, kf2, 'go', 'MarkerSize', 8, 'MarkerFaceColor', 'g');
% Lägg till textetiketter för kf1 och kf2 i grafen
text(fi1, kf1, [' kf1 = ', num2str(kf1, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
text(fi2, kf2, [' kf2 = ', num2str(kf2, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
% Säkerställ att y-axeln visar hela intervallet
ylim([min([sigma, kf1, kf2]) - 10, max([sigma, kf1, kf2]) + 10]);
% Grafikinställningar
xlabel('Sann töjning (log \epsilon)');
ylabel('Sann spänning (MPa)');
title('kf-kurva enligt Ludwiks ansats');
grid on;
legend('Ludwik-fit', 'Mätpunkter', 'kf1 & kf2');

Risposte (2)

VBBV
VBBV il 8 Feb 2025
clc
clear
% Inledande data
d0 = 30e-3; % Diameter (m)
h0 = 40e-3; % Ursprunglig höjd (m)
h1 = 34e-3; % Höjd efter första tryckning (m)
h2 = 29e-3; % Höjd efter andra tryckning (m)
F1 = 67e3; % Kraft för första försök (N)
F2 = 83e3; % Kraft för andra försök (N)
% Sann töjning (logaritmisk töjning)
fi1 = log(h0/h1);
fi2 = log(h0/h2);
disp(['fi1: ', num2str(fi1)]);
fi1: 0.16252
disp(['fi2: ', num2str(fi2)]);
fi2: 0.32158
% Beräkning av areor
A0 = pi*(d0/2)^2; % Ursprunglig area
A1 = A0*h0/h1; % Area efter första deformationen
A2 = A0*h0/h2; % Area efter andra deformationen
% Beräkning av sann spänning
sigma1 = F1/A1;
sigma2 = F2/A2;
disp(['sigma1: ', num2str(sigma1)]);
sigma1: 80567768.9696
disp(['sigma2: ', num2str(sigma2)]);
sigma2: 85130210.6716
% Anpassning av Ludwiks lag: sigma = K * fi^n
fi = [fi1, fi2];
sigma = [sigma1, sigma2];
% Logaritmisk anpassning för att lösa K och n
p = polyfit(log(fi), log(sigma), 1);
n = p(1);
K = exp(p(2));
% Skapa ett intervall av töjningar för att plotta kurvan
fi_vals = linspace(0, max(fi)*1.2, 100); % Extrapolera lite utanför mätpunkterna
sigma_vals = K * fi_vals.^n;
% Beräkning av linjära kf-värden
kf1 = (76.00 + 28.24 * fi1)*1e6;
kf2 = (76.00 + 28.24 * fi2)*1e6;
% Kontrollutskrift för att se om kf1 och kf2 beräknas korrekt
disp(['kf1: ', num2str(kf1)]);
kf1: 80589534.569
disp(['kf2: ', num2str(kf2)]);
kf2: 85081521.5454
% Plotta kf-kurvan
figure;
plot(fi_vals, sigma_vals, 'b-', 'LineWidth', 2); % Ludwik's ansats
hold on;
plot(fi, sigma, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r'); % Mätpunkter
% Lägg till punkterna för kf1 och kf2
plot(fi1, kf1, 'go', 'MarkerSize', 4, 'MarkerFaceColor', 'g');
plot(fi2, kf2, 'go', 'MarkerSize', 4, 'MarkerFaceColor', 'g');
% Lägg till textetiketter för kf1 och kf2 i grafen
text(fi1, kf1, [' kf1 = ', num2str(kf1, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
text(fi2, kf2, [' kf2 = ', num2str(kf2, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
% Säkerställ att y-axeln visar hela intervallet
%ylim([min([sigma, kf1, kf2]) - 10, max([sigma, kf1, kf2]) + 10]);
ylim([0, max([sigma, kf1, kf2]) + 10]);
% Grafikinställningar
xlabel('Sann töjning (log \epsilon)');
ylabel('Sann spänning (MPa)');
title('kf-kurva enligt Ludwiks ansats');
grid on;
legend('Ludwik-fit', 'Mätpunkter', 'kf1 & kf2');
  1 Commento
VBBV
VBBV il 8 Feb 2025
@Eric Junaeus you need to multiply the values with 1e6 to represent in (MPa)

Accedi per commentare.


Star Strider
Star Strider il 8 Feb 2025
If you add:
set(gca, 'YScale','log', 'YLim',[10 1E+8])
you will see that the green dots plot appropriately. The y-axis limits go from 80 to , so much of the resolution is lost otherwise (with linear y-axis scaling).
Example —
% Inledande data
d0 = 30e-3; % Diameter (m)
h0 = 40e-3; % Ursprunglig höjd (m)
h1 = 34e-3; % Höjd efter första tryckning (m)
h2 = 29e-3; % Höjd efter andra tryckning (m)
F1 = 67e3; % Kraft för första försök (N)
F2 = 83e3; % Kraft för andra försök (N)
% Sann töjning (logaritmisk töjning)
fi1 = log(h0/h1);
fi2 = log(h0/h2);
disp(['fi1: ', num2str(fi1)]);
fi1: 0.16252
disp(['fi2: ', num2str(fi2)]);
fi2: 0.32158
% Beräkning av areor
A0 = pi*(d0/2)^2; % Ursprunglig area
A1 = A0*h0/h1; % Area efter första deformationen
A2 = A0*h0/h2; % Area efter andra deformationen
% Beräkning av sann spänning
sigma1 = F1/A1;
sigma2 = F2/A2;
disp(['sigma1: ', num2str(sigma1)]);
sigma1: 80567768.9696
disp(['sigma2: ', num2str(sigma2)]);
sigma2: 85130210.6716
% Anpassning av Ludwiks lag: sigma = K * fi^n
fi = [fi1, fi2];
sigma = [sigma1, sigma2];
% Logaritmisk anpassning för att lösa K och n
p = polyfit(log(fi), log(sigma), 1);
n = p(1);
K = exp(p(2));
% Skapa ett intervall av töjningar för att plotta kurvan
fi_vals = linspace(0, max(fi)*1.2, 100); % Extrapolera lite utanför mätpunkterna
sigma_vals = K * fi_vals.^n;
% Beräkning av linjära kf-värden
kf1 = 76.00 + 28.24 * fi1;
kf2 = 76.00 + 28.24 * fi2;
% Kontrollutskrift för att se om kf1 och kf2 beräknas korrekt
disp(['kf1: ', num2str(kf1)]);
kf1: 80.5895
disp(['kf2: ', num2str(kf2)]);
kf2: 85.0815
% Plotta kf-kurvan
figure;
plot(fi_vals, sigma_vals, 'b-', 'LineWidth', 2); % Ludwik's ansats
hold on;
plot(fi, sigma, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r'); % Mätpunkter
% Lägg till punkterna för kf1 och kf2
plot(fi1, kf1, 'go', 'MarkerSize', 8, 'MarkerFaceColor', 'g');
plot(fi2, kf2, 'go', 'MarkerSize', 8, 'MarkerFaceColor', 'g');
% Lägg till textetiketter för kf1 och kf2 i grafen
text(fi1, kf1, [' kf1 = ', num2str(kf1, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
text(fi2, kf2, [' kf2 = ', num2str(kf2, '%.2f')], 'FontSize', 10, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right', 'Color', 'green');
% Säkerställ att y-axeln visar hela intervallet
ylim([min([sigma, kf1, kf2]) - 10, max([sigma, kf1, kf2]) + 10]);
% Grafikinställningar
xlabel('Sann töjning (log \epsilon)');
ylabel('Sann spänning (MPa)');
title('kf-kurva enligt Ludwiks ansats');
grid on;
legend('Ludwik-fit', 'Mätpunkter', 'kf1 & kf2');
set(gca, 'YScale','log', 'YLim',[10 1E+8]) % <— ADDED
.

Categorie

Scopri di più su Special Functions in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by