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

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

Оптимальные режимы работы судовых генераторных агрегатов

Цель работы.

Найти оптимальное распределение мощности между дизель-генераторами.

Программа.

%Исходные данные

delt=10;

P1=0:delt:50;

P2=0:delt:70;

P3=0:delt:80;

F1=(0.03*(P1.^2)+2*P1+80);

F2=(0.015*(P2.^2)+1.45*P2+100);

F3=(0.01*(P3.^2)+0.95*P3+120);

%Решение

for T=1:2;

r1=size(F1);

r2=size(F2);

if r1(2)<=r2(2)

N=r1(2);M=r2(2);

else

N=r2(2);M=r1(2);

end

[x,y]=meshgrid(F1,F2);

z=x+y;

M

N

X=rot90(z,3);

XX=[];IM=[];IM3=[];

for cc=-(N-1):(M-1);

[v,I]=min(diag(X,cc));

XX=[XX v];

if cc<=-1

IM3=[IM3 abs(cc-I)];

else

IM=[IM I];

end

IMM=[IM3 IM];

end

X1=rot90(XX,2);

IM1=rot90(IMM,2);

Opt1=[X1;IM1.*delt-delt];

r=size(X1);

v1=1:r(2);

P=v1.*delt;

Opt2=[Opt1;P-delt];

Opt=[Opt2(1,:);Opt2(2,:);Opt2(3,:)-Opt2(2,:);Opt2(3,:)]

F2=Opt(1,:);

F1=F3;

end









Результат.

M =


8



N =


6



Opt =


180 196 215 237 260 285 313 342 373 407 442 483 530

0 0 0 0 10 10 10 20 20 20 30 40 50

0 10 20 30 30 40 50 50 60 70 70 70 70

0 10 20 30 40 50 60 70 80 90 100 110 120



M =


13



N =


9



Opt =


Columns 1 through 7


300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000

0 10.0000 20.0000 30.0000 30.0000 40.0000 50.0000

0 0 0 0 10.0000 10.0000 10.0000

0 10.0000 20.0000 30.0000 40.0000 50.0000 60.0000


Columns 8 through 14


407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000

50.0000 60.0000 60.0000 70.0000 70.0000 80.0000 80.0000

20.0000 20.0000 30.0000 30.0000 40.0000 40.0000 50.0000

70.0000 80.0000 90.0000 100.0000 110.0000 120.0000 130.0000


Columns 15 through 21


573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000

80.0000 80.0000 80.0000 80.0000 80.0000 80.0000 80.0000

60.0000 70.0000 80.0000 90.0000 100.0000 110.0000 120.0000

140.0000 150.0000 160.0000 170.0000 180.0000 190.0000 200.0000

Также существует второй метод решения этой задачи, который представлен в программе ниже.





Программа.

%Исходные данные

delt=10;

P1=0:delt:50;

P2=0:delt:70;

P3=0:delt:80;

F1=(0.03*(P1.^2)+2*P1+80);

F2=(0.015*(P2.^2)+1.45*P2+100);

F3=(0.01*(P3.^2)+0.95*P3+120);

%Решение

FA=F1; FB=F2;

for j=1:2;

e1=size(FA); N=e1(2);

e2=size(FB); M=e2(2);

[x,y]=meshgrid(FA,FB);

z=x+y

Dmin=[]; D1min=[]; D2min=[];

Im=[]; I1m=[]; I2m=[];

for k=1:M+N-1;

if k<=N

DD=[];

for i=k:-1:1;

g=z(i,k-i+1);

DD=[DD g];

end

[L,I]=min(DD);

Dmin=[Dmin L];

Im=[Im I];

