MATLAB Answers

Problems with Linearization of Simscape Model

조회 수: 3(최근 30일)
Jooo
Jooo 2020년 8월 20일
댓글: Jooo 2020년 9월 8일
Dear community,
I am trying to build a model of a Furuta pendulum in Simulink/Simscape. Unfortunately, when I try to linearize my model with the Model Linearizer, I get an unexpected result. The evaluation of the linearized system shows, that it is only poorly controllable, although a classic Furuta pendulum should be fully controllable according to literature. Therefore I assume, that there must be something wrong with my model or the way I linearized it but I can´t figure out what it is....
I´d highly appreciate any help on that, as this is bothing me for quite some time now. The model is attached to this post.
Thank you an d best regards,
Jooo

채택된 답변

Vasco Lenzi
Vasco Lenzi 2020년 8월 24일
HI Jooo
My guess is that the Furuta Pendulum is fully controllable when the input is the torque, and not the underlying DC motor characteristics.
If you replace the entire motor with a direct torque input, the system is controllable and the controllability matrix has rank 4:
At the same time if you use the simplified DC motor model current is linearly related to torque, so if you feed a current sources to the motor (instead of voltage) you get as well a fully controllable system:
I may be wrong, but I don't think you can get a proper controllability matrix if you include two cascading system (external loop: arm position, internal loop: DC motor torque) as both open loop, like you were doing. You need to examine both system independently, the position loop assuming a perfect dc motor (eg torque (or current) fully controllable)
Hope this sparks some thoughts - it has been many years since my control system lectures so take everything with a grain of salt.
Thanks
Vasco
  댓글 수: 3
Jooo
Jooo 2020년 9월 8일
Perfect! Thank you Vasco!

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

추가 답변(1개)

Vasco Lenzi
Vasco Lenzi 2020년 8월 21일
Dear Jooo
Thank you for reaching out! I took a look at your model. The first thing I noticed is that there is no true kinematic connection between 1D and 3D modeling. Basically you are feeding torque to a rotational joint, but you are not feeding back the dynamics to the 1D model. This is not done automatically since you are going over a 1D connection which goes only in one direction:
We have a dedicate free blockset that specifically deals with 1D to 3D connection, called
you can find various example and ready to use DC motor that connects Simscape 1d to 3d Simscape Multibody world:
in that case the kinematic relationship between the joint and the motor is "bidirectional" using simscape lines and an internal loop construct:
in which basically you force a torque on the joint, measure rotational speed and feed the simscape 1d rotational world at that speed.
I believe fixing properly the 1D to 3D connection should fix your linearization problems. I suggest to use the DC motor block included in the Multiphysics Library.
  댓글 수: 1
Jooo
Jooo 2020년 8월 21일
Hi Vasco,
thanks for your reply. You are right, the DC Motor model from the Simscape Multibody Multiphysics Library is probably more accurate. I have actually already tried this before. (see attached project) Unfortunately, the result is not much different in regards of the Linearization. When I use your recommended DC Motor Model and linearize the whole Subsystem including the DC Motor and the pendulum mechanics I get the following Linear System.
My controllability matrix ctrb(A,B) then looks like this with rank = 1, which I believe can´t be right...
Controllability =
1.0e+26 *
0 0.0000 0.0000 -0.0000 0.0000
0.0000 0.0000 -0.0000 0.0000 -0.0007
0 0.0000 0.0000 -0.0000 0.0000
0.0000 0.0000 -0.0000 0.0000 -0.0015
0.0000 -0.0000 0.0000 -0.0000 9.2972
Is there anything else you´ve noticed, that could be wrong with the model?
Thank you and best regards,
Jooo

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

Community Treasure Hunt

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

Start Hunting!

Translated by