how to i save loop data in a loop?

1 回表示 (過去 30 日間)
Marios Themistokleous
Marios Themistokleous 2020 年 3 月 11 日
回答済み: Subhadeep Koley 2020 年 3 月 11 日
hello, I want to plot eigen vectos and eigen values for each speed but i think i am missing how to store data in each loop. can you help me please
%% Linear Aeroelastic model of a flexible wing using assumed mode shapes approach
clc
clear
close all
global s c x_f m e EI GJ rho M_theta a_w A_inv C E B D
% Setting Parameters
s=7.5; %semi span (m)
c=2; %chord (m)
x_f=(0.48*c); %Flexural axis (m)
m=100; %mass per unit area (kgm^-2)
e=0.23; %Eccentricity Ratio
EI=3675000; %Flexural rigitidy (Nm^2)
GJ=1890000 ;%Torsional rigitidy(Nm^2)
rho=1.225; %Air Density (Kgm^-3)
M_theta=-1.2; %Non-Dimensional pitch damping derivative
a_w=2*pi(); %Lift Curve slove
%Inertia, Structural, Aerodynamic Damping , Aerodynamic Stiffness matrices
A_i=[(s^5) (s^4/4)*((c^2/2)-(c*x_f));
(s^4/4)*((c^2/2)-(c*x_f)) (s^3/3)*(c^3/3)-c^2*x_f+c*c*x_f^2];%Inertria metrix of system
E=[4*EI*s 0;
0 GJ*s];%Structural Matrix
B=[(c*a_w*s^5)/10 0;
(-c^2*e*a_w*s^4)/8 (-c^3*s^3*M_theta)/24];%Aerodynamic damping matrix
C=[0 (c*s^4*a_w);
0 (-e*c^2*s^3*a_w)/6];% Aerodynamic Stiffness matrix
D=[0 0;
0 0];%Structural Damping matrix
A_inv=inv(A_i);
Q=zeros(2,2);
I=[1 0 ; 0 1];
%Frequency Domain
V_air=linspace(0,140,1000);
wn_i_all=zeros(4,length(V_air));
zet_i=zeros(4,length(V_air));
for i=1:length(V_air)
C_t =(rho*V_air(i).*(B+D));
K_t=rho*V_air(i).*(C+E);
A= [Q I ; A_inv*C_t A_inv*K_t]
[eig_v,eig_D]=eig(A)
d_eig_D_i = diag(eig_D);
d_eig_D_i = sort( d_eig_D_i );
wn_i = sqrt( real( d_eig_D_i ).^2 + imag( d_eig_D_i ).^2 );
zet_i = -real( d_eig_D_i ) ./ wn_i;
wn_i_all=wn_i(:,i)
end
plot (wn_i_all)
%Calling ODE45 Solver
% t_range=[0 40];
%Y0=[1 2];
%[t,x]= ode45(@LAMFWM,t_range,Y0)

採用された回答

Subhadeep Koley
Subhadeep Koley 2020 年 3 月 11 日
Access wn_i_all using the indexing variable i. Refer the code below.
%% Linear Aeroelastic model of a flexible wing using assumed mode shapes approach
clc;
close all;
global s c x_f m e EI GJ rho M_theta a_w A_inv C E B D
% Setting Parameters
s = 7.5; %semi span (m)
c = 2; %chord (m)
x_f = (0.48*c); %Flexural axis (m)
m = 100; %mass per unit area (kgm^-2)
e = 0.23; %Eccentricity Ratio
EI = 3675000; %Flexural rigitidy (Nm^2)
GJ = 1890000 ;%Torsional rigitidy(Nm^2)
rho = 1.225; %Air Density (Kgm^-3)
M_theta = -1.2; %Non-Dimensional pitch damping derivative
a_w = 2*pi(); %Lift Curve slove
%Inertia, Structural, Aerodynamic Damping , Aerodynamic Stiffness matrices
A_i =[(s^5) (s^4/4)*((c^2/2)-(c*x_f));
(s^4/4)*((c^2/2)-(c*x_f)) (s^3/3)*(c^3/3)-c^2*x_f+c*c*x_f^2];%Inertria metrix of system
E = [4*EI*s 0;
0 GJ*s];%Structural Matrix
B = [(c*a_w*s^5)/10 0;
(-c^2*e*a_w*s^4)/8 (-c^3*s^3*M_theta)/24];%Aerodynamic damping matrix
C = [0 (c*s^4*a_w);
0 (-e*c^2*s^3*a_w)/6];% Aerodynamic Stiffness matrix
D = [0 0;
0 0];%Structural Damping matrix
A_inv = inv(A_i);
Q = zeros(2,2);
I = [1 0; 0 1];
%Frequency Domain
V_air = linspace(0, 140, 1000);
wn_i_all = zeros(4, length(V_air));
zet_i = zeros(4, length(V_air));
for i = 1:length(V_air)
C_t = (rho*V_air(i).*(B+D));
K_t = rho*V_air(i).*(C+E);
A = [Q I ; A_inv*C_t A_inv*K_t];
[eig_v, eig_D] = eig(A);
d_eig_D_i = diag(eig_D);
d_eig_D_i = sort( d_eig_D_i );
wn_i = sqrt( real( d_eig_D_i ).^2 + imag( d_eig_D_i ).^2 );
zet_i = -real( d_eig_D_i ) ./ wn_i;
wn_i_all(:, i) = wn_i;
end
plot(wn_i_all)
%Calling ODE45 Solver
%t_range=[0 40];
%Y0=[1 2];
%[t,x]= ode45(@LAMFWM,t_range,Y0)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by