+353-1-416-8900REST OF WORLD
+44-20-3973-8888REST OF WORLD
1-917-300-0470EAST COAST U.S
1-800-526-8630U.S. (TOLL FREE)

Flight Simulation Software. Design, Development and Testing. Edition No. 1. Aerospace Series

  • Book

  • 512 Pages
  • January 2023
  • John Wiley and Sons Ltd
  • ID: 5841392
Flight Simulation Software

Explains the many aspects of flight simulator design, including open source tools for developing an engineering flight simulator

Flight simulation is an indispensable technology for civil and military aviation and the aerospace industry. Real-time simulation tools span across all aspects of aircraft development, from aerodynamics and flight dynamics to avionics and image generation systems. Knowledge of flight simulation software is vital for aerospace engineering professionals, educators, and students. Flight Simulation Software contains comprehensive and up-to-date coverage of the computer tools required to design and develop a flight simulator.

Written by a noted expert with decades of experience developing flight simulators in academia, this highly practical resource enables readers to develop their own simulations with readily available open source software rather than relying on costly commercial simulation packages. The book features working software taken from operational flight simulators and provides step-by-step guidance on software design, computer graphics, parallel processing, aircraft equations of motion, navigation and flight control systems, and more. - Explains both fundamental theory and real-world practice of simulation in engineering design - Covers a wide range of topics, including coding standards, software validation, user interface design, and sensor modelling - Describes techniques used in modern flight simulation including distributed architectures and the use of GPUs for real-time graphics rendering - Addresses unique aspects of flight simulation such as designing flight control systems, visual systems, and simulator instructor stations - Includes a companion website with downloadable open-source software and additional resources

Flight Simulation Software is a must-have guide for all developers and users of simulation tools, as well as the ideal textbook for relevant undergraduate and postgraduate courses in computer science, aeronautical engineering, electrical engineering, and mechanical engineering programs.

Table of Contents

Preface xiii

Aerospace Series Preface xvii

Glossary xix

About the Author xxiii

About the Companion Website xxv

1 Design of an Engineering Flight Simulator 1

1.1 The Evolution of Flight Simulation 1

1.2 Structure of a Flight Simulator 3

1.3 Real-time Flight Simulation 6

1.3.1 The Concept of Real-time Computing 6

1.3.2 Operating Systems 8

1.3.3 Latency 9

1.4 Distributed Computing 10

1.5 Processes and Threads 15

1.5.1 Multi-tasking 15

1.5.2 Semaphores 16

1.5.3 Asynchronous Input 18

1.5.4 Real-time Scheduling 21

1.6 Software Partitioning 22

1.7 Simulator Data 24

1.8 Input and Output 29

1.8.1 Data Acquisition 29

1.8.2 Digital-to-Analogue Conversion 30

1.8.3 Analogue-to-Digital Conversion 31

1.8.4 Multiplexing 33

1.8.5 Encoders 33

1.8.6 Digital Input/Output 34

1.8.7 Signal Conditioning 35

1.8.8 Embedded Systems 36

1.8.9 USB Interfacing 40

References 42

2 Software Methods in Simulation 45

2.1 The Laplace Transform 45

2.2 Transfer Functions 47

2.3 Discrete-event Systems 54

2.4 Data Fitting 58

2.4.1 Data Sources 58

2.4.2 Least-squares Method 60

2.4.3 Spline Methods 63

2.4.4 Extrapolation 70

2.4.5 Observations on Data Fitting 72

2.5 Numerical Methods 72

2.6 Numerical Stability and Accuracy 80

2.6.1 Numerical Stability 80

2.6.2 Numerical Accuracy 82

2.7 Timing Analysis 84

2.8 Simulation Packages 87

References 92

3 Aircraft Equations of Motion 93

3.1 Atmospheric Model 93

3.1.1 The Atmosphere 93

3.1.2 Wind 96

3.1.3 Turbulence 96

3.1.4 Wind Shear 98

3.2 Axes 99

3.2.1 Body Axes 99

3.2.2 Stability Axes 101

3.2.3 Local Frame 101

