• No results found

4.3 Mätresultat, kalibrering och validering

4.3.1 Innan kalibrering

Eftersom systemet är pumpstyrt vid lyftrörelsen och ventilerna sedan tidigare an- passats efter leverantörsdata stämmer redan hastighetsprofilen när gaffelpaketet höjs. Sänkningen av gaffelpaketet är ventilstyrt och beror på tryckdifferensen över sänkningsventilen. Sänkningsventilen leder i modellen direkt ut till tank (atmo- sfärstryck) vilket resulterar i för hög sänkhastighet. Figur 4.8 visar hur positionen hos gaffelpaketet ser ut vid ett körfall hos den okalibrerade modellen.

0 10 20 30 40 50 60 70 0 500 1000 1500 2000 2500 3000 3500 Time [s] Height [mm] Position measured Position simulated

Figur 4.8: Ursprunglig modell, positionen stämmer överens när gaffelpaketet lyfts. Sänkningen beror på tryckdifferensen över sänkningsventilen och ger upphov till att sänkrörelsen börjar för tidigt.

Figur 4.9 visar hur pumptrycket och cylindertrycket varierar för den okalibre- rade modellen. Tydligt är att det finns en statisk förskjutning hos alla trycknivåer samt att tryckfallet över höjningsventilen är felaktigt. Pumptrycket sjunker även till atmosfärstryck när pumpvarvtalet går mot noll detta har modellerats med en ventil som endast öppnar sig när insignalen till pumpen är ≈ 0.

0 10 20 30 40 50 60 0 5 10 15 20 25 30 35 40 45 Time [s] Pressure [bar] Cylinder measured Pump measured Pump simulated Cylinder simulated

Figur 4.9: Ursprunglig modell, trycknivåer och tryckdifferensen mellan cylinder- tryck och pumptryck är fel.

4.3 Mätresultat, kalibrering och validering 23

4.3.2

Kalibrering

Det statiska tryckfelet åtgärdades genom att höja lastkraften och justera friktionen som uppstår i cylindern. Tryckfallen över ventilerna justerades genom att införa strypningar efter ventilerna. Dessa strypningar existerar i ett riktigt system i form av slangförluster och andra imperfektioner i konstruktionen. Ett lyft genomfördes med noll i last (ingen extra last på gafflarna) resultatet kan beskådas i figur 4.10 och figur 4.11.

0kg last

Figur 4.10 visar en tämligen välfungerande modell som fångar den primära dyna- miken. Vid t = 20s sjunker gaffelpaketet snabbare i den simulerade modellen än vid mätningarna. Insignalen till ventilen är vid det tillfället väldigt nära dödbandet och förändringar av dödbandet ger stort utslag vid högre insignalsnivåer. Det figur 4.10 visar är en avvägning för att få den bästa anpassningen i hela arbetsområdet för ventilen. Figur 4.11 visar att modellen fångar stora delar av karaktäristiken, t.ex. tryckspiken vid t = 18s.

0 10 20 30 40 50 60 70 0 500 1000 1500 2000 2500 3000 3500 Time [s] Height [mm] Measured Simulated

Figur 4.10: Kalibrerad modell: Sänkhastigheten har anpassats genom att införa en strypning efter sänkventilen.

0 10 20 30 40 50 60 0 10 20 30 40 50 Pressure [bar] Time [s] Cylinder measured Pump measured Pump simulated Cylinder Simulated

Figur 4.11: Kalibrerad modell: En strypning efter lyftventilen används för att an- passa tryckfallet.

24 Hydraulikmodell

500kg last

