Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % funkcja z losowaniem
- % binP - binarna nastawa P po losowaniu
- % binI - jak wyzej ale dla I
- % binD - jak wyzej dla dla D
- % WSZYSTKIE OSOBNIKI MAJA 8 BITOW!!! (wlasny warunek odgorny)
- function PID=PopulacjaStart(ileOs)
- % IO - ilosc osobnikow
- % wiersz posiada 3 elementy - wynika to z faktu ze mamy trzy nastawy (nasze
- % P, I oraz D)
- % nasze osobniki beda losowane
- min=0.1;
- max=1;
- LOS=(max-min).*rand(ileOs,3)+min;
- % musimy przypisac kazdemu wierszowi nastawe
- Pl=LOS(:,1);
- Il=LOS(:,2);
- Dl=LOS(:,3);
- PIDl=[Pl,Il,Dl];
- % przed zmiana na wartosci binarne zaokraglamy nasze nastawy do dwoch
- % miejsc po przecinku, lecz najpierw zwiekszamy je dwukrotnie
- PIDl=2*PIDl;
- % zapis nastaw
- P=PIDl(:,1);
- I=PIDl(:,2);
- D=PIDl(:,3);
- rPID=round(PIDl,2);
- % aby dokonac zamiany na wartosci binarne musimy zwiekszyc wartosci
- stoPID=rPID*100;
- % zamiana wartosci regulatora na wartosci binarne
- % odgornie narzucamy liczbe bitow wynoszaca 8
- % wynika to z faktu ze na takich "bawilismy sie" piszac ten algorytm
- % genetyczny, dlatego najlatwiej nam na nich operowac
- binP=dec2bin(int32(stoPID(:,1)),8);
- binI=dec2bin(int32(stoPID(:,2)),8);
- binD=dec2bin(int32(stoPID(:,3)),8);
- binnas=[string(binP), string(binI), (binD)];
- binPID = char(binnas);
- PID= [P I D]
- %out= [P I D]
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement