Skocz do zawartości
riddyk

[Teoria] Sterowanie silnikiem, robotem (PID)

Pomocna odpowiedź

Sterowanie silnikami, robotem.

W artykule tym przedstawię sposoby regulacji silników stosowanych w robotach (reg. PID)

1. Wstęp:

W każdym robocie trzeba zastosować silnik, jest to sprawa oczywista. Niestety sprawą oczywistą nie jest w jaki sposób sterować tym silnikiem, a jeśli jest są to silniki napędzające koła robota, a robot jest typu follow the line istotne jest, aby uzyskać maksymalną prędkość robota i aby koła się nie ślizgały po trasie. Wiele czynników wpływa na to, od materiałów stosowanych jako ogumienie koła, od materiału planszy, ciężaru robota, środka ciężkość, a najistotniejsze jest poprawne sterowanie silnikami które to koła te napędzają.

Jak wiemy lub nie mamy kilka opcji do wyboru, pierwszym i najczęściej stosowany jest sterowanie silnikiem za pomocą regulacji „jedź i stój”, nie posiada żadnej pętli sprzężenia zwrotnego, nie musimy znać parametrów obiektu ( zachwalę o tym będzie ) znaczy robota, właściwie nic nie trzeba mieć żadnej wiedzy, aby zastosować te sterowanie. Bądź zastosowanie z któregoś regulatora P, PI, PD, PID, a co tak właściwie znaczą te literki:

P – człon proporcjonalny

D – człon różniczkujący

I – człon całkujący

jeśli ktoś nie zna matematyki wyższej to tak właściwie nic mu nie mówi różniczka i całka, a rzadko w którym liceum są prowadzone różniczki na matematyce. Bez zbędnej matematyki i w zastosowaniach cyfrowych ( dyskretnych ), całka jest to suma, a różniczka to różnica, ale o tym później jak będziemy się zastanawiać nad algorytmem. Nie chcę wprowadzać do artykułu wielkiej matematyki i wgłębiać się w automatykę, ale jakąś teorię i symulacje pokarzę.

2. Obiekt regulacji:

Obiektem naszej regulacji jest ogólnie pojęty robot, a dokładniej jest to silnik ( wraz z układem sterującym silnika np. H-mostek). Można przyjąć założenie, że silnik jest obiektem liniowym inercyjnym 2 rzędu, niektórzy się podrapią w głowię i powiedzą sobie „i co to znaczy”, to znaczy tyle, że sam silnik nie potrafi w tej samej chwili po załączeniu napięcia się „rozkręcić” do prędkości wynikającej z napięcia (mocy), jest to spowodowane tym, że nie jesteśmy w stanie dostarczyć do układu nieskończonej mocy, szczególnie jak do dyspozycji mamy zasilanie bateryjne. Przedstawię to na wykresie dla obiektu 1 rzędu i dla obiektu 2 rzędu.

Rys1. Odpowiedź na skok obiektu 1 i 2 rzędu.

I co z tego można wywnioskować ? otóż, że silnik ( z założeniami uproszczeniowymi) nie reaguje na podane napięcie natychmiastowo, dodatkowo obiekt 2 rzędu ma pewien etap na początku pracy, że powoli prędkość narasta. Jeśli dodatkowo będzie zbyt szybko narastać koła mogą nie „złapać” przyczepności i kręcić się w miejscu, co dodatkowo wydłuża czas dojścia do prędkości ustalonej.

Ogólne równanie obiektu liniowego inercyjnego 2 rzędu:

Gdzie:

K(s) – transmitancja obiektu

T1 – pierwsza stała czasowa obiektu

T2 – druga stała czasowa obiektu

s – operator

