>Kolega pewnie gdzieś pracuje zawodowo. Kwotę, którą zarabia na godzinę, proszę pomnożyć przez ilość godzin spędzoną nad projektem i koszt zaraz się poprawi
Przecież nie pisałem o koszcie wykonania projektu - działającego prototypu (elektronika+oprogramowanie). Zacytowałem zdanie: "tanie podzespoly elektroniczne" i do tego zdania się odniosłem.
[ Dodano: 2008-12-09, 13:46 ]
Tutaj:
www.korinsj.com.pl/pub/regtest.exe
wrzuciłem nową wersję programu - symuluje pracę serwa DC sterowanego regulatorem P-PI(D).
Pole "Mnożnik" odpowiada za dokładność pomiaru prędkości. O ile uchyb położenia ma zawsze wartość całkowitą (pozycja zadana - pozycja enkodera), o tyle mnożnikiem można symulować precyzyjny pomiar prędkości.
Standardowo prędkość jest liczona jako różnica między odczytami enkodera przy kolejnych wejściach do obsługi PID. Ustawiając mnożnik np. na 10 powodujemy iż prędkość "mierzona" jest z dokładnością do jednej cyfry po przecinku.
Można porównać zachowanie się pętli regulacji gdy pomiar prędkości odbywa się nie na podstawie tylko różnicy odczyt enkodera, ale dokonując pomiaru np. szybkim timerem.
Znaleziono 11 wyników
Wróć do „Sterownik serwa DC - szczegóły działania PIDa”
- 08 gru 2008, 14:09
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
- 08 gru 2008, 06:51
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
> enkodery napewno nie 10000 na obrot
Zakładam zastosowanie enkoderów 250..1000 imp/obr (wymnożone następnie w sterowniku przez 4)
> czestotliwosci napewno nie 0.5Mhz
W tej chwili ARM zlicza bez problemu 500kHz. Pójdzie nawet na ponad 700kHz.
> dopuszczalne bledy w interpolacji np.0,05mm
To zależy od rozdzielczości enkodera i skoku śruby. Zapytam inaczej - ile przykładowo działek enkodera powinien wynosić max błąd?
>tanie podzespoly elektroniczne
Koszt mojego sterownika serwa DC to jakieś 50zł (bez mostka H).
Zakładam zastosowanie enkoderów 250..1000 imp/obr (wymnożone następnie w sterowniku przez 4)
> czestotliwosci napewno nie 0.5Mhz
W tej chwili ARM zlicza bez problemu 500kHz. Pójdzie nawet na ponad 700kHz.
> dopuszczalne bledy w interpolacji np.0,05mm
To zależy od rozdzielczości enkodera i skoku śruby. Zapytam inaczej - ile przykładowo działek enkodera powinien wynosić max błąd?
>tanie podzespoly elektroniczne
Koszt mojego sterownika serwa DC to jakieś 50zł (bez mostka H).
- 05 gru 2008, 18:23
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
> A na dodatek wszystko sie pochrzani jak się zmieni kierunek obrotów.
Dokładnie. Przy zmianie kierunku mogę mieć dwa przypadki:
1. Jeżeli początek pomiaru robię na zboczu narastającym na kanale A a koniec pomiaru na zboczu opadającym kanału A to mogę mieć fałszywą dużą prędkość.
2. Jeżeli początek pomiaru robię przy dowolnym zboczu na kanale A a koniec przy dowolnym zboczu na kanale B to mogę mieć fałszywą mała prędkość.
Ale wydaje mi się że to kwestia obróbki programowej. W końcu znak szybkości (kierunek obrotów) i tak będę ustalał na podstawie różnicy położeń enkodera, więc mogę to jakoś ze sobą powiązać.
[ Dodano: 2008-12-05, 18:43 ]
W sumie to zmiana kierunku nie jest problemem. Sprawdziłem PDF do procka jakiego używam (ARM Atmela) i jeśli wystarczy mi wolnych komórek w CPLD to mogę tak mu wygenerować sygnały że "sam" odpowiedni pomierzy czas trwania impulsów niezależnie od zmiany kierunku.
[ Dodano: 2008-12-05, 19:36 ]
No to już wiem. Musiałbym jedną funkcję wyrzucić z CPLD i wrzucić ją do procka (tylko dwie instrukcje więcej w programie). Wtedy zyskam brakujące komórki w CPLD aby mierzyć precyzyjnie czas trwania impulsów. Ale wiąże się tą z przeróbką całej PCB i montaż nowego prototypu.
Narazie uruchomię całkowanie i zobaczę jak będzie silnik pracować z pełnym P-PI i programowym liczeniem szybkości.
Dokładnie. Przy zmianie kierunku mogę mieć dwa przypadki:
1. Jeżeli początek pomiaru robię na zboczu narastającym na kanale A a koniec pomiaru na zboczu opadającym kanału A to mogę mieć fałszywą dużą prędkość.
2. Jeżeli początek pomiaru robię przy dowolnym zboczu na kanale A a koniec przy dowolnym zboczu na kanale B to mogę mieć fałszywą mała prędkość.
Ale wydaje mi się że to kwestia obróbki programowej. W końcu znak szybkości (kierunek obrotów) i tak będę ustalał na podstawie różnicy położeń enkodera, więc mogę to jakoś ze sobą powiązać.
[ Dodano: 2008-12-05, 18:43 ]
W sumie to zmiana kierunku nie jest problemem. Sprawdziłem PDF do procka jakiego używam (ARM Atmela) i jeśli wystarczy mi wolnych komórek w CPLD to mogę tak mu wygenerować sygnały że "sam" odpowiedni pomierzy czas trwania impulsów niezależnie od zmiany kierunku.
[ Dodano: 2008-12-05, 19:36 ]
No to już wiem. Musiałbym jedną funkcję wyrzucić z CPLD i wrzucić ją do procka (tylko dwie instrukcje więcej w programie). Wtedy zyskam brakujące komórki w CPLD aby mierzyć precyzyjnie czas trwania impulsów. Ale wiąże się tą z przeróbką całej PCB i montaż nowego prototypu.
Narazie uruchomię całkowanie i zobaczę jak będzie silnik pracować z pełnym P-PI i programowym liczeniem szybkości.
- 05 gru 2008, 07:55
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
> ...aktualna predkosc (obroty) pobierana z tachometru lub czujnikow przyspieszenia...
To oczywiście u mnie odpada. Mam silniki tylko z enkoderami.
>...enkoder potrzebuje czasu na analize i jest zawsze spuzniony...
Tu nie problemem jest czas reakcji enkodera, ale jego rozdzielczość. Przy małej ilości imp/obrót różnica pomiędzy kolejnymi odczytami enkodera jest mocno skokowa. I jest tym gorzej im większa jest częstotliwość pracy PID a obroty silnika wolniejsze.
>...Aby sygnał wyjściowy z regulatora nie latał od -max do +max, rozdzielczość sygnałów mierzonych (np prędkości) musi być znacznie większa...
Dokładnie tak.
>...Inaczej różniczka głupieje i daje takie sygnały, co z kolei generuje potężne zakłócenia EMC ponieważ powstają silne udary prądowe. Wszystko szumi, trzeszczy i się zakłóca na wzajem...
Właśnie testuję P-PI, całkowanie narazie wyłączone, czyli mam P-P - działa super, ale fakt - silnik wydaje odgłosy jakby był zarzynany - drugie P (a więc różniczka) daje mu popalić. Na symulacji doszedłem nawet do regulacji 3-stanowej: -Uwymax, 0 +Uwymax i też działa
>...Współczesne serva AC nie używają już tacho tylko estymują prędkość z enkodera...
Też o tym myślałem. Silnik sterowany napięciowo to całkowanie z inercją, czyli k/s(1+sT). Więc kombinowałem aby zrobić jego symulację w procku tak jak robię pod windowsem. Obliczenie odpowiedzi przyrostowej dla położenia enkodera silnika wygląda tak:
ObjSum := ObjSum + ObjWe * (ObjK * Tp);
ObjWy := ObjWy + (ObjSum - ObjWyl) * (Tp / ObjT);
ObjK*Tp i Tp/ObjT to stałe, więc nie mam nigdzie dzielenia - jest do zrobienia w procku.
Czyli znam prędkość aktualną, wyjście PWM i mogę obliczyć prędkość jaka powinna być w następnym cyklu PIDa. Nie wiem czy akurat będzie to właściwe podejście do sprawy.
Mogę też symulować odpowiedź prędkościową (jeszcze prościej) bo to inercja k/(1+sT).
Narazie zrobię jeszcze parę kombinacji:
- ograniczenie i uruchomienie całkowania w P-PI,
- strukturę PI-P
- przeróbkę regulatora z pozycyjnego na prędkościowy
- zwiększenie rozdzielczości pomiaru prędkości obrotowej - nie jako różnica kolejnych odczytów enkodera, ale pomiar długości trwania impulsu poprzez sprzętowy timer procka.
Zegar będzie bramkowany przez jeden z kanałów enkodera i zliczany w liczniku. Licznik 16bit, "f" zegara do wyboru: 20MHz, 5MHz, 1250kHz, 312.5kHz.
Mogę w ten sposób zwiększyć dokładność (rozdzielczość) pomiaru prędkości obrotowej silnika, ale dopiero od szybkości przy której wystąpią oba zbocza na kanale enkodera w czasie jednego cyklu PID - nie mogę mierzyć długości impulsu który trwa dłużej niż kolejne obliczenie PIDa.
PIDa obliczam co 2kHz (okres 500us) dopiero od takiej częstotliwości impulsów z enkodera mogę mierzyć dokładnie ich czas trwania.
Zrobiłem trochę pomiarów:
Silnik 24V 140W
Enkoder 500 imp/obr
f PID 2kHz (500us)
f CLK 5MHz (0.2us)
PWM - wartość wyjścia PWM od 0(0%) do 2000(100%)
T - czas trwania poziomu wysokiego na kanale enkodera
K - prędkość wyliczona jako różnica kolejnych odczytów enkodera ("tradycyjnie")
N - prędkość zmierzona przez szybki licznik sprzętowy (sprzętowo)
1. PWM=0 T=oo K=0 N=65535
2. PWM=100 T=oo K=0 N=65535
3. PWM=200 T=oo K=0 N=65535
4. PWM=300 T=2ms K=0 N=10000
5. PWM=350 T=376us K=3 N=1880
6. PWM=400 T=216us K=5 N=1080
7. PWM=450 T=140us K=7 N=700
8. PWM=500 T=120us K=8 N=600
9. PWM=550 T=98us K=10 N=490
10. PWM=600 T=90us K=11 N=450
11. PWM=700 T=76us K=13 N=380
12. PWM=800 T=72us K=14 N=360
13. PWM=900 T=67us K=15 N=335
14. PWM=1000 T=64us K=16 N=320
15. PWM=1100 T=62us K=16 N=310
16. PWM=1200 T=61us K=16 N=305
17. PWM=1300 T=60us K=17 N=300
18. PWM=1400 T=59us K=17 N=295
19. PWM=1500 T=58us K=17 N=290
20. PWM=1600 T=57us K=18 N=285
21. PWM=1700 T=57us K=18 N=285
22. PWM=1800 T=56us K=18 N=280
23. PWM=1900 T=55us K=18 N=275
24. PWM=2000 T=54us K=19 N=270
Dokładność i dynamika sprzętowego pomiaru prędkości wydaje się być obiecująca.
To oczywiście u mnie odpada. Mam silniki tylko z enkoderami.
>...enkoder potrzebuje czasu na analize i jest zawsze spuzniony...
Tu nie problemem jest czas reakcji enkodera, ale jego rozdzielczość. Przy małej ilości imp/obrót różnica pomiędzy kolejnymi odczytami enkodera jest mocno skokowa. I jest tym gorzej im większa jest częstotliwość pracy PID a obroty silnika wolniejsze.
>...Aby sygnał wyjściowy z regulatora nie latał od -max do +max, rozdzielczość sygnałów mierzonych (np prędkości) musi być znacznie większa...
Dokładnie tak.
>...Inaczej różniczka głupieje i daje takie sygnały, co z kolei generuje potężne zakłócenia EMC ponieważ powstają silne udary prądowe. Wszystko szumi, trzeszczy i się zakłóca na wzajem...
Właśnie testuję P-PI, całkowanie narazie wyłączone, czyli mam P-P - działa super, ale fakt - silnik wydaje odgłosy jakby był zarzynany - drugie P (a więc różniczka) daje mu popalić. Na symulacji doszedłem nawet do regulacji 3-stanowej: -Uwymax, 0 +Uwymax i też działa

