How to use If loop to iterate using different formulae under different conditions?

Illustration
brianlim98 - 2022-03-28T07:51:27+00:00
Question: How to use If loop to iterate using different formulae under different conditions?

Good day. I have a for loop to do iteration from 1 to a, where a is the length of vector. If loop is used to calculate the pressure level. In the first condition if Pt(i+1)>=P_load & Pt(i+1)0 The code runs as wanted. But in the second condition, the iteration only run once instead of continuing to run when the condition is true. The pressure should be increasing until P_unload and starts to decrease until P_load. The pressure should not exceed the P_unload and should not lower than the P_load. How should I change the If loop so that the iteration can continue by switching to corresponding formula in different conditions? The pressure level should look like something varying between P_load and P_unload. Below I attached the code that I had done. P_load=832.40; P_unload=901.35; rho=1.2; R= 0.287; T_std=293; T_stdf=((T_std-273)*(9/5))+32; T_atm=304; T_atmf=((T_atm-273)*(9/5))+32; SCFM=64; ACFM= SCFM*((T_atmf+460)/(T_stdf+460)); V_dotdemand(1:2882, 1) = 30; V_dotsupply=ACFM; a=length(V_dotdemand); V_dotleak=5.9788; t_charging= 20; V_rec=(t_charging*(V_dotsupply-V_dotleak)*rho*T_atm*R)./(60*(P_unload-P_load)); t=5; Pt(1)=P_load; for i=1:a Pt(i+1)=Pt(i)+((V_dotsupply-(V_dotdemand(i)+V_dotleak))*t*rho*R*T_atm)/(60*V_rec); if Pt(i+1)>=P_load & Pt(i+1)0 Pt(i+1)=Pt(i)+((V_dotsupply-(V_dotdemand(i)+V_dotleak))*t*rho*R*T_atm)/(60*V_rec) elseif Pt(i+1)>P_unload Pt(i+1)=Pt(i)-((V_dotdemand(i)+V_dotleak)*t*rho*R*T_atm)/(60*V_rec) elseif Pt(i+1)>=P_load & Pt(i+1)

Expert Answer

No answer yet

Get a Free Consultation or a Sample Assignment Review!