clear; clc; hold off
r=0.1;
E = [1,2,6,5;2,3,7,6;3,4,8,7;5,6,10,9;6,7,11,10;7,12,14,11;7,8,13,12;9,10,16,15;10,11,17,16;11,14,18,17];
K = [0,0;0.1,0;0.2,0;0.3,0;0,0.1;0.1,0.1;0.2,0.1;0.3,0.1;0,0.2;0.1,0.2;0.2,0.2;0.3-r*sin(pi/6),0.3-r*cos(pi/6);0.3,0.3-r;0.3-r*cos(pi/6),0.3-r*sin(pi/6);0,0.3;0.1,0.3;0.15,0.3;0.3-r,0.3];
n = 3;
while n_newton<=itermax && res>=res_min
f_gl=zeros(18,1); j_gl=zeros(18);
for e=1:length(E)
J=zeros(4);
F=zeros(4);
for h=1:4 %Geschlossene Schleife zum einlesen der nodes
nodes(h,1) = K(E(e,h),1);
nodes(h,2) = K(E(e,h),2);
end
w = gw2dref(n); x = gx2dref(n);
for g=1:length(w)
dN = linquadderivref(x(g,1),x(g,2)); N = linquadref(x(g,1),x(g,2))';
[Jacobi,detJ,invJ] = getJacobian(nodes,x(g,1),x(g,2));
c1=10^6; lambda=48; c2=10^3;
for i=1:4
temp=0;
for j=1:4
temp=temp+N(j,1)*T(E(e,j));
end for j=1:4
Jtemp(i,j)=((lambda*(dN(i,:)*invJ)*(dN(j,:)*invJ)')-(N(i,1)*N(j,1)*c1*c2/(temp)^2)*exp(-c2/temp))*w(g)*detJ;
Ftemp(i,j)=lambda*(dN(i,:)*invJ)*(dN(j,:)*invJ)'*T(E(e,j))*w(g)*detJ;
end
Ftemp(i,j)=Ftemp(i,j)-N(i,1)*c1*exp(-c2/temp)*w(g)*detJ;
end
J=J+Jtemp;
F=F+Ftemp;
end
for i=1:4;
for j=1:4
j_gl(E(e,i),E(e,j)) = j_gl(E(e,i),E(e,j)) + J(i,j);
f_gl(E(e,i),1)=f_gl(E(e,i),1)-F(i,j);
end end
D1 = [1,2,3,4]; D2 = [12,13,14,18];
T1 = 600; T2 = 300;
for i=1:4 for j=1:4 if E(e,j)==D1(i)
f_gl(E(e,j),1)=0;
%T(E(e,j),1)=T1;
j_gl(E(e,j),:)=0;
j_gl(E(e,j),E(e,j))=1;
elseif E(e,j)==D2(i)
%T(E(e,j),1)=T2;
f_gl(E(e,j),1)=0;
j_gl(E(e,j),:)=0;
j_gl(E(e,j),E(e,j))=1;
end end end end
dT=j_gl\f_gl;
T=T+dT;
n_newton=n_newton+1;
res=norm(f_gl,2);
end
E = [1,2,6,5;2,3,7,6;3,4,8,7;5,6,10,9;6,7,11,10;7,12,14,11;7,8,13,12;9,10,16,15;10,11,17,16;11,14,18,17];
K = [0,0;0.1,0;0.2,0;0.3,0;0,0.1;0.1,0.1;0.2,0.1;0.3,0.1;0,0.2;0.1,0.2;0.2,0.2;0.3-0.02*sin(pi/6),0.3-0.02*cos(pi/6);0.3,0.28;0.3-0.02*cos(pi/6),0.3-0.02*sin(pi/6);0,0.3;0.1,0.3;0.15,0.3;0.28,0.3];
n = 2;
tmax=0;
while(1)
T_0=300;
T = T_0*ones(18,1);
nodes=zeros(4,2);
timestep = 500;
for t=1:((tmax/timestep)) %Schleife OST
a=zeros(18); %Initialisierung der Globalen Matrizen
f=zeros(18,1);
for p=1:length(E) %Schleife über Elemente
M=zeros(4); A=zeros(4); B=zeros(4); F=zeros(4,1); %Initialisierung der lokalen Matrizen
for j=1:4 %Geschlossene Schleife zum einlesen der nodes
nodes(j,1) = K(E(p,j),1);
nodes(j,2) = K(E(p,j),2);
end
w = gw2dref(n); x = gx2dref(n);
for h=1:length(w) %Gauß-Integration
l = linquadderivref(x(h,1),x(h,2)); l1 = linquadref(x(h,1),x(h,2))';
[J,detJ,invJ] = getJacobian(nodes,x(h,1),x(h,2));
for i=1:4 %Über die Zeilen der ESM
for j=1:4 %Über die Spalten der ESM
B(i,j) = B(i,j) + w(h)*48*(l(i,:)*invJ)*(l(j,:)*invJ)'*detJ;
M(i,j) = M(i,j) + w(h)*7800*452*l1(i,1)*l1(j,1)*detJ;
end end end for i=1:4 %OST über Zeilen der ESM
for j=1:4 %OST über Spalten der ESM
theta = 0.5;
[LHS,RHS]=OST(theta,timestep,M(i,j),[B(i,j) B(i,j)],[00],[T(E(p,j),1),T(E(p,j),1)]);
%Assemblierung in Globaler Steifigkeitsmatrix
a(E(p,i),E(p,j)) = a(E(p,i),E(p,j)) + LHS;
f(E(p,i),1)=f(E(p,i),1)+RHS;
end end
%% Randbedingungen
D1 = [1,2,3,4]; D2 = [12,13,14,18];
T1 = 600; T2 = 300;
for i=1:4 %Schleife über die Zeilen der ESM
for j=1:4 %Schleife über die Spalten der ESM
if E(p,j)==D1(i)
f(E(p,j),1)=T1;
a(E(p,j),:)=0;
a(E(p,j),E(p,j))=1;
elseif E(p,j)==D2(i)
f(E(p,j),1)=T2;
a(E(p,j),:)=0;
a(E(p,j),E(p,j))=1;
end end end end
T = a\f;
end
%% Temperatur Plot
Tkrit=450;
if T(15)>=Tkrit || T(16)>=Tkrit || T(17)>=Tkrit || T(18)>=Tkrit
quadplot(K,E,T)
tmax
break %Ende der do-while Schleife, Kritische Zeit
else
tmax=tmax+500;
end end
function[ g ] = Newton( x0,func,tol,itermax)
%UNTITLED6 Summary of this function goes here
% Detailed explanation goes here syms x
fdx=diff(func,x);
n=0;
y=1;
while n<itermax && norm(func(x0))>=tol
y=func(x0);
ydx=double(subs(fdx,x0));
Vielleicht. Viel mehr kann ich so nicht sagen auf die Schnelle.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.