MATLAB Answers

Empty linear analysis workspace after linearising model

조회 수: 1(최근 30일)
Mark Driessen
Mark Driessen 2021년 6월 18일
편집: Paul 2021년 6월 25일
I am working on a small mechanical Simscape model to investigate its displacement transmissibility transfer function. This is the model that I have built:
The goal is to acquire a Bode diagram of the displacement transmissibility transfer between 'disturbance input 1' and 'trolley position output', so I put OL input and OL output points at these signals as can be seen in the model diagram.
After that, I tried to obtain the Bode diagram in the model linearizer, but my linsys returns empty and no Bode diagram is generated.
Why is this happening and how could it be solved?
Thank you for your attention,

채택된 답변

Paul 2021년 6월 18일
편집: Paul 2021년 6월 18일
linsys1 isn't empty. It's a static gain of zero. Double click the Derivative block. If the Parameter ("Coefficient c ....") is the default value of inf, change it to a small number. The resulting linearized model will have an additional high frequency pole, which may or may not be ok for you depending on what you're doing. If it's a problem you can always use additional functions (search the doc for "Model Reduction") to remove that high frequency pole but still get a good a good linear model of your system at low frequency.
Better yet, if possible try to refactor your model to eliminate the Derivative block altogether.
  댓글 수: 2
Paul 2021년 6월 23일
Yes, you can use model reduction techniques to eliminate that lone, high frequency pole, even if your model is low order. The CST provides several tools for this. Be careful that you don't inadvertently get rid of any untable poles, should they exist in your linearized model. In this particular case, because of the structure of your model the resulting linsys should be of the form:
linsys = s/(cs+1)*H(s)
where c is the parameter you selected for the derivative block. So you you should be able get exactly what you want by
linsys = (cs+1)*linsys
This operation will result in a linsys having a pole/zero cancellation far out along the negative real axis, which may not affect anything you're doing. If it does matter, you can use minreal() to get rid of it (and potentially any other pole/zero cancellations).
Refactoring means to modify the model so that it doesn't use the Derivative block but sill represents the same mathematical equations or at least something that can be directly related to those equations. For example, instead of having a Derivative block in series with a low pass filter, get rid of the Derivative and add an 's' to the numerator of the filter. Or, in this case, instead of that Sine block being the disturbance, just make it the derivative of the disturbance and get rid of the Derivative block. Then when you linearize keep in mind that the resulting linsys is from the disturbance derivative to the output, so you'll want to multiply linsys by 's' to get what you really want. Stuff like that. Check the doc page for the Derivative block. It will either discuss this type of stuff or have a link to another page that does.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by