3.2.4 Earth-centred Earth-fixed Frame 104

3.2.5 Rotating Earth Frame 104

3.3 Quaternions 105

3.4 Aerodynamics 108

3.4.1 Performance and Handling 109

3.4.2 Coefficient of Lift 110

3.4.3 Coefficient of Drag 112

3.4.4 Coefficient of Side Force 113

3.4.5 Pitching Moment Coefficients 114

3.4.6 Rolling Moment Coefficients 115

3.4.7 Yawing Moment Coefficients 115

3.4.8 Mach Number 116

3.4.9 Observations 117

3.5 Equations of Motion 118

3.5.1 Forces 120

3.5.2 Moments 122

3.5.3 Long-Range Navigation 125

3.6 Propulsion 126

3.6.1 Piston Engines 127

3.6.2 Turbofans 134

3.7 Landing Gear 137

References 144

4 Flight Control Systems 147

4.1 Automatic Flight Control 147

4.2 Development of Flight Control Laws 148

4.2.1 The Case for Offline Development and Testing 148

4.2.2 SimPlot 150

4.2.3 Trimming 152

4.3 PID Control 154

4.4 Automatic Modes 157

4.4.1 Turn Coordinator 157

4.4.2 Yaw Damper 158

4.4.3 Pitch Rate Controller 160

4.4.4 Auto-throttle 163

4.4.5 Vertical Speed Hold 165

4.4.6 Altitude Hold 165

4.4.7 Heading Hold 166

4.4.8 Observations on Automatic Modes 170

4.5 Airbus Control Laws 170

4.5.1 Pitch Normal Law 171

4.5.2 Roll Rate Law 173

4.6 Tracking 174

4.7 Auto-land 177

4.8 Flight Director 180

4.9 Flight Management Systems 181

4.9.1 Flight Control Unit 182

4.9.2 Flight Management Systems Simulation 182

References 187

5 Navigation Systems 189

5.1 The Earth 189

5.1.1 Gravity 189

5.1.2 Magnetic Variation 190

5.2 Sensor Modelling 191

5.3 Navigation Principles 192

5.3.1 Position 192

5.3.2 Airspeed 194

5.3.3 Altitude 195

5.3.4 Heading 195

5.3.5 Distance and Bearing 197

5.4 Navigation Databases 199

5.5 Map Projections and Charts 203

5.6 Navigation Computations 207

5.7 Radio Navigation Aids 212

5.7.1 Automatic Direction Finding (ADF) 212

5.7.2 VHF Omni-directional Range 214

5.7.3 Distance Measuring Equipment 217

5.7.4 Instrument Landing System 218

5.8 Traffic Collision Avoidance Systems 221

5.9 Inertial Navigation Systems 223

5.10 Satellite Navigation 230

References 241

6 Aircraft Displays 243

6.1 OpenGL 243

6.1.1 The Development of OpenGL 243

6.1.2 Legacy OpenGL 244

6.1.3 OpenGL Version 4 245

6.2 glib - A 2D Graphics Library for Flight Simulation 253

6.2.1 GPU Software Interface 254

6.2.2 Dots, Vectors and Triangles 256

6.2.3 Textures 260

6.2.4 Fonts 264

6.2.5 Matrix Transformations 273

6.2.6 Summary of glib Functions 275

6.3 Graphics Libraries 275

6.3.1 GLFW 277

6.3.2 cglm 278

6.3.3 PngLib 278

6.3.4 FreeImage 279

6.3.5 FreeType 281

6.3.6 Compiling, Linking and Loading Shader Programs 281

6.3.7 Svg 281

6.4 Design Considerations 284

6.4.1 Absolute and Relative Rendering 284

6.4.2 Memory Organisation 286

6.5 EFIS Displays 287

6.5.1 Primary Flight Display 288

6.5.2 Navigation Flight Display 292

6.5.3 EICAS Display 294

6.6 Flight Instruments 296

6.7 Soft Panels 303

References 308

7 Image Generation Systems 309

7.1 IG Pipeline 309

7.2 Visual Databases 311

