If I have a state-space model, so that the A, B, C and D matrices are known, how can I design the right input u, so that y is a custom signal, for example, a sine wave with constant amplitude?



  • $\begingroup$ Please add some information about A-D. Since your equation system contains derivatives character of the matrices influences possible ‚design‘ approaches $\endgroup$ – rul30 Jan 17 '18 at 19:00
  • $\begingroup$ A, B, C and D are real values matrices. A is 18x18, B is 18x2, C is 2x18, D is 2x2. I do not care about x and its derivative. It is a 2x2 state space model but the cross-coupling terms are zero, so the input u1 will not influence y2 and so on. For example, the B matrix is: non-zero on the first nine elements of the first column; non-zero on the last nine elements of the second column. $\endgroup$ – Alessandro Jan 18 '18 at 7:31
  • $\begingroup$ @Alessandro But is $A$ Hurwitz, the state space model minimal (so controllable and observable) and is $D$ full rank? $\endgroup$ – fibonatic Jan 19 '18 at 13:52
  • $\begingroup$ D is a 2x2 and has rank 2. A, indeed, is 18x18 but has rank 16, so the system is observable neither controllable. $\endgroup$ – Alessandro Jan 19 '18 at 15:39

You can design an asymptotic output tracker based on feedback linearization if the residual dynamics are stable. The theory for this can be found in the book 'Nonlinear Control Systems' by Isidori [Springer]. You can find examples worked out using Mathematica here and here.

Another way is to develop a LQR tracking controller. See, for example, Chapter 4 of the book 'Optimal Control' by Anderson and Moore [available online].

  • $\begingroup$ Thank you very much! I also had an idea and it does not work but I would understand why: From A, B, C and D I can calculate the transfer function H so that Y=HU, so I can calculate U so that Y is equal to my target. But in the inverse process, when I build u and substitute it in the state-space representation, the output is not as my target. Do you know why? $\endgroup$ – Alessandro Jan 19 '18 at 7:49
  • $\begingroup$ That is a very crappy control approach. If the model used was $\frac{1}{s+1}$, the controller would be $s+1$. There are two problems: 1) It is not a proper system. 2) If the actual plant was $\frac{1}{s+1.1}$, the plant will controller will actually be $\frac{s+1}{s+1.1}$ instead of 1. So the tracking will have errors. On paper everything should be fine, and you should not be seeing the problem you are describing. $\endgroup$ – Suba Thomas Jan 19 '18 at 14:10
  • $\begingroup$ This is what I am looking for. Why on paper everything is fine, whereas from the numerical point of view is not? $\endgroup$ – Alessandro Jan 22 '18 at 7:30
  • $\begingroup$ That is what I explained in point 2 of my comment above. $\endgroup$ – Suba Thomas Jan 22 '18 at 14:10

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.