Оптимизация режимов движения судов с использованием MATLAB 5.0 (4)

Посмотреть архив целиком

Оптимизация режима движения судна

Цель работы.

Распределить скорость движения судна по четырём участкам трассы так, чтобы суммарный расход топлива был минимальным.

Программа.

%Подготовка исходных данных

delt=0.07;

tmin=[5.86 2.73 1.6 3.3967]; tmax=[7.47 3.71 2.37 4.5167];

t=[tmin; tmax]; tb=[tmax-tmin];

G1=[967.42 941.39 912 892.29 878.02 846.11 823.73 798.51 775.22 ...

764.2 741.28 719.36 706.85 678.15 673.74 659.91 645.65 ...

630.98 623 610.9 598.95 590.07 577.2 571.46];

G2=[521.73 491.12 463.51 437.33 415.2 392.7 377.45 358.23 346.86 ...

328.98 316.25 305.38 295.48 285.86 277.11];

G3=[281.47 255.5 231.07 210.41 192.31 177.55 166.97 157.77 ...

149.86 144.48 140.91 139.23];

G4=[590.60 561.90 535.10 510.20 487.06 465.67 445.94 427.82 ...

411.23 396.12 382.42 370.06 358.99 349.13 340.42 332.80 325.41];

%Формирование векторов t1, t2, t3, t4

t1=t(1,1):delt:t(2,1);

t2=t(1,2):delt:t(2,2);

t3=t(1,3):delt:t(2,3);

t4=t(1,4):delt:t(2,4);

%Пригонка данных

[a1,H1]=polyfit(t1,G1,3);

[a2,H2]=polyfit(t2,G2,3);

[a3,H3]=polyfit(t3,G3,3);

[a4,H4]=polyfit(t4,G4,3);

a=[a1;a2;a3;a4];

%Апроксимация исходных зависимостей

N=25;

deltM=tb./(N-1);

%Моделирование

TM=[];Gm=[];

for i=1:4;

tm=t(1,i):deltM(i):t(2,i);

TM=[TM;tm];

gm=polyval(a(i,:),tm);

Gm=[Gm;gm];

end

deltt=deltM;

%Оптимизация распределения времени движения

GG=[];

F=Gm;

for xr=1:N;

I=1:xr;

L=Gm(1,I)+Gm(2,xr-I+1);

[Lopt,I]=min(L);

X1=5.86+I*deltt(1)-deltt(1);

X2=2.73+(xr-I)*deltt(2);

Pacn=[Lopt.*0.001;X1;X2;X1+X2];

GG=[GG Pacn];

end

D=GG(1,:);

C=GG(4,:);

PP=[];RRR=[];

for J=2:3;

DD=[];RR=[];CC=[];

for xr=1:N;

I=1:xr;

L=D(I)+0.001.*F(J+1,xr-I+1);

[Lopt,I]=min(L);

X1=C(I);

X2=TM(J+1,1)+(xr-I)*deltt(J+1);

Pacn=[Lopt;X1;X2;X1+X2];

DD=[DD Pacn(1,:)];

RR=[RR Pacn];

CC=[CC Pacn(4,:)];

end

PP=[PP;DD(1,:)];

RRR=[RRR RR];

D=DD;

C=CC;

end

RRR=[GG RRR];

R12=RRR(:,1:N)

R23=RRR(:,N+1:2*N)

R34=RRR(:,2*N+1:3*N)

plot(R34(1,:),R34(4,:)),grid

Результат.

R12 =


Columns 1 through 7


1.4899 1.4647 1.4402 1.4164 1.3934 1.3710 1.3494

5.8600 5.9271 5.9942 6.0613 6.1283 6.1954 6.2625

2.7300 2.7300 2.7300 2.7300 2.7300 2.7300 2.7300

8.5900 8.6571 8.7242 8.7912 8.8583 8.9254 8.9925


Columns 8 through 14


1.3285 1.3083 1.2889 1.2703 1.2522 1.2343 1.2172