7.2.1 Constructing Visual Databases 311

7.2.2 Visual Database Standards 313

7.2.3 Visual Database Editing Tools 314

7.2.4 Representative Visual Databases 316

7.2.5 Visual Database Organisation 319

7.2.6 Binary-spaced Partition Trees 322

7.3 OpenSceneGraph 323

7.4 X-Plane 11 329

7.4.1 X-Plane 11 API 329

7.4.2 An X-Plane 11 Plug-in 330

7.4.3 OSG versus X-Plane 11 333

7.5 Head-up Displays 335

7.6 Digital Terrain Elevation Data 337

7.7 Visualisation 343

7.8 Observations 343

References 345

8 Sound Generation 347

8.1 Sound Waveforms 347

8.2 Sound Generation Methods 350

8.2.1 WAV Format 351

8.2.2 Fast Fourier Transform 352

8.2.3 FFTW 354

8.2.4 Filters 356

8.3 OpenAL 359

8.3.1 OpenAL Application Programming Interface 359

8.3.2 Loading Sound Files 360

8.3.3 Dynamic Sounds 363

8.4 Tones 364

8.4.1 Outer Marker 365

8.4.2 Middle Marker 367

8.4.3 Morse Code 367

8.4.4 Warnings 368

8.4.5 Background Sounds 369

8.4.6 Turbofan Sounds 369

8.4.7 Real-time Sound Generation 371

8.5 Recordings 372

8.5.1 Airspeed-related Sound 372

8.5.2 Turbofan Engines 373

8.6 Observations 373

References 374

9 The Instructor Station 375

9.1 Requirements 375

9.1.1 User Interfaces 375

9.1.2 Instructor Station Requirements 377

9.2 GUIs 380

9.2.1 User Inputs 380

9.2.2 Colour 381

9.2.3 Prototyping 381

9.2.4 User Actions 384

9.2.5 Software Considerations 384

9.3 Design of the User Interface 387

9.3.1 Classification of Operations 387

9.3.2 Design and Implementation of Menus 390

9.3.3 Widgets 395

9.3.4 Mouse Events 400

9.4 Real-time Operation 402

9.5 Charts and Maps 405

9.6 Flight Data Recording 408

9.6.1 Data Recording 409

9.6.2 Data Display 411

9.7 Scripting 411

9.7.1 A Simple Scripting Language 413

9.7.2 A Stack Machine 414

References 421

10 Validation 423

10.1 Software Verification 423

10.2 Static Validation 424

10.2.1 I/O Systems 425

10.2.2 Control Loading Systems 426

10.2.3 Weather Module 427

10.2.4 Navigation Systems 428

10.2.5 Display Modules 428

10.2.6 Visual Systems 430

10.2.7 The Instructor Station 432

10.2.8 Networking 433

10.3 Aircraft Performance 435

10.3.1 Taxiing 436

10.3.2 Take-off 436

10.3.3 Level Flight 436

10.3.4 Climbing Flight 440

10.3.5 Approach and Touchdown 440

10.3.6 Turning Flight 442

10.3.7 Sideslip 444

10.3.8 Observations 445

10.4 Dynamic Response 445

10.4.1 Longitudinal Dynamics 445

10.4.2 Lateral Dynamics 447

10.4.3 Engine Failure 449

10.4.4 Observations 450

10.5 Octave and MATLAB 451

10.5.1 Longitudinal Model 452

10.5.2 Lateral Model 456

10.6 Simulator Qualification 459

10.6.1 Aeroplane Flight Simulator Evaluation Handbook - Volume I 461

10.6.2 Aeroplane Flight Simulator Evaluation Handbook - Volume II 462

References 463

Appendix 465

A1 System-wide #include files 465

A2 Libraries 466

A3 Boeing 747-100 466

A4 Cessna- 172 468

A5 Supporting Files 469

A6 SimPlot 470

A7 Raspberry Pi 470

A8 Diagnostics 471

A9 MSYS2 471

A10 Miscellaneous 472

Index 473

Authors

David Allerton Sheffield University, UK.