Teknisk dokumentation

Relevanta dokument
Designspecifikation. LIPs. LiTH Flygsimulator Joacim Dahlgren. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs Kristin Fredman

Kravspecifikation. LIPs. LiTH Flygsimulator Erik Carlsson. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs Kristin Fredman

LiTH Flygsimulator Testprotokoll Version 1.0 TSRT71 Reglerteknisk projektkurs L IPs Kristin Fredman

Användarhandledning. LiTH Flygsimulator Carl Blumenthal. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs LIPs Kristin Fredman

Projektplan. LIPs. LiTH Flygsimulator Petra Malmgren. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs Kristin Fredman.

Systemskiss. Redaktör: Anders Toverland Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Anders Toverland

Beräkningsuppgift I. Rörelseekvationer och kinematiska ekvationer

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Systemskiss. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Testplan Autonom truck

Systemskiss. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Erik Andersson Version 1.0. Status

Inlämningsuppgift 4 NUM131

A. Stationära felet blir 0. B. Stationära felet blir 10 %. C. Man kan inte avgöra vad stationära felet blir enbart med hjälp av polerna.

HARALD Testprotokoll

LNC Lösningar

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Systemskiss. LiTH Autonom bandvagn med stereokamera Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

TANA17 Matematiska beräkningar med Matlab

LiTH Golfspelande industrirobot Designspecifikation. Designansvarig: Mikaela Waller Version 1.0. Status. Granskad Martin

Systemskiss. LiTH Kamerabaserat Positioneringssystem för Hamnkranar Mikael Ögren Version 1.0. Status

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

Testplan. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansvarig: Henrik Abrahamsson Datum: 14 mars Status.

Testspecifikation. Henrik Hagelin TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Försättsblad till skriftlig tentamen vid Linköpings universitet

G(s) = 5s + 1 s(10s + 1)

Testplan. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

Robotarm och algebra

TENTAMEN I TSRT09 REGLERTEORI

Systemskiss. Michael Andersson Version 1.0: Status. Platooning Granskad DOK, PL Godkänd Erik Frisk

HARALD. Version 0.2 Redaktör: Patrik Johansson Datum: 8 maj Status. Granskad - yyyy-mm-dd Godkänd - yyyy-mm-dd

Reglerteori. Föreläsning 11. Torkel Glad

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

HARALD. Systemskiss. Version 0.3 Redaktör: Patrik Johansson Datum: 20 februari Status

LiTH Autonom styrning av mobil robot Testplan Version 1.0 TSRT71-Reglertekniskt projektkurs Anders Lindgren L IPs

Testprotokoll. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

TENTAMEN I TSRT09 REGLERTEORI

Flervariabel reglering av tanksystem

Testplan Erik Jakobsson Version 1.1

Industriella styrsystem, TSIU06. Föreläsning 1

Användarhandledning. Redaktör: Jenny Palmberg Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Jenny Palmberg

Inledning. Kapitel Bakgrund. 1.2 Syfte

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

Lösningsförslag till tentamen i Reglerteknik fk M (TSRT06)

Systemskiss. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Jon Månsson Version 1.0

8.3 Variabeltransformationer Frånkoppling. Betrakta ett 2x2-system, som beskrivs med modellen (8.3.1)

Linjär Algebra, Föreläsning 2

Reglerteknik I: F1. Introduktion. Dave Zachariah. Inst. Informationsteknologi, Avd. Systemteknik

Flervariabel reglering av tanksystem

LiTH, Reglerteknik Saab Dynamics. Testplan Collision avoidance för autonomt fordon Version 1.0

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

TENTAMEN I REGLERTEKNIK Y/D

Figure 1: Blockdiagram. V (s) + G C (s)y ref (s) 1 + G O (s)

SIMULINK. En kort introduktion till. Polplacerad regulator sid 8 Appendix Symboler/block sid 10. Institutionen för Tillämpad Fysik och elektronik

Veckoblad 1, Linjär algebra IT, VT2010

Tentamensskrivning i matematik GISprogrammet MAGA45 den 23 augusti 2012 kl 14 19

Överföringsfunktioner, blockscheman och analys av reglersystem

Välkomna till TSRT19 Reglerteknik Föreläsning 3. Sammanfattning av föreläsning 2 PID-reglering Blockschemaräkning Reglerdesign för svävande kula

PC-BERÄKNINGAR. REGLERTEKNIK Laboration 5 och inlämningsuppgift. Inlämningsdatum:... Inlämnad av labgrupp:... Gruppdeltagare:

TSRT91 Reglerteknik: Föreläsning 11

= y(0) för vilka lim y(t) är ändligt.

Testplan. LiTH. Autopositioneringssystem för utlagda undervattenssensorer Martin Skoglund Version 1.1. Status

Systemskiss Optimal Styrning av Autonom Racerbil

Kravspecifikation. Oskar Törnqvist Version 1.0. Status. Granskad. Godkänd

Lösningar Heureka 2 Kapitel 3 Rörelse i två dimensioner

Datorövning Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Stabilitetsanalys och reglering av olinjära system

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

Designspecifikation. LiTH Autonom styrning av mobil robot Martin Elfstadius. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

TSIU61: Reglerteknik. Sammanfattning från föreläsning 3 (2/4) ˆ PID-reglering. ˆ Specifikationer. ˆ Sammanfattning av föreläsning 3.

För att få ett effektiv driftsätt kan det ibland behövas avancerad styrning.

F3C HELIKOPTER SPORT PROGRAM (Ny manöver 2 ersätter tidigare, fr.o.m. 2001)

Testprotokoll. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

TSIU61: Reglerteknik. PID-reglering Specifikationer. Gustaf Hendeby.

LIPs Fredrik Ljungberg ChrKr Projektdirektiv18_ROV.doc CKr

Andra EP-laborationen

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

REGLERTEKNIK Inledande laboration (obligatorisk)

Försättsblad till skriftlig tentamen vid Linköpings universitet

Institutionen för Tillämpad Fysik och elektronik Umeå Universitet BE. Introduktion till verktyget SIMULINK. Grunderna...2

Systemskiss. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansva Datum: 13 februari Dokumentansvarig: Henrik Abrahamsson.

TAIU07 Matematiska beräkningar med Matlab

F13: Regulatorstrukturer och implementering

Reglerteknik AK. Tentamen 27 oktober 2015 kl 8-13

Testprotokoll Autonom målföljning med quadcopter

Signaler och reglersystem Kapitel 1-4. Föreläsning 1, Inledning Reglerteknik

Reglerteknik AK, FRTF05

TENTAMEN REGLERTEKNIK TSRT15

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Efterstudie. Redaktör: Jenny Palmberg Version 1.0. Status. LiTH Fordonssimulator. Granskad Godkänd. TSRT71 Jenny Palmberg

Transkript:

Flygsimulator 5-5-8 Teknisk dokumentation Version. Status Granskad Godkänd Kristin Fredman

Flygsimulator 5-5-8 Projektidentitet Vårterminen 5 Linköpings tekniska högskola, Institutionen för systemteknik, ISY Namn Ansvar Telefon E-post Andreas Gunnarsson testansvarig (TST) 76-8 5 andgu5@student.liu.se Carl Blumenthal grafikansvarig (GA) 79-9 9 54 carbl47@student.liu.se Daniel Gustavsson webansvarig (WEB) 75-9 74 7 dangu56@student.liu.se Erik Carlsson kundansvarig (KUN) 76-7 7 4 erica64@student.liu.se Joacim Dahlgren designansvarig (DES) 77-7 47 56 joada89@student.liu.se Jonny Andersson kvalitetssamordnare (QS) 75-54 96 7 jonan5@student.liu.se Kristin Fredman dokumentansvarig (DOK) 74-77 88 7 krifr77@student.liu.se Petra Malmgren projektledare (PL) 77-6 7 petma8@student.liu.se Hemsida: www.edu.isy.liu.se/~dangu56/ Kund: Avdelningen för Reglerteknik vid LiTH Kontaktperson hos kund: Torkel Glad, -88, torkel@isy.liu.se Kursansvarig: Anders Hansson, -868, hansson@isy.liu.se Beställare: Johan Sjöberg, -88, johans@isy.liu.se Handledare: David Törnvist, -88., tornvist@isy.liu.se Kristin Fredman

