我是靠谱客的博主 称心自行车,最近开发中收集的这篇文章主要介绍matlab主子函数调用子函数,Matlab关于主函数调用子函数的问题 , – MATLAB中文论坛...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我是,希望达人帮我看看,感激,

主要是想通过主函数调用子函数,功能很简单。有两个轴段参数,有两个不同的程序体,交叉组合,能生成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中文论坛...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部