Skip to content

Conversation

@teubert
Copy link
Collaborator

@teubert teubert commented Jun 16, 2023

Release v1.5

  • New model type: Direct Models. Direct Models directly correlate current state and future load to time of event, rather than state-transition models which simulate forward to calculate time of event
  • New model types that combine multiple models:
    • EnsembleModel: combinations of multiple models of the same system where results are aggregated
    • CompositeModel: combinations of models of different systems that are interdependent
  • New Model: Aircraft flight model
  • New DataModel: Polynomial Chaos Expansion (PCE) Direct Surrogate model
  • Initial transition of Input/State/OutputContainer and SimResult to use Pandas DataFrame. This release will bring the interface more in compliance with DataFrames. v1.6 will fully transition the classes to DataFrames.
  • Implemented new metrics that can be used when calculating error: Root Mean Square Error (RMSE), Maximum Error (MAX_E), Mean Absolute Error (MAE), Mean Absolute Percentage Error (MAPE), and Dynamic Time Warping (DTW)
    • Error calculation metric can now be changed in estimate_params
  • Revamping integration:
    • New integration methods: RK4 and methods from scipy.integrate
    • Integration is now set at the model level. For continuous models the specified integration method will apply when calling next_state
  • 3.11 support
  • Various bug fixes and performance improvements

mrzkp and others added 30 commits May 19, 2023 13:04
… using index-based extraction of eigenvectors. Removed duplicate function build_scheduled_control from LQR_I by initializing control_gains attribute differently for LQR and LQR_I; dimensions are now correct. Removed err_hist and outputs attributes from LQR and added them in LQR_I, since they are only relevant for the integral part of the controller.
…d Rotorcraft class from AircraftModels.py. The reason for this chance is that the Rotorcraft class in AircraftModels was initialized but basically never used. A lot of overhead for using, at the end, UAVGen for basically everything. I left the UAVGen because I haven't verified if other pieces of the code still use it.
First draft next_state rewrite [Closes #528]
@teubert teubert closed this Jun 16, 2023
@github-actions
Copy link

Benchmarking Results [Update]
From:

Test Time (s)
import main 0.1453238
import thrown object 0.5428119
model initialization 0.1328954
set noise 1.2166670999999998
simulate 0.3159099999999997
simulate with saving 0.9775789000000001
simulate with saving, dt 1.1370993999999994
simulate with printing results, dt 1.3549890000000007
Plot results 15.039806299999999
Metrics 0.037466099999999614
Surrogate Model Generation 3.3532139
surrogate sim 1.0858053000000005
surrogate sim, dt 2.7367600000000003

To:

Test Time (s)
import main 0.14650609999999986
import thrown object 0.5341227
model initialization 0.16322790000000031
set noise 0.7019053
simulate 0.5090080000000001
simulate with saving 1.4432725999999998
simulate with saving, dt 1.8483844999999999
simulate with printing results, dt 2.2911259
Plot results 15.0757482
Metrics 0.03834799999999916
Surrogate Model Generation 2.2039326999999993
surrogate sim 1.476753800000001
surrogate sim, dt 3.8301649000000033

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants