Great question. In some systems you will need to do a step input instead of an impulse. Actually, this was the case in my thesis, where I was building unsteady aerodynamic models past small pitching airfoils. It made more sense to "step" the airfoil angle of attack, say from 0 degrees to 5 degrees, and model the step response. But a step response in the angle is an impulse response in the angular rate. So I appended the angle to the state of my system and made the angular rate the input, so that it was an impulse response problem again. This is usually possible.
@@Eigensteve Very clever to change the variable so that a step input becomes an impulse input. But what about the case where actuator saturation cannot create a sufficiently large impulse, for example if your angle of attack actuator is too slow to impulsively change from 0 degrees to 5 degrees? Is this an inherent flaw in the system design, or is there still a way to apply ERA? I understand that one could perform the experiment anyway and carry out the procedure you've described in the video, but I worry that with a small magnitude impulse the system dynamics would be buried in noise and the system realization would vary highly between experiments.
@@theBlaxicindasian in this case, you would use ERA in conjunction with OKID (a few videos later). Then, from a non-impulsive input, you can back out what the impulse response would have been and use ERA.
How do you build the Henkel matrix for a system if it has multiple measurements? Would each y_1, y_2, ..y_m be a vector within the Henkel matrix for each measurement at the specified time step?
Great question. At 6:41, I hint at how to do this. For a linear system, you can replace y_1 with CB, y_2 with CAB, y_3 with CA^2B, etc. For a system with multiple inputs (q) and multiple outputs (p), then each of these matrices is size p x q. So basically, you would stack all of these p x q matrices the same way as you stack the y's. The real trick is how to rearrange your input data to get these matrices and rearrange the SVD at the end to get a model. To start, you would perform q impulse response experiments, one for each input, and you would measure each of the outputs for each impulse response. Then, you would need to organize these into the matrices CB, CAB, CA^2B, .... Then, at the end of this procedure, when you compute the SVD of your Hankel matrix, you would need to be careful about how to use those matrices to compute the reduced model with q inputs and p outputs. I believe this last part is in the book in chapter 9.
@@Eigensteve Thank you for these clarifications! But how does this work with HAVOK? In the supplementary of your 2017 HAVOK paper you write: "In the following, we will present the theory for a single scalar measurement, although this framework generalizes to multiple input, multiple output (MIMO) problems." But I could not find any further clarification on how this generalizes. Since the above (CB,CAB,...) only works for linear systems, how would one stack multiple variable measurements for HAVOK?
Does it matter what the amplitude of the impulse is at t=0? I'm doing some simulations using non-linear/linearized systems, and there the results (mostly scaling I think) are quite amplitude-dependent (i.e. I check them by simulating both systems for another input).
For a linear system, the results shouldn't depend on the amplitude of the impulse. If I double the impulsive input, then the output will double. But for nonlinear systems, the output can be highly dependent on the size of the input. ERA/OKID are specifically designed for linear systems where superposition holds. We have some extensions for nonlinear systems, but this is still being developed. (www.nature.com/articles/s41467-017-00030-8)
What is the dimension of the H matrix? If it is some finite (K x K) matrix, then what are the entries where if you follow the pattern, you get some y_m where m > k?
H is a finite matrix, but not necessarily square. In fact, there is a lot of modern research on what the dimensions of H should be to get a good model. Not at all obvious. We have a paper related to this question for nonlinear systems: www.nature.com/articles/s41467-017-00030-8
Hi Steve, That was awesome as always! Keep up the good work. I was wondering to know how you guarantee the full-row rank of the Hankel matrix to identify the system correctly. Thanks, Ali
Great Video! This derivation hinges on the fact that H=OC and the SVD of H=USV*. You make the assumption that O = US^.5 and C = S^.5V* in order to estimate A, B, and C. This assumption does not seem trivial to me. Why do you assume this? Thank you Steve!
It does work for MIMO. The dimension does get very large, but we have powerful tools for computing large matrix SVDs. In fact, sometimes this approach is still more efficient than other MIMO identification techniques.
@@Eigensteve could you please introduce the source (book , paper etc) or any clip maybe you have address this issue. ERA for MIMO systems. Do we need three dimension hankel matrix?
@@masoudsakha9331 This is the paper I was thinking about: link.springer.com/article/10.1007/s00162-010-0184-8 (arxiv paper arxiv.org/pdf/0907.1907.pdf )
Regarding the note that enough data should be used such that y approaches 0, is this a requirement? Or does the algorithm still work for unstable systems?
i have some question, i read already paper that unknown variable x from ERA can be used from full state feedback. how can this happen? just black box? i think if i want to feedback velocity, acc, position, it is nessesary to know x vector component. although i didn't watch last videos, there is no problem in control system using state-space equation deriven from ERa?
Why only impulse inputs, rather than step inputs ?
Would several consecutive Impulses give better approximations ?
Great question. In some systems you will need to do a step input instead of an impulse. Actually, this was the case in my thesis, where I was building unsteady aerodynamic models past small pitching airfoils. It made more sense to "step" the airfoil angle of attack, say from 0 degrees to 5 degrees, and model the step response. But a step response in the angle is an impulse response in the angular rate. So I appended the angle to the state of my system and made the angular rate the input, so that it was an impulse response problem again. This is usually possible.
@@Eigensteve Very clever to change the variable so that a step input becomes an impulse input. But what about the case where actuator saturation cannot create a sufficiently large impulse, for example if your angle of attack actuator is too slow to impulsively change from 0 degrees to 5 degrees? Is this an inherent flaw in the system design, or is there still a way to apply ERA? I understand that one could perform the experiment anyway and carry out the procedure you've described in the video, but I worry that with a small magnitude impulse the system dynamics would be buried in noise and the system realization would vary highly between experiments.
@@theBlaxicindasian in this case, you would use ERA in conjunction with OKID (a few videos later). Then, from a non-impulsive input, you can back out what the impulse response would have been and use ERA.
How do you build the Henkel matrix for a system if it has multiple measurements? Would each y_1, y_2, ..y_m be a vector within the Henkel matrix for each measurement at the specified time step?
Great question. At 6:41, I hint at how to do this. For a linear system, you can replace y_1 with CB, y_2 with CAB, y_3 with CA^2B, etc. For a system with multiple inputs (q) and multiple outputs (p), then each of these matrices is size p x q. So basically, you would stack all of these p x q matrices the same way as you stack the y's. The real trick is how to rearrange your input data to get these matrices and rearrange the SVD at the end to get a model. To start, you would perform q impulse response experiments, one for each input, and you would measure each of the outputs for each impulse response. Then, you would need to organize these into the matrices CB, CAB, CA^2B, .... Then, at the end of this procedure, when you compute the SVD of your Hankel matrix, you would need to be careful about how to use those matrices to compute the reduced model with q inputs and p outputs. I believe this last part is in the book in chapter 9.
@@Eigensteve Thank you for these clarifications! But how does this work with HAVOK? In the supplementary of your 2017 HAVOK paper you write: "In the following, we will present the theory for a single scalar measurement, although this framework generalizes to multiple input, multiple output (MIMO) problems." But I could not find any further clarification on how this generalizes.
Since the above (CB,CAB,...) only works for linear systems, how would one stack multiple variable measurements for HAVOK?
Does it matter what the amplitude of the impulse is at t=0? I'm doing some simulations using non-linear/linearized systems, and there the results (mostly scaling I think) are quite amplitude-dependent (i.e. I check them by simulating both systems for another input).
For a linear system, the results shouldn't depend on the amplitude of the impulse. If I double the impulsive input, then the output will double. But for nonlinear systems, the output can be highly dependent on the size of the input. ERA/OKID are specifically designed for linear systems where superposition holds. We have some extensions for nonlinear systems, but this is still being developed. (www.nature.com/articles/s41467-017-00030-8)
@@Eigensteve Thank you! :)
What is the dimension of the H matrix? If it is some finite (K x K) matrix, then what are the entries where if you follow the pattern, you get some y_m where m > k?
H is a finite matrix, but not necessarily square. In fact, there is a lot of modern research on what the dimensions of H should be to get a good model. Not at all obvious. We have a paper related to this question for nonlinear systems: www.nature.com/articles/s41467-017-00030-8
great explanation sir
Hi Steve,
That was awesome as always!
Keep up the good work.
I was wondering to know how you guarantee the full-row rank of the Hankel matrix to identify the system correctly.
Thanks,
Ali
Great Video! This derivation hinges on the fact that H=OC and the SVD of H=USV*. You make the assumption that O = US^.5 and C = S^.5V* in order to estimate A, B, and C. This assumption does not seem trivial to me. Why do you assume this? Thank you Steve!
Does it works for MIMO systems? The hankel matrix will be so large in high input output system. Is there any solution for that?
It does work for MIMO. The dimension does get very large, but we have powerful tools for computing large matrix SVDs. In fact, sometimes this approach is still more efficient than other MIMO identification techniques.
@@Eigensteve could you please introduce the source (book , paper etc) or any clip maybe you have address this issue. ERA for MIMO systems. Do we need three dimension hankel matrix?
@@masoudsakha9331 This is the paper I was thinking about: link.springer.com/article/10.1007/s00162-010-0184-8 (arxiv paper arxiv.org/pdf/0907.1907.pdf )
Regarding the note that enough data should be used such that y approaches 0, is this a requirement? Or does the algorithm still work for unstable systems?
How do we know splitting H like this using the svd yields O and C, and not just any two matrices which multiply to H?
i have some question, i read already paper that unknown variable x from ERA can be used from full state feedback. how can this happen? just black box?
i think if i want to feedback velocity, acc, position, it is nessesary to know x vector component. although i didn't watch last videos, there is no problem in control system using state-space equation deriven from ERa?
I think the generated A matrix is sensitive to phase shift, can we build similar algo. using fft