Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abstract: future #71

Open
2 of 5 tasks
jbcaillau opened this issue May 15, 2023 · 7 comments
Open
2 of 5 tasks

Abstract: future #71

jbcaillau opened this issue May 15, 2023 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@jbcaillau
Copy link
Member

jbcaillau commented May 15, 2023

@ocots @PierreMartinon @joseph-gergaud @j-l-s Some todo's suggestions:

  • add single sided inequalities (see also Functional: revise #67 as having a kwargs version of constraint! does help for this)
  • add reverse inequalities (≥)
  • declare time, state, control, variable simultaneously according to
(t, x, u)  [ 0, 1 ] ×× R²
(t, x, u, v)  [ 0, v₂ ] ×××# meaning that final time is free and equal to v[2] = v₂
  • [ ] in place dynamics (f!(ẋ(t), x(t), u(t))) or even DAE form (F(ẋ(t), x(t), u(t)) == 0)
  • [ ] for the in place form, using a keyword like
(t) == f(x(t), u(t)), inplace
  • parse dynamics in several steps: x'[2](t) == ..., x'[2:4](t) == ... (each time call dynamics!, and assemble afterwards what the dynamics is...) [Feature] Dynamics components #292
  • allow @Lie [ X, Y ] and @Poisson { f, g } directly (= without @) in the DSL?
@ocots
Copy link
Member

ocots commented May 30, 2023

Would be nice to have also

x = (position, velocity)  R², state

to use position and velocity as names for plots.

@ocots
Copy link
Member

ocots commented Jun 10, 2024

This has been added:

x = (position, velocity)  R², state

See

x = (y, z) R², state

@ocots ocots mentioned this issue Jun 15, 2024
13 tasks
@ocots ocots added the enhancement New feature or request label Jul 26, 2024
@ocots
Copy link
Member

ocots commented Aug 22, 2024

To declare the time, state and control, I propose:

@def begin
  t  [ 0, 1 ], time
  x  R³, state
  u  R², control
end

# or

@def begin
  (t, x, u)  [ 0, 1 ] ××end
@def begin
  v  R², variable
  t  [ 0, v₂ ], time
  x  R³, state
  u  R², control
end

# or

@def begin
  (t, x, u, v)  [ 0, v₂ ] ×××end
@def begin
  t  [ 0, 1 ], time
  x = (a, b, c)  R³, state
  u  R², control
  u₁  0
  0  c  1
end

# or

@def begin
  t  [ 0, 1 ], time
  x = (a, b, c) × [ 0, 1 ] , state
  u  R₊ × R, control
end

# or

@def begin
  t  [ 0, 1 ], time
  x = (a, b, c)  R × R × [ 0, 1 ] , state
  u  [ 0, +∞) × R, control
end

@PierreMartinon
Copy link
Member

For the record, the abstract form is great, I am increasingly using it instead of the 'functional' form :-) It feels a bit like when we added the proper gui for bocop: after a while I very rarely used the command-line since the gui was just better.

The main thing holding me back are the non-standard characters. I'll try to find the time to add some bits (looking at you, dear <=) !

@ocots
Copy link
Member

ocots commented Aug 24, 2024

You can write non unicode if you want. Check the tutorial 😁

Ou à partir de là tu as des exemples :

@testset "non unicode keywords" begin

@jbcaillau
Copy link
Member Author

@PierreMartinon yes. I believe the functional syntax should probably be kept internal. the only advantage is that it is incremental (and that you can delete a constraint...) but re-defining an abstract problem just costs nothing so...

as mentioned by @ocots, full non-unicode support now. sone that wasn't you asked so 🙂...

@jbcaillau
Copy link
Member Author

related to #257

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants