-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
-for-mail
From: "roxy" <k...@o...pl>
Newsgroups: pl.misc.elektronika
Subject: Algorytm regulatora PID
Date: Mon, 10 May 2010 23:29:11 +0200
Organization: http://onet.pl
Lines: 72
Message-ID: <hs9tr9$m81$1@news.onet.pl>
NNTP-Posting-Host: 91.214.36.65
X-Trace: news.onet.pl 1273526953 22785 91.214.36.65 (10 May 2010 21:29:13 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Mon, 10 May 2010 21:29:13 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
X-EsetScannerBuild: 7097
Xref: news-archive.icm.edu.pl pl.misc.elektronika:588241
[ ukryj nagłówki ]Znalazlem na stronie Atmel'a fragment programu realizujacy regulator PID dla
uC.
Czy w linii 93 nie ma aby bledu?
Wedlug mnie powinna ona wygladac raczej tak
d_term = pid_st->D_Factor * (processValue - pid_st->lastProcessValue);
czy ktos moze potwierdzic poprawnosc ktores z wersji?
00060 {
00061 int16_t error, p_term, d_term;
00062 int32_t i_term, ret, temp;
00063
00064 error = setPoint - processValue;
00065
00066 // Calculate Pterm and limit error overflow
00067 if (error > pid_st->maxError){
00068 p_term = MAX_INT;
00069 }
00070 else if (error < -pid_st->maxError){
00071 p_term = -MAX_INT;
00072 }
00073 else{
00074 p_term = pid_st->P_Factor * error;
00075 }
00076
00077 // Calculate Iterm and limit integral runaway
00078 temp = pid_st->sumError + error;
00079 if(temp > pid_st->maxSumError){
00080 i_term = MAX_I_TERM;
00081 pid_st->sumError = pid_st->maxSumError;
00082 }
00083 else if(temp < -pid_st->maxSumError){
00084 i_term = -MAX_I_TERM;
00085 pid_st->sumError = -pid_st->maxSumError;
00086 }
00087 else{
00088 pid_st->sumError = temp;
00089 i_term = pid_st->I_Factor * pid_st->sumError;
00090 }
00091
00092 // Calculate Dterm
00093 d_term = pid_st->D_Factor * (pid_st->lastProcessValue -
processValue);
00094
00095 pid_st->lastProcessValue = processValue;
00096
00097 ret = (p_term + i_term + d_term) / SCALING_FACTOR;
00098 if(ret > MAX_INT){
00099 ret = MAX_INT;
00100 }
00101 else if(ret < -MAX_INT){
00102 ret = -MAX_INT;
00103 }
00104
00105 return((int16_t)ret);
00106 }
__________ Informacja programu ESET NOD32 Antivirus, wersja bazy sygnatur wirusow
5103 (20100510) __________
Wiadomosc zostala sprawdzona przez program ESET NOD32 Antivirus.
http://www.eset.pl lub http://www.eset.com
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
Najnowsze wątki
- 2025-12-27 pompa CO
- 2025-12-27 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]