>...Współczesne serva AC nie używają już tacho tylko estymują prędkość z enkodera...
Też o tym myślałem. Silnik sterowany napięciowo to całkowanie z inercją, czyli k/s(1+sT). Więc kombinowałem aby zrobić jego symulację w procku tak jak robię pod windowsem. Obliczenie odpowiedzi przyrostowej dla położenia enkodera silnika wygląda tak:
ObjSum := ObjSum + ObjWe * (ObjK * Tp);
ObjWy := ObjWy + (ObjSum - ObjWyl) * (Tp / ObjT);
ObjK*Tp i Tp/ObjT to stałe, więc nie mam nigdzie dzielenia - jest do zrobienia w procku.
Czyli znam prędkość aktualną, wyjście PWM i mogę obliczyć prędkość jaka powinna być w następnym cyklu PIDa. Nie wiem czy akurat będzie to właściwe podejście do sprawy.
Mogę też symulować odpowiedź prędkościową (jeszcze prościej) bo to inercja k/(1+sT).
Narazie zrobię jeszcze parę kombinacji:
- ograniczenie i uruchomienie całkowania w P-PI,
- strukturę PI-P
- przeróbkę regulatora z pozycyjnego na prędkościowy
- zwiększenie rozdzielczości pomiaru prędkości obrotowej - nie jako różnica kolejnych odczytów enkodera, ale pomiar długości trwania impulsu poprzez sprzętowy timer procka.
Zegar będzie bramkowany przez jeden z kanałów enkodera i zliczany w liczniku. Licznik 16bit, "f" zegara do wyboru: 20MHz, 5MHz, 1250kHz, 312.5kHz.
Mogę w ten sposób zwiększyć dokładność (rozdzielczość) pomiaru prędkości obrotowej silnika, ale dopiero od szybkości przy której wystąpią oba zbocza na kanale enkodera w czasie jednego cyklu PID - nie mogę mierzyć długości impulsu który trwa dłużej niż kolejne obliczenie PIDa.
PIDa obliczam co 2kHz (okres 500us) dopiero od takiej częstotliwości impulsów z enkodera mogę mierzyć dokładnie ich czas trwania.
Zrobiłem trochę pomiarów:
Silnik 24V 140W
Enkoder 500 imp/obr
f PID 2kHz (500us)
f CLK 5MHz (0.2us)
PWM - wartość wyjścia PWM od 0(0%) do 2000(100%)
T - czas trwania poziomu wysokiego na kanale enkodera
K - prędkość wyliczona jako różnica kolejnych odczytów enkodera ("tradycyjnie")
N - prędkość zmierzona przez szybki licznik sprzętowy (sprzętowo)
1. PWM=0 T=oo K=0 N=65535
2. PWM=100 T=oo K=0 N=65535
3. PWM=200 T=oo K=0 N=65535
4. PWM=300 T=2ms K=0 N=10000
5. PWM=350 T=376us K=3 N=1880
6. PWM=400 T=216us K=5 N=1080
7. PWM=450 T=140us K=7 N=700
8. PWM=500 T=120us K=8 N=600
9. PWM=550 T=98us K=10 N=490
10. PWM=600 T=90us K=11 N=450
11. PWM=700 T=76us K=13 N=380
12. PWM=800 T=72us K=14 N=360
13. PWM=900 T=67us K=15 N=335
14. PWM=1000 T=64us K=16 N=320
15. PWM=1100 T=62us K=16 N=310
16. PWM=1200 T=61us K=16 N=305
17. PWM=1300 T=60us K=17 N=300
18. PWM=1400 T=59us K=17 N=295
19. PWM=1500 T=58us K=17 N=290
20. PWM=1600 T=57us K=18 N=285
21. PWM=1700 T=57us K=18 N=285
22. PWM=1800 T=56us K=18 N=280
23. PWM=1900 T=55us K=18 N=275
24. PWM=2000 T=54us K=19 N=270
Dokładność i dynamika sprzętowego pomiaru prędkości wydaje się być obiecująca.
- 04 gru 2008, 13:51
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
> Co do regulatora P_PI to będzie lepiej, ale jak chcecie wyznaczać prędkość aktualną? Macie prądniczkę tacho? Bo programowo z enkodera to nic z tego nie wyjdzie, a sprzętowy estymator jest bardzo skomplikowany.
Strzał w dziesiątkę
Przy niskich obrotach silnik "chrobocze". Jest tym gorzej, im procedura PID jest częściej wykonywana i im mniejsza jest rozdzielczość enkodera.
Jeśli prędkość jest obliczana jako różnica kolejnych wartości z enkodera, to najgorzej sprawa wygląda jeśli prędkość obrotowa jest niewielka, a częstotliwość PID duża.
Kolejne odczyty dla prędkości np. 0,25 wyjdą takie: 1,0,0,0,1,0,0,0,...
Właśnie kombinuję co z tym zrobić.
Ale właśnie w ten sposób działa to:
http://elm-chan.org/works/smc/report_e.html
i UHU pewnie też.
Strzał w dziesiątkę

