File Exchange

image thumbnail

Rotor Dynamics toolbox (RotFE)

version (624 KB) by Izhak Bucher
Toolbox models rotating, elastic shafts with disks


Updated 26 Aug 2010

View License

The toolbox implements a simple (Timoshenko) beam with rigid disks. The model computes the eigenvectos (modes) at various speeds of rotation incorporating various effects like gyroscopics, stiffness of bearings.
The results are presented using 2d and 3d graphics.

Please use this package for educational purposes only, I do not support industries (with this free code) and do not support ministries of ‘energy’ anywhere.
Students are welcome to ask questions and I will do my best to help beginners researching rotordynamics.
Please do not send long assignments to me because this would mean I will have less time to ride my mountain bike....
This software package was written mostly during the summers of 1995,1998 (and some bugs are thus 10 years old :-)
Do not despair! Some parts work correctly and the graphics is reasonably nice. I use the package myself during teaching (rotordynamics).

More seriously, I get occasional requests to send this package to people worldwide therefore I have decided to put it back onto the Mathworks users’ area.

It would be nice to be acknowledged (even by an email) when you create nice graphics/results/publication etc. with this package.

1) Unpack the package, maintain directory structure
2) cd to /Rotfe25x in Matlab
3) type rotfeini (in Matlab) to add all the underneath directory to the path
4) run the demo (slow) by typing demo_rotfe
5) run the torsional vibration demo (somewhat incomplete, sorry) - tst_rotany.m
6) edit an example model, e.g. simple4s.m, run it using :
a. modeplot2 simple4s (use buttons to compute and manipulate display)
b. compute and display the Campbell diagram ( via:
campbell simple4s,
zoom with the mouse to see the lower frequency range
Good luck and enjoy
Izhak Bucher,

Cite As

Izhak Bucher (2021). Rotor Dynamics toolbox (RotFE) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (27)

Connor McGowan

This has been an incredible toolbox to have open sourced access to. I am utilizing it for an independent study for turbo machinery where I needed an FEM solver of some sort to analyze rotor dynamics and develop the mode shape equations. This is so helpful ! thank you!

mohammad ebrahimy

Honglei Sha

Very nice toolbox!Thank you very much!

shaohua li

Yogita Potdar

I am a beginner to this matlab simuink.Please can you send me the simulation of a rotor supported on a shaft

Andrea Aste

I have a question. I would like to analyze a wide flywheel (wide along the axis of the shaft) realized with different materials (steel, magnetic material, composite materials). The shaft is made by steel. I don't know how the code valutes the stiffness of the system, so I tried both to put the parameters of the disc in the voice "DISC" and in the voice "ELEMENTS". The results are very different and I don't know which one is correct. In the lines below there is the code where I put the elements of the flywheel in the voice "ELEMENTS". My main doubt is if the tool is able to calculate correctly the stiffness even if the disc is formed by more "layer".

NODES=[0 0.05 0.411 0.461] ; %numeration of nodes
ELEMENTS=[ 1 2 26e-3 0e-3 1
2 3 26e-3 0e-3 1
2 3 51e-3 26e-3 1
2 3 61e-3 51e-3 4
2 3 94e-3 61e-3 2
2 3 127e-3 94e-3 2
2 3 160e-3 127e-3 2
2 3 193e-3 160e-3 2
2 3 226e-3 193e-3 2
2 3 259e-3 226e-3 2
2 3 293e-3 259e-3 2
3 4 26e-3 0e-3 1];
MATERIALS=[210e9 7850 0.3; 13.7e9 1588 0.32; 70e9 3200 0.3; 180e9 5017 0.28];
SPRINGS=[1 2e3 2e3; 4 2e3 2e3];

Nhat Minh

Good Job !!!


how to build a model with one degree-of-freedom each node? In Rotfe,there are 4 degrees of freedom each node.

Gert Kruger

The unbalance input is not valid during acceleration for dynamic simulation in Simulink. It is only applicable for constant speed. I am trying to modify the unbalance force equation, but not luck. One side effect of the invalid unbalance force equation is that the excitation frequency during acceleration is the instantaneous frequency, which is not the frequency that the rotor 'sees'.

Niels Pedersen

Hi, I solved the "Error in campbell (line 67)" by deleting "+1" as suggested by others. It seems to work fine now.

However is there anybody who know how to get the unbalance response and misallignment modules working? Cannot really figure out what to do here...

Izhak, if you read this: Thanks for uploading this packet:-)

Thanks - Niels

ramin lotfi

there is problem with campbell diagram? how can i fix it??

ramin lotfi


i got an error at the beginning.
Error in ==> demo_rotfe at 29
modeplot2 rz4 "
how did you solve this problem?

Arik Palitski

To Whom It May Concern:

If you're using imperial units the material density [lb/in^3] has to be divided by (32.17*12) to make mass and inertia terms compliant with the rest of the equation, i.e. slugs instead of pounds.

Arik Palitski

Hi, I'm having problem drawing Campbell diagram, Matlab returns
'Error in campbell (line 67)
The command is not in a loop algorithm, its actually under 'if' argument, I guess the right thing is to correct it to 'figure(fig)'? Cause elseif is 'figure(fig)', anybody? Thanks in advance

Arik Palitski

Jake Zwart

Very nice package. And having the code available I was able to change rpm to roll surface speed to relate to the speed that everyone is used to.

The bug Stefano reported is still present.

Question, what is the difference between the red and purple mode shape?

arestw ali

dear all
may someone help me how to use time response of this toolbox...

it's very interesting and efficient thank you...

Keith Swanepoel


In what units should the stiffness and unbalance by defined in, in RotFE. The units differ in different documentations.

Michael Zisser


I have a question regarding the units of spring elements:

In the documentation (e.g. in ROTFE20a.doc, page 9) you define the unit of the spring stiffness as N/m. But in all code example files, the comments on spring elements describe the unit of spring stiffness as kg/m.
What is the correct unit to use?

I would like to mention, that this toolbox is very nice and intuitive to use!

Best Regards

Zhigang Jia

Ali Ozyasamis

i solved the problem. Rotfe is very useful program who wants to work at rotor dynamics.

Ali Ozyasamis

I want to run those codes but i got an error at the beginning. You can see the error below.

"??? Undefined function or method 'modeplot2' for input arguments of type 'char'.

Error in ==> demo_rotfe at 29
modeplot2 rz4 "

what is the solution?



which these files can calculate critical speed of one rotor?

Izhak Bucher

Thank you Stefano, the bug (well typo) has been fixed.
Your are certainly my ** user of the week **
corrected version is being uploaded (12-12-2010)

Stefano Pieri

Great job!!!! Very nice graphics!!! There is a BUG !!!

The 'inertia' formula in rotmass.m rotstiff.m and rotgyro.m is wrong.

I=pi*d^4/64*(1-f^2); where f=ri/r; leads to a wrong value of inertia in case of 'ri' not zero.
Thus, in case of big hollow shafts, this error leads to a wrong definition of the mass, stiffness and damping matrices, with wrong results.

The correct value of inertia is I = pi*d^4/64*(1-f^4);

go on with this toolbox because it is the best...


MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!