Bonjour tout le monde,
J'ai un système d'équations différentielles et j'aimerais voir l'allure de mes variable d'état x1, x2 et x3 pour différente valeur de mon input u. J'ai posé mon système dans une fonction, puis résolu dans un autre script mon système avec ode45 (j'ai aussi essayé avec d'autre solveur) et j'ai toujours le même problème : je ne reçois pas de message d'erreur, mais mes vecteurs x1,x2 et x3 sont rempli de NaN (not a number) ....
Voilà mes deux scripts :
et le deuxième :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function x_dot = kite_func(t,x) L=400; %tether length [m] A=300; %area of the kite [m²] hmin=100; %minimum permissible altitude [m] c=0.25; %constant : how much glide ratio is penalized for a steering deflection [-] g=7.5e-3; %constant [m⁻¹] v0=10; %wind speed [m s⁻¹] E0=5; %kite's glide ratio [-] beta=0; %angle between bot direction and relative wind rho=1.293; %density of the air Pd=rho*v0^2/2; %wind's dynamic pressure c_tild=0.028; %[-] u=1; u_tild=g*L*u; %substitution to simplify the problem E=E0-c_tild*u_tild^2; %kite's glide ratio diminished by steering deflection va=v0*E*cos(x(1)); %magnitude of apparent wind vector projected onto the quarter sphere's tangent plane x_dot(1) = va/L*(cos(x(3))-tan(x(1))/E); x_dot(2) = -va/(L*sin(x(1)))*sin(x(3)); x_dot(3) = va/L*u_tild-va/(L*sin(x(1)))*sin(x(3))*cos(x(1)); x_dot=x_dot';
Est-ce que quelqu'un a une idée du problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 t_init=0; t_final=10; x1_0=0; x2_0=0; x3_0=0; options_struct = odeset('RelTol', 1E-6, 'AbsTol', 1E-6); [t, x] = ode45(@kite_func,[t_init t_final],[x1_0 x2_0 x3_0], options_struct); plot(t,x(:,1),'-',t,x(:,2),'.',t,x(:,3),'--')
Partager