Jeśli prędkość jest obliczana jako różnica kolejnych wartości z enkodera, to najgorzej sprawa wygląda jeśli prędkość obrotowa jest niewielka, a częstotliwość PID duża.
Kolejne odczyty dla prędkości np. 0,25 wyjdą takie: 1,0,0,0,1,0,0,0,...
Właśnie kombinuję co z tym zrobić.
Ale właśnie w ten sposób działa to:
http://elm-chan.org/works/smc/report_e.html
i UHU pewnie też.
- 04 gru 2008, 09:37
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
>wszystkie mają wyjścia PWM bez pomiaru prądu
Dokładnie tak. Ja też tak mam
Problemem jest sama struktura regulatora. Regulator PID bazujący tylko na uchybie położenia nie będzie działał.
> Autor ELM publikuje schemat blokowy i kod źródłowy - można coś przylookać.
Zerknąłem na rysunek ze strukturą regulatora - dokładnie to o czym pisałem - regulator P-PI
Zrobiłem symulację. Jest pięknie. Teraz przerabiam nieco elektronikę i wrzucam to do procka.
Dokładnie tak. Ja też tak mam
Problemem jest sama struktura regulatora. Regulator PID bazujący tylko na uchybie położenia nie będzie działał.
> Autor ELM publikuje schemat blokowy i kod źródłowy - można coś przylookać.
Zerknąłem na rysunek ze strukturą regulatora - dokładnie to o czym pisałem - regulator P-PI