elseif (N

DD1=[];

for i1=k:-1:k-N+1;

g1=z(i1,k-i1+1);

DD1=[DD1 g1];

end

[L1,I1]=min(DD1);

D1min=[D1min L1];

I1m=[I1m I1];

elseif (M

DD2=[];

for i2=M:-1:k-N+1;

g2=z(i2,k-i2+1);

DD2=[DD2 g2];

end

[L2,I2]=min(DD2);

D2min=[D2min L2];

I2m=[I2m k-M+I2];

end

end

F12=[Dmin D1min D2min]

I11=[Im I1m I2m];

r=size(F12);

v=1:r(2);

P=v.*delt;

Opt=[F12;I11.*delt-delt;P-delt];

Optim12=[Opt(1,:);Opt(2,:);Opt(3,:)-Opt(2,:);Opt(3,:)]

FB=Optim12(1,:);

FA=F3;

end

Результат.

z =


180 203 232 267 308 355

196 219 248 283 324 371

215 238 267 302 343 390

237 260 289 324 365 412

262 285 314 349 390 437

290 313 342 377 418 465

321 344 373 408 449 496

355 378 407 442 483 530



F12 =


180 196 215 237 260 285 313 342 373 407 442 483 530



Optim12 =


180 196 215 237 260 285 313 342 373 407 442 483 530

0 0 0 0 10 10 10 20 20 20 30 40 50

0 10 20 30 30 40 50 50 60 70 70 70 70

0 10 20 30 40 50 60 70 80 90 100 110 120



z =


Columns 1 through 7


300.0000 310.5000 323.0000 337.5000 354.0000 372.5000 393.0000

316.0000 326.5000 339.0000 353.5000 370.0000 388.5000 409.0000

335.0000 345.5000 358.0000 372.5000 389.0000 407.5000 428.0000

357.0000 367.5000 380.0000 394.5000 411.0000 429.5000 450.0000

380.0000 390.5000 403.0000 417.5000 434.0000 452.5000 473.0000

405.0000 415.5000 428.0000 442.5000 459.0000 477.5000 498.0000

433.0000 443.5000 456.0000 470.5000 487.0000 505.5000 526.0000

462.0000 472.5000 485.0000 499.5000 516.0000 534.5000 555.0000

493.0000 503.5000 516.0000 530.5000 547.0000 565.5000 586.0000

527.0000 537.5000 550.0000 564.5000 581.0000 599.5000 620.0000

562.0000 572.5000 585.0000 599.5000 616.0000 634.5000 655.0000

603.0000 613.5000 626.0000 640.5000 657.0000 675.5000 696.0000

650.0000 660.5000 673.0000 687.5000 704.0000 722.5000 743.0000


Columns 8 through 9


415.5000 440.0000

431.5000 456.0000

450.5000 475.0000

472.5000 497.0000

495.5000 520.0000

520.5000 545.0000

548.5000 573.0000

577.5000 602.0000

608.5000 633.0000

642.5000 667.0000

677.5000 702.0000

718.5000 743.0000

765.5000 790.0000



F12 =


Columns 1 through 7


300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000


Columns 8 through 14


407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000


Columns 15 through 21


573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000



Optim12 =


Columns 1 through 7


300.0000 310.5000 323.0000 337.5000 353.5000 370.0000 388.5000

0 10.0000 20.0000 30.0000 30.0000 40.0000 50.0000

0 0 0 0 10.0000 10.0000 10.0000

0 10.0000 20.0000 30.0000 40.0000 50.0000 60.0000


Columns 8 through 14


407.5000 428.0000 450.0000 472.5000 495.5000 520.0000 545.0000

50.0000 60.0000 60.0000 70.0000 70.0000 80.0000 80.0000

20.0000 20.0000 30.0000 30.0000 40.0000 40.0000 50.0000

70.0000 80.0000 90.0000 100.0000 110.0000 120.0000 130.0000


Columns 15 through 21


573.0000 602.0000 633.0000 667.0000 702.0000 743.0000 790.0000

80.0000 80.0000 80.0000 80.0000 80.0000 80.0000 80.0000

60.0000 70.0000 80.0000 90.0000 100.0000 110.0000 120.0000

140.0000 150.0000 160.0000 170.0000 180.0000 190.0000 200.0000

Вывод.

В итоге работы получены одинаковые результаты решения данной задачи при помощи двух методов её решения. Цель работы выполнена.


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

Файл
93662.rtf
91687.rtf
25678-1.rtf
135319.doc
33564.rtf




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