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

Specifying dynamics on a lower dimension #45

Open
jaskaransgrover opened this issue Dec 18, 2020 · 1 comment
Open

Specifying dynamics on a lower dimension #45

jaskaransgrover opened this issue Dec 18, 2020 · 1 comment

Comments

@jaskaransgrover
Copy link

Hi Matt, thank you for this software package. I was wondering if there is a way to specify partial dynamics that are projected on a lower-dimensional space. For example, instead of xdot = f(t,x,u), we specify E*xdot = f(t,x,u) where E is a matrix of size (m,n) where m<n so f will be [m,1].

Normally, E is eye(n,n) and f is [n,1] but if we know dynamics only for some part of the state, then we can use an E to do the trick.

@MatthewPeterKelly
Copy link
Owner

There is not an easy way to implement that sort of projection directly with OptimTraj. You can probably "fake" the projection using slack variables, although it might take some thinking to figure out exactly the right formulation.

I'm somewhat confused about the premise of the question though. Typically the "state" of the system is defined to be the part where you have a constraint on its rate of change. If the way that a variable changes is arbitrary, then it should be made part of the control. If the variable is entirely unknown, then there isn't a good way to manage that in this framework -- it would be more like a sensor. It there is a part of the state that you don't care about at all (for example you want to optimize the center of mass motion for a system and don't care about the detailed dynamics), then you can directly optimize over the reduced state and drop the "hidden" state from the problem.

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

No branches or pull requests

2 participants