Flygsimulator 5-5-8 Innehåll INLEDNING.... PARTER.... MÅL.... ANVÄNDNING....4 DEFINITIONER... ÖVERSIKT AV SYSTEMET.... GROV BESKRIVNING AV PRODUKTEN.... INGÅENDE DELSYSTEM.... AVGRÄNSNINGAR....4 DESIGNFILOSOFI... FLYGPLANSMODELL.... INLEDANDE BESKRIVNING AV FLYGPLANSMODELLEN.... GRÄNSSNITT MOT ANDRA MODULER.... FLYGPLANSMODELLENS UPPBYGGNAD... 4.. Aerodynamikblocket... 5.. Motorblocket... 6.. Gravitationsblocket... 6..4 Stelkroppsdynamiken... 7 4 KOORDINATTRANSFORMATION... 5 LANDNINGSMODELL... 5. INLEDANDE BESKRIVNING AV LANDNINGSMODELLEN... 5. KONTROLL... 5. POSITION... 5.4 TRAJEKTORIA... 6 REGULATOR... 6. INLEDANDE BESKRIVNING AV REGULATOR... 6. GRÄNSSNITT MOT ANDRA MODULER... 6. REGULATORNS UPPBYGGNAD... 4 6.. Styrlåda... 4 6.. Referensskapare manöver... 6 6.. Referensskapare autopilot... 7 6..4 LQ-reglering... 6..5 MUX... 7 ANVÄNDARINTERFACE... 7. INLEDANDE BESKRIVNING... 7. GRÄNSSNITT MOT ANDRA MODULER... 7. UPPSTART AV FLIGHTGEAR... 7.4 MODIFIKATIONER AV FLIGHTGEAR... 5 7.4. D-modeller i FlightGear... 5 7.4. Jas 9 Gripen... 6 7.4. Terrängmodifieringar... 7 8 DEMOUPPSPELNING OCH DEMOINSPELNING... 7 Kristin Fredman

Flygsimulator 5-5-8 8. INSPELNING... 7 8. UPPSPELNING... 8 REFERENSER... 9 APPENDIX A: INITIERINGSKOD FÖR FLYGPLANSMODELLEN... APPENDIX B: MATLABSCRIPT FÖR BERÄKNING AV LUFTENS DENSITET I AERODYNAMIKEN... APPENDIX C: INITIERINGSKOD FÖR AERODYNAMIKBLOCKET... APPENDIX D: KOPPLINGSCHEMA FÖR AERODYNAMIKEN... 4 APPENDIX E: MOTORMODELLENS IMPLEMENTERING... 5 APPENDIX F: INITIERINGSKOD FÖR MOTORMODELLEN... 6 APPENDIX G: MATLABSCRIPT FÖR BERÄKNING AV GRAVITATIONENS PÅVERKAN PÅ PLANET... 7 APPENDIX H: KOPPLINGSCHEMA FÖR STELKROPPSDYNAMIKEN... 8 APPENDIX I: KOD FÖR MARKKONTAKT... 9 APPENDIX J: IMPLEMENTERING AV QUATERNIONER TILL EULER... 4 APPENDIX K: KOD FÖR BERÄKNING AV LONGITUD OCH LATITUD... 4 APPENDIX L: MATLABKOD FÖR BLOCKET KONTROLL... 4 APPENDIX M: MATLABKOD TILL TRAJEKTORIABLOCKET... 4 APPENDIX N: TILLSTÅNDSVEKTORN L OCH REFERENSUTÖKARE... 45 APPENDIX P: KOD I MAKEDEMO.M... 47 APPENDIX Q: FUNKTION FÖR DEMOUPPSPELNING... 48 Tabellförteckning Tabell : Styrsignalsvektorn controls... 4 Tabell : Tillståndsvektorn states... 4 Tabell : Orienteringsvektorn euler... 4 Tabell 4: Översättning från knapptryckning till mod... 5 Tabell 5: Referensskapare manöver... 7 Tabell 6: Kommandon till FlightGear... 4 Kristin Fredman

Flygsimulator 5-5-8 Dokumenthistorik version datum utförda förändringar utförda av granskad. 5-5-7 Dokumentet skapades alla alla. 5-5-8 Mindre korrigeringar PM, CB, JA KF Kristin Fredman

Flygsimulator 5-5-8 Variabelförteckning z led - definierad neråt genom flygplanets buk x led - definierad i flygplanets längd-led y led - definierad åt höger i förhållande till flygplanets riktning så att x, y, z blir er höger ON-bas. Acc - Flygplanets acceleration i x, y och z-ed F aero - Kraften från den aerodynamik som flygplansmodellen innefattar i x, y och z- led - Kraften från gravitationen ger upphov till på flygplanet i x, y och z-led F g F prop - Kraften från motorn på flygplanet i x, y och z-led L - Flygplanets moment runt x-axeln M - Flygplanets moment runt y-axeln M - Momentet som flygplanets aerodynamik ger upphov till runt x, y och z-axeln aero M - Momentet som uppkommer av flygplanets motor runt x, y och z-axeln prop Moment - Det totala moment som flygplanets påverkar flygplanet runt x, y och z-axeln N - Flygplanets moment runt z-axeln till - Quaternions vilket beskriver flygplanets orientering Ignition - Tändning till flygplanets motor Mixture - Luft/bränsleblandningen i till flygplanets motor Throttle - Gaspådraget till flygplanets motor Gas - Gasreglaget skalat enligt GAS = - gasreglage/6555 X - Flygplanets acceleration i x-led Y - Flygplanets acceleration i y-led Z - Flygplanets acceleration i z-led u - Flygplanets hastighet i x-led v - Flygplanets hastighet i y-led w - Flygplanets hastighet i z-led p - Flygplanets rotationshastighet kring x-axeln - Flygplanets rotationshastighet kring y-axeln r - Flygplanets rotationshastighet kring z-axeln θ - Eulervinklen roll φ - Eulervinklen pitch ψ - Eulervinklen yaw I - Tröghetskonstanterna för flyplanet x - Flygplanets avstånd i x-led till det fasta koordinatsystemet som är fast i f y f z f hangarfartyget - Flygplanets avstånd i y-led till det fasta koordinatsystemet som är fast i hangarfartyget - Flygplanets avstånd i z-led till det fasta koordinatsystemet som är fast i hangarfartyget Kristin Fredman

Flygsimulator 5-5-8 long - Flygplanets longitudinella position lat - Flygplanets laterala position R - Jordens radie (67 km) jord R tot - Totala radien till planet från jordens centrum, dvs R jord z f R y p ref ref h h yaw ψ u - Radien från jordens rotationsaxel till given latitud - referens på rollvinkelhastighet. - referens på tippvinkelhastighet. - avvikelse från referenshöjd, om h är positiv är flygplanet över aktuell referenshöjd. - avvikelse från den höjd som uppmätts då yaw-regulatorn slås på, om h yaw är positiv är flygplanet lägre än önskad höjd. - avvikelse från riktningsreferens, om ψ är positiv är referensriktningen till höger om aktuell riktning. - avvikelse från referenshastighet, om u är positiv är hastigheten för liten Kristin Fredman

Flygsimulator 5-5-8 Inledning Syftet med projektet var att med hjälp av verktygen Matlab och FlightGear ta fram en flygsimulator som visar vikten av ett fungerande reglersystem. Till flygsimulatorn ska en flygplansmodell med tillhörande regulator konstrueras. Användaren av flygsimulatorn ska kunna välja mellan olika moder där reglersystemet kopplas från och till. Med hjälp av en joystick ska användaren kunna styra flygplanet i de olika moderna och via en skärm kunna följa flygplanets rörelse.. Parter Kund är Torkel Glad och beställare är Johan Sjöberg vid avdelningen för reglerteknik, LiTH. Projektet har utförts av en projektgrupp bestående av åtta studenter i årskurs fyra på kursen Reglerteknisk projektkurs, TSRT7.. Mål Projektets mål var att projektgruppen skulle leverera en fungerande flygsimulator i enlighet med kravspecifikationen senast den maj 5. Projektet skulle dokumenteras enligt projektstyrningsmodellen LIPS.. Användning Resultatet av projektet är tänkt att används vid profilvalsdagar och öppethusdagar på universitet då simulatorn ska presentera hur användbart ett reglersystem är. Det är då tänkt att studenter eller blivande studenter ska kunna testa flygsimulatorn och inse vikten av reglersystem..4 Definitioner Flygfall: En benämning för planets dynamik vid en given höjd och fart. Styrmod: Olika sätt som flygplanet reagerar på pilotens kommandon. Översikt av systemet I det här kapitlet ges en översiktlig beskrivning av systemet.. Grov beskrivning av produkten Systemet är en komplett implementering av en flygsimulator med allt från joystick till grafikpresentation på skärmen. Systemet består av fyra olika delar, användarinterface, flygplansmodell, landningsmodell samt en regulator, se Figur. Hela systemet kan implementeras på en Windowsdator där Matlab med toolboxarna Simulink och AeroSim Blockset samt ett grafikinterface körs parallellt. Kristin Fredman Sida