6.3296 6.3967 6.4638 6.5308 6.5308 6.5979 6.5979

2.7300 2.7300 2.7300 2.7300 2.7708 2.7708 2.8117

9.0596 9.1267 9.1937 9.2608 9.3017 9.3688 9.4096


Columns 15 through 21


1.2001 1.1838 1.1675 1.1521 1.1367 1.1220 1.1075

6.6650 6.7321 6.7321 6.7992 6.7992 6.8663 6.8663

2.8117 2.8117 2.8525 2.8525 2.8933 2.8933 2.9342

9.4767 9.5437 9.5846 9.6517 9.6925 9.7596 9.8004


Columns 22 through 25


1.0936 1.0799 1.0668 1.0538

6.9333 6.9333 7.0004 7.0004

2.9342 2.9750 2.9750 3.0158

9.8675 9.9083 9.9754 10.0162


R23 =


Columns 1 through 7


1.7720 1.7468 1.7223 1.6985 1.6754 1.6530 1.6314

8.5900 8.6571 8.7242 8.7912 8.8583 8.9254 8.9925

1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000

10.1900 10.2571 10.3242 10.3912 10.4583 10.5254 10.5925


Columns 8 through 14


1.6105 1.5904 1.5710 1.5523 1.5342 1.5164 1.4992

9.0596 9.1267 9.1937 9.2608 9.3017 9.3688 9.4096

1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000

10.6596 10.7267 10.7937 10.8608 10.9017 10.9688 11.0096


Columns 15 through 21


1.4821 1.4658 1.4496 1.4341 1.4187 1.4040 1.3895

9.4767 9.5437 9.5846 9.6517 9.6925 9.7596 9.8004

1.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000

11.0767 11.1437 11.1846 11.2517 11.2925 11.3596 11.4004


Columns 22 through 25


1.3756 1.3619 1.3488 1.3358

9.8675 9.9083 9.9754 9.9754

1.6000 1.6000 1.6000 1.6321

11.4675 11.5083 11.5754 11.6075



R34 =


Columns 1 through 7


2.3626 2.3374 2.3129 2.2892 2.2661 2.2437 2.2221

10.1900 10.2571 10.3242 10.3912 10.4583 10.5254 10.5925

3.3967 3.3967 3.3967 3.3967 3.3967 3.3967 3.3967

13.5867 13.6538 13.7209 13.7879 13.8550 13.9221 13.9892


Columns 8 through 14


2.2012 2.1810 2.1616 2.1422 2.1236 2.1051 2.0870

10.6596 10.7267 10.7267 10.7937 10.8608 10.8608 10.9017

3.3967 3.3967 3.4434 3.4434 3.4434 3.4900 3.4900

14.0563 14.1234 14.1700 14.2371 14.3042 14.3509 14.3917


Columns 15 through 21


2.0691 2.0514 2.0343 2.0172 2.0004 1.9841 1.9678

10.9688 10.9688 11.0096 11.0767 11.0767 11.1437 11.1846

3.4900 3.5367 3.5367 3.5367 3.5834 3.5834 3.5834

14.4588 14.5055 14.5463 14.6134 14.6600 14.7271 14.7679




Columns 22 through 25


1.9518 1.9363 1.9209 1.9057

11.1846 11.2517 11.2925 11.2925

3.6300 3.6300 3.6300 3.6767

14.8146 14.8817 14.9225 14.9692

В результате получаем матрицы, в которых:

  • 1 строка расход топлива на участках;

  • 2 строка время движения по предыдущим участкам;

  • 3 строка время движения по i-тому участку;

  • 4 строка суммарное время движения по участкам.

R12 результаты для двух участков;

R23 результаты для трёх участков;

R34 результаты для четырёх участков;

Вывод.

В качестве вывода приведена графическая зависимость расхода топлива (ось абсцисс) от времени прохождения всех участков (ось ординат).


Случайные файлы

Файл
70225.rtf
ГОСТ 30256-94.doc
146232.doc
23974-1.rtf
69930.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.