För att undersöka hur modellen hanterar last utfördes ett lyft med 500kg. Figur 4.12 och 4.13 visar resultatet från lyftet. Det är lätt att konstatera genom att studera figur 4.13 att trycknivåerna överlag stämmer. Det är även lätt att konsta- tera att något är fel i figur 4.12. När lasten sänks vid t = 15s är sänkhastigheten helt olik den uppmätta. Sänkningen av lasten vid t = 50s har samma utseende som det uppmätta om än något förskjuten. För att undersöka fenomenet närmare genomfördes experimentet ytterligare en gång med en ny truck. Figur 4.14 visar resultatet från experimentet. Insignalen till sänkventilen ligger på en nivå så att gaffelpaketet precis rör sig. Ett rimligt antagande är att dödbandet är felkalibrerat. Genom att höja dödbandet till ventilen erhålls beteendet i figur 4.15. Föränd- ringar i temperatur kan vara en orsak till förändringen i dödbandet. Även det ökade trycket som följer av ökad last kan vara en starkt bidragande orsak. Tryckökning- en resulterar i att den statiska friktionen som måste övervinnas när solenoiden ska öppna ventilen ökar. Vid närmare studier av insignalen till ventilen blir det tydligt att det som skiljer sänkningen vid t = 15s och t = 50s är den senare ligger på en högre nivå och således inte blir lika påverkad av det förhöjda dödbandet. Styrförmågan i trucken vid låga styrsignaler till ventilen blir kraftigt begränsad när trucken är lastad. 0 10 20 30 40 50 60 70 0 500 1000 1500 2000 2500 3000 Time [s] Height [mm] Measured Simulated

Figur 4.12: Kalibrerad modell: 500kg last, den felaktiga sänkhastigheten vid 20s beror på ökat dödband i ventilen. Truck nr1

0 10 20 30 40 50 60 0 10 20 30 40 50 60 70 80 90 Time [s] Pressure [bar] Cylinder measured Pump measured Pump simulated Cylinder simulated

4.3 Mätresultat, kalibrering och validering 25 0 5 10 15 20 25 30 35 40 45 50 0 500 1000 1500 2000 2500 3000 3500 Time [s] Height [mm] Position measured Position simulated Valvesignal

Figur 4.14: Position och insignal till ventil. Uppmätt på en annan truck för att undersöka hurvida det förändrade dödbandet var en engångsföreteelse. Insignalen till ventilen har ej korrekt skala i figuren.

0 10 20 30 40 50 60 70 −500 0 500 1000 1500 2000 2500 3000 Time [s] Height [mm] Measured Simulated

Kapitel 5

Simulink gränssnitt

MATLAB/Simulink används för att skapa ett gränssnitt mot styrsystemet genom att simulera de sensorer och mätdata som styrsystemet utnyttjar. Nedan följer en beskrivning av alla de signaler som modelleras i Simulink. Vissa signaler är snar- lika varandra där endast konstanter skiljer dem åt, dessa kommer inte redovisas separat.

5.1

Positionssensor

Höjden på stativet och positionen av gaffelpaketet mäts via två sorters enkodrar. En linjär linjal mäter utskjutningen av gaffelpaketet. Sensorer sveper över linjalen och pulserar enligt figur 5.1b. Signalerna följer mönstret

00 01 11 10

när gaffelpaketet skjuts utåt. Mjukvaran utnyttjar mönstret hos signalen för att ad- dera respektive subtrahera pulser vid positionsberäkningen. Höjdmätningen sköts av en cirkulär enkoder likt den i figur 5.1a. I mjukvaran modelleras även den fixe- rade linjalen som en cirkulär enkoder för att kunna utnyttja samma algoritmer för

θs ω (a) Enkoder B(θ) A(θ) θ θ θs θp (b) Pulssekvens positionsenkoder Figur 5.1: Positionsenkoder 27

28 Simulink gränssnitt Pulse_2 2 Pulse_1 1 Theta_s Pulses / Revolution Theta_s Pulses / Revolution 100 Pulses Radian Theta_s Pulse_1 Pulse_2 EncoderWheel Meter Circumference [m] Radians Circumference [m] 1.2 Meter 1

Figur 5.2: Enkoder - Pulses blocket innehåller implementationen av ekvation (5.3) och (5.4).

positionsberäkningen. En Simulinkmodell över den cirkulära enkodern modelleras med antalet pulser per varv som variabel för att justera avståndet mellan pulserna.

θs=

pulses/revolution[rad] (5.1)

θs, ekvation (5.1) motsvarar rotationsvinkeln som krävs för att en puls skall

