Appendice D
Funzione di calcolo della distanza
minima
1 function [Dist_min20,Index_min20,DistBA20,DistBU20,Dist_min30,Index_min30,
2 DistBA30,DistBU30,Voto]=distanza_minima(PathBABU,Set20,Set30,W20,W30) 3 % Calcolo del voto assegnato alla configurazione del fowler (il minimo 4 % voto e il migliore voto possibile)
5 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 6 % Sintax 7 % [Dist_min20,Index_min20,DistBA20,DistBU20,Dist_min30,Index_min30, 8 % DistBA30,DistBU30,Voto]=distanza_minima(PathBABU,Set20,Set30,W20,W30) 9 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 10 % Input: 11 %
12 % PathBABU − Matrice con le traiettorie del bordo di attacco e del 13 % bordo di uscita.
14 % Ogni riga e espressa in questa maniera:
15 % [XBA YBA ZBA XBU YBU ZBU ... altri dati] 16 %
17 % Set20 − Matrice delle posizioni del bordo di attacco e del bordo 18 % di uscita a 20\textdegree.
19 % La matrice e espressa in questa maniera: [XBA YBA ZBA]
20 % [XBU YBU ZBU]
21 %
22 % Set30 − Matrice delle posizioni del bordo di attacco e del bordo 23 % di uscita a 20\textdegree.
24 % La matrice e espressa in questa maniera: [XBA YBA ZBA]
25 % [XBU YBU ZBU]
26 %
27 % W20 − Peso della posizione a 20\textdegree 28 % W30 − Peso della posizione a 30\textdegree
29 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 30 % Output:
31 %
32 % Dist_min20 − Distanza minima di passaggio dalla posizione a 20\textdegree [mm] 33 % Index_min20 − Indice della riga della matrice PathBABU a cui si ha la
34 % distanza minima rispetto alla posizione di 20\textdegree
35 % DistBA20 − Vettore delle distanze tra il bordo di attacco e il bordo 36 % di attacco alla posizione di 20\textdegree
37 % DistBU20 − Vettore delle distanze tra il bordo di uscita e il bordo 38 % di uscita alla posizione di 20\textdegree
39 % Dist_min30 − Distanza minima di passaggio dalla posizione a 30\textdegree [mm]
40 % Index_min30 − Indice della riga della matrice PathBABU a cui si ha la 41 % distanza minima rispetto alla posizione di 30\textdegree
42 % DistBA30 − Vettore delle distanze tra il bordo di attacco e il bordo 43 % di attacco alla posizione di 20\textdegree
44 % DistBU30 − Vettore delle distanze tra il bordo di uscita e il bordo 45 % di uscita alla posizione di 20\textdegree
46 % Voto − Voto della configurazione
47 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 48 % Calcolo del numero di righe della matriche PathBABU
49 [BA_righe,Cestino]=size(PathBABU); 50
51 % Calcolo della distanza tra la condizione a 20\textdegree e a 30\textdegree 52 %rispetto e tutte le posizioni assunte dal Fowler nel tempo
53
54 %Caricamento dei vettori "Distanza" vuoti 55 DistBA20=zeros(BA_righe,1);
56 DistBU20=zeros(BA_righe,1); 57 DistBA30=zeros(BA_righe,1); 58 DistBU30=zeros(BA_righe,1); 59
60 % Calcolo della distanza per ogni istante di tempo 61 for i=1:1:BA_righe
62 %Calcolo delle distanza del BA rispetto alla posizione del BA a 20\textdegree 63 %per ogni istante di tempo
64 DistBA20(i)=sqrt((PathBABU(i,1)−Set20(1,1))^2+(PathBABU(i,2)−Set20(1,2))^2); 65 %Calcolo delle distanza del BU rispetto alla posizione del BU a 20\textdegree 66 %per ogni istante di tempo
67 DistBU20(i)=sqrt((PathBABU(i,4)−Set20(2,1))^2+(PathBABU(i,5)−Set20(2,2))^2); 68 %Calcolo delle distanza del BA rispetto alla posizione del BA a 30\textdegree 69 %per ogni istante di tempo
70 DistBA30(i)=sqrt((PathBABU(i,1)−Set30(1,1))^2+(PathBABU(i,2)−Set30(1,2))^2); 71 %Calcolo delle distanza del BU rispetto alla posizione del BU a 30\textdegree 72 %per ogni istante di tempo
73 DistBU30(i)=sqrt((PathBABU(i,4)−Set30(2,1))^2+(PathBABU(i,5)−Set30(2,2))^2); 74 end
75
76 %Calcolo della somma delle distanze di BA e BU come indice di errore 77 Somma20=DistBA20+DistBU20;
78 Somma30=DistBA30+DistBU30;
79 %Ricerco il minimo di entrambe le somme 80 [Dist_min20,Index_min20]=min(Somma20); 81 [Dist_min30,Index_min30]=min(Somma30); 82 %Calcolo il voto. 83 Voto=(W20*abs(Dist_min20)+W30*abs(Dist_min30)); 84 end