Printer Casus/Handleiding experimenten
Handleiding voor het meten aan en regelen van de experimentele HP
printer opstelling, behorende bij de casus "De Printerkop" (4G031)
Deze pagina is afgeleid van het orginele document: [1], welke een geüpdate versie is van [2].
In deze handleiding wordt de benodigde #Hardware en #Software voor het meten aan en regelen van de experimentele HP printer opstelling, die bij de casus De Printerkop (4G031) wordt gebruikt, besproken. De sectie #Start-up en experimenten bevat een introductie tot het gebruik van de opstelling en het daadwerkelijk uitvoeren van experimenten. Voor het gebruik van een opstelling dien je je in te schrijven op de daarvoor bestemde inschrijflijsten in SEL3. Hierbij mag je als groep iedere keer maximaal 1 keer tegelijk voor 1 opstelling inschrijven. Aan de balie in SEL3 kun je de benodigde TUeDACS en toebehoren lenen. Bijna elke dag zal gedurende een aantal uur hulp aanwezig zijn in SEL3 waar je je vragen kwijt kunt. De uren waarop hulp aanwezig is, staan op de inschrijflijsten aangegeven. Voor vragen tijdens en over de experimenten kun je terecht bij Geert-Jan Heldens (g.m.heldens(at)student.tue.nl, Wh -1.??). De projectcoördinator is René van de Molengraft (m.j.g.v.d.molengraft(at)tue.nl, tel 2998, Wh -1.141).
Hardware
Voor de casus wordt een uitgeklede A3-formaat HP printer gebruikt, zie Figuur 1. De benodigde hardware voor de experimentele opstelling is in Tabel 1 opgenomen. Je dient zelf voor een notebook en USB-stick te zorgen.
- experimentele HP printer opstelling (zie Figuur 1) inclusief kabels
- TUeDACS real-time data acquisition module inclusief kabels
- versterker inclusief BNC-BNC kabel
- notebook
- USB-stick (om data en files op te kunnen slaan)
- bootable TUeDAX Linux Live DVD for TUeDACS QAD/AQI devices v4.0 (de USB ONLY! versie)
Tabel 1
De printerkop wordt door een gelijkstroommotor aangedreven via een riemoverbrenging. De positie van de printerkop wordt gemeten met behulp van een lineaire incrementele encoder. De optische encodersensor is in de printerkop gemonteerd. Uiterst links is een eind-switch aangebracht die gebruikt wordt om de positie van de printerkop te initialiseren. Met het TUeDACS-systeem is
het mogelijk om via een notebook metingen aan de opstelling te verrichten en tevens de printer real-time aan te sturen. De versterker zorgt voor de benodigde stroomversterking van het stuursignaal dat vanuit de TUeDACS naar de motor wordt gestuurd.
De kabels van de hardware dienen bevestigd te worden zoals in tabel 2 is aangegeven. Verder dienen de versterker en de TUeDACS van voedings-kabels voorzien te worden. LET OP: schakel de versterker NOOIT in (ON) voordat de er een stuursignaal is gedefinieerd door de Wintarget software (zie #Start-up en experimenten). Een crash van de printer kan het gevolg zijn. Op sommige oudere versterkers staat nog 0 − 2,5 V in plaats van +/ − 2,5 V. Dit is incorrect, alle versterkers hebben een bereik van +/− 2,5 V.
I/O Printer | I/O Versterker | I/O TUeDACS | I/O Notebook |
---|---|---|---|
motor ingang | LOAD | ||
encoder uitgang | QCNT 1 | ||
eind-switch I/O uitgang | DIGITAL I/O | ||
+/ − 2, 5 V in | DAC 1 | ||
USB connector | USB connector |
Tabel 2
Software
Voor het opzetten van de verbinding tussen het notebook en de experimentele opstelling wordt de TUeDAX Live DVD v4.0 (USB ONLY!) gebruikt (zie Tabel 1). De relevante software op de DVD is:
- Matlab7p0 (R14) met Simulink en Real-Time Workshop
- Wintarget
- Simulink model
printer01.mdl
voor de aansturing - Referentie generator Ref3
- Realtime signal monitor QADScope
- Konqueror (Web Browser)
De TUeDAX Live DVD v4.0 is gebaseerd op Knoppix 5.1.1 (www.knoppix.org) en bevat een RTAI-patched Linux kernel (www.rtai.org), Matlab/Simulink/RTW R14 en Wintarget real-time target voor de Real-Time
Workshop (RTW). Het voordeel van TUeDAX is dat het een stand-alone, ready-to-use installatie is (er is geen installatie van software nodig), waarmee met hoge bandbreedte een real-time verbinding met een opstelling kan worden opgezet. Versie 4.0 heeft alleen USB support. Je kunt de PCMCIA-kaart dus niet gebruiken.
Om de software te gebruiken, moet er vanaf de TUeDAX Live DVD opgestart worden. Stop de DVD in de DVD-speler en start het notebook op met de DVD-speler als opstartapparaat. Afhankelijk van de bios-instelling van het notebook zal dit automatisch gaan of is een actie van de gebruiker nodig, b.v. het intoetsen van een karakter zoals aangegeven op het scherm. Als alles goed gaat, verschijnt uiteindelijk een full-screen grafische desktop die een vage gelijkenis vertoont met het welbekende Windows. Dit is de KDE desktop van Linux.
Om Matlab op te starten klik je één keer met de muis op het Matlab R14-icoon op de Desktop (dit is een ander icoon dan je vanuit Windows gewend bent). Mocht je per ongeluk dubbel-klikken, sluit dan beide opgestarte Matlab-sessies af en begin opnieuw.
Het programma Konqueror (Web Browser) kan als een soort Explorer gebruikt worden. In de startbalk bevindt zich een shortcut waarmee je het programma kunt opstarten.
Het gebruik van het Simulink model printer01.mdl
en de referentie generator Ref3 wordt in de volgende secties besproken. Daarnaast worden enkele nuttige tips voor het gebruik van Simulink gegeven en de werkwijze voor het opslaan van data beschreven.
Simulink model
Gebruik het Simulink model printer01.mdl
(zie Figuur 2) als basis voor het opzetten van experimenten, i.e. voor het meten aan en aansturen van de printerkop. Open het model vanuit Matlab via het commando >>printer01
.
Het model bevat het Printer Interface Block, dat zorgt voor de communicatie met de printer. De ingang van het blok is de stuurspanning in volt. De eerste uitgang van het blok geeft de waarde van de encoder counter (de positie van de printerkop in encoder counts). Na de initialisatie procedure staat deze teller op 0. De tweede uitgang geeft de status van de printer en de derde uit-
gang geeft een tijdsignaal in [s]. Als een experiment wordt opgestart, begint een initialisatie procedure die de printerkop automatisch naar zijn initiële positie brengt (status := 1, 2). De gebruiker krijgt pas toegang tot de printer na deze initialisatie procedure (status := 3). In praktijk betekent dit dat de printer pas na de initialisatie procedure op ingangssignalen van de gebruiker reageert. De derde uitgang, het tijdsignaal, dient gebruikt te worden om een subsysteem met daarin de zelf ontworpen aansturing te triggeren nadat de initialisatie procedure is afgerond (het blok Stuursignaal in Figuur 2). Tenslotte bevat de printer-software in het Printer Interface Block een beveiligingslaag om crashes bij instabiele regelaars te voorkomen. Dit betekent dat de uiterste standen van de printerkop als een soort demper worden gebruikt. De status wordt dan 4 en de gebruiker verliest toegang tot de printer waarna het experiment opnieuw opgestart moet worden.
In het menu Simulation, submenu Configuration parameters vind je de belangrijkste simulatie parameters. Onder de tab Solver kun je de Stop time die aangeeft hoe lang je experiment duurt, veranderen. Verder kun je onder de tab Data Import/Export het aantal data punten dat bewaart wordt veranderen of deze limiet uitvinken. Verander de andere instellingen niet!
In Sectie #Start-up en experimenten wordt uitgelegd hoe een experiment vanuit dit Simulink model kan worden opgestart.
Referentie generator Ref3
De referentie generator Ref3 kan worden gebruikt om derdegraads referentie trajectories te ontwerpen. Het Simulink model pato01.mdl
bevat het Ref3-blok. Open dit model vanuit Matlab via >>pato01
, vink in het menu Simulation de mode Normal i.p.v. External aan en kopieer het Ref3-blok naar je eigen Simulink model (b.v. printer01.mdl
) om er tijdens het experimenteren gebruik van te kunnen maken (sluit pato01.mdl
zonder wijzigingen op te slaan).
LET OP:
- De trajectorie die na het kopiëren als standaard aanwezig is, moet verwijdert worden door op New te klikken (wil je de Ref3 generator nog niet direct gebruiken, gebruik dan tijdelijk Jogmode met alle opties 0.
- Voordat je een model kunt runnen of builden moet altijd eerst een trajectorie ontworpen en geaccepteerd worden! Zo niet, dan krijg je de foutmelding undefined function or variable ref_part.
- Ref3 kan vastlopen indien je de trajectorie met te grote stappen verandert! Het iteratieve proces dat Ref3 gebruikt om de trajectorie te berekenen, blijft dan op de achtergrond draaien. Wacht dus tot onderaan rechts de melding staat dat de trajectorie succesvol is berekend!
In de volgende stappen wordt het ontwerp van een trajectorie uitgelegd.
- Het Ref3-blok heeft drie uitgangen: de positie, de snelheid en de versnelling van de ontworpen trajectorie als functie van de tijd.
- Door op het Ref3-blok dubbel te klikken opent een scherm waarin de positie van de ontworpen trajectorie als functie van de tijd is weergegeven, zie Figuur 3.
- Een andere, nieuwe trajectorie kan worden ontworpen door op de knop New en vervolgens Add te klikken. In het nu verschenen scherm kan door het specificeren van een begintijd t0, een beginpositie x0, een eindpositie xe, een snelheid v, een versnelling a en een jerk j een gedeelte van de trajectorie ontworpen worden. Door Accept te klikken verschijnt het vorige scherm weer, alleen nu met de ontworpen trajectorie.
- Een trajectorie met een constante snelheid kan worden gemaakt met behulp van de knop Jogmode. Na het klikken op deze knop verschijnt een scherm waarin de snelheid v, de begintijd t0 en de beginpositie x0 moeten worden opgegeven.
- De trajectorie kan aangevuld worden met andere stukken met behulp van de knop Add.
- Ontworpen trajectories kunnen bewaard en geladen worden met de knoppen Save en Load.
- Door het hokje repeat aan te vinken wordt de ontworpen trajectorie herhaald. Let er dan wel op dat de begin- en eindpositie van de trajectorie overeen komen om stappen in de trajectorie te voorkomen.
- Door op Accept te klikken wordt de trajectorie (tijdelijk) bewaard en kan deze gebruikt worden voor experimenten.
- Bij het openen van het eerste scherm wordt de laatst ontworpen trajectorie getoond in de figuur. Wanneer een nieuwe trajectorie wordt ontworpen, komt deze in de figuur, de oude wordt verwijderd en gaat verloren, tenzij deze met de knop Save bewaard is.
Realtime signal monitor QADScope
De realtime signal monitor QADScope is een handige tool om signalen realtime te bekijken (andere, standaard Simulink Library blokken worden in Sectie #Simulink tips and tricks besproken). Het Simulink model pato01.mdl
bevat het RtScope-blok dat de QADScope software bevat. Open dit model vanuit Matlab via >>pato01
, vink in het menu Simulation de mode Normal i.p.v. External aan en kopieer het RtScope-blok naar je eigen Simulink model (b.v. printer01.mdl
) om er tijdens het experimenteren gebruik van te kunnen maken (sluit pato01.mdl
zonder wijzigingen op te slaan). Door op het RtScope blok dubbel te klikken, wordt QADScope opgestart. LET OP: je kunt QADScope alleen tijdens een experiment gebruiken! Probeer je QADScope voor of na een experiment op te starten, dan krijg je een foutmelding. In de volgende stappen wordt kort de belangrijkste functionaliteit van QADScope behandeld.
- Bij het opstarten van QADScope worden 2 vensters geopend; QADScope v2.6 en QADScope View.
- Onder Channel Settings kun je de signalen die binnenkomen, selecteren. Selecteer ze in het pull-down menu en klik on, dat daardoor geel kleurt. Deze signalen worden vervolgens beschikbaar in het signaal-overzicht onder Scope Settings.
- Met Scope Settings kun je aangeven welke signalen je in welke figuur van de QADScope View wilt zien door de betreffende signalen in het signaal-overzicht aan te vinken. De figuur selecteer je uit een pull-down menu bovenaan.
- Met de knop Inst (links onderaan) start je een meting. Je kunt dit ook automatisch triggeren op basis van een ingangssignaal door dit onder Trigger Settings aan te geven.
- Het is handig om alle settings middels load en save settings op te slaan, zodat je niet bij elke meting alle signalen opnieuw moet selecteren en je figuren moet instellen.
- Andere opties en instellingen in QADScope mogen naar eigen believen gebruikt worden.
Indien de interface van Qadscope niet geheel weergegeven wordt, moet de resolutie van het scherm aangepast worden: druk in het Knoppix boot menu dat je krijgt als je laptop start met de DVD erin, voordat je op Enter drukt, op F2. Er wordt een aantal resoluties weergegeven. Typ fb1280x1024 in en druk vervolgens Enter. Knoppix start nu op in deze resolutie.
Simulink tips and tricks
Een signaal kan bewaard, dan wel real-time of offline bekeken worden door toevoeging van een element uit de Sinks groep van de Simulink Library Browser. Voor het opslaan van een signaal voor verwerking achteraf heeft het gebruik van een Out-port of een To workspace blok de voorkeur.
Bij het gebruik van een Out-port (zie b.v. yout in Figuur 2) worden de betreffende signalen nadat het experiment is afgelopen, opgeslagen in een .mat-file met dezelfde naam als de RTA (dus b.v. printer01.mat
) in de Current Directory van Matlab. Dubbelklik op het To workspace blok om de instellingen hiervan te veranderen. Kies een naam en bij voorkeur Array voor Save format. Gebruik geen To file voor het opslaan van data. Bij het gebruik van dit blok gaat het real-time gedrag van het experiment verloren. Nadat het experiment is afgelopen, is de variabele naam in de Workspace van Matlab voorhanden voor verdere analyse.
De derde uitgang van het Printer Interface Block is een tijdsignaal dat start nadat de initialisatie voltooid is. Dit tijdsignaal komt dus niet overeen met de tijdvector die standaard bij Out-ports en To workspace blokken wordt opgeslagen.
Gebruik voor het opslaan van data een USB-stick die je ook als Current Directory van Matlab gebruikt (zie Sectie #Data opslaan).
Data opslaan
Indien de harde-schijf partities van het notebook van het type NTFS zijn, kunnen ze niet gebruikt worden onder Linux om data op te slaan. Er kan dan alleen worden geschreven naar de Linux ramdisk (/ramdisk)
of naar een externe memory stick. Het opslaan van data, figuren of andere Matlab files dient daarom bij voorkeur op een USB-stick gedaan te worden. Bij veel notebooks
wordt de USB-stick automatisch herkend als je deze al voor het opstarten in het notebook plugt. Op de desktop staat dan een icoon dat betrekking heeft op de USB-stick met de naam Hard Disk Partition [sda1] (waarbij sda1, al naar gelang je notebook ook sdb1, uba1, etc. kan zijn, de namen die starten met een (hda1, hda2, etc.) hebben betrekking op de harde schijf). Plug je de USB-stick na het opstarten in, dan verschijnt na een refresh desktop (zie pop-up menu bij rechtermuisknop op de desktop) vaak alsnog dit icoon.
Om data en files te kunnen opslaan dient de USB-stick gemount te worden en vervolgens writable gemaakt te worden. Wanneer bij het icoon van de USB-stick op de desktop rechtsonder een groen driehoekje te zien is, is deze al gemount. Zo niet, dan kan dit via het bijbehorende pop-up menu (rechtermuisknop op het icoon). Vervolgens wordt de USB-stick beschrijfbaar gemaakt via hetzelfde pop-up menu (via (Actions ->) Change read/write mode). Hierna is de USB-stick klaar om vanaf te lezen en naartoe te schrijven. De locatie van de USB-stick is nu /mnt/sda1 (waarbij sda1 al naar gelang de werkelijke locatie van de USB-stick in sdb1, uba1, etc. verandert). Gebruik deze locatie bijvoorbeeld in Matlab als Current Directory of gebruik het programma Konqueror
als file manager / Explorer (zie Sectie #Software).
Als dit niet werkt, (er verschijnt bijvoorbeeld geen icoon die naar de USB-stick verwijst op de desktop), zijn er twee mogelijkheden. De eerste mogelijkheid is dat de bios instellingen niet op default staan. De bios instellingen op default zetten en opnieuw opstarten met de USB-stick van tevoren ingeplugd, kan het probleem verhelpen. Wordt de USB-stick nog steeds niet herkend dan
moet alles handmatig gedaan worden; open een console terminal (het beeldschermpje onderin de icoon balk, dit is een soort dos-window, maar dan voor Linux). Typ su
om superuser te worden en daarmee alle rechten te krijgen. Plug de USB-stick in, wacht enkele seconden en typ dmesg
. Uit de melding op het scherm is onderaan de naam van de stick-partitie af te lezen (b.v. sda1, sdb1, uba1, etc., in het vervolg gaan we ervan uit dat sda1 de USB-stick representeert). Typ mkdir /mnt/sda1
en vervolgens mount /dev/sda1 /mnt/sda1
om de USB-stick lees- en beschrijfbaar te maken. De USB-stick is nu gebruiksklaar, maar mag alleen gebruikt worden door de superuser. Vanuit een console terminal kun je als superuser Matlab opstarten door sudo ml
te typen en bijvoorbeeld het programma Konqueror manager door sudo konqueror
te typen.
Start-up en experimenten
Installeer de hardware volgens de aanwijzingen in Sectie #Hardware en start de TUe-DAX Live DVD (zie Sectie #Software). LET OP: zorg dat alle kabels zijn aangesloten en je USB-stick is ingeplugd voordat je de DVD opstart! De real-time verbinding met de opstelling wordt vanuit Matlab / Simulink tot stand gebracht. Start Matlab / Simulink (zie Sectie #Software) en gebruik het Simulink-model printer01.mdl
als basismodel voor de experimenten. Dit model bevat het Printer Interface Block dat de verbinding tussen de software en hardware vormt (zie Sectie #Simulink model).
Om een experiment uit te kunnen voeren, moet het Simulink model worden gecompileerd (gebuild) met behulp van de Real-Time Workshop (RTW) die er een Real-Time Application (RTA) van maakt. Vervolgens wordt met behulp van Wintarget de RTA aan de TUeDACS module gekoppeld.
Het builden van de RTA wordt gestart door in het Simulink-model onder het menu Tools, Real-Time Workshop -> Build Model te gebruiken (eenmaal op Ctr^b
drukken). Dit kost meestal enige tijd en kan in het Matlab Command Window worden gevolgd. Open een Linux command prompt (een Terminal program in de menubalk) en typ su
(superuser) om te benodigde rechten te
verkrijgen. Ga naar de juiste folder waar je gebuilde experiment staat, e.g., /mnt/sda1
. Typ ./printer01 -w
om de RTA op te starten (indien je het Simulink model een andere naam hebt gegeven, dient printer01
vervangen te worden door deze nieuwe naam). Door de toevoeging -w
start je de RTA in externe mode op. Er moet nu een connectie gemaakt worden tussen het Simulink model en de RTA die daarna vanuit Simulink opgestart moet worden. Ga hiervoor in het Simulink-model naar het Simulation menu en gebruik achtereenvolgens Connect to target en Start real-time code. Om het experiment voortijdig te stoppen, gebruik je in hetzelfde Simulation menu de optie Stop real-time code. Indien er data is bewaard, kan deze na het beëindigen van een experiment met Matlab worden verwerkt (zie Sectie #Simulink tips and tricks en #Data opslaan).
De externe mode werkt soms niet goed bij complexe Simulink modellen in combinatie met hoge sampling rates. In dat geval is het beter om de RTA als een stand-alone programma uit te voeren door de optie -w
weg te laten. De RTA wacht nu niet op een verbinding met Simulink en start direct. Bovendien kunnen signalen alleen achteraf worden geanalyseerd en kunnen parameters in
het Simulink model niet meer tijdens het experiment worden veranderd. In externe mode is dit wel mogelijk. Om het experiment nu voortijdig te stoppen, gebruik je Ctr^c
.
Eventueel kan de RTA ook vanaf de Matlab command line worden gestart via >>wt startup(’printer01 -w’)
. Het is echter een bekend probleem dat dit tot een systeemcrash kan leiden. Gebruik daarom bij voorkeur de hiervoor beschreven wijze waarbij een Linux command prompt wordt gebruikt om de RTA op te starten.
Nuttige tips
Als je een idee wilt krijgen van het systeemgedrag van het ongeregelde systeem, kies dan ́één of meer geschikte stuursignalen voor de motor en registreer de resulterende uitgang.
- Met een sinusvormige ingang (en lineair systeemgedrag) kan een punt van het Bodediagram worden bepaald. Met een aantal van dergelijke ingangen kan dus een compleet diagram worden verkregen.
- Eenvoudige ingangen (bijvoorbeeld even constant, daarna nul) leveren relevante informatie over bewegingsrichting, grootte van de aanwezige wrijving, etc.
Kijk voor meer informatie over systeemidentificatie eens in het boek: Feedback Control of Dynamic Systems, Franklin, Powell.
Houd rekening met extra faseverlies in de open-loop gain van de ordegrootte van ωT
radialen, met sample tijd T in [s]
gelijk aan de Fixed step size uit de simulatie parameters en ω
de frequentie [rad/s]
. Opvoeren van de open-loop gain resulteert op den duur altijd in een instabiel gedrag.
Kijk regelmatig naar de Frequently Asked Questions als er iets niet duidelijk is. Deze wiki zal gedurende de casus worden aangepast.
- ↑ M.J.G van de Molengraft, J.J.P.A. Willems, Handleiding bij de tweedejaars casus (4G031), De Printerkop. Technische Universiteit Eindhoven, 19 september 2010
- ↑ M.J.G van de Molengraft, G.J.L. Naus, S.A.M, Coenen, Handleiding bij de tweedejaars casus (4G031), De Printerkop. Technische Universiteit Eindhoven, 16 september 2009