Flygsimulator 5-5-8 Figur. Konceptskiss för systemets hårdvara och användande. Ingående delsystem Systemet består av fyra större delsystem; användarinterface, landningsmodell, regulator samt flygplansmodell. Landningsmodellen hanterar flygplanets landning på en fördefinierad plats. Användarinterfacet består av visualisering med hjälp av FlightGear till en skärm. Regulatorn kan köras i fyra olika moder, en mod för manuell styrning, två för manövrering och en autopilotmod med automatisk fart-, höjd- och kurshållning. I moden för manuell styrning påverkar pilotens joystickutslag direkt flygplanets roder utan någon som helst reglering. I den här moden bör det upplevas som svårt att flyga flygplanet. I manövreringsmoden däremot underlättar reglering styrningen. Det går att välja mellan två olika moder, tant- och racemod, som reglerar olika hårt. I autopilotmoden påverkar pilotens joystickutslag referensvärden för riktning, höjd och fart som sedan hålls konstanta till dess att nya referensvärden ges.. Avgränsningar I enlighet med kravspecifikationen har inte vind modellerats. Därför behöver inte regulatorn hantera denna typ av störningar. Ytterligare en avgränsning i enlighet med kravspecifikationen är att regulatorn endast är anpassad för ett flygfall, det vill säga en höjd och en hastighet. Dessutom kan flygplanet endast starta och landa på en specifik plats..4 Designfilosofi Systemet har hög modularitet så att det ska vara relativt enkelt att byta regulator och flygplansmodell. Även delsystemen är i sin tur uppdelade i mindre delsystem för att underlätta framtida modifieringar. Flygplansmodell Det här kapitlet beskriver hur flygsimulatorns ena delsystem flygplansmodell är implementerad. Kristin Fredman Sida

Flygsimulator 5-5-8. Inledande beskrivning av flygplansmodellen Flygplansmodellen är uppbyggd av fyra subsystem. Ett system beräknar de linjäriserade luftkrafterna utifrån fördefinierade matlabrutiner. Det andra beräknar flygplanets motorkraft och ytterligare ett beräknar gravitationens påverkan på planet. Det fjärde och sista beräknar utifrån ovanstående krafter flygplanets hastigheter och rotationer, det vill säga stelkroppsdynamiken för systemet. Modellens uppgift är att simulera en enkel flygplansmodell som är instabil i tippled, likt JAS-planet, för ett flygfall då denna instabilitet uppträder.. Gränssnitt mot andra moduler I Figur visas flygplansmodellens gränssnitt mot regulatorn och landningsmodellen. Flygplansmodellens in- och utsignaler är samma som i Matlab/Simulinks AeroSim Blockset, förutom att utsignalerna sensors, ang acc och mass har utelämnats. Anledningen till den modifikationen är att öka användarens möjligheter att lägga till och byta ut modulerna. Insignaler till flygplansmodellen är således vektorn controls som innehåller de styrsignaler som beräknas i regulatorn. Utsignaler från flygplansmodellen är flygplanets tillstånd, states, och flygplanets eulervinklar, euler. States Controls Euler Flygplansmodell Figur. Flygplansmodellen och dess in- och utsignaler Insignalsvektorn controls består av sju element och styr flygplansmodellen. Där finns alla roderutslag som kan påverka flygplansmodellen samt styrsignaler till flygplansmodellens motor. Roderutslagen är begränsade till ±. radianer för att motsvara verkliga begränsningar. Närmare detaljer om vektorn controls återfinns i Tabell. Kristin Fredman Sida

Flygsimulator 5-5-8 flap elevator aileron rudder Klaffarnas vinkelutslag i radianer. Höjdrodrens vinkelutslag (δe) i radianer. Skevrodrens vinkelutslag (δa) i radianer. Sidrodrets vinkelutslag (δr) i radianer. throttle Gaspådraget, anges mellan och. mixture Luft/bränsle-blandningen som skickas till motorn. ignition Anger om motorn är på eller av ( alt. ). Tabell : Styrsignalsvektorn controls Tillståndsvektorn states innehåller 5 element som beskriver flygplanets hastigheter, rotationshastigheter, position och orientering. Den innehåller också två element som inte är tillstånd, bränslemassa och motorhastighet. Ytterligare information om vektorn finns i Tabell. velb/velocities angular rates position uaternions fuel mass engine speed Flygplanets hastighetskomponenter (u, v, w) i ett flygplansfixt koordinatsystem relativt rumsfixt koordinatsystem. Flygplanets vinkelhastigheter (p,, r) i radianer kring flygplansfixa koordinatsystemets axlar. Flygplanets position (xf, yf, zf) i det rumsfixa koordinatsystemet. Flygplanets orientering. Nuvarande bränslevikt. Motorhastighet. Tabell : Tillståndsvektorn states Det program som används för att visualisera flygplanet arbetar med eulervinklar. Det medför att vi även måste generera eulervinklar för att kunna kommunicera med visualiseringsprogrammet. Eulervinklarna skickas därför ut i en vektor euler. För mer information se tabell. roll pitch yaw Rotationsvinkel kring flygplansfixa koordinatsystemets x-axel, rollvinkel. Rotationsvinkel kring flygplansfixa koordinatsystemets y-axel, tippvinkel. Rotationsvinkel kring flygplansfixa koordinatsystemets z-axel, skevvinkel Tabell : Orienteringsvektorn euler. Flygplansmodellens uppbyggnad Flygplansmodellen är uppdelad i fyra skilda block; aerodynamikblock, gravitationsblock, motorblock samt ett block för stelkroppsdynamik, se figur. Den uppdelningen är vald Kristin Fredman Sida 4

Flygsimulator 5-5-8 med hänsyn till att det ska vara lätt att byta ut till exempel motordynamiken mot en mer avancerad modell. I flygplansblockets mask under fliken Initialization finns de konstanter modellen använder sig av definierade. Initieringskoden som definierar konstanterna återfinns i Appendix A. Flygplansmodellen Aerocontrols Fearo Controls Velb Angularrates Faero Height Maero Fg States States Matlab_areodynamics Fprop Throttle Fprop Mixture Mprop Ignition Motorblock Maero Mprop Euler Euler Höjd Longitud Lattitud massa Flygplanets massa Quaternions Massa Stelkroppsdynamikblocket g m Fg Gravitationskonstant Clear Terminator g Gravitationsblock Fuel mass Engine speed Figur. Flygplansmodellens subsystem. Följande kapitel beskriver närmare varje del av flygplansmodellen. Där specificeras inoch utsignaler från varje block samt funktionaliteten för de olika blocken... Aerodynamikblocket I det aerodynamiska blocket beräknas de aerodynamiska krafter och moment som påverkar flygplanet. Detta gör blocket utifrån värden på roderutslag, hasigheter, vinkelhastigheter och höjd. De krafter och moment som aerodynamikblocket skapar skickas till stelkroppsdynamikblocket. Det aerodynamiska blockets insignaler angular rates och velb är återkopplade utsignaler från stelkroppsdynamiken och innehåller hastigheter samt vinkelhastigheter. Insignalen aerocontrol kommer från flygplansmodellens insignal controls och innehåller roderutslagen. De olika delblocken som bygger upp aerodynamiken är standardblock som återfinns i Kristin Fredman Sida 5

