Error plotting orbits figure
7 次查看(过去 30 天)
显示 更早的评论
% File name: Example01.m
% This example has isotropic bearings
% A model with 4 Timoshenko beam elements
%
clear
format short e
close all
set(0,'defaultaxesfontsize',12)
set(0,'defaultaxesfontname','Times New Roman')
set(0,'defaulttextfontsize',12)
set(0,'defaulttextfontname','Times New Roman')
% set the material parameters
E = 2e11;
nu = 0.3;
G = E/(2*(1+nu));
rho = 7800;
damping_factor = 0; % no damping in shaft
% Consider the model with 6 equal length elements
% Shaft is 0.4m long
model.node = [1 0.0; 2 0.4/3; 3 2*0.4/3; 4 3*0.4/3];
% Assume shaft type 2 - Timoshenko with gyroscopic effects included
% Solid shaft with 50mm outside diameter
shaft_od = 0.05;
shaft_id = 0.0;
model.shaft = [2 1 2 shaft_od shaft_id rho E G damping_factor; ...
2 2 3 shaft_od shaft_id rho E G damping_factor; ...
2 3 4 shaft_od shaft_id rho E G damping_factor];
% Disk 1 at node 3 has diameter of 280mm and thickness of 70mm
% Note inside diameter of disk is assumed to be the outside diameter of the
% shaft
disk1_od = 0.3;
disk1_id = 0.1;
disk_thick = 0.03;
model.disc = [1 3 rho disk_thick disk1_od shaft_od];
% constant stiffness short isotropic bearing (1NM/m) with damping
% bearings at the ends - nodes 1 and 4
bear_stiff_1 = 5e7;
bear_stiff_2 = 7e7;
bear_stiff_3 = 0;
bear_stiff_4 = 0;
bear_damp_1 = 5e2;
bear_damp_2 = 7e2;
bear_damp_3 = 0;
bear_damp_4 = 0;
model.bearing = [3 1 bear_stiff_1 bear_stiff_2 bear_stiff_3 bear_stiff_4 bear_damp_1 bear_damp_2 bear_damp_3 bear_damp_4; ...
3 4 bear_stiff_1 bear_stiff_2 bear_stiff_3 bear_stiff_4 bear_damp_1 bear_damp_2 bear_damp_3 bear_damp_4];
% draw the rotor
figure(1), clf
picrotor(model)
% plot the Campbell diagram and root locus
Rotor_Spd_rpm = 0:1000:9000.0;
Rotor_Spd = 2*pi*Rotor_Spd_rpm/60; % convert to rad/s
[eigenvalues,~,kappa] = chr_root(model,Rotor_Spd);
figure(2)
NX = 1;
damped_NF = 1; % plot damped natural frequencies
plotcamp(Rotor_Spd,eigenvalues,NX,damped_NF,kappa)
figure(3)
plotloci(Rotor_Spd,eigenvalues,NX)
% plot the modes at a given speed
Rotor_Spd_rpm = 4.188790204786391e+02;
Rotor_Spd = 2*pi*Rotor_Spd_rpm/60; % convert to rad/s
[eigenvalues,eigenvectors,kappa] = chr_root(model,Rotor_Spd);
figure(4)
subplot(221)
plotmode(model,eigenvectors(:,1),eigenvalues(1))
subplot(222)
plotmode(model,eigenvectors(:,3),eigenvalues(3))
subplot(223)
plotmode(model,eigenvectors(:,5),eigenvalues(5))
subplot(224)
plotmode(model,eigenvectors(:,7),eigenvalues(7))
% plot orbits
figure(5)
outputnode = [2 3];
axes('position',[0.2 0.53 0.2 0.2 ])
plotorbit(eigenvectors(:,1),outputnode,'Mode 1',eigenvalues(1))
axes('position',[0.39 0.53 0.2 0.2 ])
plotorbit(eigenvectors(:,3),outputnode,'Mode 2',eigenvalues(3))
axes('position',[0.58 0.53 0.2 0.2 ])
plotorbit(eigenvectors(:,5),outputnode,'Mode 3',eigenvalues(5))
axes('position',[0.2 0.25 0.2 0.2 ])
plotorbit(eigenvectors(:,7),outputnode,'Mode 4',eigenvalues(7))
axes('position',[0.39 0.25 0.2 0.2 ])
plotorbit(eigenvectors(:,9),outputnode,'Mode 5',eigenvalues(9))
axes('position',[0.58 0.25 0.2 0.2 ])
plotorbit(eigenvectors(:,11),outputnode,'Mode 6',eigenvalues(11))
3 个评论
Walter Roberson
2025-8-6
There is a picrotor function posted at https://www.mathworks.com/matlabcentral/answers/261158-i-have-a-program-of-rotor-shaft-analysis-in-matlab-i-am-able-to-plot-mode-shapes-but-i-need-the-valu
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Eigenvalues & Eigenvectors 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!