RTV forum PL | NewsGroups PL

Jak przełożyć wartości PID z Atmela do sterowania grzałką z PWM w C#?

PID z Noty Atmela

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak przełożyć wartości PID z Atmela do sterowania grzałką z PWM w C#?

Goto page Previous  1, 2, 3  Next

A.L.
Guest

Mon Jan 27, 2014 12:29 am   



On Sun, 26 Jan 2014 23:00:20 +0100, Mario <mariuszd@w.pl> wrote:

Quote:
W dniu 2014-01-26 19:56, A.L. pisze:
On Sun, 26 Jan 2014 18:37:53 +0100, "Lam3r" <Lam3r@Lam3r.pl> wrote:

Witajcie,

Wziąłem sobie źródełka w C algorytmu PID z noty avr221 Atmela ale zamiast w
procesorku to odpaliłem to testowo w C# w celu pobawienia się. Napisałem
sobie programik, który mi wyświetla wszystkie zmienne i mogę sobie zadawać
wszystko.

Niby działa ale mam lamerskie pytanie, nie śmiejcie się :-)

z głównej funkcji PID dostaję int16_t i faktycznie pojawiają się tam
wartości od -32768 do +32767.
Tylko co to do diabła oznacza? Jak T zadana zrówna się z Tzmierzoną to ta
wartość się zatrzymuje i już dalej nie liczy Sad
Pomińmy ustawianie Kp, Ki, Kd, bo na to przyjdzie czas później.

Jak mam teraz przejść na sterowanie grzałką w przedziale 0 do 100% np
generując PWM czy załączając przekaźnik na ileś % czasu skoro mam dziwnie
wyglądający int16_t?

Pozdrawiam,
Lam3r

PID jest algorytmem ciaglym regulacji i nei nadaje sie do sterowania
grrzalka. Do sterowania grzalka stosuje sie regulatowy dwupolozeniowe,
ktore mozna usprawnic tak aby aproksymowaly regulator PI (nie pamietam
czy moga PID)

Jaka cecha grzałki uniemożliwia sterowanie nią w sposób ciągły?

Zadna. Prop[onuje pzremyslec moja analogie ktora napisalem pare
linijek wyzej: gacie TEZ mozna zalozyc pzrez glowe. Tylko trudniej.

Zeby zastosowac ciagly PID doregulacji gzralki nalezy sobie zbudowac
urzadzenie ktore ozreksztalci sygnal cyfrowy na napiecie 0 - 220 V i
tyle amper ile grzalka potzrebuje. Potem jeszcze drobiazg.

No i po co skoro mozan zastosowac pzrekaznik ktory bedzie grzalek
wlaczal i wylaczal? A procesor bedzie to tak robil zeby miec prawo
regulacji PID.

A,L,

A.L.
Guest

Mon Jan 27, 2014 12:30 am   



On Sun, 26 Jan 2014 23:00:06 +0100, Mario <mariuszd@w.pl> wrote:

Quote:
W dniu 2014-01-26 22:41, ARO pisze:
Użytkownik "Mirek" <i_tak@zaspamowany.adres> napisał :


Zaprzeganie PIDa do regulacji temperatury jest lekko na
wyrost.

Dlaczego? Odpowiednio nastrojony powinien dobrze reagować na zmiany
temperatury zewnętrznej, na otwarcie okna - szybko wyrównuje do
zadanej i nie przegrzewa.

W rzeczy samej milordzie. Wszystko zależy od tego czego wymaga obiekt
regulacji. W praktyce sprawa zdeydowanie się upraszcza, bo element
wykonawczy (grzałka) zmienia stan obiektu tylko w jedną stronę - tylko
grzeje - stąd moja propozycja.

Grzanie PIDem ma swoje zalety. Układ szybko dogrzeje się do zadanej
temperatury i nie będzie oscylował wokół niej.

nie widziales przypadkiem niestabilnego PIDa?...

A.L.

Mario
Guest

Mon Jan 27, 2014 1:48 am   



W dniu 2014-01-27 00:29, A.L. pisze:
Quote:
On Sun, 26 Jan 2014 23:00:20 +0100, Mario <mariuszd@w.pl> wrote:

W dniu 2014-01-26 19:56, A.L. pisze:
On Sun, 26 Jan 2014 18:37:53 +0100, "Lam3r" <Lam3r@Lam3r.pl> wrote:

Witajcie,

Wziąłem sobie źródełka w C algorytmu PID z noty avr221 Atmela ale zamiast w
procesorku to odpaliłem to testowo w C# w celu pobawienia się. Napisałem
sobie programik, który mi wyświetla wszystkie zmienne i mogę sobie zadawać
wszystko.

Niby działa ale mam lamerskie pytanie, nie śmiejcie się :-)

