Storing values of a triple 'for loop'

2 次查看(过去 30 天)
Piotr Haciuk
Piotr Haciuk 2019-3-30
评论: dpb 2019-3-30
Good morning all
I'm trying to simulate an Euler-Bernoulli's pinned pinned beam response, subjected to harmonic force located at point 'a'.
I wrote the script:
clc; clear all
%dimensions k.m.s
wi=10;L=100;th=0.5;I=(wi*th.^3)/12;A=wi*th;
%for steel
rho=2400; E=41e+9; EI=E*I;
F=2000*9.81; %[N]
wf=1; %force freq
tmax=1;
tmin=0.1;
a=50;%location of Force
w1=0;w2=0;w3=0;
hold all
for x=1:1:L
for t=tmin:tmax/10:tmax
for n=1:3
u=sin(n*pi*x/L); %n-th mode shape
ua=sin(n*pi*a/L); %mode shape near point a
F=F*sin(wf*t); %force magnitude
wn=(n*pi/L)^2*sqrt(EI/(rho*A)); %natural freq
w=((2/(rho*A*L))*(ua*u)/(wn^2-wf^2))*F; %lateral displacement
if n==1
w1=w1+w;
elseif n==2
w2=w2+w;
elseif n==3
w3=w3+w; %summation of w for each mode shape at each t and each x
end
end
end
end
hold off
What I want to achieve is to plot w (lateral displacement) with respect to x, and then with respect to t
The problem I have is how to sum up all the values of 'w', first for each 'n', and then for each 'x' ?
Let's say I'm dividing the length of the beam into 100 elements, so I'm expecting 100 summed up values of w?
  1 个评论
dpb
dpb 2019-3-30
See
doc meshgrid % example of 3D mesh
and rewrite your functions to be evaluated in vectorized form (use the "dot" operators) and then you can slice 'n dice the output however you wish.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Fluid Dynamics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by