Untitled
unknown
plain_text
a year ago
8.0 kB
32
Indexable
%% Initiate the script clc; clear; close all rho=1; cp=1; he=0.025; Ae=0.25*pi; V=0.05*Ae; Te=298; ht=10; At=16*pi*10^-6; cq=2*10^-8; ct=0.06; j=10^-3; M=[0.25 0.5 1]; cT=2.2*10^-8; c=10^-2; tt = linspace(0,150,2e4); IC1 = [298; 298 ;0;0]; opts = odeset('RelTol',1e-4,'AbsTol',1e-6); [~,z_1] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(1),cT,c,1000), tt, IC1, opts); [~,z_2] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(2),cT,c,1000), tt, IC1, opts); [~,z_3] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(3),cT,c,1000), tt, IC1, opts); %% Q3 a) figure(1) hold on plot(tt,z_1(:,1),'linewidth',2); plot(tt,z_2(:,1),'linewidth',2); plot(tt,z_3(:,1),'linewidth',2); xline(16,'--b','linewidth',1) set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$T$(K)','interpreter','Latex'); title('Temperature as a function of time','interpreter','Latex') legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m","steady state",'location','best'); legend show exportgraphics(gcf,'Figure_d.png','Resolution',300); hold off %% Q3 b) T_norm1=(z_1(:,1)-min(z_1(:,1)))./(max(z_1(:,1))-min(z_1(:,1))); T_norm2=(z_2(:,1)-min(z_2(:,1)))./(max(z_2(:,1))-min(z_2(:,1))); T_norm3=(z_3(:,1)-min(z_3(:,1)))./(max(z_3(:,1))-min(z_3(:,1))); figure (2) hold on plot (tt, T_norm1,'linewidth',2); plot (tt, T_norm2,'linewidth',2); plot (tt, T_norm3,'linewidth',2); xline(16,'--b','linewidth',1) xlabel('$time$(s)','interpreter','Latex'); ylabel('$T$(normalized)','interpreter','Latex'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m","steady state",'location','best'); legend show title('Normalized temperature as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_d2.png','Resolution',300); hold off %% Q3 c) figure(3) hold on plot(tt,z_1(:,4),'linewidth',2); plot(tt,z_2(:,4),'linewidth',2); plot(tt,z_3(:,4),'linewidth',2); set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$Angular Velocity$(rad/sec)','interpreter','Latex'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m",'location','best'); legend show title('Angular Velocity as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_3.png','Resolution',300); hold off V_norm1=(z_1(:,4)-min(z_1(:,4)))./(max(z_1(:,4))-min(z_1(:,4))); V_norm2=(z_2(:,4)-min(z_2(:,4)))./(max(z_2(:,4))-min(z_2(:,4))); V_norm3=(z_3(:,4)-min(z_3(:,4)))./(max(z_3(:,4))-min(z_3(:,4))); figure (4) hold on plot (tt, V_norm1,'linewidth',2); plot (tt, V_norm2,'linewidth',2); plot (tt, V_norm3,'linewidth',2); xlabel('$time$(s)','interpreter','Latex'); ylabel('$Angular Velocity $(normalized)','interpreter','Latex'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m",'location','best'); legend show title('Normalized angular velocity as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_4.png','Resolution',300); hold off %% Q3 e) tt2=linspace(0,100,2e3); [~,z_4] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(1),cT,c,16), tt2, IC1, opts); [~,z_5] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(2),cT,c,16), tt2, IC1, opts); [~,z_6] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(3),cT,c,16), tt2, IC1, opts); figure(5) n=3; hold on plot(tt2,z_4(:,1),'linewidth',2); plot(tt2,z_5(:,1),'linewidth',2); plot(tt2,z_6(:,1),'linewidth',2); xline(16,'--b','linewidth',1) xline(32,'--r','linewidth',1) set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$T$(K)','interpreter','Latex'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m","first steady state","second steady state",'location','best'); legend show title('Temperature as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_5.png','Resolution',300); hold off figure(6) hold on plot(tt2,z_4(:,4),'linewidth',2); plot(tt2,z_5(:,4),'linewidth',2); plot(tt2,z_6(:,4),'linewidth',2); xline(16,'--b','linewidth',1) xline(32,'--r','linewidth',1) set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$Angular Velocity$(rad/sec)','interpreter','Latex'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m",'location','best'); legend show title('Angular velocity as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_6.png','Resolution',300); hold off %% Q4 RE_1=100.*(z_4(:,2)-z_4(:,1))./z_4(:,1); RE_2=100.*(z_5(:,2)-z_5(:,1))./z_5(:,1); RE_3=100.*(z_6(:,2)-z_6(:,1))./z_6(:,1); figure (7) hold on plot(tt2, RE_1,'linewidth',2); plot(tt2, RE_2,'linewidth',2); plot(tt2, RE_3,'linewidth',2); xline(16,'--b','linewidth',1) xline(32,'--r','linewidth',1) xlabel('$time$(s)','interpreter','Latex'); ylabel('Relative Error %'); legend("M=0.25 N.m","M=0.5 N.m","M=1 N.m","first steady state","second steady state",'location','best'); legend show title('Error between the temperature in the tank and the one measured by the thermometer ','interpreter','Latex') exportgraphics(gcf,'Figure_7.png','Resolution',300); hold off %% Q5 tt3=linspace(0,1000,4e3); M=linspace(0,2,1e2); for i=1:length(M) [~,z_7] = ode45(@(t,z) EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(i),cT,c,10000), tt3, IC1, opts); SteadyT(i)= z_7(end,1); SteadyV(i)=z_7(end,4); end Mss=interp1(SteadyV, M,100) Tss= interp1(M,SteadyT,Mss) figure(8) yyaxis left hold on yline(Tss,'--b','linewidth',1) plot(Mss,Tss,'ro','LineWidth',1.5); plot(M,SteadyT,'-','linewidth',2); xlabel('$M$(N.m)','interpreter','Latex') ylabel('$T$(K)','interpreter','Latex') set(gca,'FontSize',11) yyaxis right plot(Mss,100,'go','LineWidth',1.5); plot(M,SteadyV,'-','linewidth',2); yline(100,'--r','linewidth',1); ylabel('$V$(rad/sec)','interpreter','Latex') set(gca,'FontSize',11) set(gcf,'color','w','units','centimeters','outerposition',[5 5 15 10]) title('Final temperature and angular velocity as a function of the input Moment','interpreter','Latex') exportgraphics(gcf,'Figure_8.png','Resolution',300); %% Q6 tt = linspace(0,150,2e4); IC1 = [298; 298 ;0;0]; M = [-0.5,0.5]; [~,z_1] = ode45(@(t,z) EX_3_2_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(1),cT,c), tt, IC1, opts); [~,z_2] = ode45(@(t,z) EX_3_2_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M(2),cT,c), tt, IC1, opts); figure(9) hold on plot(tt,z_1(:,1),'linewidth',2); plot(tt,z_2(:,1),'linewidth',2); set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$T$(K)','interpreter','Latex'); title('Temperature as a function of time','interpreter','Latex') legend("M=-0.5 N.m","M=0.5 N.m",'location','best'); legend show exportgraphics(gcf,'Figure_9.png','Resolution',300); hold off figure(10) hold on plot(tt,z_1(:,4),'linewidth',2); plot(tt,z_2(:,4),'linewidth',2); set(gca,'FontSize',11) xlabel('$time$(s)','interpreter','Latex'); ylabel('$Angular Velocity$(rad/sec)','interpreter','Latex'); legend("M=-0.5 N.m","M=0.5 N.m",'location','best'); legend show title('Angular Velocity as a function of time','interpreter','Latex') exportgraphics(gcf,'Figure_10.png','Resolution',300); hold off %% Function function dzdt = EX_3_ode_Students_2022(t,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M,cT,c,ts) if (t<ts) dzdt(1,1) = (he*Ae*(Te-z(1))+ht*At*(z(2)-z(1))+cq*z(4)^4)/(V*rho*cp); %dT/dt dzdt(2,1) = (ht*At*(z(1)-z(2)))/ct; %dTt/dt dzdt(3,1) = z(4); %omega dzdt(4,1)= (M-cT*z(4)^3-c*z(4))/j; %omega dot else dzdt(1,1) = (he*Ae*(Te-z(1))+ht*At*(z(2)-z(1))+cq*z(4)^4)/(V*rho*cp); %dT/dt dzdt(2,1) = (ht*At*(z(1)-z(2)))/ct; %dTt/dt dzdt(3,1) = z(4); %omega dzdt(4,1)= (-cT*z(4)^3-c*z(4))/j; %omega dot end end function dzdt = EX_3_2_ode_Students_2022(~,z,V,rho,cp,he,Ae,Te,ht,At,cq,ct,j,M,cT,c) dzdt(1,1) = (he*Ae*(Te-z(1))+ht*At*(z(2)-z(1))+cq*z(4)^5)/(V*rho*cp); %dT/dt dzdt(2,1) = (ht*At*(z(1)-z(2)))/ct; %dTt/dt dzdt(3,1) = z(4); %omega dzdt(4,1)= (M-cT*z(4)^2-c*z(4))/j; %omega dot end
Editor is loading...
Leave a Comment