Może teraz coś o tym operatorze, jest to operator Laplace`a, przejście z dziedziny czasu do dziedziny zespolonej:

poco ? po to aby łatwiej się liczyło „anologowo” na kartce papieru, chodzi oto aby całki i pochodne które same w sobie trudno się liczy zamienić na „s” i liczyć je tak jak algebra nakazuje. Równania różniczkowe zamieniamy na równania w najgorszym wypadku wielomianowe (typu funkcja kwadratowa). Zamiana czasu na „s”, obliczenia, i ponowna zamiana „s” na czas, wymaga dużo mniej wiedzy, czasu i kartek papieru niż obliczenie w dziedzinie czasu (różniczek, a wszystko w przyrodzie jest nie liniowe).

Transmitancja (K(s)) układu jest to co otrzymamy od układu przez to co do niego dostarczymy:

Rys2. Transmitancja obiektu.

Dlatego, nie możemy pomierzyć bezpośrednio K(s), musimy obliczyć go w powyższy sposób. X(s) bo będzie napięcie, Y(s) może to być prędkość obrotowa silnika, prędkość przemieszczenia robota.

T1 i T2 są to stałe czasowe obiektu, przeważnie jedna z nich dominuje, druga ma mniejszą wartość, może je znaleźć na rys1, ale o tym później jak dojedziemy do identyfikacji obiektu.

3. Regulatory

Zajmijmy się na początku, co każdy człon P, I, D, regulatora robi.

Człon P – proporcjonalny, jest to nic innego jak wzmocnienie uchybu regulacji, układ elektroniczny reprezentujący ten człon wygląda jak wzmacniacz ( i jest nim). Człon całkujący I - intergrator, w wielkim skrócie powoduje, że uchyb regulacji osiąga zero, czyli jeśli nastawimy prędkość 57,8% to tą prędkość osiągnie ( na razie nie mówimy tutaj o czasie osiągnięcia tej prędkości). Człon różniczkujący D – differentior odpowiada na szybkie zmiany sterowania, np. na uchybu regulacji, jeśli np. chcemy ruszyć z miejsca od 0% mocy do 50% mocy to ten człon regulatora odpowiada, aby z jak największym przyśpieszeniem ruszyć lub jeśli robot trafi na ścianę ( czyli się zatrzyma ), a układ sterowania ma ustawioną moc 100% to regulator różniczkujący odpowiada, z swoją całą stanowczością.

Równanie regulatora idealnego PID:

Gdzie:

kp – wzmocnienie proporcjonalne

Ti – czas zdwojenia

Td – czas wyprzedzenia

Jeśli ktoś by chciał wykonać symulacje w matlabie to przedstawiam jeszcze jego budowę, gdzie te trójkąciki to odpowiednie wartości nastaw regulatora:

Rys3. Schemat blokowy regulatora PID

4. Układ Regulacji:

Po przez układ regulacji rozumiemy regulator, obiekt i pętle sprzężenia zwrotnego. O pętli sprzężenia zwrotnego jeszcze nic nie było, a więc najpierw zobaczmy na rys poglądowy:

Rys4. Układ regulacji z sprzężeniem ujemnym zwrotnym.

Gdzie:

u – jest sygnałem sterującym regulatora

y – sygnał wyjściowy

e – e =y-w, jest to uchyb regulacji

w – sygnał/moc jaką chcemy osiągnąć

z – zasilanie układu

Pętla ujemnego sprzężenia zwrotnego powoduje, że układ wie w jakim miejscu się znajduje i za pomocą uchybu regulacji wie ile brakuje do ustalonego poziomu. Pętla sprzężenia zwrotnego czasem może powodować, że układ będzie niestabilny, ale dlaczego i jakie są warunki stabilności odsyłam do literatury.

Układ regulacji z rysunku 4 działa następująco, ustalamy pewną wartość „w” ( np. % moc/prędkość ), jeśli układ stoi, to uchyb regulacji wynosi „w”, regulator wypracowuję sygnał sterujący, sygnał sterujący razem z zasilaniem układu daje na obiekt sygnał wejściowy np. napięcie. W następnym kroku wszystko się powtarza, z tym, że obiekt ma już pewną prędkość

5. Pętla sprzężenia zwrotnego:

Jest najbardziej skomplikowanym i najdroższy element obiektu, musi to być urządzenie zdolne do stwierdzenia z jaką prędkością porusza się nasz robot, a by wypracować razem z regulatorem sygnał sterujący. Z mojej strony będą to tylko rzucone hasła, bo to nie jest temat artykułu, pierwszym pewnym rozwiązaniem może być akcelerometr wraz z układem całkującym. Może być układ optyczny z myszki. Żadne enkodery nie pomogą, bo potrzebujemy znać prędkość robota, a nie prędkość obrotową kuł. Można próbować wykonywać jakieś dalmierze optyczne, ewentualnie mały system radiowy z 3 nadajnikami, temat bardzo trudny, ale wykonywalny.

6. Identyfikacja obiektu:

Pamiętacie jeszcze z początku równanie obiektu liniowego inercyjnego 2 stopnia? Jeśli nie to jeszcze raz dla przypomnienia:

Przedstawię jedną z wielu metod identyfikacji obiektu, a po co wykonywać identyfikację będzie później. Zakładam, że niewymagany wysokiej precyzji odwzorowania robota do symulacji, stąd założenie, że robot jest obiektem liniowym inercyjnym 2 stopnia.

Otóż najprostszym sposobem identyfikacji jest sprawdzenie jak robot odpowiada na skok jednostkowy Hevisaida, „czytać” na podanie np. 75% napięcia(dowolna wartość), przypominacie sobie rys1.? Nie, to właśnie jest coś takiego, mając taki wykres prędkości po zadaniu pewnego napięcia. Ok. mamy przed sobą taki rysunek i co z nim zrobić, aby otrzymać k, T1 i T2. Szukamy punktu przegięcia wykresu, rysujemy styczną do tego punktu:

Rys5. Styczna w punkcie przegięcia

Następnie według rysunka5 szczytujemy z osi następujące wartości T1, T2, kr, kw, z tym że wzmocnienie k jest stosunkiem wartości sygnału wyjściowego ( prędkości ) ustalonego, do wartości napięcia zadanej.

Jak wynika z wykresu T1~0.4, T2~1.8, k=1

Jak pisałem jest to jedna z wielu metod, może jest ona nie dokładna bo musimy ręcznie wyznaczyć punkt przecięcia, i odczytać wartości z osi, ale za to jest metodą bardzo prostą ( nie uwzględniłem w obiekcie opóźnienia, to było kolejne założenie upraszczające).

7. Nastawy regulatora PID

Po to nam było potrzebna identyfikacja obiektu/robota aby muc wyliczyć nastawy regulatora PID. Mała ciekawostka w całej automatyce świata szacuje się, że 85% wszystkich regulatorów to są regulatory PID, z czego tylko 40% z nich ma poprawne nastawy regulatora, dlatego tak ważne jest poprawne wyliczenie nastaw regulatora. Jak jesteśmy przy ciekawostkach, to nie wiem czy wiecie, że regulator PID jest technologią wojskową, miał za zadanie naprowadzać działa na szybko poruszające się cele takie jak samoloty. Wracając do nastaw regulatora PID to są 2 grupy metod jedna inżynierska, druga magisterska. Każda z nich wymaga innego poziomu wiedzy. A, że nie wszyscy wiedzą to pokaże pewną tabelkę z której oblicza się nastawy, z wcześniej obliczonego obiektu:

Gdzie:

a – kT0/T

T0 – w naszym przypadku jak wcześniej go zaznaczyłem T2

T – jest T1, ta mniejsza stała czasowa.

A więc dla naszego obiektu przedstawionego na rysunku 5, nastawy regulatora będą wynosić:

Kp=4.275, 1/Ti=0.231, Td=0.72,

Rys6. Wykres przedstawia obiekt bez regulacji i z regulacją PID.

Jak widzimy na rys6. regulator PID nie ma poprawnych nastaw, co w tym przypadku nikogo nie dziwi, metody przedstawione przeze mnie nie są idealne, i z założenia nie miały być, są za to bardzo proste, należy teraz eksperymentalnie dobierać wartości regulatora PID, tak aż będą poprawne. Wystąpiło przeregulowanie, ale można też zauważyć, że układ ma większą dynamikę. Po kilku symulacjach i zwiększeniu/zmniejszeniu nastaw otrzymujemy:

Rys7. Wykres regulacji PID, z poprawnymi wartościami.

Czas regulacji się zmniejszył, nie występują przeregulowania.

Zobaczmy co się stanie jak zaczniemy szybko zmieniać sterowaniem robota:

Rys8. Wykres sterowania obiektem z Reg. PID i bez.

Jak widzimy na rys8. Jeśli będziemy szybko zmieniać sterowanie prędkością robota to sam silnik może się nie rozpędzić, w tak krótkim czasie do ustalonego poziomu, regulator PID znacznie poprawia dynamikę samego robota.

8. Wady reg. PID

Jak do tej pory widzieliśmy same zalety regulacji PID, a jednak ma pewne wady. Jak wcześniej wspomniałem trzeba wykonać pętle sprzężenia zwrotnego z tym będzie wiele zabawy, rozwiązania są trudne i kosztowne, jeśli je przezwyciężymy, trafimy na kolejny problem jakim jest, zapas mocy powinniśmy w swoim robocie posiadać duży większą moc niż to wynika z sumy mocy nominalnej silników. Zobaczmy dlaczego tak się dzieje, rzut oka na sygnał sterujący silnikami:

Rys9. Wykres syg. sterującego PID (war. bezwzględna)

Rys9. Prezentuje moc jaką trzeba dostarczyć do silników aby zachowywał się tak jak to wynika z sterowania. Jedynka na osi y reprezentuje moc nominalną silnika, syg. czerwony jest to sygnał jakiej mocy należy dostarczyć do silnika, aby otrzymać przebieg prędkości (zielony sygnał), ewentualnie hamujemy przełączając silnik na odwrotny kierunek, aby obiekt zmniejszył prędkość. W tym wypadku musimy dysponować mocą prawie 5 razy większą niż moc nominalna silnika.

9. Algorytm na uC

Spróbuję podjąć pewną próbę napisania równania które po implementacji do uP, będzie symulowało pracę regulatora PID. Przypomnijmy sobie równanie regulatora PID:

Pamiętając bez zbędnych wywodów i matematyki, że:

1/s = całka, a całka do sumowanie, i

s = pochodna, czyli odejmowanie.

Przymnijmy, że przed uruchomieniem układ był w spoczynku. Nazwijmy sobie kolejne wartości przychodzące do uP z uchybu regulacji Xn, a następna będzie Xn+1, to dla elementu całkującego będzie Xn+Xn+1, a dla układu różniczkującego Xn+1-Xn, te wartości mnożymy przez ich współczynniki, a następnie dodajemy 1 i mnożymy przez kp. A więc ogólne równanie będzie wyglądało następująco:

Następnie Kpid należy przetworzyć na sygnał sterowania silnikiem, najlepiej PWM, lub jak kto woli po Polsku MSI(modulacja szerokością impulsu), aby płynnie regulować całym robotem.

10. Podsumowanie

Jeśli dysponujemy odpowiednią wiedzą, czasem i pieniędzmi, jesteśmy w stanie wykonać robota z regulatorem PID. Jest wiele przeszkód i trudności, ale za to możemy wycisnąć maksymalną prędkość z robota, a na zawodach na czas, czas się liczy, a czas to prędkość. Mam nadzieję, że nikogo nie zniechęciłem tylko rozjaśniłem, jakie są problemy z regulatorem PID, czym on faktycznie jest, jak go można symulować, jak go można „ugryź” i od czego zacząć. Niechciałem nikogo uczyć wyższej matematyki i część rzeczy jest napisane prosto, niektórzy mogą krzywo spojrzeć, bo jest zbyt prosto, to samo z automatyką też nie chciałem robić wykładów tylko przybliżyć problem.

11. Literatura

[1]. Wykłady z Podstaw Automatyki, prof. Jan Zakrzewski, PolŚl

[2]. Wykłady z Automatyki dr inż Henryk Urzędniczok, PolŚl

[3]. Wykłady z Dynamiki i Indyfikacji obiektów dr inż. Henryk Urzędniczok, PolŚl

[4]. Laboratorium z Podstaw Automatyki i z Automatyki, PolŚl

[5]. Podstawy Automatyki dr inż. Marek Żelazny // akurat ten podręcznik miałem pod ręką.

Artykuł _Sterowanie silnikiem_robotem. reg PID._.pdf

Udostępnij ten post


Link to post
Share on other sites

Nie obraź się, ale wiedza, którą tu przedstawiłeś jest ogólnie dostępną wiedzą książkową. W praktyce nijak się to ma do sterowania jakimkolwiek robotem wykonanym amatorsko ponieważ w domowych warunkach nikt nie jest w stanie zidentyfikować a co za tym idzie obliczyć transmitancji obiektu regulowanego. To co tu przedstawiłeś nie przeniesiesz na jakikolwiek język programowania.

Udostępnij ten post


Link to post
Share on other sites

Jeżeli chodzi o transmitancję silnika, wydaje mi się, że do celów "amatorskich" można przyjąć, że jest to człon inercyjny 2 rzędu, a nawet i spokojnie rzędu 1... Tylko jakie to ma znaczenie :]

Czekam z niecierpliwością na obiecany ciąg dalszy, tej części artykułu za bardzo ocenić nie sposób.

Może uchylisz rąbka tajemnicy co chcesz jeszcze przedstawić?

edit: Szkoda, że nie mogę teraz ściągnąć art., przeglądnąłem go wczoraj wieczorem na śpiąco, chciałem dzisiaj szerzej skomentować, ale "w biurze" nie mogę jak się okazało... Tak więc "do popołudnia".

edit2: A w temacie identyfikacji, wydajemi się, że mając enkoder (zakładam, że do powazniejszych konstrukcji jednak się je wrzuca...) można dość łatwo sprawdzić odpowiedź na skok jednostkowy (czy tam pięcio woltowy :]) napięcia. Aż z ciekawość spróbuję to kiedyś zrobić...

Udostępnij ten post


Link to post
Share on other sites

A czemu enkodery nie podadzą nam prędkości robota? Obwód koła jest stały. Jedynym problemem są poślizgi, ale to zawsze lepsze niż nic.

Udostępnij ten post


Link to post
Share on other sites

Enkodery, które zostaną założone na wał silnika, nie dają rzetelnej informacji o prędkość całego robota, a tym bardziej nie nadają się na sprzężenie zwrotne dla jakiegokolwiek regulatora. Może się zdarzyć sytuacja, że robot trafi na ścianę, informacja z enkodera będzie taka, się robot porusza, a faktyczny stan będzie inny. Enkodery mogą być ale całkiem w innym wydaniu. O tym napiszę w innym arcie, teraz przygotowuję coś dużego.

Co do zarzutów, że wszyscy mogą sobie to samo poczytać na necie o PID, ale czy ktoś to zrozumie kto nie miał automatyki na studiach? Czy ktoś kto nie zna równań różniczkowych może zrozumieć tylko i wyłącznie to co jest w książce o automatyce. Docelowym odbiorcą tego arta miały być osoby które nigdy się z tym nie spotkały. Inną sprawą jest, że regulator PID jest technologią wojskową która przeszła do cywila, i w ten sposób została rozłożona na kawałki, tak samo jak GMS, GPS.

Udostępnij ten post


Link to post
Share on other sites

Argument o docelowym odbiorcy nietrafiony. Wątpię, żeby taki docelowy odbiorca pojął cokolwiek z przekształcenia Laplace'a, dziedzinie zespolonej, nie wspominając o takie błahostce jak równanie członu inercyjnego 2-go rzędu :], o których wspomniałeś i chyba raczej tylko zaciemniłeś sytuacje.

Oczywiście nie traktuj tego zbyt osobiście, ciągle czekam na ten "ciąg dalszy".

Udostępnij ten post


Link to post
Share on other sites

Jednak enkodery są wykorzystywane w algorytmach PID, np. we wspominanym już przeze mnie mindstormie z LEGO. Owszem poślizgi były są i będą ale ja wole już dać enkoder i mieć nie do końca rzetelne informacje na temat prędkości robota niż bawić się akcelerometrami.

PS. sory za brak ogonków ale ręka mi się złamała i ciężko mi się pisze.

__________

Komentarz dodany przez: Sabre

Dodałem ogonki i poprawiłem wyrazy

Udostępnij ten post


Link to post
Share on other sites

Z jednej strony Sabre pisze, że artykuł nie jest z wysokim poziomem ( czyli nic się nie dowiedział ), a z drugiej strony rasta, że artykuł nie jest też dla osób które nic nie wiedzą, a ja chcę dotrzeć do osób które nie mają bladego pojęcia o automatyce. Nie chcę pisać, że "coś tak to jest", żeby coś przyjmować na "wiarę".

Mihau, dobrze enkodery, mogą być ale nie w tym wydaniu co wszyscy myślą, czyli na wale silnika, czy w osi koła. A w jaki sposób montowane, to napiszę w następnym arcie. Pomysł jest bardzo prosty, wręcz banalny, za prosty. Z pewnych względów nie jestem w stanie wykonać doświadczenia, teoria i sposób działania jest poprawny.

Udostępnij ten post


Link to post
Share on other sites
Z jednej strony Sabre pisze, że artykuł nie jest z wysokim poziomem ( czyli nic się nie dowiedział ), a z drugiej strony rasta, że artykuł nie jest też dla osób które nic nie wiedzą, a ja chcę dotrzeć do osób które nie mają bladego pojęcia o automatyce. Nie chcę pisać, że "coś tak to jest", żeby coś przyjmować na "wiarę".

Chyba mnie nie zrozumiałeś, chodziło mi o to, że te informacje są dostępne w każdej książce z automatyki czy internecie, ale w chwili obecnej tych informacji w zasadzie nikt nie wykorzysta ponieważ większość osób nie przełoży tej teorii na algorytm do robota, taka czysta teoria jest zbyt trudna.

Udostępnij ten post


Link to post
Share on other sites

Witam,
Regulator PID to potężne narzędzie. Ale ciężko będzie wykorzystać go we własnym projekcie. Dlaczego? W sterownikach programowalnych regulatory to oddzielne układy tylko wywoływane procedurą. Program mikrokontrolera pobierając wartości z sygnału wejściowego robi to co jakiś czas. Kwestia ilości instrukcji w pętli(obliczenia trochę trwają) i szybkości taktowania. Poza tym wartość ta jest w określonym zakresie. I to jest właśnie problem. Nie jest to wystarczająca szybkość i dokładność aby stworzyć działający w miarę regulator kawałkiem kodu.

Inna kwestia to określenie transmitancji. Po jej dokładnym w miarę określeniu można zbudować regulator w technice analogowej. Tylko, że za obiekt nie można przyjąć samego silnika. Obiektem jest silnik w robocie. Razem z przekładnią i innymi kwestiami mechaniki.

Przykład: Chcemy, żeby silnik dawał 100 obrotów na minutę jadąc prosto. W tym wypadku powinien pobierać 200mA prądu. Zakłócenia układu będą zmieniać prąd płynący przez silnik(oparcie o ścianę, kręcenie się kuł w miejscu itp). I tu regulator pomoże o ile będzie dobrze dobrany do robota. Uogólnienie spowoduje tylko, że regulator będzie powodował oscylacje.

Kolejny problem to sygnały wejściowe i wyjściowe. Nawet jeśli zbudujemy regulator opierający się na wartości prądu to potrzeba jest sposobu na przełożenie wartości wymaganej korekty(zmiana prądu) na sygnał sterujący (najpewniej PWM).

Także od teorii do praktycznego wykorzystania daleka droga. I wymaga sporo pomiarów.

Udostępnij ten post


Link to post
Share on other sites

Przepraszam że odkopuje temat ale szukałem troche gotowych algorytmów regulatora PID pod uC jednak nic nie znalazłem. To co przeczytałem w temacie znajduje się na pierwszych stronach mojego podręcznika do automatyki , więc praktycznie nic nowego. Niestety program technikum nie przewiduje , przynajmniej w trzeciej klasie całek i różniczek więc nie jestem wstanie przenieść wzorów na kod programu. Czy ktoś mógłby podać przykładowe algorytmy dla uC?

co do tematu:

[chyba] enkoder na osi "piątego koła" przyczepionego do robota tak aby "samoistnie" ustawiało się zgodnie z kierunkiem jazdy robota będzie poprawnie "mierzył" prędkość.

Udostępnij ten post


Link to post
Share on other sites

Wielkie dzięki własnie o coś takiego mi chodziło. Algorytm wygląda całkiem prosto.

Udostępnij ten post


Link to post
Share on other sites

W jaki sposób wyliczyć stałą TIME_INTERVAL?

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...