Flygsimulator 5-5-8 Matlabs AeroSim Blockset, förutom blocket som beräknar densiteten. Det blocket är en egendefinierad funktion, Embedded Matlab function. Koden i blocket framgår av Appendix B. De standardblock som används kräver ett antal fördefinierade konstanter. Dessa definieras i aerodynamikblockets mask under fliken Initialization. Initieringskoden som definierar konstanterna framgår av Appendix C. I flygplansmodellens aerodynamik är ljudhastigheten approximerad till en konstant (4 m/s) och vinden till nollvektorn. Dessa konstanter skickas sedan in i blocket Wind-axis velocities tillsammans med insignalen WelB = [u,v,w]. Ett tydligare kopplingsschema över aerodynamiken återfinns i Appendix D... Motorblocket Motorblocket tar tre insignaler, throttle (gaspådrag), mixture (bränsle-luft blandning) och ignition (tändning). Ur dessa beräknar blocket den framdrivningskraft F prop motorn ger flygplanet. Det moment M prop som motorn kan ge upphov till har för enkelhetens skull approximerat till noll. Vidare beräknas motoröverföringen som en linjär funktion av gaspådraget och ger endast ett bidrag i x-led. Således har motorn antagits vara perfekt centrerad i flygplanets kropp. Denna kraft multipliceras sedan med aktuell motoreffekt som beräknas ur bränsle/luftblandningen. Motoreffekten beror nämligen på vilken blandning mellan luft och bränsle som tillförs till motorn. F prop.8* massa * g = Throttle * Mixture* Ignition * Mixture =.75 M prop = * u.75 Optimal blandning mellan luft och bränsle är.75. Vid optimal blandning ges motoreffekten, annars ges en försämrad effekt. Slutligen bestämmer ignition om motorn ska vara påslagen och ge den beräknade motorkraften eller om den ska vara avslagen och ge kraften noll ut. Implementeringen av detta återfinns i Appendix E. Alla konstanter i motormodellen är implementerade i Initialization i blockets mask. Initieringskoden redovisas i Appendix F... Gravitationsblocket Gravitationsblocket har till uppgift att beräkna den resulterande gravitationspåverkan på flygplanet. Gravitationen antas vara konstant i hela flygrummet. Blocket levererar en kraftvektor x, F g, som utsignal. Denna innehåller gravitationens komponenter i det flygplansfixa koordinatsystemet. För att kunna beräkna hur gravitationskraften påverkar Kristin Fredman Sida 6

Flygsimulator 5-5-8 Kristin Fredman Sida 7 flygplanets används vektorn uaternions från stelkroppsdynamiken som beskriver flygplanets orientering samt konstanterna massa och aktuell gravitation. Blocket genomför en enkel matrismultiplikation som transformerar gravitationen från det rumsfixa koordinatsystemet till flygplanssystemet. Translationsmatrisen är hämtad från Stevens & Lewis (99). ( ) ( ) ( ) ( ) ( ) ( ) = = mg f f f F z y x g Operationen är implementerad i en Embedded Matlab function och redovisas i Appendix G...4 Stelkroppsdynamiken Stelkroppsdynamikblocket tar in alla krafter och moment från aerodynamik-, motor- och gravitationsblocket och med hjälp av rörelseekvationer och kinematiska ekvationer beräknas hastigheter, rotationshastigheter, position och orientering av flygplanet. Total acceleration och totalt moment Denna del av stelkroppsdynamiken tar alla krafter och moment som beräknats i aerodynamiken, motorblocket och i gravitationsblocket och summerar dem. För att få fram den totala accelerationsvektorn divideras F tot med flygplanets massa vilket beskrivs i det flygplansfixa koordinatsystemet. prop aero prop g aero M M Moment N M L Massa F F F Acc Z Y X = = = = Rörelseekvationer I det här subsystemet av stelkroppsdynamiken har rörelseekvationerna för ett flygplan i tre dimensioner som beter sig som en stel kropp implementerats. Kopplingsschemat, som är ganska omfattande, är redovisat i Appendix H. I blocket för rörelseekvationer är förutom rörelseekvationerna en markfunktion implementerad samt en transformation från uaternions till eulervinklar.

Flygsimulator 5-5-8 Markfunktion Den här funktionen har som uppgift att hålla flygplanet över marken när flygplanet ska starta från hangarfartyget. Detta är implementerat med ett Embedded Matlab function och redovisas i Appendix I. Funktionen är endast aktiv i ett närområde av hangarfartyget för att inte påverka flygplanet när det befinner sig på andra platser. Om flygplanet befinner sig på startbanan och accelerationen ner genom marken är större än noll sätts accelerationen till noll. Även momenten i roll- och pitchled sätts till noll om momenten vill få planet att röra sig genom marken. Dock kan flygplanet få positiv pitchvinkel vilket hjälper flygplanet att lyfta. Hastigheter och rotationshastigheter Den del av rörelseekvationerna som hanterar hastigheter (u, v, w) och rotationshastigheter (p,, r) är hämtade från Nelson (998) Tabell.. Ekvationerna tar accelerationerna (X, Y, Z) och momenten (L, M, N) samt de gamla rotationshastigheterna och hastigheterna för att beräkna de nya tillstånden. Rotationshastighetsekvationerna innehåller även komponenterna från flygplanets tröghetsmatris: I x, I y, I z och I xz. u& = rv w g sin( θ ) X m v& = ru pw g cos( θ )sin( φ) Y m w& = u pv g cos( θ ) cos( φ) Z m p& = I & = I =, v I I xz ( pr( I I ) I ( r p ) M ) I xz r& = I z p I I x Initialvärdena : u i y x i z z =, w i r I x y x =, p xz i I I z y =, I I I I i xz z xz x =, r p I I r I i = xz xz x I I ( I I ) y xz z ( I I ) z x I y xz I I I I xz xz x z N L L N Initialvärdet av u, v, w, p, och r sätts till eftersom flygplanets antas stå helt stilla på hangarfartyget vid start av modellen. Quaternioner I flygplansmodellen används uaternioner för att beskriva flygplanets orientering. Anledningen till valet att representera orienteringen med hjälp av uaternioner är att det inte ska inträffa några singulariteter i någon av modellens ekvationer. Enligt uaternionernas definition ska normen av vektorn vara ett. Dock sker det ibland att den inte blir det. För att minska problemet med detta används en normeringsapproximation som är hämtad från Cooke (994) vilket gör en form av normering innan de nya tillstånden integreras fram. Denna normering kommer dock inte att hålla normen av Kristin Fredman Sida 8

Flygsimulator 5-5-8 Kristin Fredman Sida 9 vektorn på konstant ett utan i ett närområde av ett. Normaliseringen representeras i ekvationerna nedan med λ och denna normalisering kräver att integreringssteglängden är mindre än ett för god prestanda. ( ),,, : = = = = = = i i i i Initialvärden p r p r r p r p λ λ & & & & Quaternioner initiering: =-, =, = och = svarar mot roll =, pitch = och yaw = i eulervinklarna vilket betyder att flygplanet står horisontellt på hangarfartyget med nosen pekandes mot norr (längs med startbanan). Quaternioner till euler För att transformera om flygplanets orientering i uaternioner till eulervinklar användes ekvationer från Stevens & Lewis (99). Eftersom transformeringsekvationerna utgår från att uaternionerna är normerade till ett och den normeringsapproximation modellen använder sig av inte uppfyller detta krav hela tiden bör därför uaternionerna normeras innan transformeringen görs. Se ekvationerna nedan där är de icke normerade uaternionerna som normeras till. Implementeringen är utförd enligt Appendix J. ~ ( ) ( ) ( ) ( ) ( ) ( ) ( ) tan sin tan : ~ ~ ~ ~ ~ ~ ~ ~ : Transformering Normalisering = = = = ψ φ θ

