-
Data: 2023-03-30 21:03:44
Temat: Re: Termopara i MAX6675
Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Tue, 28 Mar 2023 21:46:05 +0200, Mirek wrote:
> On 20.03.2023 20:13, Mirek wrote:
>> On 2.03.2023 20:31, Mirek wrote:
>>> Teraz co do programu - ki jest ewidentnie skopane.
>>> liczy go tak:
>>>
>>> self.iterm += (error * timeDelta * self.ki)
>>> output = self.kp * error + self.iterm + self.kd * dErr
>>>
>>> a powinno być wg wikipedii tak:
>>>
>>> integral := integral + error × dt
>>> output := Kp × proportional + Ki × integral + Kd × derivative
>>>
>>
>> Bzdury pisałem - wychodzi przecież na to samo.
>> Ale picoReflow nadal nie ogarnięty,
>>
> Ja rozumiem, że nikogo to nie interesuje, albo nikt nie wie, a u tych,
> którzy wiedzą mam już cichego plonka (zresztą z wzajemnością ;) ), ale
> mimo to podzielę się swoimi "odkryciami":
>
> Jedyna wersja, która jako-tako działa:
> integral = (ki * integral) + (error * timeDelta * ki)
> następnie ograniczamy integral, np. od -1 do 1 żeby nie szybowało w
> kosmos:
> integral = sorted(-1,integral,1)[1]
Nie ma lepszej metody ograniczenia?
Bo jak na to patrze, to włos mi sie jerzy.
No i tu:
-jest istotne czy ten integral zawiera Ki, czy nie,
-czy zakres -1...+1 jest własciwy?
> skrót:
> integral += error * timeDelta * ki
> Nie działa prawidłowo.
Stop. Zrobiłes cos zupelnie innego.
integral += error * timeDelta * ki
liczy w miare prawidło całke.
Tzn jesli integral wynosi np 0.5, a error dojdzie do 0,
to integral sie już nie zmienia.
w twojej wersji
integral = (ki * integral) + (error * timeDelta * ki)
w takim przypadku integral (początkowe 0.5) bedzie w kazdym kroku
mnozone przez Ki.
Dla Ki>1 bedzie uciekal w strone nieskonczonosci.
Dla Ki<1 (i >0) bedzie asymptotycznie dochodzil do zera.
> ponieważ w przypadku niezerowego integral, a
> zerowego error - wynikowe integral zostaje stałe, niezerowe.
Ale taka jest wlasnie idea PID - jak error dojdzie do zera, to wlasnie
czlon całkowy ma zapewnic potrzebne wysterowanie wyjscia.
> Jeszcze gorzej to wygląda w przypadku wersji z Wikipedii.
Ogolnie tak samo dobrze.
J.
Następne wpisy z tego wątku
- 30.03.23 21:13 J.F
- 30.03.23 21:17 J.F
- 30.03.23 21:38 Mirek
- 30.03.23 22:00 Mirek
- 31.03.23 10:39 J.F
- 31.03.23 10:59 J.F
- 31.03.23 20:33 Mirek
- 31.03.23 21:07 Mirek
- 31.03.23 22:34 J.F
- 12.04.23 19:28 Mirek
- 14.04.23 12:54 J.F
- 14.04.23 18:59 Mirek
Najnowsze wątki z tej grupy
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
Najnowsze wątki
- 2025-02-14 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-14 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-02-14 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-02-14 Ściemniacze na parkingach
- 2025-02-13 kilka pytań o klimę
- 2025-02-13 genialny pomysł
- 2025-02-12 diesel z otwartą komorą
- 2025-02-14 60 mA dużo czy spoko?
- 2025-02-13 Jaka moc wi-fi ?
- 2025-02-12 Drabina rozsuwana
- 2025-02-13 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-02-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-02-13 Warszawa => MENA New Buissnes Manager <=
- 2025-02-13 Łódź => NodeJS Developer <=