mercredi 11 août 2021

Check every if or elseif statements during a for loop

I am really new to MATLAB and I am trying to write this code. But I am not sure if the if or elseif statement is working properly. I also know maybe a lot of problem is in my code now, which if someone notice it would vary appreciate to mention it. But my question is how can i check if really every statement is checked with MATLAB during this for loop. Sincerely sorry for the lot of code. Ps. I don know why I'm getting 0 at the beginning of every array like delta_theta.

clc
B=1.2;H=0.35;R=2.93;b=1;h=0.24;d_c=0.06;e_s=0.055;D_s=0.03;d_s=0.4;r_s=15*10^(-3);N_s=2;E_s=200*10^(9);f_y=500*10^(6);E_c=43.6*10^(9);v_c=0.24;f_c=35.5*10^(6);F=1.9;

A_s=pi*r_s^2;
M=zeros(2000,1);
N=zeros(200,1);
delta_thetavalue=zeros(1,2000);
delta_lvalue=zeros(1,200);
Idx_1 = 1;
for delta_theta =-1:0.001:1
    Idx_1 = Idx_1 + 1;
    Idx_2 = 1;
    alpha_e=0;
    alpha_p=0;
    beta_e=0;
    beta_p=0;
    r_b=0;
    r_s=0;
    r_e=0;
    delta_thetavalue(Idx_1)=delta_theta;
    A=r_s-(f_y*d_s/(E_s*delta_theta));
    for delta_l=-0.1:0.001:0.1
        Idx_2 = Idx_2 + 1;
        delta_lvalue(Idx_2)=delta_l;
        r_0=R-(delta_l/delta_theta);
        r_1=1/delta_theta*(delta_l+(F*f_c*d_c)/E_c);
      if delta_theta >= 0
           r_op=R+h/2;
           r_cl=R-h/2;
                if r_0 >= r_op && r_1<=r_cl
                    alpha_e=1;
                    r_b=r_op;
                    r_e=r_cl;
                elseif r_0 >=r_op && r_cl<r_1 && r_1<r_op
                    alpha_e=1;
                    alpha_p=1;
                    r_b=r_op;
                    r_e=r_1;
                elseif r_0 >=r_op && r_1>=r_op
                    alpha_p=1;
                    r_b=r_op;
                    r_e=r_op;
                elseif r_s<r_0 && r_0<r_op && r_1<=r_cl
                    alpha_e=1;
                    r_b=r_0;
                    r_e=r_cl;
                elseif r_s<r_0 && r_0<r_op && r_1>r_cl
                    alpha_e=1;
                    alpha_p=1;
                    r_b=r_0;
                    r_e=r_cl;
                elseif A<r_0 && r_cl<r_0 && r_0<=r_s && r_1<=r_cl
                     alpha_e=1;
                     beta_e=1;
                     r_b=r_0;
                     r_e=r_cl;
                elseif A<r_0 && r_cl<r_0 && r_0<=r_s && r_1>r_cl
                     alpha_e=1;
                     alpha_p=1;
                     beta_e=1;
                     r_b=r_0;
                     r_e=r_1;
                elseif A>=r_0 && r_0>r_cl && r_1<=r_cl
                     alpha_e=1;
                     beta_p=1;
                     r_b=r_0;
                     r_e=r_cl;
                elseif A>=r_0 && r_0>r_cl && r_1>r_cl
                     alpha_e=1;
                     alpha_p=1;
                     beta_p=1;
                     r_b=r_0;
                     r_e=r_1;
                elseif r_0 <= r_cl
                    r_b=r_cl;
                    r_e=r_cl;
                
                end
       
                 
      elseif  delta_theta < 0
          r_op=R-h/2;
          r_cl=R+h/2;
                if r_0 <= r_op && r_1 >= r_cl
                    alpha_e=1;
                    r_b=r_op;
                    r_e=r_cl;
                elseif r_0 <=r_op && r_cl>r_1 && r_1>r_op
                    alpha_e=1;
                    alpha_p=1;
                    r_b=r_op;
                    r_e=r_1;
                elseif r_0 <=r_op && r_1>r_op
                    alpha_p=1;
                    r_b=r_op;
                    r_e=r_op;
                elseif r_s>r_0 && r_0>r_op && r_1>=r_cl
                    alpha_e=1;
                    r_b=r_0;
                    r_e=r_cl;
                elseif r_s>r_0 && r_0>r_op && r_1<r_cl
                    alpha_e=1;
                    alpha_p=1;
                    r_b=r_0;
                    r_e=r_cl;
                elseif A>r_0 && r_cl>r_0 && r_0>=r_s && r_1>=r_cl
                     alpha_e=1;
                     beta_e=1;
                     r_b=r_0;
                     r_e=r_cl;
                elseif A>r_0 && r_cl>r_0 && r_0>=r_s &&r_1<r_cl
                     alpha_e=1;
                     alpha_p=1;
                     beta_e=1;
                     r_b=r_0;
                     r_e=r_1;
                elseif A<=r_0 && r_0>r_cl && r_1>=r_cl
                     alpha_e=1;
                     beta_p=1;
                     r_b=r_0;
                     r_e=r_cl;
                elseif A<=r_0 && r_0<r_cl &&r_1<r_cl
                     alpha_e=1;
                     alpha_p=1;
                     beta_p=1;
                     r_b=r_0;
                     r_e=r_1;
                elseif r_0 >= r_cl
                    r_b=r_cl;
                    r_e=r_cl;
                 end
      end
    end
    
    M(Idx_1,1)=alpha_e*(E_c*b)/d_c*((delta_l/2)*abs((r_b-R)^2-(r_e-R)^2)+delta_theta*abs((r_b-R)^3-(r_e-R)^3))+alpha_p*(-F*f_c*b*abs(r_cl-r_e)*((r_cl+r_e)/2-R))+beta_e*E_s*A_s*(delta_l/d_s+delta_theta/d_s*(r_s-R))*(r_s-R)+beta_p*f_y*A_s*(r_s-R);
    N(Idx_1,1)=alpha_e*(E_c*b)/d_c*(delta_l*(r_e-r_b)*(delta_theta/2)*abs((r_s-R)^2-(r_b-R)^2))+alpha_p*(-F*f_c*b*abs(r_cl-r_e))+beta_e*E_s*A_s*(delta_l/d_s+delta_theta/d_s*(r_s-R))+beta_p*f_y*A_s;
end   
j=M/(E_c*b*h^2);
figure(1)
plot(delta_thetavalue, j)```


Aucun commentaire:

Enregistrer un commentaire