2
$\begingroup$

I am impressed by StateTransformationLinearize, and I feel terribly bad for not having noticed this function before.

How does it work?

Does it attempt to find a $C^r$-conjugate of the system? If so, how does it do this?

Why can't it handle Affine State Space Models with symbolic parameters?

I would like to know more about this witchcraft.

For instance, slight changes in the coefficients of the featured examples, lead to failures in finding the transformation. Perhaps if I would figure out how this straightening is done, I could grasp something more about its applicability.

Example

    sys=AffineStateSpaceModel[{{4*Subscript[x, 1], 7*Subscript[x, 1]^2 + Subscript[x, 2]}, {{1}, {-1 + 2*Subscript[x, 1]}}, {Subscript[x, 2]}, {{0}}}, {Subscript[x, 1], Subscript[x, 2]}, 
 {{Subscript[\[FormalU], 1], 0}}, {Automatic}, Automatic, SamplingPeriod -> None];

This is an example taken from the documentation. If you change the first coefficient, into a different number, i.e.:

sys=AffineStateSpaceModel[{{3*Subscript[x, 1], 7*Subscript[x, 1]^2 + Subscript[x, 2]}, {{1}, {-1 + 2*Subscript[x, 1]}}, {Subscript[x, 2]}, {{0}}}, {Subscript[x, 1], Subscript[x, 2]}, 
     {{Subscript[\[FormalU], 1], 0}}, {Automatic}, Automatic, SamplingPeriod -> None];

It already fails to find the transformation:

test = StateTransformationLinearize[ sys, {{Subscript[z, 1], Subscript[z, 2]}, "InputState"}];

Outputting the following error msg:

ControlStateAndFeedbackLinearizationsDumpStateSpaceLinarize::nclin: -- Message text not found -- (input-state)

$\endgroup$
4
  • 2
    $\begingroup$ It would be helpful to have examples that work or fail, respectively, to find the transformation in question. $\endgroup$ Mar 31, 2019 at 13:43
  • $\begingroup$ OK. I'll add an example right now. $\endgroup$ Mar 31, 2019 at 13:55
  • 2
    $\begingroup$ Linearize is misspelled in the message -- odd since it is the message head. $\endgroup$
    – Michael E2
    Mar 31, 2019 at 17:21
  • 2
    $\begingroup$ You can inspect some methods via ?*`*Linearize*. The misspelling comes from Control`StateAndFeedbackLinearizationsDump`ssLinearize0 $\endgroup$
    – Michael E2
    Mar 31, 2019 at 17:40

1 Answer 1

3
$\begingroup$

The theory behind this is in Chapter 5 of the book Nonlinear Dynamical Control Systems by Henk Nijmeijer and Arjan van der Schaft.

The more powerful linearization is FeedbackLinearize which uses feedback, in addition to state transformation, to linearize a system.

$\endgroup$
1
  • $\begingroup$ Thank you very much Suba! I was actually interested only in straightening because I was willing to see the "linear" properties of a nonlinear control applied to a linear system. $\endgroup$ Apr 1, 2019 at 17:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.