Author Archives: admin

PID, dalis #1

Teorija aišku. Kaip ir visi “interneto puslapiai” turiu įdėti šią formulę vogta iš vikipedijos…

PID

Tačiau tai paprasti puslapiai- mano “brain dump” t.y. čia bus neteisingas paaiškinimas kaip aš supratau.

Formulę susideda iš trijų dalių: prie Kp, Ki ir Kd.

Kp, tai proporcingas skaičius nuo klaidos. Išmatuojam sakysim temperatūrą, palyginam su reikiama, gaunam skirtumą ir jį naudojam rezultatui. Pats koeficientas Kp tai tik ant kiek jautriai reaguojam. Gaunasi- per šaltas, dar padidinam liepsną po puodu. Kuo skirtumas (klaida) mažesnė, tuo mažiau įtakoja. Gaunasi matematinis paradoksas, kad niekada nesigaus tiksli temperatūra. Aišku realiam pasaulyje dėl apvalinimo ir matavimo tikslumo, rezultatas pasiekiamas. Tačiau galimas didelis overšotas (per didelė temperatūra) arba labai lėtai pasiekiamas reikiamas rezultatas.

Ki, tai integralinė dalis. Čia kaupiasi klaida. Klaida turi ženklą (per karštá, per šaltá), o kai viskas gerai, tai klaida turi nusinulinti. Jei dėl kažkokių nors priežasčių tai nepavyksta, tai “likutinė” susikaupusi klaida priveda rezultatą prie teisybės. Įtariu, kad šita dalis “amortizuoja” reakciją.
Mano matematiniam modelyje, kai sistema stabilizuojasi, “integralo” reikšmė rodo mano teorinio šildytuvo išskirta energiją: (0.98 naudingumas, o integralas – 102. Čia 10.2W išskiriama energija, o 10W atšalimas). Čia kaip ir sistemos nuostoliai. Tuo tarpu Kp dalis jau nulinė, nes nebėra temperatūros skirtumo.

Kd, pati mistiškiausia, išvestinė dalis. Paprastai šnekant, tai kokiu greičiu kažkas keičiasi ir pagal tai bandom spėti kas bus ateityje. Kadangi formulė paprasta, tai spėjimas gali ir nepataikyti.

Visų šių parametrų suma ir yra reguliuojamas poveikis. Tačiau čia prasideda tiuninimas su koeficientais: Kp, Ki ir Kd. Visiškai nėra jokių universalių skaičių, kiekviena sistema turi savo skaičius. Žodis sistema reiškia ne tik matematinę formulę, bet ir visus fizinius parametrus ir bėdas: matavimo tikslumus, sistemos inerciją (tiek šildymo, tiek matavimo, tiek šildomo objekto). Yra net keli metodai, kaip koeficientus paskaičiuoti, bet geriausiai stebėti situaciją ir koeficientus pasitiuninti rankiniu metodu. Panaudojus neteisingus (dažniausiai per didelius) koeficientus, sistema gali “siubuoti” t.y. suptis kaip kokios supynės ir niekada nesusistabilizuotis. O per maži skaičiai labai pailgina sistemos reakcijos laiką. (nulinės reikšmės išjungia atitinkamas formulės dalis: taip gaunasi PI ir P kontroleriai.)

Formulė atrodo sudėtinga, bet čia tik dėl mandro užrašymo. Visual Basic kalboje tai viskas paprasčiau:

    Private Sub DoPID()
        P_error = setpoint - measured
        P_proportional = P_error
        P_integral = P_integral + P_error * pid_dt
        P_deritative = (P_error - P_previous_error) / pid_dt
        output = pid_kp * P_proportional + pid_ki * P_integral + pid_kd * P_deritative
        P_previous_error = P_error
    End Sub

Kaip ir viskas. Šią funkciją (paprogramę) reikia paleidinėti pastoviai, teoriškai kas “pid_dt” laiko tarpą. Tačiau tikslūs skaičiai reikalingi tik tada, kai skaičiuojam tikslius vatus ar džiaulius. Jei skaičiuojam santykiniais papūginiais vienetais, tai net “dt” galima išpaprastinti. Ir reikia išsaugoti dvi reikšmes sekančiam skaičiavimui: “P_previous_error” ir kaupiamąjį integralą “P_integral“.

Šiame matematiniam modelyje “output” gali būti ir neigiamas (čia gautusi kaip šaldymas), tačiau realiam pasaulyje šildymo elementas netik negali šaldyti, bet ir jo galingumas ribotas. Todėl programoje naikinam neigiamus skaičius ir ribojam maksimumą. Šie ribojimai visiškai neįtakoja funkcijos rezultato.

Pratesimas – 2 dalis.

PID, dalis #0

Pasišlykštėjęs kiniškų termokontroleriu nutariau kiek pasidomėti PID kontrolerio teorija. O tam reikėjo pasirašyti šildytuvo modelį (emuliatorių).

PID emuliatorius

Gavosi maždaug toks. Tai 100ml vandens kuris neverda (sferinio arklio vakuume) kaitintuvas su stabiliu aušinimu. Man tikrai patiko, kaip kontroleris reaguoja į netikėta aušinimo pastiprinimą ir kaip jis stabilizuojasi.

Kol kas tik tiek. Taip buvo pirmas vakaras. Pratesimas jau čia.

Video testas arba mikroskopas

Tai tik video testas. Tai mano analoginis mikroskopas (HD!) kur per tris koaksalus ateina singnalas į dėžutę kuri konvertuoja į HDMI. Tada HDMI su kita dėžute konvertuojasi į USB…

Kiek vatos plaukų!

Tai Optilia W10x-HD.

Beja, viską litavau aš 🙂 .

Vamzdinė krosnis

Prireikė eksperimentui vamzdinės krosnelės- reikia konvertuoti iridžio oksidą į iridžio metalą. Viena bėda- iridžio oksidas lengvai garuoja. O kaitinti reikia vandenilio atmosferoje.

vamzdine krosnis

Todėl iš visokių atliekų (elektrotechninės dėžutės, poros sudaužytų lempų, plaukų feno ir seno stikliuko nuo Leco aparato) gimė toks agregatas.

Deja, termokontroleris nėra PID, o paprastas ON/OFF ir dėl sistemos innercijos žiauriai netiksliai veikia. Bet eksperimentams tinkamas. Vandenilis tiekiamas iš Generatoriaus – vienos iš archyvinių agregatų.

vamzdine krosnis

Gerai palaikius, viduriukas gerai kaista:

Ir oksidas i metala

Pagal miltelių pokyčius, reakcija veikia. Bet neaišku kiek medžiagos praradau.