Prgramvara för A/D - D/A - krt Till krtet hör en rgramvara Denna betår av ett antal filer vilka du behöver flytta till ditt eget h:\ MÄLARDALENS HÖGSOLA Intitutinen för elektrnik PROJTLABORATION i Sytem- ch reglerteknik Dea labratiner avluta med att ni ka reglera reella fyikalika rceer Meningen är att vi nu ka gå från imulering till hårdvaruimlementering Du ka få träning i att rgrammera ch förtå hur en regulatr kan dikretiera Vi kall reglera två t rceer, ch m tid ch möjlighet finn även banerceen 1 ret-rce med överföringfunktinen ( ) Vinkelerv med överföringfunktinen G( ) mätning Då τ e ch m 4 G ( + 1) 3 ( 1+τ )( 1+ ) e τ m τ är må kan rceen arximera med ( ) (Extraugift, här kräv lead-kmenering), där betäm utifrån G 3 En banerce med både ett vinkelerv ch en arximerad överföringfunktin G ( ), e nedan I labratinen kmmer vi att använda ett A/D-D/A-krt Nedan en bekrivning av detta A/D - D/A - krt Detta krt är ett intickkrt för PC rtet har 16 analga ingångar (kanaler, ingle ended), amt analga utgångar (kanaler) Vi kmmer att maximalt använda t analga ingångar ch 1 analg utgång Alla kanaler finn utdragna till ett lintkrt m finn å reektive labbänk Flytta hela katalgen reglab till ditt h: (katalgen ligger under L:\regler\) När detta är gjrt tarta BrlandC (under Start/rgram ) ch öna filen rjide under fliken rject Där har vi tillgång till en kelettfil, rjidec (e bilagan, it i denna labratinhandledning) Det är endat i denna fil du frtättningvi behöver rgrammera rjidec är en klaik c-fil Skumma igenm den Se eciellt följande: Samlingen tyr av en leefunktin, vilket innebär att vi behöver underöka vilken amlingtiden är vid varje ny mrgrammering (mer kd betyder att leeen måte minka i amma grad) Ob att argumentet i leefunktin är i milliekunder I kntantdefinieringen (NUM) betäm hur många amel ka ta in (d v den betämmer alltå ttala exekveringtiden) Prgramavnittet it i filen ar alla intreanta variabler i en fil med namnet datam, för att vi i MATLAB kall kunna viualiera våra variabler milering ker med blixten i meny-raden eller med build all under fliken rjekt Tetning av A/D - D/A krt, amt kalibrering Signalerna in ch ut från A/D-D/A krtet finn å de må lintarna vid datrn, analg inut re analg utut Obervera att inut är kanal 0-15 (A/D 0-15 i c-rgrammet) ch att utut är kanal 1- (D/A 1- i c-rgrammet) la u ignalgeneratrn med inu ca V ch 1 Hz till A/D-0 ch Tektrnixcillket till D/A-1 Se till att följande rader finn med i c-filen (Raderna kan lacera där vi är anviade att kriva regulatrkd) yad(1,base); % Anrar AD-funktinen i rjidec DA(y,1); % Lägger ut y å DACen, b byt r mt y i c-rgrammet milera ch kör rgrammet (tar ca 0 ek) Om ditt ytem fungerar kmmer du att e inuignalen å cillket Fil: Reglab1--3 J Lundqvit IEl 001-11-30 1 Fil: Reglab1--3 J Lundqvit IEl 001-11-30
alibrering av krtet måte vi göra mjukvarumäigt då intickkrtet i datrn är åtkmligt Offet få både å ana lga ut ch in (gör gärna en aerki) Vi löer detta genm att kriva (D/A) re läa in (A/D) en lågfrekvent fyrkantignal Använd börignalen m finn i kelettfilen Genm mätning ch användning av MATLAB får vi fram ungefärliga ffetignaler menera dea ffetignaler mjukvarumäigt i din rjidec (t ex yad(10,bae)+ffet) Nu till MATLAB, täll dig i reglab-katalgen Skriv kmmandt data ch du läer in ett antal vektrer Gör lt([r u y]) (tidvektrn t få genm kmmandt t(0:length(y)-1)/f) Ser nu ltten key ut, å börja då att rgrammera din regulatr Prgrammering av regulatr Den tiddikreta regulatrn lägg in i kelettfilen Du er var i filen den lägg (behåll börignalen r) Hur en regulatr rgrammera hittar du i kurkmendiet Prcereglering å idrna 17-130 Hur den fungerar via med näta ugift 1 Exerimentbaerad regulatrdeign för retrceen Vi kall reglera kretrceen med de exerimentbaerade regulatrerna vilka bekriv i Prcereglering å idan 106-107 1 Självvängningexeriment Hur trt P-reglering Hur trt kräv jälvvängning? Vilken blir eridtiden T? kräv för att få famarginalen ϕ 45 m Låt nu börignalen vara en flank (d v den börignal m finn i din urrungfil rjidec) ch regulatrn det framräknade Vad blir tigtiden t r, överlängen M, invängningtiden t amt det tatika felet e? Reultatet finn i den lggade filen datam 3 PI-reglering (enligt Åtröm-Hägglund arameterval) Vad blir nu famarginalen? Vad blir tigtiden t r, överlängen M, invängningtiden t amt det tatika felet e? 4 IMC-reglering Pröva lutligen att dimeninera med ett :a rdningen IMC-filter Sätt t 1 ek Vad blir nu famarginalen? Vad blir tigtiden t r, överlängen M, invängningtiden t amt det tatika felet e? P- ch PI-reglering av vinkelervt Näta rce att reglera blir banan vinkelerv Obervera att vi kan m en arximatin e ervt m en integratr Vi måte fört identifiera den tatika förtärkningen i rceen Hur gör du det? Gör det! 1 P-reglering Betäm en regulatr med hjäl av IMC ch en önkad tigtid å 1 ekund Vad blir det för ty av regulatr? Vilka värden i regulatrn får du? ör en reglering med börvärdet ett teg Vad blir tigtiden t r, överlängen M, invängningtiden t amt det tatika felet e? Betäm i en P-regulatr å att du får en kärfrekven vid ca 4 rad/ Igen låter du börignalen vara någn flank Vad blir tigtiden t r, överlängen M, invängningtiden t amt det tatika felet e? Prgrammera en ram, vilken ka använda m börvärde, d v låt r gå från t ex till + V Behåll din P-regulatr ch underök det k hatighetfelet e 1 Få ett ådant fel? Om, hur kmmer vi i å fall tillrätta med det? PI-reglering Betäm nu ϕ m 60 ch i via lag-kmenering å att vi får en famarginal å mint r 60, Vad blir tigtiden t r, överlängen M, invängningtiden t amt hatighetfelet e 1? Här vill labbaiten e hur ni gjrt Fil: Reglab1--3 J Lundqvit IEl 001-11-30 3 Fil: Reglab1--3 J Lundqvit IEl 001-11-30 4
Reglering av banerce (Extra ugift) u Regulatr Vinkelerv Mtr F ( ) ( ) G ulbanerceen är ett linjärt ytem ulbana y r θ Mmentekvatinen kan då förenkla till d θ F r m g in dt J + r m r m r 5 7 ( ) r 5 g in( ) 7 r Vi är nu inte intreerade av vinkelitinen θ utan av den abluta itinen Ekvatinen kan då kriva m å följande ätt: 1 d y 5 g in r dt 7 r d y 5 g in dt 7 ( ) ( ) y r θ θ Om denna ekvatin linjäriera kring arbetunkten 0 0, d v hrintalläget, få då med hjäl F m g in A F g m g y r θ Nedan ge en härledning av differentialekvatinen m bekriver hur an itin y berr av banan vinkelläge Följande beteckningar gäller nedan: banan vinkelitin [rad] θ an vinkelitin, antalet varv den har rullat [rad] r radien h an [m] y r θ an läge å banan [m] F g m g tyngdkraften [N] Följande kraftmmentekvatin i unkten A kan tälla u för an rörele d ( J r m r) F r + dt θ (vridmmentet), där m J r an tröghetmment [ kg 5 m ] ch F m g in kraften m ätter an i rörele [N] av MacLaurin-utvecklingen för inu: 3 ( ) d y 5 g O dt 7 Den linjärierade ekvatinen blir då: d y 5 g 7 dt ch överföringfunktinen blir G ( ) ( ) Y, d v 5 g 7 Av överföringfunktinen er vi att vi har en dubbelintegratr Om vi integrerar en kraft/acceleratin får vi hatigheten, ytterligare en integratin ger itinen Vinkelervt är nabbare än banedynamiken (e datrövning 4), vilket innebär att arximatinen ( t) u( t) kan göra Detta innebär att u ( t) blir vinkelervt referenignal ch att utignalen (vinkeln) blir tyrignal för banerceen Obervera att vi måte kakadreglera, amt att överföringfunktinen från tyrignal u ( t) till itin y ( t) blirg ttl Y( ) U( ), (då vinkelervt tatika förtärkning ingår): Fil: Reglab1--3 J Lundqvit IEl 001-11-30 5 Fil: Reglab1--3 J Lundqvit IEl 001-11-30 6
Reglering av banan 3 P-reglering r(t ) + P-regulatr F() P u(t) Vinkelerv+ulbana GP() Prvkör banan med en P-regulatr Börja med en låg förtärkning 0 5, öka å denna gradvi Vilken ty av ytem får vi? 4 PD-reglering Vi kntruerar en PD-regulatr (lead-kmenering) enligt kmendiet Prcereglering å frmen: för att tabiliera banan F ( ) Td + 1 T + 1 Här är de två deignarametrarna önkad kärfrekven f y(t) ω c ch önkad famarginal ϕ m För att få någt vettigt värde å valet av kärfrekven kan vi utgå ifrån rceen egen kärfrekven ch rva med värden under 5 PID-reglering ω c ch vanför detta Teta ch röva igen Vi använder PID-regulatrn (lead/lag-kmenering) enligt kmendiet å frmen: F ( ) Td + 1 Ti + 1 T + 1 T för att ckå eliminera kvartående fel Hur fungerar nu regleringen? Via labbaitenten! För att ha någn törre glädje av att ha reglerat an å banan vill vi att ni dku-menterar de teg ni har gjrt för att lycka Denna dkumentatin kan lägga it i den rart ni gör för Datrövning 4 f i Bilaga: rjidec #include <tdih> #include <tdlibh> #include "dllh" #include <dh> #include <mathh> #include <timeh> vid Slee(int); #define NUM 000 #define umax 10 #define umin -10 #define BASE 0x0 #define GAIN 1 #define T 001 Samlingtid * Här kan regulatrarametrar definiera duble AD(int ch, int bae); vid DA(duble val, int ch); duble AD(int ch, int bae) int ad_data; if(w_811_initial(card_1,bae)! ERR_NErrr) rintf("init errr\n"); exit(0); W_811_AD_Set_Channel(ch); W_811_AD_Set_Mde(A811_AD_MODE_1); if(w_811_ad_aquire(&ad_data)! ERR_NErrr) rintf("a/d errr\n"); exit(0); return(ad_data-048)/047; vid DA(duble val, int ch) duble val; Fil: Reglab1--3 J Lundqvit IEl 001-11-30 7 Fil: Reglab1--3 J Lundqvit IEl 001-11-30 8
valval; if(val<-10) val-10; if(val>10) val10; W_811_DA(ch-1, 048+047*val); vid main( vid) FILE *f; int i,j; duble r, u, y; duble rvec[num],uvec[num],yvec[num]; // L j0; r0; fr(i0;i<num;i++) Slee(T*1000); Betämmer amlingtiden DA(0,1); Nll tyrignal * Sara MATLABfil: if((ffen("datam","w"))!null) frintf(f,"r[\n"); fr (j0; j<i; j++) frintf(f,"%f\n",rvec[j]); frintf(f,"];\n y[\n"); fr (j0; j<i; j++) frintf( f,"%f\n",yvec[j]); frintf(f,"];\n u[\n"); fr (j0; j<i; j++) frintf(f,"%f\n",uvec[j]); frintf(f,"];\n"); fcle(f); Börignal ram Börignal teg j++; if(j1000) j0; if(j<500) r0; Förta 5 ek 0 V ele Efter 5 ek 1 V r1; en m igen * Här nedan kan Du lacera regulatrn yad(0, BASE); Ärignal å A/D-mvandlaren rvec[i] r; uvec[i] u; yvec[i] y; DA(u,1); Styr ignal å D/A-mvandlaren (DAC:en) Fil: Reglab1--3 J Lundqvit IEl 001-11-30 9 Fil: Reglab1--3 J Lundqvit IEl 001-11-30 10