zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【海浪建模2】三维海浪建模以及海浪发电机建模matlab仿真

MATLAB建模 以及 仿真 三维
2023-09-11 14:15:33 时间

1.软件版本

matlab2017b

2.核心源码

function func_power_gen_machine(HHup,R_buoy,seepart,seeall);


if seepart == 0 & seeall == 1
    %先产生固定部分
    %第一:海底的圆柱体
    t  = 0:pi/20:2*pi;
    RR =  100;
    HH = -6.5;
    x= 600+RR*sin(t);
    y= 300+RR*cos(t)/2;
    z=linspace(-8,HH,length(t));
    X=meshgrid(x);
    Y=meshgrid(y);
    Z=[meshgrid(z)]';
    surf(X,Y,Z);
    xlabel('x'),ylabel('y'),zlabel('z')
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    clear X Y Z


    %第二:上半部分的柱体
    t  = 0:pi/20:2*pi;
    RR2 = 60;
    HH2 = -6;
    x= 600+RR2*sin(t);
    y= 300+RR2*cos(t)/2;
    z=linspace(-8,HH2,length(t));
    X=meshgrid(x);
    Y=meshgrid(y);
    Z=[meshgrid(z)]';
    surf(X,Y,Z);
    xlabel('x'),ylabel('y'),zlabel('z')
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    clear X Y Z

    %第三:线圈
    HH3 = -8:0.5:-3;
    for i = 1:floor(length(HH3)/2)
        t  = 0:pi/20:2*pi;
        RR3 = 10;

        x= 600+RR3*sin(t);
        y= 300+RR3*cos(t)/2;
        z=linspace(HH3(2*i-1),HH3(2*i),length(t));
        X=meshgrid(x);
        Y=meshgrid(y);
        Z=[meshgrid(z)]';
        plot3(X,Y,Z,'b');
        xlabel('x'),ylabel('y'),zlabel('z')
        shading interp;
        colormap([255/255,100/255,103/255]);
        hold on;
    end

    alpha(0.5);
    clear X Y Z


    HHup = HHup + 0.1;
    %第四:滑动活塞
    t  = 0:pi/20:2*pi;
    RR2  = 15;
    x= 600+RR2*sin(t);
    y= 300+RR2*cos(t)/2;

    z=linspace(-6+HHup,-5+HHup,length(t));
    X=meshgrid(x);
    Y=meshgrid(y);
    Z=[meshgrid(z)]';
    surf(X,Y,Z);
    xlabel('x'),ylabel('y'),zlabel('z')
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    alpha(0.5);
    clear X Y Z

    %第五:连接引线
    t  = 0:pi/20:2*pi;
    RR2  = 0.01;
    x= 600+RR2*sin(t);
    y= 300+RR2*cos(t)/2;

    z=linspace(-5+HHup,0+HHup,length(t));
    X=meshgrid(x);
    Y=meshgrid(y);
    Z=[meshgrid(z)]';
    plot3(X,Y,Z,'k');
    xlabel('x'),ylabel('y'),zlabel('z')
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    alpha(0.5);
    clear X Y Z

    %第六:水面浮标,球形
    t=linspace(0,pi,25);
    p=linspace(0,2*pi,25);
    [theta,phi]=meshgrid(t,p);
    x= 600+R_buoy*sin(theta).*sin(phi);
    y= 300+R_buoy*sin(theta).*cos(phi)/2;
    z=R_buoy*cos(theta)/28 + HHup;
    surf(x,y,z);
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    alpha(0.5);

    alpha(0.5);
end 


if seepart == 1 & seeall == 0
    %第六:水面浮标,球形
    t=linspace(0,pi,25);
    p=linspace(0,2*pi,25);
    [theta,phi]=meshgrid(t,p);
    x= 600+R_buoy*sin(theta).*sin(phi);
    y= 300+R_buoy*sin(theta).*cos(phi)/2;
    z=R_buoy*cos(theta)/28 + HHup;
    surf(x,y,z);
    shading interp;
    colormap([255/255,100/255,103/255]);
    hold on
    alpha(0.5);

    alpha(0.5);
end 

3.测试结果

在上一次的成果基础之上【海浪建模1】,加入了海浪发电机的动态效果,以及简单的计算一下发电量。根据设计要求,整个发电机之后,仿真的效果如下所示:

       从这里可以看到,控制界面做了下调整,增加了三个按键,其中,part_View是海面浮标的动态效果,All_View是整个发电机的动态效果,Close the power mach则是关闭发电机的动态效果,仅仅显示海浪的效果,electricity则是显示发电量的效果。整个系统仿真结果如下所示:

最初的海浪建模:

点击Part_View按键:

调整视角滑动条,如下的效果:

点击All_View按键:

调整视角滑动条,如下的效果:

点击Close the power Mach按键:

A19-07