nasa / prog_models

The NASA Prognostic Model Package is a Python framework focused on defining and building models for prognostics (computation of remaining useful life) of engineering systems, and provides a set of prognostics models for select components developed within this framework, suitable for use in prognostics applications for these components.
123 stars 50 forks source link

Feature/traj generation modular #537

Closed kjjarvis closed 1 year ago

kjjarvis commented 1 year ago

This PR improves upon a first attempt at trajectory generation in nasa/prog_models#480 by introducing a modular structure.

This model describes the dynamics of a small Rotorcraft and generates predictions of a flyable trajectory given a set of waypoints.

This work was previously developed by @matteocorbetta and @portia19, and model development is described in Corbetta et al. 2019, "Real-time UAV trajectory prediction for safely monitoring in low-altitude airspace".

PR includes all necessary functionality for:

Vehicle model (including controller, multiple vehicle types, etc.) Trajectory generator (NURBS algorithm)

Future work described here: https://github.com/nasa/progpy/issues/49

github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.17893399999999993
import thrown object 0.6520968000000003
model initialization 0.14916490000000016
set noise 0.8381061000000001
simulate 0.3542160000000001
simulate with saving 1.1108194999999998
simulate with saving, dt 1.2156868999999997
simulate with printing results, dt 1.4644654
Plot results 17.9045221
Metrics 0.044807200000001046
Surrogate Model Generation 1.9086929999999995
surrogate sim 1.2782395000000015
surrogate sim, dt 3.543142600000003

To:

Test Time (s)
import main 0.1859211999999999
import thrown object 0.7137067000000001
model initialization 0.1610883000000003
set noise 0.9020172999999998
simulate 0.36275789999999963
simulate with saving 1.127898
simulate with saving, dt 1.2257959999999999
simulate with printing results, dt 1.4715805
Plot results 17.831686599999998
Metrics 0.04478449999999867
Surrogate Model Generation 1.9277327
surrogate sim 1.2965820000000008
surrogate sim, dt 3.5938315000000003
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.1276134
import thrown object 0.4984368000000001
model initialization 0.12357419999999997
set noise 0.6438408
simulate 0.2971520000000001
simulate with saving 0.9419180000000003
simulate with saving, dt 1.0217461
simulate with printing results, dt 1.2251549000000006
Plot results 14.764781199999998
Metrics 0.035703399999999164
Surrogate Model Generation 1.6320471000000012
surrogate sim 1.070787799999998
surrogate sim, dt 2.9572327000000023

To:

Test Time (s)
import main 0.13530799999999998
import thrown object 0.4905454
model initialization 0.12057919999999989
set noise 0.6688936000000001
simulate 0.2943209000000002
simulate with saving 0.9284366
simulate with saving, dt 1.0111502999999997
simulate with printing results, dt 1.2260074999999997
Plot results 14.660730299999999
Metrics 0.03585989999999839
Surrogate Model Generation 1.6072954000000017
surrogate sim 1.0840077000000008
surrogate sim, dt 2.911283000000001
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.14920619999999996
import thrown object 0.5361640999999999
model initialization 0.12773560000000006
set noise 0.7036399
simulate 0.3044591999999997
simulate with saving 0.9585794000000001
simulate with saving, dt 1.0453047999999998
simulate with printing results, dt 1.2520619000000002
Plot results 15.255532299999999
Metrics 0.03801159999999726
Surrogate Model Generation 1.6509912999999976
surrogate sim 1.0942048
surrogate sim, dt 3.0131261999999985

To:

Test Time (s)
import main 0.15280360000000015
import thrown object 0.5654882999999999
model initialization 0.1259691999999999
set noise 0.7020100999999999
simulate 0.3036870999999999
simulate with saving 0.9564455000000001
simulate with saving, dt 1.0419002000000006
simulate with printing results, dt 1.2605315
Plot results 15.184675499999999
Metrics 0.0374869000000011
Surrogate Model Generation 1.6521480000000004
surrogate sim 1.0938580999999985
surrogate sim, dt 3.0310055000000027
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.12447850000000005
import thrown object 0.504691
model initialization 0.1197391000000001
set noise 0.6693673
simulate 0.29489790000000005
simulate with saving 0.8939834000000002
simulate with saving, dt 1.0026929999999998
simulate with printing results, dt 1.2257069999999999
Plot results 14.320110599999998
Metrics 0.03983780000000081
Surrogate Model Generation 1.5825707999999992
surrogate sim 0.9792815000000026
surrogate sim, dt 2.837638600000002

To:

