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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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