This is an old revision of the document!
Effizienzberechnung
oder "Wie weit komme ich bei welchem Wind?"
Hintergrund
Fragt man einen Aviation-Laien wie viel l盲nger ein Flugzeug braucht f眉r einen Flug bei konstantem airspeed mit Hin- und R眉ckflug, wobei der Hinflug mit R眉ckenwind und der R眉ckflug mit Gegenwind gleicher st盲rke erfolgt, so ist ein Gro脽teil der Meinung, dass sich die Winde ausgleichen. Die Flugzeit w盲re so unabh盲ngig von der Windgeschwindigkeit. Dieser Irrglaube verpufft schnell, wenn man die Frage in den Raum stellt, ob das auch gilt, wenn airspeed gleich windspeed ist.
Schwieriger wird es dann noch, wenn der Wind von der Seite kommt und komplexer wird es, wenn die Strecke viele Abschnitte hat f眉r die es eine gemeinsame Effizienz zu berechnen gilt.
Ziel
Es gilt ein Framework aufzubauen, dass es erm枚glicht die Effizienz, und damit auch den Energieverbrauch, f眉r eine gegebene Strecke zu berechnen. Die einzige Eingabe daf眉r soll die Windrichtung, Windst盲rke und das Effizienzprofil des verwendeten Flugzeugs in Watt pro km/s sein. F眉r eine Suchpattern gilt es vorzuschlagen in welche Himmelsrichtung die Flugbahnen ausgerichtet werden, um am effizientesten zu fliegen.
Formeln
Algorithmus
Konzept
- Relativer Windwinkel der Strecken berechnen
Matlab - Skript
Interpolieren der Effizienzwerte
Zum plotten der Kurven und zum genaueren Bestimmen der besten airspeed ist es unerl盲sslich die durch Messungen erhaltenen Rohdaten zu interpolieren. Zur besseren Darstellung in den plots sind auch Werte f眉r Geschwindigkeiten runter auf 1km/h und etwas h枚her als die h枚chste gemessene Geschwindigkeit interessant. Damit diese Extrapolationen die Kurve nicht derart ver盲ndern, dass eine fehlerhafte effizienteste Geschwindigkeit ermittelt wird, muss darauf geachtet werdern, dass die extrapolierten Leistungswerte eher ansteigen, als abzufallen. Die interpolationsfunktion interp1 von matlab mit der Methode 鈥渟pline鈥� erm枚glichte dies in diesem Fall. Sollte das mal nicht der Fall sein, k枚nnen andere Methoden versucht werden.
- Effizienzberechnung_step1_Interpolation.m
, measured_airspeed=[7 8 9 10 11 12 14 16 18 20 22 24 26 28 30]*3.6; %in km/h measured_power=[36.28589708 34.42375852 35.50096102 33.3665519 36.21718883 32.94772362 47.17750566 61.33935748 81.75780878 100.4778223 122.7823714 148.3755128 189.4795868 223.162757 255.8001442]; %in Watt N_v=300; %Anzahl der untersuchten Geschwindigkeitspunkte v_a_max=150; %Maximaler airspeed in km/h v_a = (1,v_a_max,N_v); interp_power = (measured_airspeed, measured_power, v_a,'spline'); % %Interpolierte Effizienzkurve plotten (measured_airspeed, measured_power, 'linewidth', 3) on (v_a, interp_power) off ('Rohdaten','Interpolierte Daten' ) ('airspeed/ km/h') ('Power/ Watt') ([0 270])
Das Ergebnis der Interpolation ist in diesem Bild zu sehen.
Weitere scripts benutzen den Funktionsaufruf load_aircraft_eff() um die interpolierte Leistungskurve zu laden.
- load_aircraft_eff.m
function [v_a,interp_power] = load_aircraft_eff() %load_aircraft_eff Flugzeugeffizienzkurve laden measured_airspeed=[7 8 9 10 11 12 14 16 18 20 22 24 26 28 30]*3.6; %in km/h measured_power=[36.28589708 34.42375852 35.50096102 33.3665519 36.21718883 32.94772362 47.17750566 61.33935748 81.75780878 100.4778223 122.7823714 148.3755128 189.4795868 223.162757 255.8001442]; %in Watt N_v=300; %Anzahl der untersuchten Geschwindigkeitspunkte v_a_max=150; %Maximaler airspeed in km/h v_a = (1,v_a_max,N_v); %Geschwindigkeitsvektor interp_power = (measured_airspeed, measured_power, v_a,'spline'); end
Eine weitere elementare Funktion ist eff_calc. Diese gibt die Geschwindigkeit und die Effizienz zur眉ck, die mit der gegebenen Effizienzkurve m枚glich sind. Die Effizienz bezieht sich immer auf den windlosen Fall.
- eff_calc.m
function [v_best,res_eff_best] = eff_calc(interp_power,v_a, TC, v_w, WD ) %eff_calc calculates the best speed and best efficiency of the plane for a given %efficiency curve, track, wind speed and wind direction WA = (WD-TC)*/180; WA_grad = 180/*WA; if WA==0 WA=0.0000001; %durch Null teilen verhindern end if WA== || WA==- WA=*1.00001; %Singularit盲t verhindern end v_a(v_w>v_a) = v_w; %complexe Zahlen verhindern durch |asin_argument| < 1 v_g = v_a.*((WA+(v_w./v_a.*(WA)))) ./ (WA); eff=v_g./v_a; for idx=1:numel(v_a) if eff(idx)<0 || v_w>=v_a(idx) eff(idx) = 0; end end res_eff= v_a./interp_power.*eff.*100./(v_a./interp_power); %Effizienz des Fliegers (Formel hat ggf. Optimierungspotenzial^^) [~,idx_best] = (res_eff); v_best = v_a(idx_best); res_eff_best = res_eff(idx_best); %Ergebnis soll Strecke/Energie in % sein (Bezug auf Windstille) (1) (v_a, res_eff); on (v_a(idx_best), res_eff_best, 'marker','x'); end
F眉r den vereinfachten Fall 鈥淔lug gegen den Wind鈥� kann man die beste airspeed sogar recht anschaulich ermitteln. Im folgenden Bild wird gezeigt, wie man durch Geraden, die ihre Urspr眉nge in der jeweiligen windspeed haben, die Geschwindigeit der besten Effizienz ermitteln kann. Dabei f盲llt auf, dass negative Winde gegen die Flugrichtung die Geschwindigkeit der besten Effizienz nicht beeinflussen. Erst ab einer Geschwindigkeit von ca. 35km/h wandert die Geschwindigkeit der besten Effizienz nach oben.
Mit dem script 鈥�. ist es m枚glich die efficiency f眉r eine Schaar aus Windgeschwindigkeiten zu ermitteln. In diesem Fall wurde eine winddirection von 180掳 bei einem true course von 0掳 gew盲hlt (also Gegenwind). Die windspeed wurde von 1 bis 100km/h in 1km/h-Schritten variiert.
- Effizienzberechnung_Windspeedvariation.m
, [v_a,interp_power] = load_aircraft_eff(); v_w=40; %windspeed in km/h WD=-180; %winddirection in 掳 TC=0; %true course in 掳 for v_w=1:100 [v_best,res_eff_best(v_w)] = eff_calc(interp_power,v_a, TC, v_w, WD ); end ('v_w von 1 bis 100 km/h' ) (2) (1:100,res_eff_best, 'linewidth', 3); ('windspeed/ km/h') ('efficiency / %')
Sch枚n zu sehen sind die Spr眉nge der besten Geschwindigkeit, die der Welligkeit der interpolierten Effizienzkurve geschuldet sind. Folgender Verlauf der Effizienz in Abh盲ngigkeit der Windgeschwindigkeit ergeben sich dabei. Bei dem Wind handelt es sich um Gegenwind, also Wind direkt auf die Nase des Flugzeugs.
Bei einem Wind von 90 von der Seite ergibt sich eine andere Kurve f眉r die Effizienz in Abh盲ngigkeit der Windgeschwindigkeit. Wie man im folgenden Bild sieht, dropped die Effizienz erst bei h枚heren Windgeschwindigkeiten steil ab und hat einen eher schwachen Einfluss bei geringen Windgeschwindigkeiten.
Implementierungsm枚glichkeit f眉r QGroundControl
- Feld erg盲nzen
- Ausgabe erweitern
Absch盲tzung des Effizienzvorteils durch die Implementierung
== Noch Fragen? == 鈥� Christian Panhans 2018/11/19 21:39