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

📄 repeatview.m

📁 瑞士苏黎世理工四螺旋桨直升飞机的仿真程序
💻 M
📖 第 1 页 / 共 2 页
字号:
        npxo = 0*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npyo = 0*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npzo = 0*(sth*cph) - 0*sph + (h2inha + L1/2)*(cth*cph) + z(cont3);
        xxc = [npxo; npx];
        zzc = [npzo; npz];
        yyc = [npyo; npy];
        como = 0;
        for tt=0:0.1:6.28,
            como = como + 1;
            xo(como) = R1*cos(tt)*(cps1*cth + sps1*sph*sth) + R1*sin(tt)*sps1*cph + 0*(-cps1*sth + sps1*sph*cth) + npx;
            yo(como) = R1*cos(tt)*(-sps1*cth + cps1*sph*sth) + R1*sin(tt)*cps1*cph + 0*(sps1*sth + cps1*sph*cth) + npy;
            zo(como) = R1*cos(tt)*(sth*cph) - R1*sin(tt)*sph + 0*(cth*cph) + npz;
        end
        efe=patch(yo,xo,zo,[0.9 0.9 0.9],'LineStyle','-','Parent',EIXOS6);
        LINHA=line(yyc, xxc, zzc,'Parent',EIXOS6,'Color',[0 0 0],'LineStyle','-', 'LineWidth',2);
        if npx < 0, aqux = npx-0.06; else, aqux = npx+0.16; end
        if npy < 0, aquy = npy-0.06; else, aquy = npy+0.16; end
        aquz = npz + 0.16;
        text(aquy,aqux,aquz,'1','FontSize',6,'Parent',EIXOS6);

        % Local Frame 

        % X Axis

        xxc = [x(cont3) R2*(cps1*cth + sps1*sph*sth)+x(cont3)];
        yyc = [y(cont3) R2*(-sps1*cth + cps1*sph*sth)+y(cont3)];
        zzc = [z(cont3) R2*(sth*cph)+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[1 0 0],'LineStyle','-', 'LineWidth',2);
        py=[-0.02 0 0.02 0 -0.02];
        px=[0.33 0.37 0.33 0.35 0.33];
        pz=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [1 0 0],'LineStyle','none','Parent',EIXOS6);

        % Y axis

        xxc = [x(cont3) R2*sps1*cph+x(cont3)];
        yyc = [y(cont3) R2*cps1*cph+y(cont3)];
        zzc = [z(cont3) -R2*sph+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[0 0 1],'LineStyle','-', 'LineWidth',2);
        px=[-0.02 0 0.02 0 -0.02];
        py=[0.33 0.37 0.33 0.35 0.33];
        pz=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [0 0 1],'LineStyle','none','Parent',EIXOS6);

        % Z Axis

        xxc = [x(cont3); R2*(-cps1*sth + sps1*sph*cth)+x(cont3)];
        yyc = [y(cont3); R2*(sps1*sth + cps1*sph*cth)+y(cont3)];
        zzc = [z(cont3); R2*(cth*cph)+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[0 1 1],'LineStyle','-', 'LineWidth',2);
        px=[-0.02 0 0.02 0 -0.02];
        pz=[0.33 0.37 0.33 0.35 0.33];
        py=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [0 1 1],'LineStyle','none','Parent',EIXOS6);

    elseif SwitchCompl == 2

        % OS4 Structure bars and Rotors

        % Rotor # 4

        npx = 0*(cps1*cth + sps1*sph*sth) + R2*sps1*cph + (hlinha + h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = 0*(-sps1*cth + cps1*sph*sth) + R2*cps1*cph + (hlinha + h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = 0*(sth*cph) - (R2)*sph + (hlinha + h2inha + L1/2)*(cth*cph) + z(cont3);
        npxo = 0*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npyo = 0*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npzo = 0*(sth*cph) - 0*sph + (h2inha + L1/2)*(cth*cph) + z(cont3);
        xxc = [npxo; npx];
        zzc = [npzo; npz];
        yyc = [npyo; npy];
        como = 0;
        for tt=0:0.1:6.28,
            como = como + 1;
            xo(como) = R1*cos(tt)*(cps1*cth + sps1*sph*sth) + R1*sin(tt)*sps1*cph + 0*(-cps1*sth + sps1*sph*cth) + npx;
            yo(como) = R1*cos(tt)*(-sps1*cth + cps1*sph*sth) + R1*sin(tt)*cps1*cph + 0*(sps1*sth + cps1*sph*cth) + npy;
            zo(como) = R1*cos(tt)*(sth*cph) - R1*sin(tt)*sph + 0*(cth*cph) + npz;
        end
        efe=patch(yo,xo,zo,[0.9 0.9 0.9],'LineStyle','-','Parent',EIXOS6);
        LINHA=line(yyc, xxc, zzc,'Parent',EIXOS6,'Color',[0 0 0],'LineStyle','-', 'LineWidth',2);
        if npx < 0, aqux = npx-0.06; else, aqux = npx+0.16; end
        if npy < 0, aquy = npy-0.06; else, aquy = npy+0.16; end
        aquz = npz + 0.16;
        text(aquy,aqux,aquz,'4','FontSize',6,'Parent',EIXOS6);

        % Rotor # 2

        npx = 0*(cps1*cth + sps1*sph*sth) - R2*sps1*cph + (hlinha + h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = 0*(-sps1*cth + cps1*sph*sth) - R2*cps1*cph + (hlinha + h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = 0*(sth*cph) - (-R2)*sph + (hlinha + h2inha + L1/2)*(cth*cph) + z(cont3);
        npxo = 0*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npyo = 0*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npzo = 0*(sth*cph) - 0*sph + (h2inha + L1/2)*(cth*cph) + z(cont3);
        xxc = [npxo; npx];
        zzc = [npzo; npz];
        yyc = [npyo; npy];
        como = 0;
        for tt=0:0.1:6.28,
            como = como + 1;
            xo(como) = R1*cos(tt)*(cps1*cth + sps1*sph*sth) + R1*sin(tt)*sps1*cph + 0*(-cps1*sth + sps1*sph*cth) + npx;
            yo(como) = R1*cos(tt)*(-sps1*cth + cps1*sph*sth) + R1*sin(tt)*cps1*cph + 0*(sps1*sth + cps1*sph*cth) + npy;
            zo(como) = R1*cos(tt)*(sth*cph) - R1*sin(tt)*sph + 0*(cth*cph) + npz;
        end
        efe=patch(yo,xo,zo,[0.9 0.9 0.9],'LineStyle','-','Parent',EIXOS6);
        LINHA=line(yyc, xxc, zzc,'Parent',EIXOS6,'Color',[0 0 0],'LineStyle','-', 'LineWidth',2);
        if npx < 0, aqux = npx-0.06; else, aqux = npx+0.16; end
        if npy < 0, aquy = npy-0.06; else, aquy = npy+0.16; end
        aquz = npz + 0.16;
        text(aquy,aqux,aquz,'2','FontSize',6,'Parent',EIXOS6);

        % Rotor # 3

        npx = -R2*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (hlinha + h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = -R2*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (hlinha + h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = -R2*(sth*cph) - 0*sph + (hlinha + h2inha + L1/2)*(cth*cph) + z(cont3);
        npxo = 0*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npyo = 0*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npzo = 0*(sth*cph) - 0*sph + (h2inha + L1/2)*(cth*cph) + z(cont3);
        xxc = [npxo; npx];
        zzc = [npzo; npz];
        yyc = [npyo; npy];
        como = 0;
        for tt=0:0.1:6.28,
            como = como + 1;
            xo(como) = R1*cos(tt)*(cps1*cth + sps1*sph*sth) + R1*sin(tt)*sps1*cph + 0*(-cps1*sth + sps1*sph*cth) + npx;
            yo(como) = R1*cos(tt)*(-sps1*cth + cps1*sph*sth) + R1*sin(tt)*cps1*cph + 0*(sps1*sth + cps1*sph*cth) + npy;
            zo(como) = R1*cos(tt)*(sth*cph) - R1*sin(tt)*sph + 0*(cth*cph) + npz;
        end
        efe=patch(yo,xo,zo,[0.9 0.9 0.9],'LineStyle','-','Parent',EIXOS6);
        LINHA=line(yyc, xxc, zzc,'Parent',EIXOS6,'Color',[0 0 0],'LineStyle','-', 'LineWidth',2);
        if npx < 0, aqux = npx-0.06; else, aqux = npx+0.16; end
        if npy < 0, aquy = npy-0.06; else, aquy = npy+0.16; end
        aquz = npz + 0.16;
        text(aquy,aqux,aquz,'3','FontSize',6,'Parent',EIXOS6);

        % Rotor # 1

        npx = R2*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (hlinha + h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = R2*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (hlinha + h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = R2*(sth*cph) - 0*sph + (hlinha + h2inha + L1/2)*(cth*cph) + z(cont3);
        npxo = 0*(cps1*cth + sps1*sph*sth) + 0*sps1*cph + (h2inha + L1/2)*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npyo = 0*(-sps1*cth + cps1*sph*sth) + 0*cps1*cph + (h2inha + L1/2)*(sps1*sth + cps1*sph*cth) + y(cont3);
        npzo = 0*(sth*cph) - 0*sph + (h2inha + L1/2)*(cth*cph) + z(cont3);
        xxc = [npxo; npx];
        zzc = [npzo; npz];
        yyc = [npyo; npy];
        como = 0;
        for tt=0:0.1:6.28,
            como = como + 1;
            xo(como) = R1*cos(tt)*(cps1*cth + sps1*sph*sth) + R1*sin(tt)*sps1*cph + 0*(-cps1*sth + sps1*sph*cth) + npx;
            yo(como) = R1*cos(tt)*(-sps1*cth + cps1*sph*sth) + R1*sin(tt)*cps1*cph + 0*(sps1*sth + cps1*sph*cth) + npy;
            zo(como) = R1*cos(tt)*(sth*cph) - R1*sin(tt)*sph + 0*(cth*cph) + npz;
        end
        efe=patch(yo,xo,zo,[0.9 0.9 0.9],'LineStyle','-','Parent',EIXOS6);
        LINHA=line(yyc, xxc, zzc,'Parent',EIXOS6,'Color',[0 0 0],'LineStyle','-', 'LineWidth',2);
        if npx < 0, aqux = npx-0.06; else, aqux = npx+0.16; end
        if npy < 0, aquy = npy-0.06; else, aquy = npy+0.16; end
        aquz = npz + 0.16;
        text(aquy,aqux,aquz,'1','FontSize',6,'Parent',EIXOS6);

    elseif SwitchCompl == 3
        
        % Local Frame 

        % X Axis

        xxc = [x(cont3) R2*(cps1*cth + sps1*sph*sth)+x(cont3)];
        yyc = [y(cont3) R2*(-sps1*cth + cps1*sph*sth)+y(cont3)];
        zzc = [z(cont3) R2*(sth*cph)+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[1 0 0],'LineStyle','-', 'LineWidth',2);
        py=[-0.02 0 0.02 0 -0.02];
        px=[0.33 0.37 0.33 0.35 0.33];
        pz=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [1 0 0],'LineStyle','none','Parent',EIXOS6);

        % Y axis

        xxc = [x(cont3) R2*sps1*cph+x(cont3)];
        yyc = [y(cont3) R2*cps1*cph+y(cont3)];
        zzc = [z(cont3) -R2*sph+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[0 0 1],'LineStyle','-', 'LineWidth',2);
        px=[-0.02 0 0.02 0 -0.02];
        py=[0.33 0.37 0.33 0.35 0.33];
        pz=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [0 0 1],'LineStyle','none','Parent',EIXOS6);

        % Z Axis

        xxc = [x(cont3); R2*(-cps1*sth + sps1*sph*cth)+x(cont3)];
        yyc = [y(cont3); R2*(sps1*sth + cps1*sph*cth)+y(cont3)];
        zzc = [z(cont3); R2*(cth*cph)+z(cont3)];
        LINHA=line(yyc, xxc, zzc, 'Parent',EIXOS6,'Color',[0 1 1],'LineStyle','-', 'LineWidth',2);
        px=[-0.02 0 0.02 0 -0.02];
        pz=[0.33 0.37 0.33 0.35 0.33];
        py=[0 0 0 0 0];
        npx = px*(cps1*cth + sps1*sph*sth) + py*sps1*cph + pz*(-cps1*sth + sps1*sph*cth) + x(cont3);
        npy = px*(-sps1*cth + cps1*sph*sth) + py*cps1*cph + pz*(sps1*sth + cps1*sph*cth) + y(cont3);
        npz = px*(sth*cph) - py*sph + pz*(cth*cph) + z(cont3);
        efe=patch(npy, npx, npz, [0 1 1],'LineStyle','none','Parent',EIXOS6);
        
    end
    
    % Path
    
    LINHA=line(y(1:cont3),x(1:cont3),z(1:cont3),'Parent',EIXOS6,'Color',[1 0 0],'LineStyle','-','LineWidth',0.4);

    pause(0.01);
    
end

set(FIGU2,'Pointer','arrow');

⌨️ 快捷键说明

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