Bonjour à tous,

Je souhaite faire différents graphiques avec des polaires de vitesse pour un système de navigation. En gros, pour différentes vitesses de bateau, j'aimerais faire un graphe avec différentes vitesses de vent réel (et d'angle). A savoir, que je dois avant tout calculer la vitesse et l'angle du vent apparent (tout deux dépendent de la vitesse du bateau et du vent réel).

Pour ce faire, plutôt que passer par de multiple boucles avec comme résultats de nombreux vecteur représentant toutes les combinaisons possibles, je me suis dit qu'il était peut-être préférable de faire une grande structure avec avec tout ça.

Votre avis là-dessus ? Si la structure est préférable, pourriez-vous svp m'aider à la mettre en place ? Voici mon début de code

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
%% Définition des variables et données d'entrée
Bs=[10 13 17 20]; %knot
TWS=[10:10:50]; %knot
TWA=[0:1:180]; 
 
%% Les points qui doivent être calculés pour chaque combinaison de vitesse bateau et vent (à tous les degrés)
##AWS=sqrt(Bs.^2 + TWS.^2 - 2*Bs*TWS*cos((180+TWA)*pi/180)); %knot
##AWA=asin((Bs*sin((180+TWA)*pi/180))/AWS)+TWA; 
 
%% Définition de la structure (??)
Bs.TWS = [10:10:50];
Bs.TWS.TWA = [0:1:180];
 
%% Suite du code créé pour une seule valeur TWA et AWA
% Définition points calculés (manque des points pour aller à des angles <3 ou >20° et vitesse entre 5.5 et 13.88)
M_sim = [0	5.555	5.3	14.2;
3	5.555	135.3	17.0;
5	5.555	221.9	21.8;
...
20	13.888	3572.0	916.0];
 
alpha_sim = M_sim(:,1);
v_sim = M_sim(:,2);
Fz_sim = M_sim(:,3);
Fx_sim = M_sim(:,4);
 
% interpolation pour avoir les forces (pour chaque degré) à la vitesse vent apparent désiré
for i=1:90;
  alpha(i) = i;
  Fz_alpha(i) = griddata(alpha_sim, v_sim, Fz_sim, alpha(i), AWS);
  Fx_alpha(i) = griddata(alpha_sim, v_sim, Fx_sim, alpha(i), AWS);
  Finesse(i) = Fz_alpha(i)/Fx_alpha(i);
endfor
 
x = 90-AWA; % donne angle de la force de portance
Fprop = Fz_alpha*cos(x*pi/180);
Farr = Fx_alpha*cos((90-x)*pi/180);
Fr = Fprop-Farr;
 
val=max(Fr); 
idx=find(Fr==val);
Fin = Fz_alpha(idx)/Fx_alpha(idx);
Du coup pour être clair dans ma question, est-ce que les structures sont la manière la plus adaptée d'approcher ce problème ? Et si oui, comment puis-je calculer "simplement" AWA et AWS en partant de structure ? Suis-je obligé de faire une boucle sur les valeurs individuelles ?

D'avance un grand merci pour votre aide.