Skip to content

Commit

Permalink
build based on 2750913
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Jul 4, 2024
1 parent 88effba commit 5a98eb9
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 46 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-04T10:04:23","documenter_version":"1.5.0"}}
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-04T10:39:03","documenter_version":"1.5.0"}}
4 changes: 2 additions & 2 deletions dev/api-ctbase.html

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions dev/api.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/continuation.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,4 @@
ylabel!("Maximal altitude r(tf)")
plot(sol0)
p = plot!(sol)
plot(pobj, p, layout=2)</code></pre><img src="continuation-ac9a992b.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="tutorial.html">« Tutorial</a><a class="docs-footer-nextpage" href="api.html">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:04">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
plot(pobj, p, layout=2)</code></pre><img src="continuation-ac9a992b.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="tutorial.html">« Tutorial</a><a class="docs-footer-nextpage" href="api.html">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:39">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
44 changes: 22 additions & 22 deletions dev/dev-api.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
\min \ F(X) \\
LB \le C(X) \le UB
\end{array}
\right.\]</p><p>We use packages from <a href="https://github.com/JuliaSmoothOptimizers">JuliaSmoothOptimizers</a> to solve the (NLP) problem.</p><p>As input of this package we use an <a href="api-ctbase.html#CTBase.OptimalControlModel"><code>OptimalControlModel</code></a> structure from CTBase.</p><div class="admonition is-info"><header class="admonition-header">Current limitations</header><div class="admonition-body"><p>The current implemented is limited to</p><ul><li>trapezoidal rule for the ODE discretization</li><li><code>Ipopt</code> for the optimization software</li></ul></div></div><div class="admonition is-info"><header class="admonition-header">Related packages</header><div class="admonition-body"><p>This package is equivalent to the <a href="https://www.bocop.org">bocop</a> software.</p></div></div><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>J. T. Betts. Practical methods for optimal control using nonlinear programming. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 2001.</li><li class="footnote" id="footnote-2"><a class="tag is-link" href="#citeref-2">2</a>J. Nocedal and S.J. Wright. Numerical optimization. Springer-Verlag, New York, 1999.****</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorial.html">Tutorial »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:04">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\right.\]</p><p>We use packages from <a href="https://github.com/JuliaSmoothOptimizers">JuliaSmoothOptimizers</a> to solve the (NLP) problem.</p><p>As input of this package we use an <a href="api-ctbase.html#CTBase.OptimalControlModel"><code>OptimalControlModel</code></a> structure from CTBase.</p><div class="admonition is-info"><header class="admonition-header">Current limitations</header><div class="admonition-body"><p>The current implemented is limited to</p><ul><li>trapezoidal rule for the ODE discretization</li><li><code>Ipopt</code> for the optimization software</li></ul></div></div><div class="admonition is-info"><header class="admonition-header">Related packages</header><div class="admonition-body"><p>This package is equivalent to the <a href="https://www.bocop.org">bocop</a> software.</p></div></div><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>J. T. Betts. Practical methods for optimal control using nonlinear programming. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 2001.</li><li class="footnote" id="footnote-2"><a class="tag is-link" href="#citeref-2">2</a>J. Nocedal and S.J. Wright. Numerical optimization. Springer-Verlag, New York, 1999.****</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorial.html">Tutorial »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:39">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
12 changes: 6 additions & 6 deletions dev/tutorial.html
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
Number of equality constraint Jacobian evaluations = 34
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 32
Total seconds in IPOPT = 1.968
Total seconds in IPOPT = 2.225

EXIT: Optimal Solution Found.</code></pre><p>Then plot the solution with the state and control variables, as well as the costate recovered from the lagrange multipliers of the discretized problem. </p><pre><code class="language-julia hljs">plot(sol1)</code></pre><img src="tutorial-910a0e57.svg" alt="Example block output"/><p>The most common option for <strong>solve</strong> is the number of time steps for the discretized problem (default 100), that can be set with the argument <em>grid_size</em>. A larger grid size will increase the computational cost, while a smaller value may lead to a very coarse solution.</p><h2 id="Initial-guess-options"><a class="docs-heading-anchor" href="#Initial-guess-options">Initial guess options</a><a id="Initial-guess-options-1"></a><a class="docs-heading-anchor-permalink" href="#Initial-guess-options" title="Permalink"></a></h2><p>The function <strong>solve</strong> uses a default constant initialisation of 0.1 for all variables. More advanced options include constant and/or functional initialisation for each individual state or control component, as well as reusing an existing solution, also known as <em>warm start</em><sup class="footnote-reference"><a id="citeref-3" href="#footnote-3">[3]</a></sup>.</p><p>Let us start with the simplest case, constant initialisation.</p><pre><code class="language-julia hljs">x_const = [1.05, 0.2, 0.8]
u_const = 0.5
Expand Down Expand Up @@ -170,7 +170,7 @@
Number of equality constraint Jacobian evaluations = 16
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 15
Total seconds in IPOPT = 4.144
Total seconds in IPOPT = 4.250

