概述
我是,希望达人帮我看看,感激,
主要是想通过主函数调用子函数,功能很简单。有两个轴段参数,有两个不同的程序体,交叉组合,能生成4个不同的结果,其实原来一共有4个程序,我这样做成主子程序就是想这样好看,简单,看着整齐,我想要第一个结果的时候就把NO2、NO3、NO4comment掉,不过好象我这样做不对,不知道该怎么做,达人指点下我。先谢过了!!!
% NO1
function ch=parameter(1); % 1:代表空心轴,2:代表实心轴
function ch=programe(1); % 1:代表数控所,2:代表轴承所
%
% % NO2
% parameter(1); % 1:代表空心轴,2:代表实心轴
% programe(2); % 1:代表数控所,2:代表轴承所
%
% % NO3
% parameter(2); % 1:代表空心轴,2:代表实心轴
% programe(1); % 1:代表数控所,2:代表轴承所
%
%
% % NO4
% parameter(2); % 1:代表空心轴,2:代表实心轴
% programe(2); % 1:代表数控所,2:代表轴承所
function parameter(i)
if i == 1 % 空心轴
a=2/3;
u=0.3;
rou=7800;
E=2.0e11;
N=23;
G=E/(2*(1+u));
%参数的数组形式
D=[0.0325 0.0325 0.0325 0.0325 0.037 0.035 0.0325 0.0325 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0286 0.0255 0.0252 0.0252 0.0252];%轴的外径
d=[0.0245 0.016 0.016 0.016 0.016 0.016 0.016 0.014 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012];%轴的内径
L=[0.03 0.0305 0.0325 0.0075 0.012 0.0008 0.01 0.0008 0.0003 0.012 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.013 0.043 0.006 0.024 0.05 0];%轴段长
A=pi.*(D.^2-d.^2)/4;
%%%%%轴承段参数
bearingL=0.03;
bearingD=0.08;
bearingd=0.065;
bearingM=rou*pi*(bearingD^2-bearingd^2)/4*bearingL;
zhuanziL=0.02;
zhuanziD=0.07;
zhuanzid=0.0572;
zhuanziM=rou*pi*(zhuanziD^2-zhuanzid^2)/4*zhuanziL;
%简化模型参数
k1=1e+9;
k2=1e+9;
c1=4.2e+5;
c2=4.2e+5;
K=[0 0 k1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 k2 0 0]; %支撑刚度
C=[0 0 c1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c2 0 0];
% S=K+C*i;
%质量集总
m=rou.*A.*L;
for i=1:N
if i==1
m(i)=m(i)/2;
else
m(i)=(m(i)+m(i-1))/2;
end
end
M=m+[0 0 bearingM 0 0 0 0 0 0 0 zhuanziM zhuanziM zhuanziM zhuanziM zhuanziM 0 0 0 0 0 bearingM 0 0];
% Jp=rou.*pi.*(D.^2+d.^2).^2.*L/2;
% Jd=Jp./2;
I=pi.*(D.^4-d.^4)/64;
% V=6*E.*I./(a*G.*A.*L.^2);
for i=1:N-1
V(i)=6*E*I(i)/(a*G*A(i)*L(i)^2);
end
V(23)=0;
else % 实心轴
%%%%%%%%%%%%计入轴承段轴的质量
clc
clear
N=9; %划分的轴段数
%材料参数
a=0.886; %与截面形状有关的因子,实心圆轴时a=0.886
u=0.3; %泊松比
rou=7800; %密度(kg/m3)
E=2.0e11; %pa
%轴参数
d=[0.042 0.042 0.050 0.050 0.050 0.050 0.042 0.042 0];
A=pi*d.^2/4; %m2
L=[0.057 0.057 0.030 0.030 0.030 0.030 0.0325 0.0325 0]; %m
Long=L(1)+L(2)+L(3)+L(4)+L(5)+L(6)+L(7)+L(8)+L(9);
%%%%%轴承段参数
bearingL=0.05;
bearingD=0.05;
bearingM=rou*pi*bearingL*bearingD^2/4;
%简化模型参数
k1=1e+9;
k2=1e+9;
c1=4.2e+5;
c2=4.2e+5;
K=[0 0 k1 0 0 0 k2 0 0]; %支撑刚度
C=[0 0 c1 0 0 0 c2 0 0];
S=K+C*i;
%质量集总
mi=L.*(rou*pi*d.^2/4);
for i=1:N
if i==1
m(i)=mi(1)/2;
else
m(i)=(mi(i-1)+mi(i))/2;
end
end
M=m+[0 0 bearingM 0 0 0 bearingM 0 0];
%盘轴材料参数(忽略轴的质量)
G=E/(2*(1+u)); %剪切弹性模量
I=pi*(d.^4)/64; %截面惯性矩
I(N)=1;
%I=[I1 I1 I1 I1 I2 I2 I2 I2 I2 I3 I3 I3 I3];
%v=6*E*I./(a*G*A0.*l.^2); %剪切变形影响系数,不计剪切变形时v1=0;
for i=1:N-1
V(i)=6*E*I(i)/(a*G*A(i)*L(i)^2);
end
V(N)=0;
end
function programe(i)
if i==1 % 1数控所程序
k=0;%模态数计数器
FF=1;
Tit=['第一阶频率的振型和弯矩图';'第二阶频率的振型和弯矩图'];
for w=0:0.5:20000;
for i=1:N;
T(:,:,i)=[1+(L(i)^3)*(1-V(i))*(M(i)*w^2-K(i))/(6*E*I(i)) L(i) L(i)^2/(2*E*I(i)) L(i)^3*(1-V(i))/(6*E*I(i));
(L(i)^2)*(M(i)*w^2-K(i))/(2*E*I(i)) 1 L(i)/(E*I(i)) L(i)^2/(2*E*I(i));
L(i)*(M(i)*w^2-K(i)) 0 1 L(i);
M(i)*w^2-K(i) 0 0 1 ]; %考虑转动惯量
end
H=T(:,:,1);
for i2=2:N;
H=T(:,:,i2)*H;
end
F=H(3,1)*H(4,2)-H(3,2)*H(4,1);
if F*FF< 0 %求解临界转速
k=k+1;
wi(k)=w; %角速度 rad/s
f=wi(k)/(2*pi) %频率 HZ
ni(k)=wi(k)*30/pi; %转速 转/min
end
FF=F;
end
else % 轴承所程序
k=0; %模态数计数器
FF=1;
Tit=['第一阶频率的振型和弯矩图';'第二阶频率的振型和弯矩图'];
for w=0:1:20000;
for i=1:N;
T(:,:,i)=[1+(L(i)^3)*(1-V(i))*(M(i)*w^2-K(i))/(6*E*I(i)) L(i) L(i)^2/(2*E*I(i)) L(i)^3*(1-V(i))/(6*E*I(i));
(L(i)^2)*(M(i)*w^2-K(i))/(2*E*I(i)) 1 L(i)/(E*I(i)) L(i)^2/(2*E*I(i));
L(i)*(M(i)*w^2-K(i)) 0 1 L(i);
M(i)*w^2-K(i) 0 0 1 ]; %考虑转动惯量
end
H=T(:,:,1);
for i2=2:N;
H=T(:,:,i2)*H;
end
F=H(3,1)*H(4,2)-H(3,2)*H(4,1);
if F*FF< 0 %求解临界转速
k=k+1;
wi(k)=w; %角速度 rad/s
f=wi(k)/(2*pi) %频率 HZ
ni(k)=wi(k)*30/pi; %转速 转/min
end
FF=F;
end
end
最后
以上就是称心自行车为你收集整理的matlab主子函数调用子函数,Matlab关于主函数调用子函数的问题 , – MATLAB中文论坛...的全部内容,希望文章能够帮你解决matlab主子函数调用子函数,Matlab关于主函数调用子函数的问题 , – MATLAB中文论坛...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复