Implement the MultiStateWeightProvider and refactor the WeightProvider #555
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
MultiStateWeightProvider
is a provider that will allow us to perform gain scheduling. The user should provide a configuration file containing the name and the weight for each state. Then the provider will interpolate among the states using a FirstOrder stable system. The settling time of the system should be set in the configuration file.I also implemented the associated tests and the python bindings.
I also add the possibility to set the weight provider directly in the
ILinearTaskSolver::addTask()
method.The PR also introduces the concept of output and input ports. These two interfaces contain functions to get and set signals only. And advanceable inherits from them. Thanks to this w can split the concept of advanceable from the concept of getting values. For instance
Now the user knows that
f
will only get the output of the advanceable and nothing more, (for instance it will never calladvance
orsetInput
)This substitutes #507