Hello dear,
I would like to request for your assistance to set a clear command for executing the iterations to plot the structural parameters in the code below. The code is not executing the needed iterations. The output is turning out only one value. I am hoping a single line of command will resolve the issue.
h= 0.5;
b = 0.5;
d1= 0.474;
d2= 0.035;
As= 2512*10^-6;
Asc= 2512*10^-6;
fy= 400*10^6;
Es= 200*10^9;
fc= 30*10^6;
fcd= 0.85*fc/1.5;
ecu= 0.0035;
ey= fy/Es;
for z= -1:0.3:2
es1= z*ey;
c= ecu * d1/(ecu - es1);
es2= ecu * (c - d2)/c;
fs1= es1 * Es;
fs2= es2 * Es;
end
if fs1> fy && fs1< -1*fy
fs1= fy;
%else fs1= fs1;
end
if fs2> fy && fs2< -1*fy
fs2= fy;
%else fs2= fy;
end
if fc<= 30
beta= 0.85;
else
beta= max (0.85 - 0.05*(fc-30)/7, 0.65);
end
% if c> h
% c = h;
% end
a= beta*c;
if a> h
a = h;
end
cb= d1 * (ecu/(ecu + ey));
Fcc= 0.85*fcd*a*b;
Fs= fs1 * As;
Fsc = fs2 * Asc;
if c >= cb
phi= 0.7;
elseif c < cb
phi= 0.9;
end
Nsd= phi*(0.85*fcd*a*b - fs1*As + fs2*Asc);
Msd= phi*(Fcc*(h/2-a/2) + Fsc*(h/2-d2) + Fs*(d1-h/2));
plot (Msd, Nsd);
xlabel ('Msd, kNm');
ylabel ('Nsd, kN');
title ('interaction diagram');

 Réponse acceptée

Torsten
Torsten le 26 Avr 2024
Maybe you mean
h= 0.5;
b = 0.5;
d1= 0.474;
d2= 0.035;
As= 2512*10^-6;
Asc= 2512*10^-6;
fy= 400*10^6;
Es= 200*10^9;
fc= 30*10^6;
fcd= 0.85*fc/1.5;
ecu= 0.0035;
ey= fy/Es;
i = 0;
for z= -1:0.3:2
i=i+1;
es1= z*ey;
c= ecu * d1/(ecu - es1);
es2= ecu * (c - d2)/c;
fs1= es1 * Es;
fs2= es2 * Es;
%end
if fs1> fy && fs1< -1*fy
fs1= fy;
%else fs1= fs1;
end
if fs2> fy && fs2< -1*fy
fs2= fy;
%else fs2= fy;
end
if fc<= 30
beta= 0.85;
else
beta= max (0.85 - 0.05*(fc-30)/7, 0.65);
end
% if c> h
% c = h;
% end
a= beta*c;
if a> h
a = h;
end
cb= d1 * (ecu/(ecu + ey));
Fcc= 0.85*fcd*a*b;
Fs= fs1 * As;
Fsc = fs2 * Asc;
if c >= cb
phi= 0.7;
elseif c < cb
phi= 0.9;
end
Nsd(i)= phi*(0.85*fcd*a*b - fs1*As + fs2*Asc);
Msd(i)= phi*(Fcc*(h/2-a/2) + Fsc*(h/2-d2) + Fs*(d1-h/2));
end
plot (Msd, Nsd);
xlabel ('Msd, kNm');
ylabel ('Nsd, kN');
title ('interaction diagram');
But what about these if-statements ?
if fs1> fy && fs1< -1*fy
fs1= fy;
%else fs1= fs1;
end
if fs2> fy && fs2< -1*fy
fs2= fy;
%else fs2= fy;
end
How can a number be > 400*10^6 and at the same time be < -400*10^6 ?

2 commentaires

Sam
Sam le 27 Avr 2024
Dear Torsten,
Your first comment above has helped me iterate Nsd. Thank you very much. Now only Msd remains to be iterated. Any insight?
Sam
Sam le 27 Avr 2024
Dear Torsten,
By dropping the semicolon after the formulas for Msd and Nsd, now the iterations for both values are coming up. But the plot is not showing the expected graph.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Question posée :

Sam
le 26 Avr 2024

Commenté :

Sam
le 27 Avr 2024

Community Treasure Hunt

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

Start Hunting!

Translated by