%diplomka optimalizace rozmeru Verze 5 (novy hydromotor) (90deg)
clear
clc
clf

%nulta iterace-nesestavitelna
%L1x0=-800; L1y0=100; L2x0=-50; L2y0=150; L30=250; L40=750; L5x0=-110;

%prvni iterace
% L1x0=-760; L1y0=140; L2x0=-50; L2y0=190; L30=210; L40=750; L5x0=-70;

%druha iterace
% L1x0=-780; L1y0=180; L2x0=-50; L2y0=190; L30=210; L40=790; L5x0=-110;

%treti iterace
L1x0=-760; L1y0=220; L2x0=-50; L2y0=150; L30=170; L40=770; L5x0=-150;

%ctvrta  iterace
% L1x0=-780; L1y0=240; L2x0=-50; L2y0=130; L30=150; L40=790; L5x0=-190;
% reseni se stejnymi rozmery

%L1x0=-820; L1y0=240; L2x0=-50; L2y0=130; L30=150; L40=830; L5x0=-230;

%vysledne reseni
% L1x0=-780; L1y0=240; L2x0=-50; L2y0=130; L30=150; L40=790; L5x0=-250;



%STREDNI HODNOTY ROZMERU
% L1x0=-740; L1y0=180; L2x0=-50; L2y0=190; L30=210; L40=750; L5x0=-110;

%pocet moznosti jednoho rozmeru
n=5;
%krok
m=20; %mm

%vykresleni stredni hodnoty
[Mz0,ALFA0,BETA0,L60,Fi0,Zi0,Zk0,Fi30,Beta240] = MZaALFAproPCHM2(L1x0,L1y0,L2x0,L2y0,L30,L40,L5x0);

%pocatecni hodnoty cyklu
Mz=0;

l1x=L1x0-m*(n-1)/2;
for a=1:n
    l1y=L1y0-m*(n-1)/2;
    for b=1:n
        l5x=L5x0-m*(n-1)/2;
        for c=1:n
            l2x=L2x0-m*(n-1)/2;
            for d=1:n
                l2y=L2y0-m*(n-1)/2;
                for e=1:n
                    l4=L40-m*(n-1)/2;
                    for f=1:n
                        l3=L30-m*(n-1)/2;
                        for g=1:n
                            [mz,alfa,beta,l6,fi,zi,zk,fi3,beta24] = MZaALFAproPCHM2(l1x,l1y,l2x,l2y,l3,l4,l5x);
                            %podminky
                            if imag([mz alfa beta l6 fi zi zk fi3])==0 %sestavitelnost mechanismu
                            if l2x<=-50 %rozmerove omezeni
                            if alfa>90 %pozadavek na uhel vyklopeni
                            if l1x<-750 %omezeni vzdalenosti britu od cepu lopaty
                            if fi>0 %omezeni uhlu mezi rameny paky
                            if abs(fi3)<10 %zamezeni velkemu odklonu horniho ramene paky od svislice
                            if l1y+l3<400 %kompaktni rozmery - vyska
                            if beta24>10 %zamezeni pohybu do mrtve polohy
                            if mz(1)>Mz(1)
                                Mz=mz;
                                ALFA=alfa;
                                BETA=beta;
                                L1x=l1x;
                                L1y=l1y;
                                L2x=l2x;
                                L2y=l2y;
                                L3=l3;
                                L4=l4;
                                L5x=l5x;
                                L5y=0;
                                L6=l6;
                                Fi=fi;
                                Zi=zi;
                                Zk=zk;
                            end
                            end
                            end
                            end
                            end
                            end
                            end
                            end
                            end
                    
                            l3=l3+m;
                        end
                        l4=l4+m;
                    end
                    l2y=l2y+m;
                end
                l2x=l2x+m;
            end
            l5x=l5x+m;
        end
        l1y=l1y+m;
    end
    l1x=l1x+m;
end
L1x
L1y
L2x
L2y
L3
L4
L5x
L6
Fi
ALFA
BETA
Zi
Zk
z=linspace(0,310,length(Mz));
plot(z,Mz,'b')
hold on
plot(z,Mz0,'r')
