MATLAB Answers

Problems with Linearization of Simscape Model

1 view (last 30 days)
Jooo on 20 Aug 2020
Commented: Jooo on 8 Sep 2020
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,


Sign in to comment.

Accepted Answer

Vasco Lenzi
Vasco Lenzi on 24 Aug 2020
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.


Jooo on 7 Sep 2020
Hey Vasco,
sorry for my late reply, I had a few days off. And thank you for the advice!
You are right, when I input current directly I get 4 fully controllable states. However, when I look at the voltage measured accross the motor it outputs a voltage of more than 10^7 Volts, although my current input is limited to +-0.1 Amps. So this is again somehow strange...
I noticed, that my model is actually very similar to the model in this Mathworks video. In this model they also input voltage and linearize accross the whole system including the motor and the pendulum mechanics (at minute 3:00). So this approach seems to be right.
@Vasco : Do you know if the matlab files and model from this video can be accessed so I can compare it to my model? This would surely help a lot.
Vasco Lenzi
Vasco Lenzi on 8 Sep 2020
hi Jooo
reach out to me through the community message page and share an email. I will then send the files of the video - since this an old demo we prefer not to have the files lying around.
Thank you for your understanding

Sign in to comment.

More Answers (1)

Vasco Lenzi
Vasco Lenzi on 21 Aug 2020
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 Comment

Jooo on 21 Aug 2020
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,

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by