Skip to content

Add ConstrainedLinearControlParametric* systems#355

Merged
schillic merged 6 commits intoJuliaReach:masterfrom
alecarraro:alecarraro/add_input_LCPCS
Feb 20, 2026
Merged

Add ConstrainedLinearControlParametric* systems#355
schillic merged 6 commits intoJuliaReach:masterfrom
alecarraro:alecarraro/add_input_LCPCS

Conversation

@alecarraro
Copy link
Collaborator

@alecarraro alecarraro commented Feb 15, 2026

The goal of this PR is to introduce two new system types named ConstrainedLinearControlParametric* systems to represent systems of the form x' = A x + B u, x∈ X, u ∈ U, A ∈ AS, B ∈ BS .

The macro parsing nows allows multiple set constraints

@schillic
Copy link
Member

schillic commented Feb 15, 2026

We use the convention to use ControlConstrained in the name if you want a domain restriction. There is currently no way to only restrict the input dimension, but so far this was not a problem. So I suggest to change the struct name accordingly.

@alecarraro
Copy link
Collaborator Author

alecarraro commented Feb 15, 2026

So I suggest to change the struct name accordingly.

Maybe I did not understand correctly your comment, but isn't this what I am doing? The systems representing x'=Ax + Bu, u ∈ U, A ∈ As, B ∈Bs is named LinearControlParametricContinuousSystem . Before this PR, there was no field to store U . I saw that other systems follow similar convention.

EDIT: I think you mean Control restricts X not U?

@schillic
Copy link
Member

Oops, I meant Constrained.

@alecarraro alecarraro force-pushed the alecarraro/add_input_LCPCS branch from c486df5 to d58b89e Compare February 15, 2026 11:51
@alecarraro alecarraro changed the title Add inputset and enable its parsing for LinearControlParametric* systems Add ConstrainedLinearControlParametric* systems Feb 15, 2026
@alecarraro
Copy link
Collaborator Author

Oops, I meant Constrained.

Perfect. I updated the PR

@schillic
Copy link
Member

Sorry, what I meant with my cryptic message was: the Constrained version should add constraints for all relevant domains. In this case for both X and U.

@alecarraro
Copy link
Collaborator Author

Sorry, what I meant with my cryptic message was: the Constrained version should add constraints for all relevant domains. In this case for both X and U.

Alright, I fixed it now. Please, let me know if this is correct

@alecarraro alecarraro force-pushed the alecarraro/add_input_LCPCS branch from 2a3afa2 to 504f822 Compare February 16, 2026 16:46
@schillic schillic mentioned this pull request Feb 17, 2026
@schillic
Copy link
Member

Try rebasing with the current master. I fixed the CI issues.

@alecarraro alecarraro force-pushed the alecarraro/add_input_LCPCS branch from 504f822 to c5b5fe7 Compare February 17, 2026 08:21
@schillic
Copy link
Member

The tests fail because you cannot only define constraints on U. You also need to define constraints on X.

The documentation run fails because you need to add ConstrainedLinearControlParametricContinuousSystem and ConstrainedLinearControlParametricDiscreteSystem here.

@alecarraro alecarraro force-pushed the alecarraro/add_input_LCPCS branch from 9c4acd2 to 91782dc Compare February 18, 2026 09:59
@alecarraro alecarraro force-pushed the alecarraro/add_input_LCPCS branch from 91782dc to 421553f Compare February 18, 2026 10:10
Copy link
Member

@schillic schillic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but there should be tests for the new code.

alecarraro and others added 2 commits February 20, 2026 10:00
Co-authored-by: Christian Schilling <git@christianschilling.net>
@schillic schillic merged commit c487c1d into JuliaReach:master Feb 20, 2026
5 checks passed
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

Successfully merging this pull request may close these issues.

2 participants