genereras. Enkodern skickar pulser i cykler enligt figur 5.1b; det går fyra pulser per cykel. Ekvation (5.3), (5.4) och ekvation (5.2) visar teorin bakom modelleringen av enkodern. Den resulterande Simulinkmodellen kan beskådas i figur 5.2.

θp= 4θs (5.2) A(θ) = ( 1 if 0 < modθp(θ − θs) < θp 2 0 if θp 2 < modθp(θ − θs) < θp (5.3) B(θ) = ( 1 if 0 < modθp(θ) < θp 2 0 if θp 2 < modθp(θ) < θp (5.4)

Fri / Huvudlyft Höjdsensorer

Utöver positionssensorn finns även signaler som aktiveras när gaffelpaketet närmar sig botten samt när den närmar sig toppen hos frilyftet. Alla dessa signaler modelle- ras på samma principiella sätt med den enda skillnaden i vilka nivåer som signalen skall triggas på. Tabell 5.1 visar på vilka sensorer som finns i de två olika graderna av utrustning på trucken, basic sensor solution samt full sensor solution. Figur 5.3 visar en av dessa sensorer. När gaffelpaketet ligger mellan 0 < x < 400mm sätts signalen till 1.

5.2 Styrsignaler - Ventiler 29

Above 0mm

Under 400mm

CAN = 1 if AND == TRUE

Mast_near_lower 1 TempVar3 1 TempVar2 0 TempVar1 0 TempVar 1 Switch2 >= Switch >= 0 Logical Operator AND Height 1

Figur 5.3: Signaler för höjdsensorerna i fri och huvudlyftet.

Basic sensors Position [mm] Mast split sensor Binär sensor Forks near top sensor x < 400 from free lift top

Mast near lower position sensor 0 < x < 400 Full sensor solution Position [mm]

Mast split sensor Binär sensor Free lift reference sensor 0 < x < 800 Lift height encoders Se kap. 5.1

Tabell 5.1: Sensorer vid olika utrustningsnivåer, x representerar position och mäts i [mm]

5.2

Styrsignaler - Ventiler

Alla ventiler styrs av solenoider med en insignal mellan 0-1 A. Solenoider betecknas

Q[1 . . . ∞]. Ventilerna som styr huvud och frilyftet har endast en solenoid som

verkar. Övriga funktioner t.ex. reach, cabin-tilt, sideshift etc har två solenoider som verkar från två håll för att öppna respektive stänga ventilen. Hopsan har inte ventiler med två solenoider utan använder positiva respektive negativa insignaler för att åstadkomma samma sak. I Simulink skalas alla signaler efter mätdata för att ge korrekt flöde i Hopsanmodellen. Figur 5.4 visar konverteringen med dödzon samt erforderlig skalfaktor. Switchblocket används endast för att välja mellan de två insignalerna till Hopsanmodellen. Mjukvaran ska i teorin aldrig ställa ut signaler till Q6 och Q7 samtidigt, om det mot förmodan skulle ske är det lätt att detektera genom att använda ett logiskt AND på Q6 och Q7. Värdet kan sedan skickas som en Environmentsignal till CANoe.

30 Simulink gränssnitt valveSignal 1 q6/q7 switch > 0 ScaleFactor1 −1.8182 ScaleFactor 1.8182 Dead Zone1 Dead Zone q7 2 q6 1

Figur 5.4: Simulinkmodell för översättning från Q6/Q7

5.3

Trycksensor

En trycksensor i trucken används för att skatta vikten hos lasten på gafflarna. Sensorn registrerar 500mV vid 0 bar och 4500mV vid 250 bar. Figur 5.5 visar dess linjära beteende. 500 2500 4500 mV mV 125 250 0 bar

Figur 5.5: Analog tryckmätare

5.4

Prestanda

Eftersom målet är att kunna använda modellen i realtids applikationer är det intressant att undersöka vilken prestanda modellerna har. Hopsan kan tack vare utnyttjandet av TLM simulera komplexa hydrauliksystem väldigt snabbt[3]. När en Hopsanmodell exporteras till en s-funktion skickas lösaren med i exporten. Viss overhead är ändå att vänta då Simulink vid varje tidssteg ber Hopsan-s-funktionen att simulera sig själv. Ett experiment genomfördes där modellen simulerades i Hopsan för att sedan jämföras med samma modell exporterad till Simulink.

En modell av de delar i trucken specifika för reach användes och simulerades åtta gånger i Hopsan och ett medelvärde av simuleringen användes. Modellen ex-

5.4 Prestanda 31

Tabell 5.2: Hårdvara och mjukvara Intel Pentium 4 3.4GHz 2.0 GiB RAM

Microsoft Windows XP SP3 Matlab R2011b

Hopsan 0.5.4

porterades sedan till en s-funktion och importerades i Matlab/Simulink. Modellen simulerades sedan och tiden mättes genom tic,sim(’modell.mdl’),toc. Sampeltid 0.001s och simuleringstid var i båda fallen 10s.

Avg [s] Hopsan 0.062 0.062 0.062 0.079 0.078 0.063 0.062 0.069 0.0668 Simulink 0.689 0.751 0.720 0.757 0.733 0.746 0.722 0.716 0.729

Tabell 5.3: Simuleringstid, Hopsan och Simulink med s-funktion

Simuleringstiden ökar i det här fallet med en faktor 11 vilket är en klar för- sämring av prestandan. Trots försämringen är det mer än tillräckligt för att si- muleringar i realtid skall vara möjligt. Det är värt att poängtera att det inte är möjligt att av detta exempel dra slutsatser om den exakta overheaden vid export till simulink då det statistiska underlaget är för litet.

Kapitel 6

HIL - Hardware In the Loop

HILriggen som kommer användas är VT Systems CANoe tillverkad av det tyska företaget Vector. Systemet är baserat kring en ordinär PC som använder Windows CE som operativsystem. Till skillnad från vanliga versioner av Windows så är Windows CE ett realtidsoperativ. Realtid innebär att det inte bara är korrektheten i beräkningen som är intressant utan även att de är klara i tid. En vanlig dator är väldigt snabb på att räkna men kan ej garantera att data skickas ut i rätt tid. Realtid är alltså inte nödvändigtvis hastighet och beräkningskraft utan snarare om förutsägbarhet i när data är redo för leverans.

HIL

Main Control Unit - MCU

I/O

Reach

Lift

Figur 6.1: Hardware in the loop CANoe används för att simulera

de bussar och kringutrustning som finns i en komplett truck. För att styrsystemen ska erhålla verklighets- troget stimuli kopplas hydraulik och omvärldsmodellen till CANoe via ett interface-bibliotek med I/O-block. Sig- nalerna mappas även mot en CAN- databas för att ge ett så verklighets- troget intryck som möjligt. Figur 6.2 visar hur man enkelt mappar signa- ler och variabler från CAN-databasen i CANoe till I/O-block i Simulink.

CANoe kan användas på två pri-

mära sätt, offline och online (HIL). I offlineläget styrs simuleringen från MAT- LAB/Simulink, CANoe agerar slav och alla debugverktyg i MATLAB/Simulink kan användas. Offlineläget används med fördel tidigt i utvecklingen då Simulink- modellen inte behöver kompileras efter varje ändring. I onlineläget (hardware-in- the-loop) kan riktig hårdvara kopplas till nätverket. Simuleringarna körs i realtid och Simulinkmodellen måste kompileras till en dll som laddas in i CANoe. När den av Simulink Coder framtagna dll-filen är inladdad kan alla parametrar och

34 HIL - Hardware In the Loop

Figur 6.2: Mappning av Environmentsignaler i Simulink

signaler loggas och ändras genom CANoe.

Figur 6.3: CANoe - Nätverksnoder

Figur 6.3 är en skärmdump från Vector CANoe. CANnätverket skapas auto- matiskt när projektet associeras med en CANdatabas. CANdatabasen innehåller information om alla CANmeddelanden som existerar i trucken. Databasen kan lätt modifieras med nya signaler och meddelanden för att hantera behovet av signaler till t.ex. debug-funktioner.

CANdatabasen modifierades med ett antal extra Environmentvariabler att an- vända för styrning av Simulinkmodellen i brist på en MCU. En kontrollpanel skapa- des i CANoe Panel Designer för enkel styrning och visualisering av simuleringen, se

Related documents