A drone model with 3D visualization and FMU export configuration developed using Modelica by Hao Chang and Luigi Vanfretti.
Drone Model with FMU Export Configuration and VR simulation.
All sub-systems and simulation cases are contained within the ./DroneSimulation/package.mo
package. Each model is saved individually as its own file. The Claytex VySeMA and Modelon Libraries are required to run models with non-ideal power systems using batteries and certain DC motor configurations. The full version of the DLR Visualization library is required to run any of the models using VR in the DroneSimulation.Visualization.mo
package.
How to simulate it?
-
Open
./A_Modelica/DroneSimulation.mo
-
The package structure is set up with the following sub-packages:
- Examples
- Blocks
- Electrical
- Mechanical
- Sensors
- Gyroscope
- Visualization
- Tests
-
Under the Examples/DroneWithIdealPowerSystem package, open the model
DroneTest.mo
and select it asSimulation model
. This has inputs that act as change in x, y, z coordinates of the drone and outputs x, y, z from the pseudo-GPS modeled within. -
Go to simulation tab of your tool and change the simulation time to 10s then click simulate button.
-
This simulation should result with the z-coordinate approaching 5 meters, and the other coordinates (x,y) should be around zero. To verify, plot the variables
.xgps
,.ygps
and.zgps
of the model by running the Modelica scriptdrone_simulation_setup.mos
. You should obtain the result below. -
Within Dymola, run the script
drone_anymation_setup.mos
, and then click on thePlay
button to see the animation. The red arrows indicate the force of the propellers.
- Within
./B_FMI/
an FMU generated by Dymola 2019 FD01 (64-bit) with both ME and CS (using Cvode) options is included. Note that this model requires a Dymola license to execute in your local machine to run.
It is possible to generate an FMU from the Modelica model to provide inputs to x, y and z coordinate changes.
Under the 'Test' sub-package, the controlModuleTest_fmu_inputs
model can be used. To generate the FMU using Dymola 2019 FD01 (64-bit) under Windows 10, follow the next steps:
-
Open
./A_Modelica/DroneSimulation/package.mo
-
Set as
Simulation model
the model underDroneSimulation.Examples.DroneWithIdealPowerSystem.DroneTests_FMU
-
Go to the
Simulation Setup
menuSimulation>Setup...
and provide the following configurations in the different tabs shown below: -
Under the
Simulation
mode, go to the menuSimulation>Translate>FMU
, and provide the following settings on theExport FMU
window:
Alternatively, issue the following command under the Commands
window of Dymola:
translateModelFMU("DroneSimulation.Tests.controlModuleTest_fmu_inputs", false, "", "2", "all", false, 1); = "DroneSimulation_Tests_controlModuleTest_0fmu_0inputs"
-
Install the FMIKit.
-
Under the folder
./C_SimulinkWithFMIKit
a Simulink model./drone_model.slx
set-up using FMIKit to reproduce the simulation scenario explained above. -
Note that you might need to reload the FMU using the one in the directory
./B_FMI/
as explained above.
- Open the models for visualization under
DroneSimulation.Examples.Visualization.ModuleTest_SimVis
and select it asSimulation model
. - Go to simulation tab of your tool and change the simulation time to 100s then click simulate button.
- A window for the DLR SimVis application will open with the drone flying in a desert terrain. The drone can be controlled by the keyboard by default, but it can be reconfigured to control the drone with a joystick.
- Via pull requests.
(c) Meaghan Podlaski, Hao Chang and Luigi Vanfretti, Rensselaer Polytechnic Institute, Troy, NY.
Licensed under the BSD 3-Clause License.