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

📄 get_geom_jxf.m

📁 迹线法计算轮轨几何关系程序
💻 M
字号:
function G=get_geom_jxf(yw,psiw,phiw)
%---------------------------------
load PR2.mat;%导入踏面形状数表
load PL2.mat;
ypl=PL(:,1);ypr=PR(:,1);
load RR1.mat;%导入轨头形状数表
load RL1.mat;
mid=size(RL);
nr=mid(1);%数表的长度
load DL1.mat;%导入轮轨接触角数表
load DR1.mat;
ydl=DL(:,1);
ydr=DR(:,1);
%--------------------------------
lx=-cos(psiw)*sin(phiw);
ly=cos(psiw)*cos(phiw);
lz=sin(psiw);
%--------------------坐标转化,几何约束方程
zg=0.075;%轮对抬高75mm,保证不相互嵌入
zmin=(zg+5);%给定一个足够大的值,保证能够找到轮轨最小垂向距离
nw=325;
em=0.0001;
yminL=RL(1,1);
ymaxL=RL(nr,1);
yminR=RR(nr,1);
ymaxR=RR(1,1);
if abs(yw)<=0.012&&abs(psiw)<=0.1&&abs(phiw)<=0.10 %判断是否超过界限,保证不相互嵌入
for i=1:nw
    dw=PL(i,1);
    %dL=interp1(ydl,DL,dw,'linear');
    %dL=dL(1,2);
    dL=DL(i,2);
    rL=PL(i,2);
    xol=lx*dw;yol=ly*dw;zol=lz*dw;
    m=sqrt(1-(lx)^2*(1+(tan(dL))^2));
    xL=xol+lx*rL*tan(dL);
    yL=yol-rL/(1-(lx)^2)*(lx*lx*ly*tan(dL)+lz*m)+yw;
    zL=zol-rL/(1-(lx)^2)*(lx*lx*lz*tan(dL)-ly*m);
    if yL>yminL&&yL<ymaxL  %接触区域
        for j=1:nr
             yrL=RL(j,1);zrL=RL(j,2);
           if abs(yL-yrL)<=em
                delz=(zL-zrL);
            else delz=10;
          end
          if delz<=zmin
              zmin=delz;
              y_end=dw;   %y坐标即轮轨接触点到轮对本体坐标原点距离
              z_end=rL;   %滚动半径
              yr_end=yrL; %钢轨接触点以坐标
              zr_end=zrL; %
              deltaL=dL;  %轮轨接触角
              %dwl=yL;
          end
       end
   end
end
zminL=zmin;
%----------------------------------------------------------右边轮轨接触
zmin=5+zg;  %给定一个足够大的值,保证能够找到轮轨最小垂向距离
for i=1:nw
    dw=PR(i,1);
    %dR=interp1(ydr,DR,dw,'linear');
    %dR=dR(1,2);
    dR=DR(i,2);
    rR=PR(i,2);
    xor=lx*dw;yor=ly*dw;zor=lz*dw;
    m=sqrt(1-(lx)^2*(1+(tan(dR))^2));
    xR=xor+lx*rR*tan(dR);
    yR=yor-rR/(1-(lx)^2)*(lx*lx*ly*tan(dR)+lz*m)+yw;
    zR=zor-rR/(1-(lx)^2)*(lx*lx*lz*tan(dR)-ly*m);
    if yR>yminR&&yR<ymaxR
        for j=1:nr
           yrR=RR(j,1);zrR=RR(j,2);
           if abs(yR-yrR)<=em
              delz=(zR-zrR);
           else delz=10;
           end
           if delz<=zmin
              zmin=delz;
              y_endr=dw;
              z_endr=rR;
              yr_endr=yrR;
              zr_endr=zrR;
              deltaR=dR;
              %dwr=yR;
           end
       end
  end
end
zminR=zmin;
end
G=[-z_end,-z_endr,deltaL,deltaR,zminL,zminR,y_end,y_endr];

⌨️ 快捷键说明

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