Zrobiłem symulację. Jest pięknie. Teraz przerabiam nieco elektronikę i wrzucam to do procka.
- 04 gru 2008, 05:46
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
> Empirycznie dla K=390, Ti=40 i Td=10,65 odpowiedź regulatora jes prawie bez przerzutu.
Powiem jedno - piękne nastawy!
> Myślę, że ograniczenie PWM +/- 1330 nie powinno być uwzględniane w symulacji.
Musi być, bo takie ograniczenie ma układ rzeczywisty. Zresztą mogę wrzucić te nastawy do sterownika i ściągnąć odpowiedź na skok i porównać go z odpowiedzią z symulacji.
>okaże się że zakres ograniczenia wyniesie +/-128 i reakcji prawie nie będzie.
Dokładnie TAK!. Symulacja działa poprawnie - jak układ rzeczywisty.
Ale chyba już wiem gdzie leży problem. Sterownik serwa DC ze strukturą: uchyb położenia => PID => wyjście PWM nigdy nie zadziała poprawnie w układzie rzeczywistym (ze względu na ograniczenie wyjścia). Porobiłem jeszcze sporo innych symulacji - tylko struktury: PI_P, P_PI, P_PID powinny działać poprawnie. Spróbuję dzisiaj załadować je w procek - powinno być OK!
Powiem jedno - piękne nastawy!
> Myślę, że ograniczenie PWM +/- 1330 nie powinno być uwzględniane w symulacji.
Musi być, bo takie ograniczenie ma układ rzeczywisty. Zresztą mogę wrzucić te nastawy do sterownika i ściągnąć odpowiedź na skok i porównać go z odpowiedzią z symulacji.
>okaże się że zakres ograniczenia wyniesie +/-128 i reakcji prawie nie będzie.
Dokładnie TAK!. Symulacja działa poprawnie - jak układ rzeczywisty.
Ale chyba już wiem gdzie leży problem. Sterownik serwa DC ze strukturą: uchyb położenia => PID => wyjście PWM nigdy nie zadziała poprawnie w układzie rzeczywistym (ze względu na ograniczenie wyjścia). Porobiłem jeszcze sporo innych symulacji - tylko struktury: PI_P, P_PI, P_PID powinny działać poprawnie. Spróbuję dzisiaj załadować je w procek - powinno być OK!
- 03 gru 2008, 18:35
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
- 03 gru 2008, 11:39
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
Zdjąłem charakterystykę.
Tym bardziej że to "typowa" transmitancja. Dla sterowania napięciowego i odczytu położenia z enkodera to obiekt astatyczny typu całka z inercją. Pochodna (czyli prędkość) to będzie obiekt inercyjny I-wszego rzędu. Dla sterowania prądowego to będzie podwójne całkowanie.
Silnik talerzowy (dyskowy), bez obciążenia, więc tarcie pomijalnie małe.
Tym bardziej że to "typowa" transmitancja. Dla sterowania napięciowego i odczytu położenia z enkodera to obiekt astatyczny typu całka z inercją. Pochodna (czyli prędkość) to będzie obiekt inercyjny I-wszego rzędu. Dla sterowania prądowego to będzie podwójne całkowanie.
Silnik talerzowy (dyskowy), bez obciążenia, więc tarcie pomijalnie małe.
- 03 gru 2008, 05:20
- Forum: Elektronika CNC
- Temat: Sterownik serwa DC - szczegóły działania PIDa
- Odpowiedzi: 42
- Odsłony: 9766
Mam ograniczenie zarówno nasycenia całkowania jak i sygnału wyjściowego. I tu pies pogrzebany. Całkowanie nawet wyłączam.
Przykład: silnik sterowany napięciowo (PWM) to całkowanie z inercją o parametrach K=40 T=0,04s. Zakładam czas regulacji 0,01s, to Kp=390, Ki=0 (aby było łatwiej), Kd=12000! Krotki czas regulacji => duże Kp => duże Kd aby stłumić drgania od dużego Kp. Tylko że przy takich nastawach wartość wyjściowa od razu leci w kosmos. Wyjście PIDa oczywiście ograniczam do -1330..+1330 ale tym samym "psuję" działanie różniczki która chce stłumić drgania. No wiec wydłużam czas regulacji, zmniejsza mi się Kp i Kd, jest coraz lepiej, ale silnik robi się coraz bardziej miękki.
Nie wiem czy sterowanie z pętlami stabilizacji prądu, prędkości i pozycji załatwia ten problem choćby dlatego że silnik sterowany prądowo to całkiem inny obiekt (podwójne całkowanie).
[ Dodano: 2008-12-03, 08:17 ]
Ten program do symulacji wszystko wyjaśni:
www.korinsj.com.pl/pub/regtest.exe
Proszę nacisnąć "GO!". Potem ustawić ograniczenie sygnału wyjściowego (pomiędzy PID a obiektem) na 1330 (czyli dla mnie jest to max PWM - 100%) i znów nacisnąć "GO!".
Będzie widać o co chodzi.
Przykład: silnik sterowany napięciowo (PWM) to całkowanie z inercją o parametrach K=40 T=0,04s. Zakładam czas regulacji 0,01s, to Kp=390, Ki=0 (aby było łatwiej), Kd=12000! Krotki czas regulacji => duże Kp => duże Kd aby stłumić drgania od dużego Kp. Tylko że przy takich nastawach wartość wyjściowa od razu leci w kosmos. Wyjście PIDa oczywiście ograniczam do -1330..+1330 ale tym samym "psuję" działanie różniczki która chce stłumić drgania. No wiec wydłużam czas regulacji, zmniejsza mi się Kp i Kd, jest coraz lepiej, ale silnik robi się coraz bardziej miękki.
Nie wiem czy sterowanie z pętlami stabilizacji prądu, prędkości i pozycji załatwia ten problem choćby dlatego że silnik sterowany prądowo to całkiem inny obiekt (podwójne całkowanie).
[ Dodano: 2008-12-03, 08:17 ]
Ten program do symulacji wszystko wyjaśni:
www.korinsj.com.pl/pub/regtest.exe
Proszę nacisnąć "GO!". Potem ustawić ograniczenie sygnału wyjściowego (pomiędzy PID a obiektem) na 1330 (czyli dla mnie jest to max PWM - 100%) i znów nacisnąć "GO!".
Będzie widać o co chodzi.