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

📄 threedimension.m

📁 交通流模拟源码
💻 M
字号:
time=input('intervaltime=');  %输入时间步,以0.1s为单位,每隔time时间画一条曲线
controllfactor=input('controllfactor=');  %画曲线的条数
k=input('敏感系数k=');
k1=input('k1=');
k2=input('k2=');
k3=input('k3=');
t=1;
L=1500;
x=0:15:1485;
x(1)=10;
temp=x;

f=linspace(0,0,100);
v=linspace(0,0,100);

v=v+tanh(15);
temp_v=v;

a=1:100;
t_1=[];
pos_1=[];

T=linspace(0,0,100);

tt=0.1;
pp=1;
while pp<=controllfactor

    while t<=time*pp

        for j=1:100

            if j==100
                xd(j)=temp(1)-temp(100);
            else
                xd(j)=temp(j+1)-temp(j);
            end
            if xd(j)<0
                xd(j)=L+xd(j);
            end
            %         a(j)=tanh(xd(j)-2)+tanh(2)-temp_v(j);
            if j==100
                a(j)=k*((6.75+7.91*tanh(0.13*(xd(j)-5)-1.57))-temp_v(j))+k1*(temp_v(1)-temp_v(j))+k2*(temp_v(2)-temp_v(1))+k3*(temp_v(3)-temp_v(2));
            elseif j==99
                a(j)=k*((6.75+7.91*tanh(0.13*(xd(j)-5)-1.57))-temp_v(j))+k1*(temp_v(j+1)-temp_v(j))+k2*(temp_v(1)-temp_v(100))+k3*(temp_v(2)-temp_v(1));
            elseif j==98
                a(j)=k*((6.75+7.91*tanh(0.13*(xd(j)-5)-1.57))-temp_v(j))+k1*(temp_v(j+1)-temp_v(j))+k2*(temp_v(100)-temp_v(99))+k3*(temp_v(1)-temp_v(100));
            else
                a(j)=k*((6.75+7.91*tanh(0.13*(xd(j)-5)-1.57))-temp_v(j))+k1*(temp_v(j+1)-temp_v(j))+k2*(temp_v(j+2)-temp_v(j+1))+k3*(temp_v(j+3)-temp_v(j+2));
            end
            v(j)=temp_v(j)+a(j)*tt;
            x(j)=temp(j)+temp_v(j)*tt+tt*tt*a(j)/2;
            if x(j)>L
                x(j)=x(j)-L;
            end

        end
        temp=x;
        temp_v=v;
        %     pos_1=x;
        %     for j=1:100
        %         plot(pos_1(j),t,'k.','MarkerSize',1);
        %         hold on;
        %     end
        %    T(t)=t;
        t=t+1;
        %     if t==3000
        %         for q=1:100
        %             caa(q)=q;
        %         end
        %
        %        plot(caa,v);
        %         hold on;
        %    end

    end
    car=[];
    for p=1:100
        car(p)=p;
    end
    T=linspace(0,0,100)+pp*time/10;%x轴的时间间隔为pp所乘的数字,本例为100s
    plot3(T,car,v);
    hold on;
    % xlabel('车辆数');
    % ylabel('速度');
    pp=pp+1;
end
xlabel('时间(s)'),ylabel('车辆数'),zlabel('速度(m/s)');

⌨️ 快捷键说明

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