Högskolan i Halmstad Sektionen för Informationsvetenskap, Dator- och Elektroteknik 08/ Thomas Munther LABORATION i Styr- och Reglerteknik för U/EI Målsättning: Använda tumregler för att ställa in regulatorer för olika processer. Använda både analog och digital reglering. Utgångspunkt är att processerna är identifierade med stegsvarsanalys (Se Laboration!) eller att ett självsvängningsexperiment har utförts. Redovisning: Överföringsfunktionerna till de processer ni kommit fram till och era tumregelinställningar till PI- och PID-regulatorn för dessa. för respektive regulator Utrustning: Vattentankar och DC-servo Tid: ca - timmar. OBSERVERA: alla uppgifter redovisas. Sitt även vid samma labupppställning som vid laboration. Starta matlab. För att kunna göra uppgift måste ett antal matlabfiler laddas ner. Dessa hämtas ifrån kursens hemsida ( samma som för laboration ): Lab Zipfiler
Notera att grupper gör uppgift a och grupper gör uppgift b. Därefter byter ni med varandra. Packa upp dessa och lägg dem i en lämplig katalog. För att matlab skall kunna hitta den måste katalogen väljas längst upp i matlab command window under Current directory. Uppgift a(entanksprocess): Lämpligt att utföra på tank nr och. Manuell inställning av analog regulatortavla m h a tumregler framtaget för entanksprocess m h a sziegler- Nichols självsvängningsmetod för vattentank. Tag fram förslag för en PI och PID-regulator. Därefter skall den testas. Det första att göra innan vi börjar experimentet: Använd endast den vänstra tanken, stäng kranen mellan tankarna. Öppna en av utloppsventilerna från den vänstra vattentanken. Låt de andra vara stängda. Låt control signal komma ifrån AUTO, d v s ni skall ställa in styrsignalen. Measured value (ärvärde) sätts till LT. Set Value (börvärde) kopplas till internal. Se till att koppla bort tidskonstanten för motorstyrningen sek. Denna finns på sidan. Ställ in ett K-värde. Koppla bort Ti=Off och Td=Off, d v s använd enbart en P-regulator. Öppna ytterligare en ventil (stegstörning) för att se hur regulatorn fungerar. Om systemet är stabilt, stäng ena ventilen och välj ett nytt högre K-värde och upprepa genom att lägga på en ny störning. Detta upprepas fram till den punkt där reglersystemet nätt och jämnt börjar att självsvänga. Notera det K-värde som ni då har K o och mät periodtiden T o för självsvängningen. Notera även vattennivån i tanken. Om det skulle vara så att er tank inte börjar självsvänga för maximal förstärkning, så kan ni först välja att ha en väldigt hög arbetspunkt. Ifall inte detta räcker så lägg till en motortidskonstant på sekunder. Det slöar ner pumpens hastighet något. Räkna fram lämpliga parameterinställningar för en PI- respektive en PID-regulator m h a Ziegler-Nichols självsvängningstabell. K Ti [sek] Td[sek] P-regulator 0.* K o - - PI-regulator 0.* K o 0.8* T o - PID-regulator 0.* K o 0.*T o 0.* T o Är det så att era framräknade parametervärden inte finns på regulatortavlan. Välj i så fall enligt: Närmast lägre K-värde och närmast högre T i samt närmaste lägre T d ifall ni har problem att hitta värden. Test av tumregel PI-regulator Testa nu er PI-regulator för samma tankprocess som ni fick att självsvänga. Ställ in parametervärden på den analoga regulatortavlan enligt tabell ovan eller så nära som möjligt. Ha ungefär samma vattennivå i tanken som vid självsvängningsexperimentet. Testa regulatorn, d v s låt systemet ( vattennivån ) finna jämvikt med någon ventil öppen först. Lägg på en stegstörning, d v s öppna en ventil. Iaktta vad som händer : Kvarstående fel, insvängningstid och eventuella oscillationer. Notera värden! Om er tumregelregulator inte beter sig på önskat sätt. Använd ert sunda förnuft och justera K och T i.så att reglersystemet blir mer stabilt.
Test av tumregel PID-regulator Testa nu er PID-regulator för samma tankprocess som ni fick att självsvänga. Ställ in parametervärden på den analoga regulatortavlan enligt tabell ovan eller så nära som möjligt. Ha ungefär samma vattennivå i tanken som vid självsvängningsexperimentet. Testa regulatorn, d v s låt systemet ( vattennivån ) finna jämvikt med någon ventil öppen först. Lägg på en stegstörning, d v s öppna en ventil. Iaktta vad som händer : Kvarstående fel, insvängningstid och eventuella oscillationer. Om er tumregelregulator inte beter sig på önskat sätt. Använd ert sunda förnuft och justera K, T i och T d så att reglersystemet blir mer stabilt. Notera värden! ----------------------------------------------------------------------------------------------------------------------------- Bygg en modell enligt uppgift. Ni tog fram en överföringsfunktion för er process senast. Använd denna och bygg upp ett reglersystem. Inför en dödtid för tanken på ca: 0. sek. G(s) = K p e -Ls /( + st) Prova nu och se om ni kan få systemet i självsvängning om regulatorn är en P-regulator. Använd samma förstärkningsvärde som gav självsvängning i det verkliga systemet med Ziegler-Nichols självsvängningsmetod. Testa även de regulatorer ( PI- och PID ) som ni har räknat fram. Step Add PID PID Controller (with Approximate Derivative ) Transport Delay 9. 8 s+ Transfer Fcn Scope Uppgift b(dc-servo): Manuell inställning av analog regulatortavla m h a tumregler framtaget för DC-servo m h a Ziegler-Nichols självsvängningsmetod. Tag fram förslag för en PI och PID-regulator. Därefter skall den testas. Det första att göra innan vi börjar experimentet: Reglersystemet skall vara återkopplat. I-och D-delen skall vara bortkopplade. Ställ in ett K-värde. Koppla bort Ti=Off och Td=Off, d v s använd enbart en P-regulator. Gör ett börvärdessteg. Om systemet fortfarande är stabilt, så välj ett högre K-värde. Detta upprepas fram till den punkt där reglersystemet nätt och jämnt börjar att självsvänga. Notera det K-värde som ni då har K o och mät periodtiden T o för självsvängningen. Tag upp självsvängningen på oscilloskopet. Räkna fram lämpliga parameterinställningar för en PI- respektive en PID-regulator m h a Ziegler-Nichols självsvängningstabell. K Ti [sek] Td[sek] P-regulator 0.* K o - - PI-regulator 0.* K o 0.8* T o - PID-regulator 0.* K o 0.*T o 0.* T o
Test av tumregel PI-regulator Testa nu er PI-regulator på ert DC-servo. Ställ in parametervärden på den analoga regulatortavlan enligt tabell ovan eller så nära som möjligt. Om ni inte hittar samma värden så välj följande: närmast lägre K, närmast högre T i. Testa regulatorn, genom att göra ett börvärdessteg. Iaktta vad som händer : Kvarstående fel, insvängningstid och eventuella oscillationer. Notera värden! Om er tumregelregulator inte beter sig på önskat sätt. Använd ert sunda förnuft och justera K, T i och T d så att reglersystemet blir mer stabilt. Test av tumregel PID-regulator Testa nu er PID-regulator på ert DC-servo som ni fick att självsvänga. Ställ in parametervärden på den analoga regulatortavlan enligt tabell ovan eller så nära som möjligt. Om ni inte hittar samma värden så välj följande: närmast lägre K, närmast högre T i och närmast lägre T d. Testa regulatorn, d v s gör ett börvärdessteg. Iaktta vad som händer : Kvarstående fel, insvängningstid och eventuella oscillationer. Notera värden! Om er tumregelregulator inte beter sig på önskat sätt. Använd ert sunda förnuft och justera K, T i och T d så att reglersystemet blir mer stabilt. ----------------------------------------------------------------------------------------------------------------------------- Bygg en modell enligt uppgift av DC-servo. Se nedan! Ni tog fram en överföringsfunktion för er process senast. Använd denna och bygg upp ett reglersystem.. G(s) = K p /(s( + st)) Ansätt en modell: K p =0. och T=0.0sek Testa nu de regulatorer ( PI- och PID ) som ni har räknat fram och jämför med verklighetens stegsvar. Använd oscilloskop! Step Add PID PID Controller (with Approximate Derivative ) s Integrator 9. 8 s+ Transfer Fcn Scope
Nedanstående uppgift är möjlig att göra på alla tankar. För att kunna göra uppgifter, måste ett antal matlabfiler laddas ner. Dessa hämtas ifrån kursens hemsida under laboration. De ligger i ett zippat paket kallat jämte laboration. Packa upp filerna och lägg dessa i en lämplig katalog. För att matlab skall kunna hitta dessa måste katalogen väljas längst upp i matlab command window under Current directory. Uppgift : I matlabs command window skrivs nu enligt nedanstående: För att etablera kontakt med kortet på bordet skrivs: >> dgi % nu öppnas ett figurfönster i Matlab. Längst nere i det vänstra hörnet i figurfönstret skall det då stå : # System reset and ready to use Om det står: # Bad command Ge kommandot dgi en gång till eller eventuellt släck ner figurfönster och försök på nytt. Vi skall nu försöka ställa in en regulatorinställning från de stegsvarsexepriment vi gjorde i laboration. Där gjorde ni stycken stegsvar för olika processer. Processerna blev olika för de olika fallen. Det som skiljer dessa åt är olika tidskonstanter T och olika förstärkning K. G(s) = K p /( + st) Fall I: entanksprocess med en ventil öppen. Vid ca: 0.- 0. meters höjd. Fall II: entanksprocess med två ventiler öppna. Vid ca: 0.- 0. meters höjd. Fall III: tvåntanksprocess med en ventil öppen. Vid ca: 0.- 0. meters höjd. Eftersom när vi identifierade processen användes det mätinsamlingskort och denna bygger på att vi samplar( tar stickprov med jämna mellanrum av nivån), så sker en fördröjning på ca: sampel (samplingsperioden kan variera- ni använde sek) från det att vi skickade ut ett steg tills något inträffar med vattennivån i tanken. Vi antar att vi åtminstone
har en dödtid L på ca sek för de processer som ni identifierade i laboration. Det betyder att våra processer förändras till: G(s) = K p e -Ls /( + st) Räkna nu fram en PI- och PID-regulator för respektive fall I, II och III. Testa era regulatorinställningar antingen på samma sätt som ni gjorde i uppgift eller genom att göra börvärdesändringar. Ziegler-Nichols tabell för stegsvarsmetod K Ti [sek] Td[sek] P-regulator T/ K p *L - - PI-regulator 0.9*T/ K p *L *L - PID-regulator.*T/ K p *L *L L/ När ni har räknat fram en regulator. Gå in under Controller -> Download PID-No-Filter-Controller To Target Nu öppnar sig ett nytt figurfönster pid_no_filter. Välj vilken signal som återkopplas. Vi använder Analog_0 ( vattennivån i vänstra tanken) Denna jämförs med referensvärdet( sätts inte här!). Vad har vi i ovanstående fönster? Gör följande inställningar: Reference = 0 (spelar ingen roll vad vi skriver här används inte ) P= framräknad av er Ti= framräknad av er ( om Ti=00 är den avstängd) Td= framräknad av er (om Td= 0 är den avstängd) Sampling Frequency = 0Hz Signal Out = Analog_Out Därefter tryck på Download Controller! Släck fönstret! Nu är dags att välja vilka variabler vi vill titta på i dgi-fönstret. Välj för det övre fönstret Analog 0 ( nivån i den vänstra tanken ) och Reference. För det nedre fönstret väljs: U-Value ( styrsignal till pumpen )
Vi skall även välja plottfönstrets längd görs med: Tool -> Plotsize Välj tid på x-axeln till 00 sek och samplingsfrekvens 0 Hz. Bekräfta genom Update Target! Släck fönstret! Nu återstår bara att välja börvärde. Välj 0. -> Update Reference -> Start I dgi-fönstret. Om allt fungerar som det ska, så börjar pumpen att pumpa vatten och realtidsplottningen startas i ert dgifönster. Glöm inte att öppna en utloppsventil så att vi behöver reglera. Nu kan vi testa vår regulator genom att skriva in nya börvärden(reference). Hur fungerar er regulator? Gör några börvärdessteg för att se hur er regulator beter sig! 9 Realtime values 8 7 [Volt] Analog 0 Reference 0 0 0 0 0 0 0 0 70 80 90 00 Time [sec] Uppgift : Användning av Chien, Hrones Reswicks stegsvarsmetod Bifogat är stegsvar från respektive tankprocess vid olika arbetspunkter. Baserat på det stegsvar som gäller för er process så tar ni fram m h a Formelsamling inställning av en PI-regulator respektive PID-regulator. Testa på vanligt sätt. Se hur stegsvaren ser ut för de olika tankprocesserna på de två följande sidorna. 7
Tank nr :en tank, vänster ventil öppen u o =0.8 V Realtime values [Volt] 0 - - Analog 0 U-Value - 00 00 700 800 900 000 00 Time [sec] Tank nr : en tank höger ventil öppen, u o = 0., Realtime values 9 8 7 [Volt] Analog 0 U-Value 0 00 700 800 900 000 00 Time [sec] 8
Tank nr : en tank vänster ventil öppen, u o = 0.8, Realtime values [Volt] 0 - - - Analog 0 U-Value 00 00 700 800 900 000 00 Time [sec] Tank nr : en tank, vänster ventil öppen, u o =0. V 9 Realtime values 8 7 [Volt] 0 Analog 0 U-Value 800 80 900 90 000 00 00 0 00 0 Time [sec] Tag fram en PI- och en PID-regulator för ert fall ovan. Se tabell nedan och formelsamling! Om det är så att ni får fram en integrationstid som är större än vad vi kan skriva in, så välj denna något mindre än 00 sek. Testa er PI- respektive PID-regulator genom att göra börvärdessteg eller utföra stegstörningar ( öppna en ventil till ). 9
Chien, Hrones & Reswicks stegsvarsmetod K Ti [sek] Td[sek] P-regulator 0./a - - PI-regulator 0./a.*T - PID-regulator 0./a T L/ L=dödtid, bestäms på vanligt sätt. T= tidskonstant, bestäms på vanligt sätt. a-bestäms grafiskt ur stegsvaret.. Bygg upp en simulinkmodell av er process. Testa och se om verkligheten stämmer överens med er modell och simuleringen av ert reglersystem. Testa för både PI- och PID-regulatorn ifrån uppgift. Vilket av systemen är bäst? Verkligheten eller modellen? Skriv simulink i matlabs kommandofönster. Öppna ett editeringsfönster : File-> New-> Model Lägg in nedanstående ( byt överföringsfunktion ) och simulera reglersystemet. Step Add PID PID Controller (with Approximate Derivative ) Transport Delay 9. 8 s+ Transfer Fcn Scope Var hittar ni blocken någonstans? Simulink-> Sources-> Step Simulink-> Sinks-> Scope Simulink-> Simulink Extras-> Additional Linear-> PID Controller Simulink-> Continuous-> Transfer Function ( överföringsfunktion) Simulink-> Continuous-> Transport Delay ( dödtid) Simulink-> Math Operations -> Add Hur skriver man in regulatorn? G pid (s) = K( + /(s*t i ) + st d ) = K + K/(s*T i ) + skt d Ovan framgår det ganska tydligt vilken del som är den Proportionella, Integrerande och Deriverande delen. 0