EXIT: Optimal Solution Found.</code></pre><pre><code class="language-julia hljs">plot(sol4)</code></pre><img src="tutorial-17934c1d.svg" alt="Example block output"/><h2 id="The-discretized-problem"><a class="docs-heading-anchor" href="#The-discretized-problem">The discretized problem</a><a id="The-discretized-problem-1"></a><a class="docs-heading-anchor-permalink" href="#The-discretized-problem" title="Permalink"></a></h2><p>Instead of calling <strong>solve</strong> directly on the OCP problem, you can first obtain the discretized problem (DOCP) by calling <strong>directTranscription</strong>, then call <strong>solve</strong> on the DOCP. The resulting solution of the discretized problem can be used to generate the corresponding OCP solution with <strong>OCPSolutionFromDOCP</strong>.</p><pre><code class="language-julia hljs">docp = directTranscription(ocp, grid_size=100)
dsol = solve(docp, print_level=5)
Expand Down Expand Up @@ -246,7 +246,7 @@
Number of equality constraint Jacobian evaluations = 34
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 32
Total seconds in IPOPT = 2.473
Total seconds in IPOPT = 2.033

EXIT: Optimal Solution Found.</code></pre><p>The initial guess can be passed to <strong>solve</strong> same as before.</p><pre><code class="language-julia hljs">dsol = solve(docp, print_level=0, init=sol1)
sol6 = OCPSolutionFromDOCP(docp, dsol)
Expand Down Expand Up @@ -300,7 +300,7 @@
Number of equality constraint Jacobian evaluations = 12
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 11
Total seconds in IPOPT = 0.875
Total seconds in IPOPT = 0.723

EXIT: Optimal Solution Found.</code></pre><p>Finally, the direct transcription also accept an initial guess.</p><pre><code class="language-julia hljs">docp = directTranscription(ocp, grid_size=100, init=sol1)
dsol = solve(docp, print_level=5)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">This is Ipopt version 3.14.14, running with linear solver MUMPS 5.6.2.
Expand Down Expand Up @@ -352,6 +352,6 @@
Number of equality constraint Jacobian evaluations = 12
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 11
Total seconds in IPOPT = 0.862
Total seconds in IPOPT = 0.733

EXIT: Optimal Solution Found.</code></pre><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>R.H. Goddard. A Method of Reaching Extreme Altitudes, volume 71(2) of Smithsonian Miscellaneous Collections. Smithsonian institution, City of Washington, 1919.</li><li class="footnote" id="footnote-2"><a class="tag is-link" href="#citeref-2">2</a>H. Seywald and E.M. Cliff. Goddard problem in presence of a dynamic pressure limit. Journal of Guidance, Control, and Dynamics, 16(4):776–781, 1993.</li><li class="footnote" id="footnote-3"><a class="tag is-link" href="#citeref-3">3</a>Currently only the primal variables are reused for the warm start, not the lagrange multipliers. It should be noted that previous experiments with the Bocop software seemed to indicate that initializing also the multipliers gave little benefit.</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="index.html">« Introduction</a><a class="docs-footer-nextpage" href="continuation.html">Continuation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:04">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
EXIT: Optimal Solution Found.</code></pre><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-1"><a class="tag is-link" href="#citeref-1">1</a>R.H. Goddard. A Method of Reaching Extreme Altitudes, volume 71(2) of Smithsonian Miscellaneous Collections. Smithsonian institution, City of Washington, 1919.</li><li class="footnote" id="footnote-2"><a class="tag is-link" href="#citeref-2">2</a>H. Seywald and E.M. Cliff. Goddard problem in presence of a dynamic pressure limit. Journal of Guidance, Control, and Dynamics, 16(4):776–781, 1993.</li><li class="footnote" id="footnote-3"><a class="tag is-link" href="#citeref-3">3</a>Currently only the primal variables are reused for the warm start, not the lagrange multipliers. It should be noted that previous experiments with the Bocop software seemed to indicate that initializing also the multipliers gave little benefit.</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="index.html">« Introduction</a><a class="docs-footer-nextpage" href="continuation.html">Continuation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Thursday 4 July 2024 10:39">Thursday 4 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

0 comments on commit 5a98eb9

Please sign in to comment.