z głównej funkcji PID dostaję int16_t i faktycznie pojawiają się tam
wartości od -32768 do +32767.
Tylko co to do diabła oznacza? Jak T zadana zrówna się z Tzmierzoną to ta
wartość się zatrzymuje i już dalej nie liczy Sad
Pomińmy ustawianie Kp, Ki, Kd, bo na to przyjdzie czas później.

Jak mam teraz przejść na sterowanie grzałką w przedziale 0 do 100% np
generując PWM czy załączając przekaźnik na ileś % czasu skoro mam dziwnie
wyglądający int16_t?

Pozdrawiam,
Lam3r

PID jest algorytmem ciaglym regulacji i nei nadaje sie do sterowania
grrzalka. Do sterowania grzalka stosuje sie regulatowy dwupolozeniowe,
ktore mozna usprawnic tak aby aproksymowaly regulator PI (nie pamietam
czy moga PID)

Jaka cecha grzałki uniemożliwia sterowanie nią w sposób ciągły?

Zadna. Prop[onuje pzremyslec moja analogie ktora napisalem pare
linijek wyzej: gacie TEZ mozna zalozyc pzrez glowe. Tylko trudniej.

Zeby zastosowac ciagly PID doregulacji gzralki nalezy sobie zbudowac
urzadzenie ktore ozreksztalci sygnal cyfrowy na napiecie 0 - 220 V i
tyle amper ile grzalka potzrebuje. Potem jeszcze drobiazg.

Wystarczy sterowanie grupowe. Triaki nie są drogie.
A co z ogrzewaniem gazowym? Modulacja płomienia to też zakładanie majtek
przez głowę?


--
pozdrawiam
MD

Mario
Guest

Mon Jan 27, 2014 1:50 am   



W dniu 2014-01-27 00:30, A.L. pisze:
Quote:
On Sun, 26 Jan 2014 23:00:06 +0100, Mario <mariuszd@w.pl> wrote:

W dniu 2014-01-26 22:41, ARO pisze:
Użytkownik "Mirek" <i_tak@zaspamowany.adres> napisał :


Zaprzeganie PIDa do regulacji temperatury jest lekko na
wyrost.

Dlaczego? Odpowiednio nastrojony powinien dobrze reagować na zmiany
temperatury zewnętrznej, na otwarcie okna - szybko wyrównuje do
zadanej i nie przegrzewa.

W rzeczy samej milordzie. Wszystko zależy od tego czego wymaga obiekt
regulacji. W praktyce sprawa zdeydowanie się upraszcza, bo element
wykonawczy (grzałka) zmienia stan obiektu tylko w jedną stronę - tylko
grzeje - stąd moja propozycja.

Grzanie PIDem ma swoje zalety. Układ szybko dogrzeje się do zadanej
temperatury i nie będzie oscylował wokół niej.

nie widziales przypadkiem niestabilnego PIDa?...

Zakładam, że jak się uruchamia PIDa to dobiera się jego parametry. I
pracuje stabilnie. Natomiast proporcjonalny nie ma szans pracować nie
kolebiąc się wokół nastawionej wartości.


--
pozdrawiam
MD

A.L.
Guest

Mon Jan 27, 2014 2:21 am   



On Mon, 27 Jan 2014 01:50:33 +0100, Mario <mariuszd@w.pl> wrote:

Quote:

Zakładam, że jak się uruchamia PIDa to dobiera się jego parametry. I
pracuje stabilnie. Natomiast proporcjonalny nie ma szans pracować nie
kolebiąc się wokół nastawionej wartości.

Nieprawda

A.L.

J.F.
Guest

Mon Jan 27, 2014 2:29 am   



Dnia Sun, 26 Jan 2014 17:29:10 -0600, A.L. napisał(a):
Quote:
Zadna. Prop[onuje pzremyslec moja analogie ktora napisalem pare
linijek wyzej: gacie TEZ mozna zalozyc pzrez glowe. Tylko trudniej.

Zeby zastosowac ciagly PID doregulacji gzralki nalezy sobie zbudowac
urzadzenie ktore ozreksztalci sygnal cyfrowy na napiecie 0 - 220 V i
tyle amper ile grzalka potzrebuje. Potem jeszcze drobiazg.

To sie zrobi.

Quote:
No i po co skoro mozan zastosowac pzrekaznik ktory bedzie grzalek
wlaczal i wylaczal?

Regulacja bedzie lepsza. Nie bedzie wahan z powodu wolnego
przelaczania.

J.

A.L.
Guest

Mon Jan 27, 2014 2:35 am   



On Mon, 27 Jan 2014 02:29:06 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:

Quote:

Regulacja bedzie lepsza. Nie bedzie wahan z powodu wolnego
przelaczania.


Czego nie bedzie?

A.L.

Mario
Guest

Mon Jan 27, 2014 2:40 am   



W dniu 2014-01-27 02:21, A.L. pisze:
Quote:
On Mon, 27 Jan 2014 01:50:33 +0100, Mario <mariuszd@w.pl> wrote:


Zakładam, że jak się uruchamia PIDa to dobiera się jego parametry. I
pracuje stabilnie. Natomiast proporcjonalny nie ma szans pracować nie
kolebiąc się wokół nastawionej wartości.

Nieprawda

Albo dasz duże wzmocnienie błędu i będzie w miarę szybka reakcja, ale z
przeregulowaniem, albo zmniejszysz wzmocnienie i będzie stabilnie, ale
reakcja będzie powolna i wartość rzeczywista będzie przesunięta w dół
względem zadanej.

--
pozdrawiam
MD

J.F.
Guest

Mon Jan 27, 2014 2:45 am   



Dnia Sun, 26 Jan 2014 23:25:22 +0100, Lam3r napisał(a):
Quote:
"J.F." <jfox_xnospamx@poczta.onet.pl> wrote in message
Musisz to sprzac z ukladem wykonawczym, w taki sposob ze np wartosc 0
powoduje odlaczenie zasilania, 10000 zasilanie pelna moca, a 5000
zasilanie polowa mocy itp.
Czy wartosci skrajne maja byc 0 i 10000, -32000 i +32000 czy
np -200 i +200 - temat na dluzsza dyskusje.

Czyli chwila...
Jeżeli mam int16_t -32k...+32k
Czy to co na minus to oznacza, że miałbym chłodzić?

Jesli masz taka potrzebe ...

Quote:
Chłodzenia nie mam więc
mogę jedynie dojść od góry do zera i ujemne ignorować.

Tam jest czlon I, sam sobie scalkuje potrzebna poprawke.
Moze byc nawet nawet tak ze -2000 oznacza wylaczenie, a -1000 i wyzej
grzanie pelna moca.
Bedzie potrzeba grzania na 50%, to regulator sa dojdzie do -1500.

Quote:
Pozostaje 0 .. +32767 ale to dużo działek. Mam to przeskalować np podzielić
przez 128 czy coś w tym stylu ?

Jedna z mozliwosci.

Quote:
On się zachowuje dziwnie. Jak włączam program z Tzadaną = Tzmierzoną to zroi
na zero. Jak lekko udaję, że obiekt się chłodzi to wolno liczy w górę. Jak
się temperatury wyrównają to liczenie staje i zostaje na tylu ile naliczył.
Wcale do zera nie wraca. jak naliczył 5000 to tam się zatrzyma.

I prawidlowo. Masz czlon I, jest za zimno, to dajemy mocy coraz
wiecej. Jak temperatura wzrosnie do zadanej ... to trzymamy te moc, bo
widac dobra byla. Do zera ma wrocic jak zadasz na tyle niska
temperature, ze grzanie nie bedzie potrzebne.

Quote:
Może to problem braku odpowiedzi układu.

Oczywiscie. Chcesz zobaczyc jak reguluje, a nie masz obiektu ani
sprzezenia zwrotnego ?
Sam regulator dziala wedle prostego wzoru

Wy=Kp*We+Ki*calka(We)+Kd*pochodna(We)
Calka i pochodna po czasie. A We=Tzadana-Tzmierzona

J.

A.L.
Guest

Mon Jan 27, 2014 2:47 am   



On Mon, 27 Jan 2014 02:40:52 +0100, Mario <mariuszd@w.pl> wrote:

Quote:
W dniu 2014-01-27 02:21, A.L. pisze:
On Mon, 27 Jan 2014 01:50:33 +0100, Mario <mariuszd@w.pl> wrote:


Zakładam, że jak się uruchamia PIDa to dobiera się jego parametry. I
pracuje stabilnie. Natomiast proporcjonalny nie ma szans pracować nie
kolebiąc się wokół nastawionej wartości.

Nieprawda

Albo dasz duże wzmocnienie błędu i będzie w miarę szybka reakcja, ale z
przeregulowaniem, albo zmniejszysz wzmocnienie i będzie stabilnie, ale
reakcja będzie powolna i wartość rzeczywista będzie przesunięta w dół
względem zadanej.

STABILNY regulator P czy PD wcale sie nei bedzie w stanie ustalonym
"kolebal". JEdyna roznica miedzy regulatorem z akcja I i bez akcji I
jest taka, ze regulator z akcja I ma w stanie uctalonym uchyb zerowy,
abez akji I nie ma. Natomiast zachowanei dynamiczne obu regulatorow
jest w przyblizeniu takie samo.

Poza tym STABILNOSC niz nei ma wspolnego z PZREREGULOWANIEM

A.L.

J.F.
Guest

Mon Jan 27, 2014 3:03 am   



Dnia Sun, 26 Jan 2014 23:14:21 +0100, Lam3r napisał(a):
Quote:
Zgodnie z teorią -200 powinno chłodzić z mocą powiedzmy 200, 0 - nie robić
nic, a +200 grzać z mocą 200.
W praktyce pewnie i tak będzie można dobrać parametry PID żeby działąło
dobrze.

Właśnie edukuję się z PID i chcę sobie coś zbudować na czym będę robił
eksperymenty.
Dalej nie rozumiem jak mam to przeliczyć na wypełnienie. Grzałeczkę chcę dla

Jak chcesz. Zacznij np od tego ze -1000 to 0%, a +1000 to 100% -
zobaczysz w praktyce jak to dziala w ciekawym przypadku

Quote:
zabawy, bo szybko zestawiłem stanowisko. Mogę użyć lutownicy nawet.
A jak często mam wykonywać taki algorytm? Dla grzania to ile razy na sekundę
czy lepiej raz na sekundę czy jak ?

W zaleznosci od obiektu. Do grzania lutownicy to pewnie raz na sekunde
wystarczy, gora kilka razy.
Zbyt czesto powoduje problemy z calkowaniem - tam pewnie dodawanie
jest ? to jak bedziesz obliczal np co 1ms, to bedzie dodawal, dodawal,
sumator sie przekreci, a temperatura ledwo drgnie.

Quote:
Mogę zrobić nawet sterowanie fazowe
ssr-em ale potrzebyję "wypełnienie" od 0 do 100 okresów. A może od zera do
50 okresów, a może do 1000 okresów ?

Fazowe chyba nie, tylko grupowe. Okres tego grupowego sterowania PWM
nie moze byc zbyt duzy, bo pewnie nie chcesz zeby np przez minute
grzac a druga minute czekac.
Przyjac za podstawe np 100 okresow sieci (2s) to calkiem rozsadnie,
sterowac ile w tym czasie okreso bedzie przepuszczonych ... tylko nie
ma sensu regulatora co sekunde przeliczac, skoro PWM wartosc wyjsciowa
tylko co 2s czyta.

J.

Mario
Guest

Mon Jan 27, 2014 3:30 am   



W dniu 2014-01-27 02:47, A.L. pisze:
Quote:
On Mon, 27 Jan 2014 02:40:52 +0100, Mario <mariuszd@w.pl> wrote:

W dniu 2014-01-27 02:21, A.L. pisze:
On Mon, 27 Jan 2014 01:50:33 +0100, Mario <mariuszd@w.pl> wrote:


Zakładam, że jak się uruchamia PIDa to dobiera się jego parametry. I
pracuje stabilnie. Natomiast proporcjonalny nie ma szans pracować nie
kolebiąc się wokół nastawionej wartości.

Nieprawda

Albo dasz duże wzmocnienie błędu i będzie w miarę szybka reakcja, ale z
przeregulowaniem, albo zmniejszysz wzmocnienie i będzie stabilnie, ale
reakcja będzie powolna i wartość rzeczywista będzie przesunięta w dół
względem zadanej.

STABILNY regulator P czy PD wcale sie nei bedzie w stanie ustalonym
"kolebal".

Nie będzie kolebał ale będzie miał duży uchyb Smile A dodatkowo w przypadku
samego P będzie powoli reagował.

JEdyna roznica miedzy regulatorem z akcja I i bez akcji I
Quote:
jest taka, ze regulator z akcja I ma w stanie uctalonym uchyb zerowy,
abez akji I nie ma. Natomiast zachowanei dynamiczne obu regulatorow
jest w przyblizeniu takie samo.

Była mowa o różnicy między P a PID a nie między PD a PID. A zachowanie
dynamiczne oczywiście będzie takie samo. No chyba że po wyłączeniu bloku
I uznasz, że uchyb jest za duży i zwiększysz wzmocnienie :)

Quote:
Poza tym STABILNOSC niz nei ma wspolnego z PZREREGULOWANIEM

Natomiast i niestabilność i przeregulowanie mogą wystąpić jeśli dasz
duże wzmocnienie chcąc uzyskać w miarę szybką odpowiedz regulatora P.




--
pozdrawiam
MD

A.L.
Guest

Mon Jan 27, 2014 3:38 am   



On Mon, 27 Jan 2014 03:30:06 +0100, Mario <mariuszd@w.pl> wrote:

Quote:

Natomiast i niestabilność i przeregulowanie mogą wystąpić jeśli dasz
duże wzmocnienie chcąc uzyskać w miarę szybką odpowiedz regulatora P.

W regulatorze P duze wzmocnienie daje sie po to zeby miec maly uchyb
ustalony a nie szykkosc reakcji

A.L.

Lam3r
Guest

Mon Jan 27, 2014 5:16 pm   



"J.F." <jfox_xnospamx@poczta.onet.pl> wrote in message
news:1d3wwgua4mntv$.1svd1hxow6u14.dlg@40tude.net...

Quote:
Jak chcesz. Zacznij np od tego ze -1000 to 0%, a +1000 to 100% -
zobaczysz w praktyce jak to dziala w ciekawym przypadku

A czemu akurat arbitralnie przyjąłeś +/- 1000 ?
Aktualnie piszę kawałek kodu, który zasymuluje obiekt. Zobaczymy co wyjdzie
Smile Jak tutaj w PC zacznie chodzić to i w procku będzie łatwiej Smile
Jeszcze nie wiem jak ale dumam nad tym :-)

Miałem na myśli sterowanie grupowe nie fazowe, przejęzyczenie...

J.F
Guest

Mon Jan 27, 2014 5:43 pm   



Użytkownik "Lam3r" napisał w wiadomości
Quote:
"J.F." <jfox_xnospamx@poczta.onet.pl> wrote in message
Jak chcesz. Zacznij np od tego ze -1000 to 0%, a +1000 to 100% -
zobaczysz w praktyce jak to dziala w ciekawym przypadku

A czemu akurat arbitralnie przyjąłeś +/- 1000 ?

Doswiadczenie przeze mnie przemawia :-)

W tym algorytmie moga byc klopoty z arytmetyka i obliczeniami, zarowno
z przepelnianiem jak i zaokraglaniem i przy malych liczbach i przy
duzych.
Te 1000 wydaje sie bezpieczne.

J.

Goto page Previous  1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak przełożyć wartości PID z Atmela do sterowania grzałką z PWM w C#?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map