Simulation and Visualization for Aircraft and Spacecraft Design
Overview
This webinar will cover how to simulate and visualize aircraft and spacecraft dynamics. Attendees will learn how to leverage pre-built or import custom aircraft into a 3D environment and simulate them. The session will also cover the new rotorcraft simulation capabilities. Additionally, attendees will learn how to complete space-focused workflows, providing tools and functions for modeling, simulating, analyzing, and visualizing the trajectories, mission, and dynamics of small satellites.
Highlights
- Leveraging pre-built and importing custom aircraft into a 3D environment
- Simulating rotor and multirotor dynamics
- Completing workflows for small satellite modeling, simulation, analysis, and visualization in space
About the Presenter
William Moore is a Product Manager at MathWorks. He supports automated report generation and aerospace products. He previously worked as a software engineer performing design and verification work for aerospace companies. He holds an MBA from Boston College and a dual major BS in Electrical & Computer Engineering and Robotics Engineering from Worcester Polytechnic Institute.
Recorded: 18 Oct 2023
Hello. Welcome to this webinar, Simulation and Visualization for Aircraft and Spacecraft Design. My name is William Moore. I've been at the MathWorks for over two years, and I'm a product manager here. I work with the Matlab and Simulink Report Generator, as well as Aerospace and Toolbox and Blockset. One of the things I do here at the MathWorks is I leverage my experience in the aerospace industry to be able to enable customers with their various aerospace workflows.
Today, we're going to be covering a bunch of the new capabilities within the Aerospace Toolbox and Blockset. Here's the agenda for today. First, we're going to start off with a brief overview of Aerospace Toolbox and Blockset. Next, we're going to look how to leverage prebuilt or import custom aircraft into an Unreal Engine-powered 3D environment.
Next, we're going to focus in on some new rotorcraft simulation capabilities. And finally, we're going to look how to design, visualize, and analyze scenarios consisting of satellites and ground stations. Let's get started with the overview of Aerospace Toolbox and Blockset.
Aerospace Toolbox allows users to analyze and visualize aerospace vehicle motion using reference standards and models. There's five different buckets that represent the breadth of the different areas, including visualization, vehicle motion analysis, environment models, satellite mission analysis, and control and stability analysis. Also, these are leveraged in different reference applications throughout the product.
With Aerospace Blockset, we then focus on model, simulate, and analyze aerospace vehicle dynamics. It involves different areas like visualization, vehicle components, environment models, atmospheric flight, spacecraft, flight emission analysis, and guidance navigation and control. And again, those are able to flow into different reference applications. I really like these two slides because I think they provide a nice overview of the breadth of different capabilities within the tools.
But to make it a little bit more concrete, I've picked out a couple of examples I really like to showcase different aspects of the tools. So I'm going to start off with some atmospheric flight examples. To begin, there's analyze state space for linear control and static stability analysis. This is an Aerospace Toolbox-based workflow that involves taking a fixed wing aircraft, loading in some datcom data, and being able to do various unsurprising linear control and stack stability analysis based on that data.
In addition, there's the electrical component analysis for hybrid and electric aircraft. This is a really great example that takes in some of the blocks from Aerospace Blockset, as well as combining it with different products in the Simscape family to be able to model different-- either fully electric or hybrid and electric aircraft. Finally, there's a Unreal Engine-based visualization workflow example that showcases some of the different capabilities with this.
We're actually going to be going through examples very similar to that today, showcasing the new visualization capabilities. In addition to the atmospheric examples, there are also workflow examples in the space area domain. This includes analyzing access between a satellite constellation and an aircraft, very interesting example that's able to take a GNSS satellite constellation and compare it within access intervals to satellites that are going over a moving aircraft.
We're going to, again, be talking about various capabilities that are able to support this. In addition, we have a high precision orbit propagation example, doing the propagation of the International Space Station. So with the atmospheric and space examples, we're able to see a very different variety of examples covered by the Toolbox and Blockset, which is hopefully reinforced by the different feature functionalities I was able to talk about earlier.
So now that we've kind of got the basics of Aerospace Toolbox and Blockset, we're going to go on how to leverage prebuilt or custom aircraft into the Unreal Engine 3D-powered environment. What are game engines? A game engine is a software framework that provides things like 2D and 3D rendering and lighting, a physics engine, collision detection, ray tracing, animations, and audio. Game engines are very common in the video game industry. But they're playing an increasing role in other industries like automotive, aerospace, and robotics, among others. MathWorks provides interface to the game engine, Unreal Engine, from Epic Games.
When working with Unreal Engine, there's a couple of different options available. This includes using the default scenes that are prepackaged with Aerospace Blockset, connecting to the support package using an Unreal Engine Executable or the Editor, or even connecting to a real world environment using geospatial workflows with Cesium Ion. We're going to be talking about all these different areas today.
When you're thinking about which visualization method to use, there's a lot of different considerations. I'm not going to go through the whole table here. But there's a lot of different options, depending on your out-of-the-box fidelity, flexibility, configuration time, whether or not connecting online or requiring a third party account is an issue. One of the other things in this chart is it also compares with FlightGear, which is also able to provide aerospace visualization capabilities.
When working with Unreal Engine, there are several different general usage Unreal Engine blocks which Aerospace Blockset uses. The primary one we're going to be seeing today is the Simulink 3D Scene Configuration block. But there's also things like the 3D Camera Get, some message sets and gets, actor transforms, and ultrasonic sensors. Now that we've covered the general usage blocks, let's go over to the 3D aerospace blocks.
There are two aerospace blocks, specific blocks which contain the aircraft available. First, there's the Simulation 3D Aircraft block, which includes things like general aviation and airliner blocks and has altitude and weight on wheel sensors and customizable lights. There's also the Simulation 3D Rotorcraft block, including things like light helicopter, helicopter, and multirotor.
There are also Aerospace Simulation 3D Pack blocks, which can help simplify the creation of input arrays. What this can allow you to do is to enter in data required for desired vehicle components. And then it will be able to provide the direct translation and rotation information directly into the simulation aircraft blocks, as you can see on the workflow in the right. There are also different Pack blocks which support all of the different aircraft types, five aircraft and three rotorcraft in total.
Speaking of aircraft, to show some of the visualization, we have five different aircraft types and four sample meshes including-- as you can see there-- the Sky Hogg airliner and general aviation aircraft. There are two Unreal Engine airport scenes that can be leveraged with Aerospace Blockset. This includes the default airport scene with a runway, taxiway, ramp, control tower, and hangar, as well as Griffiss International Airport with multiple hangars, buildings and control towers, and night lighting.
Keep in mind with Griffiss, it requires the use of the support package. In addition, there is also an Unreal Engine scene of the MathWorks Apple Hill Campus in Natick, Massachusetts. This is a great scene to use with your UAVs or drone workflows. Now, we're going to transition into talking about the four different options in depth. We're going to start with the default scene.
So the default scene-- using the Sky Hogg with the default airport scene provides a good baseline to understand the basics on how to do this. As you can see with the previous simulation, 3D Configuration blocks, and Simulation 3D aircraft, we're going to select the default scenes and airport scene. And then, just hit Run. It does take a little bit for the visualization to get started, but very shortly-- as you can see-- it's going to pop up right here.
You can see the aircraft in the background with the default airport scene below, the moving propeller, based on commands we've provided earlier in the simulation. And we can move around within the different simulation, go to different view angles, and see that basic runway below it. So this is very easy, hopefully, fairly straightforward. There's a shipping example that allows you to use this. And the using Unreal Visualization for airport flight is that example, as shown below.
So now that we've talked about the default scenes-- right, pretty straightforward-- it does get a little bit more complicated when we're thinking about how to use the Unreal Engine within an Editor workflow. But still, all the same principles apply. Beneficially, with the Unreal Engine Editor, when we're working within the Editor, this is going to allow us to customize aircraft, rotorcraft, and scenes with the support package.
So in this particular example, we're demonstrating an aircraft and providing basically different paints to different parts, just to kind of demonstrate the different elements involved within this plane. As you can see, there's a lot of different propellers, a lot of different areas of section of customization. And this provides a great opportunity for not just using the MathWorks default airport-provided material, but also being able to load in your own aircraft and be able to visualize it and simulate it within a 3D environment.
As you can see, once we've done all that customization within the aircraft, we're able to take in the aircraft and put it within the 3D environment using the Unreal Editor. And this uses the custom aircraft skeleton. As you can see, when we're working on this, this involves leveraging the type custom, as shown by the blocks here. So using custom aircraft, we're able to get different flexibility within aircraft simulation.
So as you can see here, we've got different flaps running. We've got different propellers going on within maybe a non-traditional aircraft design and the first thing, just showcasing the different movable parts associated with that custom aircraft. But this also transitions to moving the wings up and down for a whole vertical takeoff and landing-- so just to showcase the flexibility of the different customization components.
In addition to custom aircraft parts, we're also able to leverage custom lighting. As I mentioned within the Griffiss airport, the Griffiss airport also features custom lighting capabilities. In addition, one thing you're going to see in this scene is not just one aircraft by itself, but the different aircraft. There's a little bit of a light coming in the corner as you can see this other aircraft landing right in front of the aircraft we started viewing, showcasing the custom lighting available.
We're also able to take that basic Sky Hogg example discussed earlier and use it with the support package for Visualization workflow. So again, same basic kind of thing-- we're going to open up the visualization components. We're going to collect the Simulink 3D Configuration block. And instead of running the default scene, we're going to select Unreal Editor, as well as selecting the appropriate project we want to work on and then hitting Apply, and then crucially, hitting Open on Unreal Editor.
So now what we're doing is we're taking in the scene we want to do-- in this case, it's Griffiss airport-- loading up the custom 3D visual scene from the support package, going around a little bit, seeing the different areas from there. And next, we're going to go and launch the play functionality. And as you can see, we've got the same Sky Hogg flying high up in the sky above Griffiss. So we're able to do the same basic workflows but through the use of the Unreal Editor, directly connect to the support package Unreal Visualization flight.
Now, notably on the Unreal Executable, the workflow would ultimately look very similar. The only difference would be is we would first take the Griffiss airport scene from the Unreal Editor and generate an executable. Then, we would be able to run it similar to how we ran the default scene directly from the Simulink workflow. Now, depending on the Matlab release, different Unreal Engine versions are required for customization. So be sure to check out the Unreal Engine Simulation environment requirements and limitations page to make sure your version of Matlab aligns with the correct version of Unreal.
Now that we've talked about the Unreal Editor workflows, we're going to be covering geospatial, connecting with Cesium Ion. With Cesium Ion, we're able to connect for geospatial visualization in a real world environment. Here, we're going to see the Sky Hogg in Sedona airport in Arizona. As you can see, it's able to take the 3D environment and able to provide real world simulation below it without having to create everything in Unreal ourselves. This is a really powerful portion of the connection, where you're able to take in your aircraft and connect it to basically anywhere within the world.
Now that we've covered the 3D and custom aircraft capabilities with an Unreal Engine, we're going to be talking about new rotorcraft simulation capabilities. So there are currently new rotorcraft and multirotor blocks that can compute the aerodynamic forces generated by one or more rotors. And these are both in Aerospace Blockset. In addition to the rotorcraft blocks, there are also three different rotorcraft types with four different sample meshes. And you can see the light helicopter and helicopter, as well as the two different meshes associated with the multirotors.
In addition, there are also Simulation 3D Rotorcraft Pack blocks to help connect the rotorcraft, including one for the helicopter, light helicopter, and multirotor. This showcases how to utilize some of the rotorcraft models within Visualization in Cesium Ion. This shows two of the different helicopters-- the helicopter and light helicopter-- going along with Chicago in the background. And again, you can see that real world Cesium environment with leveraging the 3D rotorcraft visualization.
Finally, we're going to switch gears a little bit and talk about how to design, visualize, and analyze scenarios consisting of satellites and ground stations. So on a high level, we provide entry points for a complete space system design. And while there are certainly many workflows where something like this can initiate, for instance, in a lot of cases you could do these in parallel or start with image analysis. This is one sample workflow. To begin, think about things from a system architecture perspective.
So this involves taking your requirements and putting them within a systems engineering approach. There's a great example that leverages this with in one of MathWorks' others tools, System Composer for space-based and CubeSat workflows. In addition, once we've thought about what our requirements look like and what our systems engineering is, we can think about platform design. And that's able to leverage things like the CubeSat model you can see below or the Attitude Profile block.
Then, with the different mission analysis, we're able to leverage the system architecture and platform design and being able to go on it with different missions, as you can see here with different mission scenarios within the satellite scenario. Also, as I mentioned at the offset, this could be an iterative process with the mission analysis impacting system architecture and impacting system design and then flowing back in. So it's an iterative process and can really start at different places. But again, this is one way to think about the sample workflow.
So with space missions scenarios with satellite scenarios, here is an example about using a Walker-Delta constellation in a satellite scenario. So as you can see in the video in the bottom left, this is an example with a Walker delta constellation and comparing line-of-sight access to an aircraft. As you can see with the satellites-- and I'm going to start it up just in a second-- again, there are different satellites moving around the Earth, their attitude position pointing at certain aircraft.
And then, you can see a blue dotted line whenever it's performing a line-of-sight access. And they're moving in a Walker-Delta constellation. So this gives a basic example of when does different satellites have line of access within a moving target, in this case, an aircraft. And this is a very basic space mission analysis. One thing I'd also like to highlight with this example is I think it's a great example of showing the Satellite Scenario Viewer.
So we're going to be seeing this a couple more times with different examples. But this provides a nice environment to be able to leverage different satellites, ground stations, and being able to do different missions like this line-of-sight access example. One of the other key important capabilities is Aerospace Blockset blocks which are able to also support space workflows. This includes things like the Orbit Propagator and Spacecraft Dynamics blocks, which are able to do things like atmospheric drag, gravity gradient torque, central body gravity, and analytical or numerical orbit propagation.
For this next example, we're able to see that Spacecraft Dynamics block, as well as an Attitude Profile block being used in a mission. You can see the observation satellite in the bottom right, first using its attitude profile to point towards an Amazon rainforest and getting line-of-sight access. Then, it continues along its path and is able to, again, point at Svalbard and able to get any of the information from the rainforest observation there. So this, I think, well demonstrates being able to use the Satellite Scenario Viewer to take in information from the Aerospace blocks and Spacecraft blocks and leverage it within a mission.
In addition to the type of analysis here, we're also able to see orbit maneuvering for two coplanar maneuvers. In this particular example, we're going to be showcasing using the Satellite Scenario Viewer, a spacecraft undergoing a Hohmann transfer. As you see with the initial example, we have the spacecraft beginning to rotate around Earth. You can see the different axes being pointed.
And then, we're able to apply-- to be able to move the satellite from its initial orbit and being able to complete the orbital maneuver. So again, this is a great example of showcasing the ability to combine the tools using the Satellite Scenario Viewer framework to be able-- and the Spacecraft Dynamics block to show a full orbit maneuver modeling. As you can see, the spacecraft is able to continue.
Finally, I discussed this a little bit before when I was talking about system architecture, but this is another slide showcasing the ability to perform model-based systems engineering. This shows how to use the System Composer architecture, as well as requirements and traceability and satellite dynamic modeling to be able to provide systems engineering modeling to your full satellite scenario as a one comprehensive example. So while I just showed you a couple of different examples, there's a whole breadth of different examples, depending on what sort of work you're doing, or what sort of scenarios you have, whether or not you're modeling satellite constellations, you need to compare orbit propagators. Maybe you need to do some lunar mission analysis or high-precision orbit propagation.
There are a variety of different reference examples which can demonstrate different ways for space-based workflows. So covered a lot in this webinar, but the big takeaway I want you to have is MathWorks has a variety of tools and features to help with simulation and visualization whether or not you're doing aircraft and spacecraft design. And I would like to invite you-- if you have any questions or would like to follow up, please feel free to contact me. I've got my email right there. And thank you so much for watching.