Changing order when calculating frequencies in a loop

For a campbell analysis of a rotation system, I'm calculating the critical frequencies with gyroscopic effect in a for loop in the frequency span of 3000 rad/s. At the end of the loop, I'm saving the frequencies in a matrix to plot the campbell diagram afterwards. Here the problem occurs. For an example, if the backward whirl frequency for the second frequency becomes lower than the forward whirl frequency of the first frequency, they switch indicies in the matrix, and therefore, the campbell diagram becomes a mess.
Does any of you have any suggestions on how to fix this problem?
Example of plot. Notice that what should be a smooth curve change color (direction).

6 Comments

hello
maybe you should post the code instead of an image of it
this way we can better help you
Didn't thought about that, sorry. The script is now attached. A bit long, since the campbell is only a part of the total script. But the image shows which lines
It may not please you but the poor's man solution is to force all traces to have same color so you don't see that effect
%--------------------------------------------------------------------------
% Plotting
%--------------------------------------------------------------------------
w = 1:w;
figure(2)
% for i = 1:size(CAM,1)
% plot(w,(CAM(i,:)),'LineWidth',2)
% hold on
% pause
% end
plot(w,CAM,'b','LineWidth',2)
hold on
plot(w,w,'r--','LineWidth',2)
I've thought about that solution. I can also live with the mess as it is now, since I know why that mess occurs. It could be nice to not have that mess though.
First, I thought that the eigenshuffle would help, but it's only correcting the irst intersection. After that intersection, the mess is still the same. Otherwise, nice try though.

Sign in to comment.

Answers (0)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Asked:

on 22 Dec 2021

Community Treasure Hunt

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

Start Hunting!