Skip to content

Commit 9ff1f04

Browse files
committed
feat: add control-free optimal control problems support
- Add control-free problems documentation and examples - Implement ExponentialGrowth and HarmonicOscillator test problems - Fix error display for zero reference objectives (use absolute error) - Make color thresholds consistent with test tolerances - Add unique IDs to all section headings to avoid anchor conflicts - Fix MD036 linting warnings in documentation - All 84 tests passing successfully BREAKING CHANGE: None (pure addition) Workaround: Uses u(t) penalty term (1e-5*u(t)^2) instead of u(t)==0 constraint Future: Remove u(t) declaration and penalty when native control-free syntax is implemented
1 parent f211034 commit 9ff1f04

15 files changed

Lines changed: 649 additions & 61 deletions

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ with_api_reference(src_dir, ext_dir) do api_pages
207207
"Basic Examples" => [
208208
"Energy minimisation" => "example-double-integrator-energy.md",
209209
"Time mininimisation" => "example-double-integrator-time.md",
210+
"Control-free problems" => "example-control-free.md",
210211
],
211212
"Manual" => [
212213
"Define a problem" => "manual-abstract.md",

docs/src/api/private.md

Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
```@meta
2+
EditURL = nothing
3+
```
4+
5+
# Private API
6+
7+
This page lists **non-exported** (internal) symbols of `OptimalControl`.
8+
9+
10+
---
11+
12+
### From `OptimalControl`
13+
14+
15+
## `DescriptiveMode`
16+
17+
```@docs
18+
OptimalControl.DescriptiveMode
19+
```
20+
21+
22+
## `ExplicitMode`
23+
24+
```@docs
25+
OptimalControl.ExplicitMode
26+
```
27+
28+
29+
## `SolveMode`
30+
31+
```@docs
32+
OptimalControl.SolveMode
33+
```
34+
35+
36+
## `_DEFAULT_DISPLAY`
37+
38+
```@docs
39+
OptimalControl._DEFAULT_DISPLAY
40+
```
41+
42+
43+
## `_DEFAULT_INITIAL_GUESS`
44+
45+
```@docs
46+
OptimalControl._DEFAULT_INITIAL_GUESS
47+
```
48+
49+
50+
## `_INITIAL_GUESS_ALIASES`
51+
52+
```@docs
53+
OptimalControl._INITIAL_GUESS_ALIASES
54+
```
55+
56+
57+
## `_INITIAL_GUESS_ALIASES_ONLY`
58+
59+
```@docs
60+
OptimalControl._INITIAL_GUESS_ALIASES_ONLY
61+
```
62+
63+
64+
## `_ansi_color`
65+
66+
```@docs
67+
OptimalControl._ansi_color
68+
```
69+
70+
71+
## `_ansi_reset`
72+
73+
```@docs
74+
OptimalControl._ansi_reset
75+
```
76+
77+
78+
## `_build_components_from_routed`
79+
80+
```@docs
81+
OptimalControl._build_components_from_routed
82+
```
83+
84+
85+
## `_build_or_use_strategy`
86+
87+
```@docs
88+
OptimalControl._build_or_use_strategy
89+
```
90+
91+
92+
## `_build_partial_description`
93+
94+
```@docs
95+
OptimalControl._build_partial_description
96+
```
97+
98+
99+
## `_build_partial_tuple`
100+
101+
```@docs
102+
OptimalControl._build_partial_tuple
103+
```
104+
105+
106+
## `_build_source_tag`
107+
108+
```@docs
109+
OptimalControl._build_source_tag
110+
```
111+
112+
113+
## `_complete_components`
114+
115+
```@docs
116+
OptimalControl._complete_components
117+
```
118+
119+
120+
## `_complete_description`
121+
122+
```@docs
123+
OptimalControl._complete_description
124+
```
125+
126+
127+
## `_descriptive_action_defs`
128+
129+
```@docs
130+
OptimalControl._descriptive_action_defs
131+
```
132+
133+
134+
## `_descriptive_families`
135+
136+
```@docs
137+
OptimalControl._descriptive_families
138+
```
139+
140+
141+
## `_determine_parameter_display_strategy`
142+
143+
```@docs
144+
OptimalControl._determine_parameter_display_strategy
145+
```
146+
147+
148+
## `_explicit_or_descriptive`
149+
150+
```@docs
151+
OptimalControl._explicit_or_descriptive
152+
```
153+
154+
155+
## `_extract_action_kwarg`
156+
157+
```@docs
158+
OptimalControl._extract_action_kwarg
159+
```
160+
161+
162+
## `_extract_kwarg`
163+
164+
```@docs
165+
OptimalControl._extract_kwarg
166+
```
167+
168+
169+
## `_extract_strategy_parameters`
170+
171+
```@docs
172+
OptimalControl._extract_strategy_parameters
173+
```
174+
175+
176+
## `_has_complete_components`
177+
178+
```@docs
179+
OptimalControl._has_complete_components
180+
```
181+
182+
183+
## `_print_ansi_styled`
184+
185+
```@docs
186+
OptimalControl._print_ansi_styled
187+
```
188+
189+
190+
## `_print_component_with_param`
191+
192+
```@docs
193+
OptimalControl._print_component_with_param
194+
```
195+
196+
197+
## `_route_descriptive_options`
198+
199+
```@docs
200+
OptimalControl._route_descriptive_options
201+
```
202+
203+
204+
## `_unwrap_option`
205+
206+
```@docs
207+
OptimalControl._unwrap_option
208+
```
209+
210+
211+
## `display_ocp_configuration`
212+
213+
```@docs
214+
OptimalControl.display_ocp_configuration
215+
```
216+
217+
218+
## `get_strategy_registry`
219+
220+
```@docs
221+
OptimalControl.get_strategy_registry
222+
```
223+
224+
225+
## `solve_descriptive`
226+
227+
```@docs
228+
OptimalControl.solve_descriptive
229+
```
230+
231+
232+
## `solve_explicit`
233+
234+
```@docs
235+
OptimalControl.solve_explicit
236+
```
237+
238+
239+
## `will_solver_print`
240+
241+
```@docs
242+
OptimalControl.will_solver_print
243+
```
244+

0 commit comments

Comments
 (0)