Høgskolen i Oslo: SO303E Kybernetikk 2 (høst-08)

Prosjektoppgave:

Systemidentifikasjon og turtallregulering av DC-motor

Hva prosjektoppgaven går ut på

Dere skal estimere en tidsdiskret transferfunksjonsmodell for en DC-motor vha. Matlab-funksjonen n4sid (som estimerer modeller med en subspace-metode). LabVIEW skal brukes til fysisk styring og måling på motoren. På basis av den estimerte modellen skal et turtallsreguleringssystem for motoren simuleres i Simulink for å finne brukbare regulatorparametre i en PI-regulator. Så skal et turtallsreguleringssystem implementeres i LabVIEW, og til slutt skal dere analysere reguleringssystemet i Matlab.

Utstyr

  • PC med LabVIEW og Matlab/Simulink (og System Identification Toolbox og Control System Toolbox)
  • NI USB-6008 I/O-utstyr.
  • DC-motor.

Oppgaver

  1. Analog I/O: Sjekk at analog I/O i LabVIEW virker. Foreta først konfigurering og sjekk i MAX, deretter prøver dere I/O i LabVIEW med f.eks. ao_ai.vi. Denne VI'en kan dere også bruke som utgangspunkt for deres egne LabVIEW-filer i denne prosjektoppgaven. Bruk gjerne samplingstid lik 0,05 sek. Her er en tutorial om bruk av NI USB-6008, inkl. bruk av ao_ai.vi.
  2. Estimering av transferfunksjon: Finn en tidsdiskret transferfunksjonsmodell for motoren (fra pådrag til turtallsmåling) vha. bl.a. n4sid-funksjonen i Matlab ut fra loggede data av pådrag i enhet volt og turtallsmåling i enhet volt. (Kap. 10.4 i kompendiet omhandler estimering av transferfunksjon med n4sid. Jeg anbefaler å bruke de-trendede dataserier av pådrag og måling som grunnlag for estimeringen. Bruk mean-funksjonen i Matlab til å fjerne middelverdien fra en dataserie.) Bruk LabVIEW til å styre (eksitere) motoren og til å logge data til fil. Filskriving i LabVIEW kan enkelt realiseres med Write to Measurement File-funksjonen på File I/O-paletten (ta gjerne en kikk på kap. 8.5 i Introduction to LabVIEW). Filimport i Matab kan utføres med load-funksjonen eller vha. Import Wizard som er tilgjengelig via File-menyen.  Write to Measurement File-funksjonen bør brukes til å lagre dataene i en tekstfil (ikke binærfil). Filtypen blir da lvm. Det kan være nødvendig å endre filnavnet fra *.lvm til *.dat før bruk av load-funksjonen. Ikke velg for lav orden i modellen. Prøv f.eks. orden 8.
    Dere skal legge inn en omregning fra volt til turtall i krmp, slik at den resulterende transferfunksjonen har krmp som enhet på utgangen. Sammenhengen mellom volt og krpm står på hjemmesiden for DC-motoren.
  3. Er modellen brukbar? Sjekk den estimerte modellens godhet i Matlab ved visuelt å sammenlikne simulert turtallsmåling med logget turtallsmåling (i et plott). Sammenlikningen bør foretas på basis av data fra et annet eksperiment enn det som ble benyttet for estimeringen. Simulering i Matlab kan gjøres med lsim-funksjonen.
  4. Simulering av turtallsreguleringssystem i Simulink: Bruk Simulink til å stille inn en PI-regulator for turtallsregulering av motoren. Reguleringssystemet skal inneholde et 1. ordens lavpass-målefilter som skal ha tidskonstant 0,2 sek (bruk gjerne en transferfunksjonsblokk). Velg selv innstillingsmetode, men det kan være at Ziegler-Nichols' lukket sløyfe-metode ikke vil virke bra siden motoren inkl. målefilteret har "rask" dynamikk (neglisjerbar dødtid og ellers lav orden i transferfunksjonen). Enkel prøving og feiling (P-I-D-metoden, jf. Praktisk reguleringsteknikk-boka, kan brukes. Sjekk (med simulering) at reguleringssystemets stabilitet er ok. Referansen (settpunktet) skal være i krpm.
  5. Implementering av turtallsreguleringssystem i LabVIEW: Implementer et turtallsreguleringssystem for den virkelige motoren i LabVIEW. Bruk LabVIEWs PID Advanced function. Som i Simulink-oppgaven ovenfor, skal reguleringssystemet inneholde et målefilter. Det fins diverse filterfunksjoner i LabVIEW, men de har alle noen ulemper ifm. bruk i et reguleringssystem. Dere kan bruke lavpassfilteret i LabVIEW Goldmine. Har reguleringssystemet tilfredsstillende stabilitet, eller er det behov for etterjustering av regulatorparameterene i forhold til parametrene som ble funnet i Simulink? Er reguleringssystemets evne til å følge en referanseendring (i form av et sprang) og dets evne til å kompensere for en forstyrrelse (varig endring av lastmomentet, ikke så lett å få til i praksis riktignok...) tilfredsstillende?
  6. Analye av reguleringssystemet: Finn reguleringssystemets båndbredde (i Hz) og dets stabilitetsmarginer (forsterkningsmargin og fasemargin) vha. passende funksjoner i Matlab.

 [Prosjektoppgaver]


Oppdatert 6.11.08 av Finn Haugen. E-post: finn@techteach.no.