Test Time (s)
import main 0.1251002000000001
import thrown object 0.5016706999999998
model initialization 0.11688449999999984
set noise 0.6712302000000001
simulate 0.29441359999999994
simulate with saving 0.9018196999999999
simulate with saving, dt 1.0059006999999998
simulate with printing results, dt 1.2300524999999993
Plot results 14.389263499999998
Metrics 0.0401857000000021
Surrogate Model Generation 1.5852481000000012
surrogate sim 0.9846467000000025
surrogate sim, dt 2.858762600000002
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.14259149999999998
import thrown object 0.5305658
model initialization 0.13074319999999995
set noise 0.7031545999999997
simulate 0.31914700000000007
simulate with saving 0.9933944000000001
simulate with saving, dt 1.1028798999999996
simulate with printing results, dt 1.3150402000000003
Plot results 15.6711059
Metrics 0.03919229999999985
Surrogate Model Generation 1.6939722999999987
surrogate sim 1.1220493000000005
surrogate sim, dt 3.1451732999999997

To:

Test Time (s)
import main 0.14506229999999998
import thrown object 0.5329451000000001
model initialization 0.1292498000000002
set noise 0.7082351999999998
simulate 0.3198753999999999
simulate with saving 0.9999757000000002
simulate with saving, dt 1.1096494000000003
simulate with printing results, dt 1.3343797000000004
Plot results 15.8682071
Metrics 0.039109999999997314
Surrogate Model Generation 1.7059479999999994
surrogate sim 1.1326609000000012
surrogate sim, dt 3.1387880000000017
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.12565099999999985
import thrown object 0.4945221999999998
model initialization 0.11814060000000004
set noise 0.6764029000000003
simulate 0.29405970000000003
simulate with saving 0.8987229000000001
simulate with saving, dt 1.0069451999999997
simulate with printing results, dt 1.220371
Plot results 14.092485199999999
Metrics 0.040206500000000034
Surrogate Model Generation 1.5759439000000022
surrogate sim 0.987733900000002
surrogate sim, dt 2.8428918000000003

To:

Test Time (s)
import main 0.11047609999999985
import thrown object 0.49120169999999996
model initialization 0.11523320000000004
set noise 0.6712549999999999
simulate 0.2932806000000001
simulate with saving 0.8978079000000001
simulate with saving, dt 1.002182
simulate with printing results, dt 1.2282647999999998
Plot results 13.9289476
Metrics 0.04011229999999699
Surrogate Model Generation 1.571503400000001
surrogate sim 0.9811676000000027
surrogate sim, dt 2.8180526000000015
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.12120399999999987
import thrown object 0.4944394999999999
model initialization 0.11859449999999994
set noise 0.6742796000000002
simulate 0.2954351000000002
simulate with saving 0.8961760000000001
simulate with saving, dt 1.0096064999999999
simulate with printing results, dt 1.2284294000000004
Plot results 13.8419248
Metrics 0.040336499999998665
Surrogate Model Generation 1.565139600000002
surrogate sim 0.9788786000000016
surrogate sim, dt 2.8392818999999996

To:

Test Time (s)
import main 0.11227779999999998
import thrown object 0.49261179999999993
model initialization 0.11615039999999999
set noise 0.6678076
simulate 0.2945479
simulate with saving 0.8969076
simulate with saving, dt 1.0049093999999998
simulate with printing results, dt 1.2232131000000006
Plot results 13.752455600000001
Metrics 0.04016629999999921
Surrogate Model Generation 1.5537649999999985
surrogate sim 0.985368600000001
surrogate sim, dt 2.844547600000002
github-actions[bot] commented 1 year ago
Benchmarking Results [Update] From: Test Time (s)
import main 0.15196600000000005
import thrown object 0.5974732
model initialization 0.2304952
set noise 0.8405847
simulate 0.6716833000000002
simulate with saving 1.9553840000000005
simulate with saving, dt 2.551023
simulate with printing results, dt 3.2105204
Plot results 23.136144299999998
Metrics 0.04187019999999819
Surrogate Model Generation 3.2791376999999997
surrogate sim 2.3289986999999996
surrogate sim, dt 5.5210533999999996

To:

Test Time (s)
import main 0.15335999999999994
import thrown object 0.5958162
model initialization 0.21723310000000007
set noise 0.7777807999999999
simulate 0.6878361999999996
simulate with saving 1.9468172000000008
simulate with saving, dt 2.430513799999999
simulate with printing results, dt 3.1981649
Plot results 23.436801199999998
Metrics 0.046167300000000466
Surrogate Model Generation 3.2636792999999997
surrogate sim 2.3227771000000033
surrogate sim, dt 5.405966200000002