Flygsimulator 5-5-8 Kristin Fredman Sida Positionering För att beräkna flygplanets position i det rumsfixa koordinatsystemet använder vi oss av följande uttryck ur Steven & Lewis (99). ( ) ( ) ( ) ( ) ( ) ( ) = = f f f f f f f f f w v u z y x w v u w v u & & & I uttrycket är u f, v f, w f hastigheterna i det rumsfixa koordinatsystemet. Dessa hastigheter integreras sedan upp till positioner, x f, y f, z f. 4 Koordinattransformation Den grafiska programvaran, FlightGear, kräver att flygplanets position uttrycks med hjälp av longitud, latitud och höjd. Latituden beräknas som vinkeln mellan ekvatorn och en given linje som går runt jorden parallellt med ekvatorn, se Ekman (). Latituden har sitt maxvärde vid nordpolen (π/) och sitt minvärde vid sydpolen (-π/). Longituden utgår från nollmeridianen, Greenwich meridianen, och beräknas som vinkeln mellan nollmeridianen och en cirkelbåge mellan polerna. Longituden är definierad i intervallet 8 grader till 8 grader. Longitud och latitud beräknas enklast om man utgår från ett kartesiskt koordinatsystem med origo på ekvatorn i nollmeridianen, x-axeln norrut och z- axeln mot jordens centrum. Latituden beräknas då enligt tot f R x lat = där ) ( f jord tot z R R = där m R jord 67 = Longituden är lite svårare att beräkna då vinkeln beror på latituden. Ekvationen är som följer y f R y long = där ) cos(lat R R tot y = För att sedan anpassa koordinatsystemet till flygplansmodellen måste koordinatsystemet translateras till den på förhand bestämda startposition på hangarfartyget i Roxen. Det genomförs genom att addera startposition till den framräknade positionen. Startposition är.9 N och.784 E. Observera att FlightGear tar longitud och latitud i radianer och inte i grader, minuter och sekunder som annars är brukligt.

Flygsimulator 5-5-8 Om flygplanet är så långt bort i x- eller y-led att latituden alternativt longituden hamnar utanför sitt definitionsintervall räknas den om med hänsyn till detta. lat lat long long = π lat om = π lat om π lat > π lat < * long om long > π = π = * π long om long < π Koden för att implementera dessa ekvationer återfinns i Appendix K. 5 Landningsmodell I det här kapitlet beskrivs hur flygplanets start och landning har implementrats. 5. Inledande beskrivning av landningsmodellen I detta avsnitt beskrivs hur landningen går till. När användaren trycker på landningsknappen signalerar han att han vill landa. Därefter måste han söka upp hangarfartyget beläget i Roxen. För att kunna landa på hangarfartyget behöver flygplanet komma från rätt håll. Detta hanteras genom att en vägg ska ska passeras under inflygningen. Denna är visualiserad med en ruta i FlightGear. Den ytan måste användaren klara att ta sig igenom för att kunna landa. I ett av landningsmodellens subsystem, kontroll, kontrolleras om flygplanet har tagit sig igenom väggen. Då skickas en triggsignal ut och aktiverar det så kallade positionsblocket, ett annat av landningsmodellens subsystem. När detta skett skapas en trajektoria i subsystemet trajektoriablocket, som helt tar över positioneringen av flygplanet. Flygplanet följer således den beräknade trajektorian. Insignaler till landningsmodellen är states och euler från flygmodellen och utsignaler är euler, u och position. 5. Kontroll Kontrollblocket testar kontinuerligt om flygplanet uppfyller positions-, riktnings- och hastighetsbegränsningar samt att piloten har signalerat att han vill landa. När detta är uppfyllt skickas en triggsignal till positionsblocket som aktiveras. Detta resulterar i att flygmodellen kopplas ur och landningsmodellen tar över. Flygplanet följer då den beräknade trajektorian istället för roderutslagen givna av piloten. Kontrollblocket tar in aktuella eulervinklar, hastigheter och position samt en signal som indikerar att piloten gett landningskommando och skickar ut triggsignalen. Koden för detta block finns i Appendix L. Kristin Fredman Sida

Flygsimulator 5-5-8 Figur 4. Kontrollblocket triggar när planet flyger genom den gula rektangeln, luftväggen. 5. Position I tidpunkten då postionsblocket aktiverats av kontrollblocket skickas insignalerna rätt igenom blocket. Utsignalerna hålls sedan konstant till detta värde under hela landningen Utsignalen tid är konstant, vilket integreras till en ramp för att trajektoriablocket ska ha kontinuerlig tid som insignal. Övriga signaler är eulervinklar, hastigheter, position och en triggsignal. 5.4 Trajektoria Trajektorian har hela tiden koll på vilken position, orientering samt vilken hastighet planet hade rakt fram då landningsmodellen tog kontroll över planet. Trajektoriablockets ryggmärg, för att få en jämn övergång då blocket tar kontroll över planet, är hastigheten och tiden. Utifrån planets hastighet beräknas hur lång tid det ska ta för planet att landa. Denna tid delas upp i stycken olika stora intervall beroende på hur planet ska uppföra sig; T_fix, T_flyg och T_mark. T_fix är den tid planet har på sig att korrigera sin orientering så att planets nos pekar i samma riktning som landningsbanan. T_flyg är den tid det tar från det att planet är korrekt placerat till dess att planet tar mark. Planet kommer att rolla och ändra sin y-position till på halva denna tid. Flygplanet kommer även att tappa hastighet och höjd samt i slutet av Kristin Fredman Sida

Flygsimulator 5-5-8 tiden öka tippvinkeln så att planet landar med nosen riktad lite uppåt. T_mark är tiden från det att flygplanet tar mark till dess att planet står still. Under detta intervall styrs nosen ner så att planet står horisontalt och hastigheten minskas linjärt till. Trajektoriablocket är uppbyggt så att hastigheten framåt kommer att ha en jämn övergång medan hastigheterna neråt och åt sidan abrupt kommer att tilldelas värdet noll. På grund av kraven i kontrollblocket kommer detta inte att märkas då planet flygs i FlightGear. I trajektoriablocket styrs inte hastigheten utan positionen. Detta resulterar i att x- positionen måste minskas kvadratiskt. Trajektoriablocket tar in eulervinklar, hastigheter, position samt tid och skickar ut eulervinklar och position. Blockets kod finns i Appendix M. 6 Regulator I det här kapitlet beskrivs hur flygplansmodellens regulator har implementerats i Matlab/Simulink. 6. Inledande beskrivning av regulator Regulatorn är en av flygsimulatorns fyra delsystem och kommunicerar med flygplansmodellen samt landningsmodellen. Regulatorns uppgift är i första hand att stabilisera planet och i andra hand att reglera till önskad styrprestanda. Det är i regulatorn de olika moderna manuell, manöver, och autopilot har implementerats. 6. Gränssnitt mot andra moduler Regulatorn kommunicerar med flygmodellen genom att tillhandahålla styrsignaler. Styrsignalerna är en vektor med sju element, controls. En fullständig förteckning återfinns i tabell. Regulatorn kommunicerar även med landningsmodellen genom en signal landning som triggar landningssystemet att ta över regleringen. En vektor bestående av flygplanets hastighets-, höjd- samt positionsreferenser samt en signal mod används som stöd vid flygsimuleringen och är också utsignal från regulatorn. Även signalen start som signalerar till flygplansmodellen att flygplanet ska starta är utsignal. Som insignaler hämtas flygplanets tillstånd, states, från flygplansmodellen och flygplanets position beskrivet i eulervinklar från landningsmodellen. Vektorn states beskrivs utförligare i Tabell. I Figur 5 tydliggörs regulatorns gränssnitt. Kristin Fredman Sida

Flygsimulator 5-5-8 Controls States Landning Referenser Euler Start Mod Regulator Figur 5. Regulatorns in- och utsignaler. 6. Regulatorns uppbyggnad Regulatorn är uppdelad i fem undersystem; styrlåda, referensskapare manöver, referensskapare autopilot, LQ-reglering samt en MUX. De olika subsystemen beskrivs en i taget i nedanstående kapitel 6..-6..5. Subsystemens gränssnitt mot varandra tydliggörs i Figur 6. States Euler Joysticksignaler Euler States Controls_manuell Mod Referenser Landning Start Mod Styrlåda States Gaspådrag_auto Euler Referenser Referensvinkelhastigheter_auto Mod Referensskapare Autopilot 5 Mod Controls_auto Controls_tant Controls_race Controls_manuell Controls Saturation Saturation Saturation Controls Mod Saturation 4 start Referensvinkelhastigheter_race States Euler Referensvinkelhastigheter_race Controls_tant MUX Joysticksignaler Gaspådrag Gaspådrag_manöver Controls_race Referensvinkelhastigheter_tant Referensvinkelhastigheter_tant Referensskapare manöver Referensvinkelhastigheter_auto Gaspådrag_auto LQ-reglering Controls_auto Referenser Landning Figur 6. Schematisk bild över regulatorns subsystem. 6.. Styrlåda Från styrlådan levereras utsignalerna joysticksignaler, controls_manuell, referenser, landning, start samt mod. Dessa beräknas i styrlådan med hjälp av insignalerna states och euler samt med hjälp av ett joystickinterface implementerat i styrlådan som levererar joystickens utslag och knappnedtryckningar. I Figur 7 är styrlådans in- och utsignaler illustrerade. Kristin Fredman Sida 4

Flygsimulator 5-5-8 Euler States Joysticksignaler Controls_manuell Mod Referenser Landning Start Mod Styrlåda Figur 7. Styrlådans in- och utsignaler. I styrlådan är joystickgränssnittet implementerat med hjälp av ett simulinkblock hämtat från AeroSim Blockset. Utsignaler från joystickgränssnittet är tre vektorer, men endast vektorerna axes och buttons används. Läget på joystickens tre axlar samt gaspådraget anges mellan och 6555. Dessa finns i axes. Signalerna översätts till lämpliga roderutslag och gaspådrag enligt ekvationerna nedan. Modellen för hur sidroderutslag påverkar flygplanets uppförande var ej tillräckligt tillfredställande, därför valde vi att inte använda sidrodret genom att sätta sidroderutslag till noll. Skevroderutslag =.5*(a()-767)/767 Höjdroderutslag = -.5*(a()-767)/767 Gaspådrag Sidroderutslag = = -a()/6555 Där a(i): element i i vektorn axes. buttons innehåller information om vilka knappar som är intryckta och levererar elementvis då en knapp är intryckt och annars. Dessa översätts med hjälp av en modselektor till en enkel signal mod mellan ett och fyra, se Tabell 4. Styrlådan håller på så sätt via joystickinterfacet reda på senaste knapptryckningen och därmed vilken mod flygplanet ska befinna sig i. b(i): element i i vektorn buttons. Mod [b(5) b(6) b(7) b()] [ ] [ ] [ ] 4 [ ] Tabell 4: Översättning från knapptryckning till mod Kristin Fredman Sida 5

Flygsimulator 5-5-8 Roderutslagen och gaspådraget samt konstanterna mixture, ignition och flaps bildar tillsammans en vektor controls_manuell som i manuell mod är styrsignalerna till flygplansmodellen. mod, controls_manuell samt joysticksignaler är utsignaler från styrlådan. I styrlådan skapas också utsignalen start. start används för kommunikation med flygplansmodellen. Den blir aktiv hög då gaspådraget har nått en tröskel på /4, det vill säga då a() 6555/4. Signalens syfte är att tala om när piloten är redo att starta från hangarfartyget. En annan liknande utsignal är signalen landning. Den blir aktiv hög då element åtta i buttons, b(8), har tryckts in. Vid ytterligare en intryckning blir landning låg igen. Signalen landning kommunicerar med landningsmodellen för att tala om när piloten avser att landa på hangarfartyget. Utsignalen mod från styrlådan är en hjälpsignal till autopiloten och används för att ställa in aktuell höjd som höjdreferens då autopiloten slås på. Detta görs för att planet inte ska styra efter gamla referensvärden innan de önskade referensvärdena har angetts. mod aktiveras således då knappen för autopilot trycks ned. Även vektorn referenser är utsignal från styrlådan. Referenser är flygplanets höjd, hastighet samt riktning, det vill säga eulervinkeln yaw. Referenserna för höjd och riktning fås genom att, när moden autopilot aktiveras, räkna upp de aktuella värdena på referenserna vid modbytet vid varje tidpunkt då det finns ett utslag från joysticken. Det aktuella värdet för höjden vid modbytet fås från det nionde elementet i insignalen states och värdet för riktningen från det tredje elementet i insignalen euler. Uppräkningen av värdena görs genom att skala utslagen från joysticken och sedan addera signalerna till de gamla referensvärdena för höjd och riktning var ms. Höjdsignalen från joysticken skalas /5 och riktningssignalen med /. Därigenom skapas referenser på höjd och riktning. Skalningarna har valts för att få en lagom snabb ändring av referenserna. Då riktningsreferensen skapas görs denna vinkel om till en vinkel mellan -π och π radianer eftersom det är de tillåtna vinklar som används av flygmodellen. 6.. Referensskapare manöver Referensskaparen för de två manövermoderna tant och race tar in joysticksignaler, det vill säga värden på joystickens axlar samt gasreglaget. För att göra referensskaparen mindre känslig för mycket små avvikelser från joystickens axlar läggs en dödzon in med medelpunkt på det värde som fås då joysticken inte vidrörs. Samtliga axlar ger en signal mellan och 6555 och referensvinkelhastigheter skapas utifrån dessa värden. För moderna tant och race fås olika referenser. Utsignalerna från referensskapare manöver blir därför gaspådrag, referensvinkelhastighet_race och referensvinkelhastighet_tant. I Figur 8 är in- och utsignalerna till manövermodernas referensskapare illustrerade. Kristin Fredman Sida 6

Flygsimulator 5-5-8 Referensvinkelhastigheter_race Joysticksignaler Gaspådrag Referensvinkelhastigheter_tant Referensskapare manöver Figur 8. In- och utsignaler till referensskapare manöver. Beroende på vilken manövermod systemet befinner sig i ska flygplanet uppföra sig olika. För att uppnå olika beteende för samma joystick-insignaler beräknas referensvinkelhastigheterna enligt Tabell 5. Detta har gjorts för att enklare kunna ändra snabbheten i moderna utan att behöva omarbeta hela LQ-regulatorn. Mod p ref ref r ref race-mod tant-mod u 7.5 767 u.5 767 5.5 u 5 767 u 5 767 u 767 u 767 Tabell 5: Referensskapare manöver p ref = referensrollvinkelhastighet ref = referenstippvinkelhastighet r ref = referensgirvinkelhastighet u = axel åt höger/vänster u = axel upp/ned u = axel medsols/motsols eller motsvarande kontroll på gasreglage = gasreglage u 4 Gasreglaget skalas enligt följande: u 4 GAS = 6555 6.. Referensskapare autopilot Autopiloten är byggd för att översätta referenser på höjd och riktning till referenser på vinkelhastigheter som behandlas av LQ-regulatorn. Referens på hastigheten regleras här direkt till ett gaspådrag med hjälp av en PI-regulator. Som insignaler tas states, euler, referenser samt hjälpsignalen mod och som utsignaler ges gaspådrag_auto och Kristin Fredman Sida 7

Flygsimulator 5-5-8 referensvinkelhastigheter_auto. In- och utsignalerna till autopilotens referensskapare visas i Figur 9. States Euler Gaspådrag_auto Referenser Referensvinkelhastigheter_auto Mod Referensskapare Autopilot Figur 9. In- och utsignaler till referensskapare autopilot. Autopilotens strategi är i första hand att reglera avvikelser i riktning och därefter i andra hand att reglera avvikelser i höjd. Autopiloten består därför av två regulatorer, en yawregulator och en höjdregulator. Dessa koordineras sedan med hjälp av en regulatorväljare. Anledningen till autopilotens strategi att reglera höjd och riktning separat grundar sig i försök som gjorts med en kombinerad reglering av höjd och riktning. Det har dock visat sig vara svårt att få ett bra uppträdande då en sådan reglering görs med hjälp av PIDregulatorer. Det har också funnits funderingar på att låta ytterligare en LQ-regulator sköta autopiloten, men i detta fall fås stora problem med linjäriseringen. Beslutet att göra den förenklade strategin är därför en fråga om tid och prioriteringar eftersom projektets huvudsyfte inte var att göra autopiloten. Höjdregulator I höjdregulatorn regleras endast referens på tippvinkelhastigheten enligt: ref θ.4 sgn( θ ).8 sgn( h).8 sgn( h) = d ( h). h θ. sgn( θ ).. dt d ( h). h.. ( h) dt dt ( h) dt om h m och θ >.4 om h m och θ.4 om h m och θ >. om h m och θ. h = avvikelse från referenshöjd, om h är positiv är flygplanet över aktuell referenshöjd. θ = tippvinkel, om θ är positiv pekar nosen uppåt. ref = referens på tippvinkelhastighet. Vid höjdskillnader på över meter resulterar detta i en relativt konstant stigning på ungefär.4 radianer, dvs ungefär grader. Då höjdskillnaden är mindre än meter och tippvinkeln θ är större än. radianer rätas planet ut eftersom snabb höjdförändring inte längre behövs. Den integrerande delen i höjdregulatorn nollställs så fort höjdregulatorn aktiveras eller då höjdskillnaden blivit mindre än m och höjdregulatorn redan är aktiv. Detta görs för att förhindra integratoruppvridning. Den Kristin Fredman Sida 8

Flygsimulator 5-5-8 integrerande delen i höjdregulatorn gör att det stationära felet blir noll, vilket är önskvärt. Den deriverande delen i regulatorn är gjord för att minska överslängar och minska svängigheten i höjdregulatorn. Yaw-regulator Yaw-regulatorn innehåller liksom höjdregulatorn villkorliga regleringar. Yaw-regulatorn påverkar både roll och tippvinkelhastighet. Avvikelser från referensriktningen översätts till en vinkel mellan -π och π. Yaw-regulatorn är byggd för att hålla den höjd som flygplanet håller då yaw-regulatorn slås på. Yaw-regulatorns rollvinkelhastighetsreferens är: p ref d ( Ψ) o.5 Ψ. φ om Ψ och φ 5 dt d ( Ψ) o =.5 Ψ. om Ψ och φ < 5 dt o o.φ om Ψ och φ 5 o o Yaw-regulatorns tippvinkelhastighetsreferens är: ref där h yaw θ ψ φ ref p ref.6.4sgn( ϕ) hyaw 5θ om φ = Ψ <.6 Ψ.4sgn( ϕ) hyaw 5θ om φ - avvikelse från den höjd som uppmätts då yaw-regulatorn slås på, om h yaw är positiv är flygplanet lägre än önskad höjd. - tippvinkel, om θ ökar pekar nosen uppåt. - avvikelse från riktningsreferens, om ψ är positiv är referensriktningen till höger om aktuell riktning. - rollvinkel, om φ ökar tippar planet åt höger sett bakifrån. - referens på tippvinkelhastighet. - referens på rollvinkelhastighet. Regulatorväljare Regulatorväljaren väljer vilken av höjd- eller yaw-regulatorn som ska användas och arbetar efter en enkel beslutsregel. Då rollvinkeln är mindre än en grad och rikningsavvikelsen är mindre än en grad så används höjdregulatorn. Annars används yawregulatorn. Autopilotens noggrannhet Autopiloten har alltså en riktningsnoggrannhet på en grad och höjdregulatorn har en exakt insvängning till referenshöjd. Att yaw-regulatorn inte är nogrannare beror på att Kristin Fredman Sida 9

Flygsimulator 5-5-8 yaw-regulatorn byts ut mot höjd-regulatorn då vissa villkor är uppfyllda. Noggrannheten hos yaw-regulatorn skulle givetvis kunna förbättras men då med en långsammare autopilot som resultat. Noggrannheten som valts är därför en avvägning mellan snabbhet och precision. Hastighetsregulator För reglering av hastighet används en vanlig PI-regulator som försöker upprätthålla en hastighet på mach,4. PI-regulatorn ger: gaspådrag GAS = om GAS om GAS < om GAS > Där GAS =. u. 5 udt positiv är hastigheten för liten och u = avvikelse från referenshastighet, om u är 6..4 LQ-reglering I subsystemet LQ-reglering skapas de olika styrsignalerna för manövermod i tant- och raceläge samt styrsignalerna för autopiloten; controls_race, controls_tant och controls_auto. I tabell återfinns en förteckning över styrsignalerna. Styrsignalerna skapas med hjälp av linjärkvadratisk reglering av skillnaden i referenssignaler för vinkelhastigheter i de olika moderna jämfört med flygmodellens faktiska tillstånd från arbetspunkten. Insignaler till blocket LQ-reglering är därför vektorerna states, euler, referensvinkelhastigheter_race, referensvinkelhastigheter_tant och referensvinkelhastigher_auto samt signalerna gaspådrag_manöver och gaspådrag_auto som styrsignalerna utökas med. Ekvationen för LQ-regleringen är u = L ( r x) där x är en modifierad tillståndsvektor. Detta beskrivs noggrannare senare i detta avsnitt. I Figur visas LQ-blocket med dess in- och utsignaler. States Euler Referensvinkelhastigheter_race Gaspådrag_manöver Referensvinkelhastigheter_tant Referensvinkelhastigheter_auto Gaspådrag_auto Controls_tant Controls_race Controls_auto LQ-reglering Figur. LQ-regleringens in- och utsignaler. Kristin Fredman Sida

Flygsimulator 5-5-8 Linjärisering och tillståndsåterkoppling av flygmodell För de olika moderna används samma tillståndsåterkopplingsmatris L. L skapas genom att linjärisera flygmodellen kring en arbetspunkt tillika stationär punkt med hjälp av kommandot linmod i Matlab. Den linjäriserade modellens A- och B-matriser används tillsammans med straffmatriser som argument till kommandot lr i Matlab som genererade tillståndsåterkopplingen L. L återfinns i Appendix N. Arbetspunkten som flygmodellen linjäriserades runt, är då flygplanet flyger rakt fram i höjd med havsytan och med en hastighet på Mach.4. Det motsvaras av en tillståndsvektor: [u v w p r x f y f z f ] T = [,4*4 - ] T Straffmatriserna för tillstånden sattes till försumbart låga för alla tillstånd utom hastigheterna och vinkelhastigheterna. Av dessa straffades hastigheten i flygplanets x- riktning, u, försumbart lågt. Straffen för insignalerna sattes högt och av dessa straffades sidrodret hårdast på grund av att linjäriseringen inte representerar sidrodrets påverkan på flygplanet på ett tillräckligt bra sätt. Därför ska sidrodret helst inte användas. Anledningen till att även tillstånd som vi inte vill påverka straffas, om än försumbart, är att funktionen lr i matlab ibland stöter på svårigheter då nollor lämnas i diagonalelementen av straffmatriserna. Straffade tillstånd De tillstånd som straffas är således hastigheterna i flygplanets x-, y- och z-led; u, v och w samt flygplanets vinkelhastigheter kring dessa axlar; p, och r. I flygmodellen liksom i linjäriseringen av flygmodellen har vi tretton tillstånd, [u v w p r x f y f z f ] T. De tillstånden återfinns i de tretton första av vektorn states femton element. Därför avkopplas de sista två elementen i states. Element sju till tretton, xf till, ersätts med konstant noll så att det alltid ser ut som om de tillstånden befinner sig i arbetspunkten. Då återstår element ett till sex i states, u till r, som ska straffas. Viktigt att notera, är att LQregleringen som sagts ovan, reglerar på skillnader från arbetspunkten. Därför ska arbetspunkten för hastigheterna (u, v, w ) och vinkelhastigheterna (p,, r ) dras av för att skapa en vektor innehållande skillnader från arbetspunkten för de straffade tillstånden. Den då skapade vektorn, som här kan döpas till x, används sedan för att jämföras med referenserna för de olika moderna. Referenser Referensvinkelhastigheterna i de olika moderna ges som insignaler till blocket LQreglering. Dessa måste utökas med referenser för resterande tillstånd så att de blir en x-matris som kan jämföras med x. Det görs med en matris referensutökare som utökar vektorn för vinkelhastigheter till en x-matris med värdet på de utökade elementen. Detta sker enligt: T referensutökare* p r = p r [ ] [ ] T ref ref ref ref ref ref Kristin Fredman Sida

Flygsimulator 5-5-8 Ett problem med ovanstående referenser är att vid hastigheter överstigande hastigheten.4 Mach i arbetspunkten, tippar planet uppåt. Flygplanet har alltså en positiv vinkelhastighet vid högre hastigheter, trots att inget kommando från joysticken har getts. Det beror på att vi endast har linjäriserat kring en arbetspunkt och inte tagit hänsyn till de ökade krafter på planet som högre hastigheter innebär. Det problemet har lösts genom att kompensera med ett tillskott till referensvinkelhastigheten. Den kompensationen ges endast för hastigheter över.4 Mach och ökar därefter linjärt med lutningskoefficienten.4. Lutningskoefficienten beräknades genom att studera med avseende på hastigheten u, då inget joystick-kommando getts. Styrsignaler De skapade referenserna enligt ovan subtraheras med vektorn x. Skillnaden multipliceras därefter med L. Då har styrsignalerna till flygmodellen för de olika moderna skapats med hjälp av samma matris L. Styrsignalerna som skapats är vektorer innehållande styrsignaler för höjd-, skev- och sidroder. Styrsignalerna utökas därefter med gaspådraget och konstanta styrsignaler för flaps, ignition och mixture;, och.75. Då har utsignalerna controls_race, controls_tant och controls_auto skapats. Nedan syns LQregleringens ekvationer i sammandrag. elevator aileron = L rudder u v w * p ref p ref rref r Ο, flaps = mixture =.75 ignition =, elevator aileron controls = rudder gaspådrag.75 Där Ο är en 7x-matris innehållande endast nollor och avser skillnad från arbetspunkt. L är en x-matris skapad genom LQ-reglering över en arbetspunkt och återfinns i filen LQ_reglering.m 6..5 MUX Muxen är ett mycket enkelt block som tar in olika värden på controls som fås från LQreglering; controls_tant, controls_race och controls_auto samt tar in controls_manuell direkt från styrlådan. Som insignal fås också mod som styr vilken av styrsignalerna som är utsignal från Muxen och får gå vidare till flygmodellen som controls. 7 Användarinterface Det här kapitlet beskriver hur visualiseringen av flygplansmodellen i flygsimulatorn FlightGear går till samt hur FlightGear har modifierats. Kristin Fredman Sida

Flygsimulator 5-5-8 7. Inledande beskrivning FlightGear är en open-source flygsimulator som är gratis och utvecklas av frivilliga runt om i världen. Program installeras på datorn och startas sedan enklast med en.bat-fil där det går att skriva in alla inställningar som ska gälla. FlightGear används bara för visualisering. Kommunikation mellan Simulink och FlightGear görs med ett block från toolboxen AeroSim Blockset. 7. Gränssnitt mot andra moduler Kommunikationen med FlightGear är enkelriktad. Inga data kan skickas från FlightGear till Simulink. Från Simulink till FlightGear måste däremot flera olika data skickas för att positionera flygplanet i världen. Insignaler till FlightGear är därför flygplanets longitud, latitud och höjd som har samlats i vektorn position, samt flygplanets eulervinklar och hastighet. Hastigheten har egentligen ingen funktion för utritningen av planet men används för instrumentationen och kan sättas till valfri enhet. Blocket som tar hand om kommunikationen med FlightGear visas i Figur. Det är klokt att använda samma frekvens på dataöverföringen i FlightGear-interfaceblocket och i inställningarna när FlightGear startas. Vi har använt.s som fast stegtid i alla simulinkblock och Hz som uppdateringsfrekvens i FlightGear. Det visade sig fungera bra om man valde så. Figur. AeroSim Blocksets FlightGear-interfaceblock. 7. Uppstart av FlightGear FlightGear startas enklast genom att skapa en.bat-fil som exekveras när flygsimulatorn ska starta. De.bat-filer som skapats för projektet använder en rad kommandon. För att ändra eller titta i.bat-filerna går det öppna dem i anteckningar eller wordpad. I filerna står det först SET FG_ROOT= och en sökväg. Detta är till för att man endast ska behöva ändra på ett ställe om FlightGear skulle vara installerat på ett annat ställe än sökvägen som redan står. FG_ROOT blir en variabel som kan användas i anrop och sökvägar senare i filen. Därefter kommer en lång rad som börjar med %FG_ROOT%\bin\win\fgfs.exe. Denna text startar filen fgfs.exe i FlightGear som startar upp själva flygsimulatorn. Efter detta och på samma rad kommer alla inställningar som FlightGear startas med. Inställningar görs med -- och sedan ett kommando, tex. --enable-game-mode. De kommandon som har använts förklaras i Tabell 6. Kristin Fredman Sida

Flygsimulator 5-5-8 --fg-root= Ger FlightGear information om var det är installerat. --fg-scenery= Var FlightGear kan hitta sina terrängfiler. --aircraft=gripen Sätter att Jas 9 Gripen ska användas som flygplan. --control=joystick Sätter att styrning skall ske med joystick --native-fdm=socket,in,,,55,udp Gör så att FlightGear tar emot data via port 55 i Hz via udp. Rätt inställningar för AeroSim Blocksets kommunikationsblock mot FlightGear. --fdm=external Sätter flygmodellen till extern flygmodell. --enable-random-objects FlightGear lägger till olika hus och annat i terrängen för att det ska se mer detaljerat ut. --disable-specular-highlight Ljussättningen ändras så att våra tillagda modeller ritas ut utan större ljussättningsproblem. --enable-game-mode FlightGear startas i fullskärm och skärmens upplösning ändras till den som FlightGear körs i. --geometry=8x4 Sätter FlightGears upplösning till 8x4 pixlar. Tabell 6: Kommandon till FlightGear För att se hur andra inställningar skall skrivas in kan FlightGears egen grafiska launcher startas. Launchern med dess olika steg kan ses i Figur. Där går att göra inställningar och klicka i rutan show command line efter att flygplan och startbana har valts. Kristin Fredman Sida 4

Flygsimulator 5-5-8 Figur. Skärmdumpar från FlightGears launcherprogram..välj flygplan. Välj startbana. Vanliga inställningar 4. Avancerade inställningar 7.4 Modifikationer av FlightGear Flera olika modifikationer av FlightGear har gjorts för att skräddarsy miljön för flygsimulatorn. 7.4. D-modeller i FlightGear FlightGear ska kunna läsa in modeller i alla format som Plib kan hantera. Plib är en uppsättning C bibliotek som gör det enklare att utveckla spel (PLIB, 5). Två format som stöds är ACD (.ac), som FlightGears egna modeller använder, och ds Max (.ds) som flygsimulatorprojektets modeller använder. Då kunskaper inom modellering i Lightwave fanns i projektgruppen så gjordes modellerna i Lightwave (.lwo) och konverterades sedan till.ds. För konverteringen användes Polytrans då Lightwaves inbyggda konvertering inte var tillräckligt bra. Polytrans är ett professionellt verktyg för översättning och manipulering av många olika d-format. (PolyTrans, 5 och LightWave D, 5) Versionen av Lightwave som använts är 7. och versionen av Kristin Fredman Sida 5

Flygsimulator 5-5-8 Polytrans är 4... Båda dessa program kan ses i Figur. Om möjligheten finns är det antagligen enklare att göra modeller direkt i ds Max eller ACD för användning i FlightGear. Det är alltid bra att kunna undvika konverteringar då man inte vet exakt hur resultatet kommer att bli. Figur. Skärmdumpar av Lightwave 7. till vänster och Polytrans 4.. till höger 7.4. Jas 9 Gripen För att efterlikna Jas 9 Gripen konverterades en funnen modell i VRML-format till.lwo med Polytrans så att den kunde bearbetas i Lightwave. Modellen skalades till rätt storlek och texturerades för att sedan konverteras till.ds format. Alla texturer har gjorts som 4 bitars bitmappsbilder (.bmp) då dessa är lätta att manipulera och kan användas av FlightGear. För att få in Jas 9 Gripen som flygbart plan i FlightGear så skapades en del filer. På installations CD:n för flygsimulatorprojektet hittas dessa i katalogen Gripen. En utforskning av katalogen ses i Figur 4. Av filerna så är gripen-set.xml den viktigaste. Koden i filen kan ses i Appendix O. I filen skrivs var FlightGear kan hitta filer för modellen av flygplanet, filer för HUD:en (heads up display), vilken bild som ska användas som splash screen (uppstartsbild) när FlightGear startas och andra inställningar. Programmeringsspråket som används (xml) är lätt att förstå eftersom det går att titta på filerna för de andra planen och få idéer om vad som kan vara användbart. HUD:en är till exempel direkt tagen från F6 planet som följer med FlightGear. För att få FlightGear att hitta planet när programmet startar så behövs man endast lägga katalogen med filerna i \Data\Aircraft, sett från FlightGears installationskatalog. För att göra en flygning med Jas 9 Gripen i FlightGear utan Simulink, så måste flygmodellen (Flight Model eller fdm) ställas om till ufo. Detta görs i de avancerade inställningarna i FlightGear, se Figur, ruta 4. Kristin Fredman Sida 6