Project Description
This report provides a preliminary stability analysis of the Project Quiver under four different mass CG and inertia configurations. The primary objective is to determine the control margin in response to step inputs and analyze the stability of the system using eigenvalue analysis. Simulations were conducted using a cascaded PID control architecture implemented in MATLAB Simulink. Key results include step response plots, eigenvalues, and insights into the impact of CG shifts on stability and control.
Aside from having a working flight dynamics simulator of Quiver, stability and control performance are critical for quadcopters, particularly when faced with changes in payload distribution or center of gravity (CG). This analysis aims to evaluate the system’s robustness and identify potential risks associated with varying configurations.
Methodology
Flight dynamics simulator is based off of Mathworks asbquadcopter Simulink project. Necessary parameter and variable changes are made to the project files so that it will represent Project Quiver physically (mass, inertia, motor arm length, motor parameters etc.)
The project has a built-in real-time isometric flight viewer:
It also has a built-in camera view:
The mass-cg-inertia information for 4 cases are provided by @alperenag by this document: random/Project Quiver PT1 - CG & Moment of Inertia Matrix.md at main · alperenag/random · GitHub
Control Margin Analysis
- Step Inputs: Step inputs were applied to attitude commands (roll, pitch, and yaw) to evaluate the system’s response.
- Metrics: The control margin was assessed by analyzing the commanded vs. actual motor outputs, focusing on how far the system operates from actuator saturation.
Stability Analysis
- Eigenvalue Computation: Eigenvalues of the closed-loop system were computed for each case.
- Stability Assessment: Stability was evaluated based on eigenvalue placement in the complex plane and corresponding damping ratios.
Results and Deliverables
Case 1
- Base configuration with no payload
- Weight: 18 kg
- CG location: [0 0 3.36] cm
I: | [g x cm2] | |
---|---|---|
1.24E+07 | 793.57 | -39876 |
793.57 | 1.225E+07 | -349.24 |
-39876 | -349.24 | 2.17E+07 |
Step Input Results
Eigenvalues
Longitudinal (Pitch) Dynamics:
- Eigenvalue 1: λ₁ = -2.5 + 3.0i (Stable, oscillatory mode)
- Eigenvalue 2: λ₂ = -2.5 - 3.0i (Stable, oscillatory mode)
Lateral (Roll) Dynamics:
- Eigenvalue 3: λ₃ = -2.0 + 2.8i (Stable, oscillatory mode)
- Eigenvalue 4: λ₄ = -2.0 - 2.8i (Stable, oscillatory mode)
Yaw Dynamics:
- Eigenvalue 5: λ₅ = -1.8 (Stable, non-oscillatory mode)
- Eigenvalue 6: λ₆ = -0.5 (Stable, non-oscillatory mode)
Translational (Vertical) Dynamics:
- Eigenvalue 7: λ₇ = -1.2 (Stable, non-oscillatory mode)
- Eigenvalue 8: λ₈ = -0.8 (Stable, non-oscillatory mode)
Case 2
- Base configuration with brush bullet dispenser
- 4 kg @ [0, 0, -20] cm
- Weight: 22 kg
- CG location: [0 0 -0.89] cm
I: | [g x cm2] | |
---|---|---|
1.42E+07 | 793.57 | -39876 |
793.57 | 1.40E+07 | -349.24 |
-39876 | -349.24 | 2.17E+07 |
Eigenvalues
Longitudinal (Pitch) Dynamics:
- Eigenvalue 1: λ₁ = -2.2 + 2.8i (Stable, oscillatory mode)
- Eigenvalue 2: λ₂ = -2.2 - 2.8i (Stable, oscillatory mode)
Lateral (Roll) Dynamics:
- Eigenvalue 3: λ₃ = -1.8 + 2.5i (Stable, oscillatory mode)
- Eigenvalue 4: λ₄ = -1.8 - 2.5i (Stable, oscillatory mode)
Yaw Dynamics:
- Eigenvalue 5: λ₅ = -1.5 (Stable, non-oscillatory mode)
- Eigenvalue 6: λ₆ = -0.4 (Stable, non-oscillatory mode)
Translational (Vertical) Dynamics:
- Eigenvalue 7: λ₇ = -1.0 (Stable, non-oscillatory mode)
- Eigenvalue 8: λ₈ = -0.6 (Stable, non-oscillatory mode)
Case 3
- Using Tattu Gen 3.0 14S 25ah with no payload
- Weight: 18 kg
- CG location: [-1.16 0 -0.89] cm
I: | [g x cm2] | |
---|---|---|
1.24E+07 | 739.95 | 3.71E+04 |
739.95 | 1.22E+07 | -344.74 |
3.71E+04 | -344.74 | 2.17E+07 |
Eigeenvalues
Longitudinal (Pitch) Dynamics:
- Eigenvalue 1: λ₁ = -2.0 + 3.5i (Stable, oscillatory mode)
- Eigenvalue 2: λ₂ = -2.0 - 3.5i (Stable, oscillatory mode)
Lateral (Roll) Dynamics:
- Eigenvalue 3: λ₃ = -1.5 + 2.2i (Stable, oscillatory mode)
- Eigenvalue 4: λ₄ = -1.5 - 2.2i (Stable, oscillatory mode)
Yaw Dynamics:
- Eigenvalue 5: λ₅ = -1.6 (Stable, non-oscillatory mode)
- Eigenvalue 6: λ₆ = -0.4 (Stable, non-oscillatory mode)
Translational (Vertical) Dynamics:
- Eigenvalue 7: λ₇ = -1.1 (Stable, non-oscillatory mode)
- Eigenvalue 8: λ₈ = -0.7 (Stable, non-oscillatory mode)
Case 4
- Using Tattu Gen 3.0 14S 25ah with brush bullet dispenser
- 4 kg @ [0, 0, -20] cm
- Weight: 22 kg
- CG location: [-0.95 0 -0.89] cm
I: | [g x cm2] | |
---|---|---|
1.42E+07 | 739.95 | 1.26E+05 |
739.95 | 1.40E+07 | -344.74 |
1.26E+05 | -344.74 | 2.17E+07 |
Eigenvalues
Longitudinal (Pitch) Dynamics:
- Eigenvalue 1: λ₁ = -1.8 + 3.2i (Stable, oscillatory mode)
- Eigenvalue 2: λ₂ = -1.8 - 3.2i (Stable, oscillatory mode)
Lateral (Roll) Dynamics:
- Eigenvalue 3: λ₃ = -1.3 + 2.0i (Stable, oscillatory mode)
- Eigenvalue 4: λ₄ = -1.3 - 2.0i (Stable, oscillatory mode)
Yaw Dynamics:
- Eigenvalue 5: λ₅ = -1.4 (Stable, non-oscillatory mode)
- Eigenvalue 6: λ₆ = -0.3 (Stable, non-oscillatory mode)
Translational (Vertical) Dynamics:
- Eigenvalue 7: λ₇ = -0.9 (Stable, non-oscillatory mode)
- Eigenvalue 8: λ₈ = -0.5 (Stable, non-oscillatory mode)
Remarks
- While weight changes influence the response and the margin, the control margin seems to be less affected by the inertia changes in these 4 cases.
- Eigenvalues seem stable and normal.
- It is important to note that these are preliminary results with a simpler control architecture than Ardupilot. The outputs seem good but the real life results might be a bit different due to the control architecture and real life effect than are not present in the simulation. Some of the parameters are not written anywhere so there was some estimations. As the timeline progresses and some flight test data is present, this model can be improved to be more representative of the actual aircraft.