⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rotmshape.m

📁 利用matalab编制的转子动力学计算软件。其中模型利用有限元建模
💻 M
字号:
function [Wuo,Wv,z,v2]=rotmshape(v,Rot,NP)
%[Wu,Wv,z,v]=rotmshape(v,RotorModel[,NP])
%
% This function is using the interpulation functions of the FE
% model (hermit-cubic) to regenerate the deflection curve)
% which is represented by Wu (y-direction) and Wv (z-direction) of a discrete rotor FE
%
% INPUT:
%	v	-	mode-shape (or any valid vector of displacements)
%	RotorModel	- Sturcutre containing Rotor model (see rotfe.m)
%	NP	-	(optional) no. of points in curve
%
%  OUTPUT:
%   Wu, Wv, amplitude curve in the XZ adn YZ planes
%  z  - coordinate for whcih Wu,Wv are computed.
%
% By:		I. Bucher  Date	15-8-98
%        29-7-99 treats reduced models 

% =============================	> Initialize parameters
if nargin<3,  NP=8; end
x=[0:NP-1]'/NP;		% non-dimensional variable

Bcord=Rot.Bcord; nodes=Rot.NODES;
if isfield(Rot,'Reduct')
   if Rot.Reduct.flag % reduced ?
      v=Rot.T*v; % expand
   end
end

   if length(Bcord)>0,
      N=length(v)+length(Bcord);
      v2=zeros(N,1);
      z=1:N; z(Bcord)=[];  
      v2(z)=v;
   else,
      v2=v(:);
   end
 
N=length(v2);
vy=v2(1:N/2); vz=v2(N/2+1:N);
% =============================	> Initialize Material and geom. constants
L=diff(nodes); L=L(:); 

Nnodes=length(nodes); Nelem=Nnodes-1;

% =============================	> Basic shape functions
% 	 
alfa=[polyval([2 -3 0 1],x), ...	% u
      polyval([1 -2 1 0],x), ...	% u,z
      polyval([-2 3 0 0],x), ...	% v
      polyval([1 -1 0 0],x)];		% v,z      shape functions

% =============================	>  Build global displacement shape
Wu=[]; z=[]; Wv=[];
x0=0;
n1=Rot.ELEMENTS(:,1);n2=Rot.ELEMENTS(:,2);

for q=1:Rot.dim/4-1,
   
   Li=nodes(q+1)-nodes(q);
   nod=(q-1)*4;
   phi=alfa*diag([1  Li   1 Li]); 
   u=vy((q-1)*2+1:(q-1)*2+4); 
   v=vz((q-1)*2+1:(q-1)*2+4); 
   Wu=[Wu ; phi*u ];
   Wv=[Wv ; phi*v];
   %
   z=[z ; x*Li+nodes(q)];
end

Wu=[Wu ; vy(N/2-1)];
Wv=[Wv ; vz(N/2-1)];
z=[z ; nodes( max(n2) )];

if nargout<1,
   clf
   plot(z,real([Wu Wv]))
   title(['Rotor Amplitude, Model: ' Rot.File])
else
   Wuo=Wu;
end

%
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -