-
Notifications
You must be signed in to change notification settings - Fork 65
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Birkhoff Transcription Take 2 (#1008)
* Added Birkhoff transcription and modified pseudospectral base to accomodate it * modified defects to match new paper * Added a birkhoff transcription for GL grid * Fixed a bug in time conversion * attempt to compute defects using the matrix form * typo * changed collocation comp to use vectorized state * removed duplicate Birhkoff transcription for GL grid * pre-computed A and C matrics * modified birhkoff collocation to be standalone transcription independent of pseudospectral base * Demonstration of a functional birkhoff iter group under LGL and solve_segments=forward * better testing * added backwards propagation test * updated to newest algorithm from Ross * Added analytic derivatives * Updated Birkhoff.get_parameter_connections to accommodate dymos changes. * Fixed indexing on collocaition constraint test * Changed the way state rates are calculated in BirkhoffCollocationComp to better match the referenced. Updated partials. * more partials cleanup * Minor fixes to collocation comp * adding birkhoff radau capability. * fixed a unit mismatch in collocation comp * Added CGL collocation * Modified birkhoff collocation comp to allow for matrix states * modified birkhoff collocation comp to work with matrix states * made SimulationPhase and ExplicitShooting transcription work with a birkhoff grid * Minor fixes to the birkhoff collocation comp test * Fixed an issue with the cgl weights and added tests for the cgl nodes and birkhoff matrices * Added birkhoff transcription and grid to init * birkhoff transcription now uses the birkhoff_iter_group * Added moon landing problem from Ross's paper * added an endpoint ODE and started connecting it to boundary constraints, but have a derivative issue somewhere * Added second version of double integrator * Fixed an issue in the CGL partials * Double integrator problem now solves * exec comp for boundary constraints and objective now added to boundary eval group when necessary * Vandermonde control interpolation is inaccurate as number of grid points increases. * Added birkhoff test for matrix state cannonball. Fixed a bug with indexing the final boundary constraints * Fixed an issue with indexing connections to endpoint ODE * added birkhoff transcription tests for basic examples * added birkhoff test case to the double integrator * birkhoff state rates can now come from sources other than the ODE. Double integrator works but does not quite hit the correct value for final x * Added more example problems * Fixed configure_io in birkhoff_iter_group and a promotion issue with the boundary_ode * fixed accuracy issue in double integrator problem * Fixed accuracy issue of double integrator and minor bugs in the rate_source functions * tests for hypersensitive with birkhoff * Fixed shuttle reentry problems to work with Birkhoff transcription * Fixed accuracy issue in double integrator problem and modified breakwell double integrator to use inputs as rate sources * decoupled x_a and x_b from x_ab * Decoupled initial_states:x (x_a), final_states:x (x_b), and state_segment_ends:x (x_ab = [x_a x_b]. The last is always a design variable, but it is now constrained to match x_a at the start and x_b at the end. This will facilitate state jumps at the end of phases. x_ab will also be more easily turned into a segment-by-segment variable, with a size of (num_segs, 2, shape). * Boundary ODE evaluation is now done with initial_states:x and final_states:x, instead of the endpoint values from states:x. * cleanup * fixed the number of segments and nodes in the aircraft cruise porblem * works with multiple segments and scalar states, matrix cannonball test case not working yet. * BirkhoffCollocationComp works with segments and has correct derivatives * issue in the residual birkhoff iter group dealing with explicitly named residuals * added a two phaseexample for birkhoff and fixed a bug in paramter connections * Added correct inputs/outputs/resids to the birkhoff state resids comp, but currently only works with fd/cs derivs and a modified version of openmdao * Solve segments now works once OpenMDAO issue [#3030](OpenMDAO/OpenMDAO#3030) is addressed. Sparse partials are still problematic but it works with cs/fd * fixed an issue where input initial was still adding variables as design variables * Added goddard rocket problem and low thrust spiral problem to examples. Only rocket problem currently works * fixed test problems to work with IPOPT * Fixed collocation comp tests * formatting fixes to comply with pycodestyle * Fixed a bug where array valued ref and ref0 were throwing an error * fixed test_birkhoff_collocation * added nonlinear solver to iter group. removed mux group and boundary group from check partials: * changed optimizer back to IPOPT for examples * Fixed moon landing problem and docstring linting * Fixed a bug where ref and ref0 where being set to same value * increased number of nodes on reentry problem * fixes for new timeseries comp updates * Removing coverage from the latest entry due to poor performance. * More cleanup from the Timeseries component shuffle * workflow fixes * minimum version of openmdao bumped to 3.27 * remove coverage submission from latest --------- Co-authored-by: Kaushik Ponnapalli <[email protected]> Co-authored-by: kaushikponnapalli <[email protected]>
- Loading branch information
1 parent
45ab30c
commit 7cf6830
Showing
51 changed files
with
4,064 additions
and
156 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.