UPPSALA UNIVERSITET SYSTEMTEKNIK EKL och PSA, 2002 Dynamiska System (STS) Modellering av en DC-motor Sammanfattning Dynamiken för en dc-motor bestäms utifrνan en s k icke-parametrisk modellering, i detta fall en frekvensanalys. Som jämförelse betraktas även en parametrisk modell av motorn utifrνan en stegsvarsanalys. Slutligen genomförs en enkel modellvalidering. Förberedelseuppgifter: Läs igenom Kapitel 3.1 i kurshäftet. Lös förberedelseuppgifterna. Namn Handledarens kommentarer νarskurs Inskrivningsνar Utförd den Lab godkänd Sign
Innehνall 1 Introduktion 1 1.1 Processbeskrivning................................... 1 1.2 Inloggning och uppstart................................ 1 2 Processmodellering 2 2.1 Frekvensanalys..................................... 2 2.1.1 Experimentell bestämning av frekvensfunktionen.............. 3 2.2 Stegsvarsanalys..................................... 4 3 Validering 6
1 Introduktion Mνalet med följande laboration är att undersöka dynamiken för en dc-motor genom frekvensanalys. Mer specifikt skall ett Bodediagram för motorn experimentellt bestämmas. Utöver detta skall en parametrisk modell av motorn tas fram m h a en stegsvarsanalys. De bνada metoderna skall jämföras, och framtagna modeller skall valideras. 1.1 Processbeskrivning Denna process (dc-motorn) är i princip samma process som i Exempel 2.3 i kurskompendiet. En dc-motor ger ett drivande moment som pνaverkar en axels vinkelläge. En förenklad schematisk bild av processen ses i Figur 1. u(t) DC Motor (t), y(t) Figur 1: Schematisk uppbyggnad av processen. ffl Insignal till processen är spänningen u(t) över motorn. ffl Utsignalen frνan systemet, y(t), fνas genom att man mäter en spänningen över en variabel resistans kopplad till vinkelläget. Notera att en gradskiva är fäst pνa motoraxeln, vilket underlättar avläsning av vinkelläget. ffl Axelns vinkelhastighet kan indirekt mätas m h a en s k tachometer som ger en spänning proportionell mot vinkelhastigheten. Det variabla motstνandet transformerar vinkellägen mellan 150 ffi och +150 ffi till motsvarande spänningar. Relationen mellan vinkel (t) [rad] och spänningen y(t) är y(t) =K p (t) [V ] K p = 30 180 300 ß = 18 ß [V=rad] (1) 1.2 Inloggning och uppstart Assistenten informerar (i bästa fall) om hur man loggar in samt startar upp datorn! Observera att i denna version av MATLAB kan data bara sparas och laddas till en temporär katalog. Använd kommandot save /usr/tmp/filnamn eller load /usr/tmp/filnamn för att spara respektive ladda data frνan filnamnet filnamn. 1
2 Processmodellering Vi kommer att betrakta tvνa olika modelleringsalternativ, vad som brukar kallas icke-parametrisk och parametrisk modellering i form av frekvens- och stegsvarsanalys. Som namnet indikerar är en parametrisk modell en beskrivning av processen i form av en funktion (t ex en differentialekvation eller en överföringsfunktion) bestämd av en eller flera parametrar. Vet man dessa parametrar har man en fullständig beskrivning, om än approximativ, av systemet man undersöker. En ickeparametrisk modell däremot beskriver snarare processen genom en sekvens av värden som kan presenteras, t ex, i form av en Bodeplot. Man vet alltsνa inte hur den bakomvarande funktionen (processen) som har genererat dessa värden ser ut men genom smarta algoritmval, t ex att välja en insignal som ger en karakteristisk respons, kan man dra viktiga slutsatser utifrνan en analys av den erhνallna datamängden. Givetvis finns det för- och nackdelar med bägge metoderna. 2.1 Frekvensanalys Vi vet frνan exemplen 2.3 och 3.2 i kurskompendiet att en dc-motor kan betraktas som ett linjärt system med överföringsfunktion G(s) = K m s(1 + fis) (2) frνan insignal u(t) till position y(t). Dνa gäller som bekant att om insignalen är en sinus med amplitud A och frekvens! kommer även utsignalen att vara en sinus med samma frekvens men fasförskjuten ffi =argg(i!) radianer i förhνallande till denna och med en amplitud y 0 = AjG(i!)j (efter att alla transienter dött ut), se Figur 2. Det komplexa talet G(i!) bestämmer sνaledes entydigt systemets svar pνa en sinus med frekvens!. Alternativt kan man säga att G(i!) beskriver hur olika frekvenskomponenter av en generell insignal kommer att transformeras av systemet (jmf med Fouriertransformen). Använder man en sinussignal med frekvens! som insignal kan alltsνa jg(i!)j beräknas genom att kvoten mellan amplituderna pνa utsignalen och insignalen bestäms. Argumentet arg G(i!) ges genom att beräkna utsignalens fasläge i förhνallande till insignalen. Upprepas försöket för olika! har vi sνaledes en metod att experimentellt bestämma frekvensfunktionen G(i!). Plottas därefter jg(i!)j och arg G(i!) som funktion av! med logaritmiska skalor fνar vi vad som kallas ett Bodediagram. u(t) =A sin!t - G(i!) - y(t) =y0 sin(!t + ffi) Figur 2: Sinus in ger sinus ut. Förberedelseuppgift 1: Bestäm log jg(i!)j och arg G(i!) analytiskt, där G(i!) är given av (2). 2
2.1.1 Experimentell bestämning av frekvensfunktionen Frekvensanalysen utförs med MATLAB programmet freqservo. För att exekvera freqservo används följande syntax [w,mag,fi]=freqservo, där w är bestämda frekvenspunkter, mag är systemets förstärkning och fi är systemets fasförskjutning. Notera att dessa vektorer ges av programmet. När programmet körs kommer användaren att tillfrνagas om en önskad frekvens. Därefter genereras en sinussignal med den givna frekvensen som insignal till processen. Insignal och utsignal visas i realtid pνa skärmen. Därefter estimeras systemets förstärkning och fasförskjutning vid den önskade frekvensen och en ny insignalfrekvens kan matas in. Notera att innan en ny insignalfrekvens matas in skall gradskivan, som är fäst pνa motoraxeln, nollställas. Alla mätvärden presenteras bνade pνa skärmen och i form av ett Bodediagram. Som ett komplement visas även plottar pνa in och utsignal med linjära trender (exempelvis en drift) borttagna. Dessa plottar kan användas för att kontrollera att programmet returnerar rimliga värden. Efter att ni har avslutat experimentet är det viktigt att ni sparar (se Avsnitt 1.2) undan vektorerna w, mag and fi eftersom dessa värden kommer att användas senare. Exekvera programmet [w,mag,fi]=freqservo enligt ovan. Välj frekvenspunkter i intervallet! 2 [1; 10] rad/s. Uppgift: Vi vet att motorn kan modelleras som ett andra ordningens system utan nollställen, se (2). Hurνaterspeglas detta i bodeplotten? Mer specifikt, hur varierar log jg(i!)j och arg G(i!) dνa! ökar? Se även förberedelseuppgift 1. 3
2.2 Stegsvarsanalys Som ett komplement till frekvensanalysen i föregνaende avsnitt skall vi här modellera vνar motor utifrνan en stegsvarsanalys, och ta fram modellparametrarna K m och fi i (2). Överföringsfunktionen för vνar process kan som sagt beskrivas med följande modell (se (2)) G(s) = K m s(1 + fis) = Y (s) U(s) (3) som beskriver hur vinkelpositionen y(t) [volt] beror av insignalen u(t). Det följer direkt frνan (3) att modellen kan delas upp i tvνa delsystem som V (s) = K m1 U(s) (4) 1+fis Y (s) = K p V (s) (5) s där v(t) är vinkelhastighet, K p definieras i (1) och K m1 är en okänd förstärkning. Vi noterar att K m = K m1 K p (6) Förberedelseuppgift 2: Genom att applicera inversa Laplacetransformen pνa (4), bestäm v(t) dνa u(t) är ett enhetssteg. 4
För att bestämma fi för systemet (3) skall vi göra en stegsvarsanalys av delsystemet (4). Observera alltsνa att stegsvaret görs pνa systemet frνan insignal, u(t), till vinkelhastighet, v(t), eftersom systemet (3) inte är asymptotiskt stabilt. När vi nedan talar om utsignal menar vi alltsνa vinkelhastigheten, v(t), och inte som tidigare läget, y(t). Tyvärr kan vi inte mäta vinkelhastigheten direkt i nuvarande laborationsuppställning. Till vνart förfogande har vi dock MATLAB programmet tachometer som ger ut en konstant insignal u (ett steg), mäter och plottar en spänning proportionell mot vinkelhastigheten v(t); värdet pνa proportionalitetskonstanten bestäms senare i laborationen men är irrelevant dνa fi skall bestämmas. Kör programmet tachometer och bestäm fi utifrνan nödvändiga avläsningar i den erhνallna figuren. Observera att tidskonstanten för ett system definieras i avsnitt 3.1.5 i kurskompendiet. Förberedelseuppgift 3: Antag att ett steg med amplitud u s appliceras pνa systemet (4), som befinner sig i vila. Efter en viss tid fνas dνa den konstanta utsignalen (vinkelhastighet) v(t) =v s. Ange ett uttryck för K m som funktion av u s och v s. Notera att ekvation (1) ger K p. Härnäst skall K m bestämmas experimentellt enligt receptet i förberedelseuppgiften ovan. För att generera en spänning pνa motorn används MATLAB-kommandot proc da(0,u). Notera speciellt att proc da(0,0) innebär att motorn stannar. Lνat insignalen till motorn vara u s =6,ochmät tiden T som det tar för motorn (gradskivan) att röra sig 10 varv. Vinkelhastigheten v s ges dνa av 5
2ß 10 v s = =... [rad/s] (7) T och K m kan bestämmas, enligt Förberedelseuppgift 3, till K m =... Hur lyder den slutliga modellen (frνan insignal u(t) till position y(t)) med numeriska värden? G(s) = K m =... (8) s(1 + fis) Slutligen skall värdet pνa proportionalitetskonstanten k fi för tachometern bestämmas. Vi noterar att k fi inte ingνar i nνagon av modellerna (4) eller (8). Den behövs dock senare dνa modellen (4) skall valideras. Kom ihνag att tachometern ger ut en signal v 0 som är proportionell mot vinkelhastigheten v, dvs v = k fi v 0 (9) MATLAB-kommandot proc ad(1,v 0 ) kan användas för att läsa av signalen v 0 frνan tachometern. Notera dock att v 0 mνaste vara definierad i MATLAB, exempelvis satt till värdet noll, innan proc ad(1,v 0 ) kan exekveras. Lνat insignalen till systemet vara u s =6,vilket innebär att vinkelhastigheten blir v = v s, se (7). Använd sedan proc ad(1,v 0 ) för att bestämma k fi utifrνan (9). k fi =... (10) 3 Validering MATLAB kommandot bodejmf kan användas för att jämföra den parametriska modellen (stegsvarsanalysen) med den icke-parametriska modellen (frekvensanalysen) i frekvensdomänen. Använd help bodejmf för detaljer om hur bodejmf används. Notera att ett polynom i MAT- LAB skrivs som en vektor innehνallande polynomkoefficienterna, exempelvis, s 2 +2s +3 skrivs som [1 2 3]. Kör bodejmf och kommentera resultatet. Överensstämmer modellerna? 6
Härnäst skall vi jämföra beteendet för den verkliga processen med en simulering av vνar framtagna modell (8). MATLAB makrot steg v(km,fi,kfi ) applicerar ett steg som insignal till den verkliga processen respektive modellen (8) och plottar utsignalen, i detta fall vinkelhastigheten v(t). Evaluera steg v(km,fi,kfi ) meddenumeriska värdena för K m, fi och k fi som ni experimentellt bestämde i föregνaende stycke och kommentera resultatet. Slutligen försök att besvara/fundera över följande frνagor: ffl Nämn minst en fundamental skillnad mellan parametriska och icke-parametriska metoder. Försök även att lista nνagra för- och nackdelar med parametriska respektiveicke-parametriska modeller? ffl Vad finns det för felkällor som kan pνaverka hur väl era modeller kan prediktera beteendet av den verkliga processen? 7