IF1611 Ingenjörsmetodik (Engineering Fundamentals) HT 2010 Instruktion för laborationen Mätvärdesbehandling i MATLAB för automatiska batteritester Gunnar Malm & Carl-Mikael Zetterling 1
Innehåll Innehåll... 2 Inledning... 3 Planering för de schemalagda labbtillfällena... 3 Detaljerad uppgiftsbeskrivning... 4 Tillgängliga filer och mätuppställning... 4 Uppgift 1 Exempel på figurer i matlab... 4 Uppgift 2 Att importera en formatterad textfil... 7 Uppgift 3 Att jämföra olika batteriers kapacitet... 10 Uppgift 4 Att använda statistikfunktionerna i MATLAB... 10 Uppgift 5 Den inre resistansen... 11 Rapportens utformning... 12 2
Inledning Labbkursen i IF1611 Ingenjörsmetodik är avsedd att vara en introduktion till användning av datorer för problemlösning i detta fall specifikt mätvärdesbehandling. Labbkursen ger 1,5 hp när den är avslutad och betygsätts enbart med godkänd/icke godkänd. Laborationer ska ses som ett tillfälle att lära sig något, i detta fall användning av ett program som är speciellt utvecklat för tekniska beräkningar på stora mängder data. Det är svårt att lära sig ett datorprogram teoretiskt utan att pröva själv; det är bara genom att göra misstagen själv som man lär sig, s.k. trial and error. En introduktion till problemlösning med datorer, inklusive enklare programmering och kurvanpassning med Matlab kommer att ges utspritt på olika föreläsningar. Föreläsningsanteckningarna kommer att finnas på kursens hemsida om ni behöver dem. Ni kan labba ensamma eller två och två. Vid de inbokade labbtillfällena kan ni få hjälp med uppgifterna. Det är frivilligt att komma till labbarna; om ni klarar er på egen hand räcker det att lämna in laborationsrapporten, utom för steg 1 som redovisas muntligt. Om ni labbar två och två så ska ni ange det i båda laborationsrapporterna (ni måste skriva varsin). Följ instruktionerna för redovisning och laborationsrapport. Ett syfte med laborationerna i Matlab är att ge er en första inblick i hur ett tekniskt programmeringsspråk kan användas för att analysera olika resultat och göra enkla modeller och kraftfulla presentationer med figurer, grafer och ljud. Laborationen utförs i flera steg, där du först jobbar med demonstrationsexempel för grafer. Därefter kommer huvuduppgiften som rör testning av batterier. Planering för de schemalagda labbtillfällena LAB 1 LAB 2 LAB 3 LAB 4 LAB 5 Fre, 17 Sep, 08:00-09:45 Tors, 23 Sep, 08:00-09:45 Tors, 30 sept, 08:00-11:45 OBS salar endast första 2h Tors 7 okt, 08:00-11:45 OBS endast 2 salar andra passet Tis, 12 okt, 13:00-14:45 OBS 2h saknas i schemat Rapport inlämning Forum 530 531 532 533 Forum 530 531 532 533 Forum 530 531 532 533 Forum 530 531 532 533 Forum 530 531 532 533 Datorlaboration MATLAB Ta med bärbar dator och boken EKM och KP2 Innehåll labben uppgift 1 Att köra färdiga exempel + installera MATLAB från KTHs hemsida Datorlaboration MATLAB Ta med bärbar dator och boken EKM och KP2 Innehåll labben uppgift 2 Datorlaboration MATLAB Ta med bärbar dator och boken EKM och KP2 Innehåll labben uppgift 3 Datorlaboration MATLAB Ta med bärbar dator och boken EKM och KP2 Innehåll labben uppgift 4 Datorlaboration MATLAB Ta med bärbar dator och boken EKM och KP2 Innehåll labben uppgift 5 Senast Onsdag 20 oktober, 2010. 3
I labbkursen ingår fem delmoment, se tabellen ovan. Planeringen är ett förslag, du får disponera tiden själv utifrån dina förutsättningar. När du löst de angivna uppgifterna ska du sammanfatta resultaten i en kort rapport med tydliga figurer. Ett särskilt mål med labben är att lära sig att följa den mall för figurers utseende som vi har definierat. I rapporten ska du även följa en relativt enkel rubrikstruktur. Detaljerad uppgiftsbeskrivning Tillgängliga filer och mätuppställning Du får tillgång till ett Zip-arkiv under länken Aktiviteter Laboration på kursens hemsida. Här finns filer från tester av olika batterier med storleken AA eller AAA. Flera olika fabrikat har använts och olika resistanser (motstånd) har använts för att ladda ur batteriet. I normalfallet är en 10 Ω resistor inkopplad. Fyra batterier kan testas samtidigt- det finns fyra mätkanaler som mäter en analog spänning och omvandlar den till digital signal som skickas till en PC via en vanlig USB-kabel. Även 2.5 Ω har använts för att snabbare ta upp en urladdningskurva (strömmen blir högre i detta fall). Mycket av informationen om de olika mätningarna kan tolkas från filnamnet, men en bättre sammanställning skickas med i EXCEL-format. I mätuppställningen har batterihållare och omkopplare för de olika motstånden kopplats ihop genom lödning. Motståndens värden har bestämt med en mycket noggrann multimeter och finns tillgängliga med 2 decimalers noggrannhet, även detta finns i EXCEL-filen. Läs mer om själva mätrustningen på: http://www.kjell.com/filarkiv/supportpdf/41-50/48/48169/48169.pdf Uppgift 1 Exempel på figurer i matlab I denna kurs har vi valt MATLAB som är ett tekniskt programmeringspråk för att skapa figurer och hantera stora filer mätvärden. Under första labtillfället ska du komma igång med matlab och som exempel har vi valt några demonstrationer där olika kommandon som skapar figurer används. Du måste installera Matlab, helst före första laborationen. Detta görs genom nedladdning från adressen: http://progdist.ug.kth.se/public/ Du använder då ditt s.k. KTH-id på formen (UG\nolla), dvs för någon som har KTH-id nolla@kth.se. 4
Välj den nyaste versionen av MATLAB 2009B. Ladda ner filerna och installera dem, finns i versioner för windows, mac och linux. Du kommer att behöva göra en registrering av programmet. Använd då din KTH-id/mailadress i alla steg för att undvika förvirring (undvik andra mailadresser som gmail etc). Se till att programmet inte är blockerat, detta händer ibland i windows. Nu är du klar att börja! Du kan komma åt alla demos att MATLAB genom att välja Demos från menyn Help du får då upp ett fönster med följande utseende. Börja med exemplet Line Plotting under gruppen Graphics. Figuren nedan visar hur jag ändrat lite på den kod som finns i kommando-fönstret. Prova att göra detta själv. Rita upp andra matematiskt intressanta samband. Prova olika inställningar med linjer, symboler och färger. Alla kommandon fungerar lika bra att skriva in vid MATLAB prompten >>. Prova även detta och undersök hur figuren ändrar sig. 5
Välj nu exemplet Axes Properties. Här finns bland annat inställningar för logaritmiska axlar. De grundläggande kommandon du sett hittills är: plot set För att lära dig mer om ett kommando skriver du exvis help plot eller för mer detaljerad information doc plot. Du kommer även att behöva följande kommandon för att skapa snygga figurer, i princip går detta att göra interaktivt via menyer och högerklick men det brukar finnas att motsvarande kommando som kan skrivas in vid MATLAB prompten >>. xlabel ylabel legend hold Att redovisa muntligt för assistenten: Stäng först alla öppna figurer. 6
Skapa en ny figur som visar både en sinus- och cosinuskurva i samma figur, över lämpligt intervall på x-axeln (MATLAB räknar med radianer). Ledning: skapa först ena kurvan använd sedan kommandot hold innan du ritar upp den andra kurvan. Högerklicka på olika delar av figuren för att ändra linjetyp, färg, fontstorlek, lägga till text på axlarna etc. För att högerklicka ska vara aktivt måste du först aktivera muspekaren genom att trycka på pilen i menyraderna. Under valet Show Property Editor har du kontroll över de flesta egenskaperna för figuren. Du kan också få hjälp med att skapa en MATLAB kod under Show m-code. Undersök också de olika valen under menyn Insert. När du är nöjd visa för assistenten. Om du har tid över: Kör gärna också exemplet Visualizing Sound. Se till att du har ljudet/högtalarna påslagna. Vill du läsa mer om detta exempel sök då rätt på förra årets labinstruktion HT2009 (http://www.kth.se/polopoly_fs/1.39787!kompendium2ht2009medlabbar.pdf). Uppgift 2 Att importera en formatterad textfil Uppgiftens huvudsyfte är att hantera de textfiler i s.k. ASCII format (http://en.wikipedia.org/wiki/ascii) som lagrats av batteritestaren. I korthet innehåller filerna från upp till fyra kanaler. De finns både som diskreta (8-bitars) tal och angivna som spänning (V). Testaren innehåller alltså en 8-bitars A/D omvandlare (http://en.wikipedia.org/wiki/analog-to-digital_converter). Data har lagrats vid fixa tidsintervall. Filen innehåller även information om mätningen av typen start- och stopptid och namn på de olika kolumnerna med värden. Du ska dock bara hantera de numeriska värdena. Det finns ett antal lösningar på detta och rekommenderade matlabkommandon finns i tabellen nedan. fileformats dlmread importdata textscan Öppna en av de bifogade filerna Zip-arkivet (se ovan) i matlabs editor. För denna uppgift väljer du filen: AAA_test_100816_4KC.txt. Gå till fönstret Current Directory och högerklicka på filen, välj Open as Text. Bekanta dig med hur filen är formatterad.vilken decimalseparator används? Läs mer om detta på länken (http://en.wikipedia.org/wiki/decimal_separator). Lägg 7
märke till att Matlab bara hanterar decimalpunkten., enligt amerikansk standard även om din dator normalt sett har svensk standard: Hur separeras de olika kolumnerna? Vanligtvis används tab eller mellanslag. På vilken rad i filen börjar och slutar de numeriska värdena? I vilka kolumner finns digitala respektive analoga värden för de olika kanalerna? Använd svaren på ovanstående moment för att ladda in en av filerna i MATLABs workspace. Det rekommenderade kommandot är dlmread även om det kan finnas andra lösningar. En sådan är att högerklicka på filen och välja Import Data. RESULT = DLMREAD(FILENAME,DELIMITER,RANGE) reads the range specified by RANGE = [R1 C1 R2 C2] where (R1,C1) is the upper-left corner of the data to be read and (R2,C2) is the lower-right corner. RANGE can also be specified using spreadsheet notation as in RANGE = 'A1..B7'. Börja med att läsa in de fyra kanalerna med spänningsvärden, du ska alltså sätta in rätt värden på kolumnerna som betcknas C1 och C2 och raderna som betecknas R1 och R2: Du ska nu ha fått en stor matris (i exemplet nedan heter den cols) i ditt workspace. Om du högerklickar på den kan du välja alternativet plot all columns. 8
Du ska då få en graf som ser ut så här: Upprepa inläsningen av filen men ta nu med alla kolumner så att du får tillgång till x- axelns värde. Lär dig hur man väljer ut en given kolumn ur en stor matris: Skrivs exvis som: eller xvarden=cols(:,2) yvarden=cols(:,9) där cols är namnet på en matris - kan naturligtvis vara något annat i ditt fall: Gör nu en ny figur med korrekta x-värden (tider) och med y-värden (spänning) från endast en av kanalerna. Använd plot -kommandor, jfr uppgift 1! 9
Använd Zoom-verktyget för att studera kurvan i detalj, lägg märke till att den ibland hoppar mellan två nivåer, hur stor är denna mätosäkerhet mätt i V? Lägg till texter på axlarna, redigera linjetyp, symboler etc. Spara figuren till din rapport. Kopiera och klistra in i ett lämplig dokument, wordfil eller motsvarande. Uppgift 3 Att jämföra olika batteriers kapacitet Från en urladdningskurva är det relativt enkelt att bestämma ett batteris kapacitet dvs den laddning man få ut innan spänningen sjunker under acceptabel nivå. Urladdningskurvan ger ju spänning som funktion av tid. Om man vet urladdningsresistansen är det enkelt att bestäma strömmen som flyter i kretsen. Om batteriet har en hög inre resistans måste kan korrigera för detta, se nedan Uppgift 5. Laddningen är ju då helt enkelt den integrerade strömmen. Antag att inre resistansen kan försummas och ställ upp detta matematiska samband och redovisa i din rapport. Välj nu datafilen test3_100804.txt här jämförs fyra st AAA batterier, för detaljer se EXCEL-filen. Skapa först en figur där de olika kurvorna är tydligt uppmarkerade. Beräkna nu laddningen = den integrerade strömmen för var och en av dem. Ange dina beräknade värden i enhten mah, förklara hur du gör för att få fram den. Gör en jämförelse mellan fallet när du tar med hela tidsintervallet och när du bara räknar med fram till den punkt där spänningen sjunkit till omkring halva maxvärdet. Numerisk integration med trapetsmetoden är enkelt att utföra i matlab, kommandot heter: trapz Upprepa nu för AA-batterier i filen AA_test_100810.txt. Vilken batterityp har störst kapacitet? Vad är det ungefärliga förhållandet mellan AA och AAA för fabrikatet KC respektive för PROCELL? Uppgift 4 Att använda statistikfunktionerna i MATLAB I några av mätningarna har alla fyra kanaler använts för identiska batterier, ett sådant exempel fanns med i uppgift 2. Nu ska vi göra en statistisk analys på dessa data. I många fall vore det bra att ha mätningar på ca 10 batterier men fyra räcker i denna uppgift. Du ska nu använda de två filerna nedan för att beräkna medelvärde, standardavvikelse och standardosäkerhet på batteriernas laddningskapacitet: AA_test_100814_4Dura.txt AA_test_100813_4KC.txt 10
Lös uppgiften genom att skapa en funktion som tar data från en importerad textfil som indata och som returnerar de efterfrågade värdena som utdata. MATLAB har många inbyggda statiskfunktioner men du måste själv beräkna laddningen genom integration. Lös själva filhanteringen på samma sätt som ovan, funktionens uppgift är att automatisera vissa beräkningar som är ofta återkommande. I denna uppgift kan funktionen anropas från MATLAB prompten >>. Syftet med denna uppgift är att lära sig begreppet funktion. En funktion kan beskrivas som ett enkelt program. Du skriver koden i MATLABs editor och den köras direkt. I andra programmeringsspråk som JAVA eller C++ krävs exempelvis att man kompilerar programmet. Det är enkelt att testa sig fram och göra förändringar i koden. Ett större program organiseras i flera olika funktioner, men det ligger utanför denna kurs. Efter att du skapat en fungerande lösning ska du kunna svara på vilken av batterityperna som har minst variation i laddningskapacitet. Redovisa din MATLAB funktion i en bilaga. Tips 1: MATLABs inbyggda funktioner såsom trapz, mean, eller std är förberedda för att hantera flera kolumner av data samtidigt så i princip ska din funktion kunna hantera olika antal kanaler. Tips : En bra lösning av problemet ska kunna hantera olika långa mätserier (tider). Fundera på hur du ska lösa integrationen, hela kurvan eller bara fram till en viss spänningsnivå, se ovan. Uppgift 5 Den inre resistansen Den sista uppgiften är en tillämpning på begreppen mätnoggrannhet, felanalys och sammansatt fel. Den kan lösas i MATLAB men data är även tillgängliga i EXCEL för den som föredrar det. Alla batterier har en inre resistans som gör att polspänningen sjunker när batteriet belastas, när det flyter en ström. Den inre resistansen beror på typ av batteri, men också på storleken ex.vis AA eller AAA. Din uppgift är att bestämma den inre resistansen utifrån ett kretsschema och några nogrannt uppmätta värden på polspänning vid olika last. Börja med att rita upp en krets där ett belastningsmotstånd (Ry) ligger parallellt med batteriet och där den inre resistansen (Ri) förekommer i en seriekoppling. Rita även in hur spänningen mäts över batteriets poler. Ta med denna figur i din rapport. Visa nu matematiskt hur man tar fram den inre resistansen Ri om man har mätt polspänningen när belastningsmotståndet är bortkopplat (kalla detta värde Upol) respektive när det är inkopplat (kalla detta värde U). Redovisa ekvationen i din rapport. Följande mätningar har gjorts på fyra batterier av varje typ, data finns i EXCEL format: AA U (V) 10 ohm Ry 1 2 3 4 1 (1 min) 1 (1 h) 2(1 h) inf Upol 1.613 1.613 1.613 1.613 1.578 1.468 1.458 98.2 1.607 1.606 1.607 1.607 1.574 1.464 1.455 11
46.4 1.601 1.601 1.602 1.601 1.571 1.46 1.451 21.6 1.59 1.59 1.591 1.59 1.562 1.451 1.441 9.85 1.57 1.565 1.57 1.57 1.542 1.433 1.421 AAA U (V) 22 ohm Ry 1 2 3 4 4 (1 min) 4 (30 min) 3 (30 min) inf Upol 1.608 1.608 1.608 1.608 1.591 1.508 1.513 98.2 1.597 1.598 1.598 1.599 1.586 1.504 1.507 46.4 1.588 1.589 1.589 1.591 1.581 1.499 1.501 21.6 1.569 1.573 1.573 1.577 1.568 1.488 1.489 9.85 1.534 1.543 1.543 1.548 1.545 1.467 1.461 Den yttre resistansen har alltså varierats mellan fyra olika värden som alla är mycket noggrannt bestämda. Mätningar har gjorts på nya batterier men också efter en viss tids urladdning. Lös uppgiften genom att beräkna den inre resistansen för alla dessa fall. Jämför AA och AAA batterier, jämför också nya och urladdade batterier. För jämförelserna är det lämpligt att använda medelvärden. Gör också en analys av det sammansatta felet i den inre resistansen. I detta sammansatta fel ingår osäkerheten i belastningsmotståndets värde samt osäkerheten i de uppmätta spänningarna. Redovisa det matematiska uttryck som du använder. Sätt in värden och beräkna det absoluta och relativa felet för några av de givna fallen. Rapportens utformning Rapporten för deluppgifterna 2-5 skall omfatta 3-5 sidor. Den skall innehålla följande delar. Titelsida Inledning Resultat Slutsatser Bilagor Med namn, kontaktuppgifter, datum, ev. gruppmedlemmar Om laborationens syfte allmänt, kort om mätuppställningen och MATLAB. Här redovisar du de figurer du skapat och beskriver dem i löpande text med figurhänvisningar och figurtexter. En kortare sammanfattning med lite diskussion om de viktigaste resultaten. Här lägger du MATLAB kod som du skapat 12
Exempel på en figur med korrekt hänvisning och figurtext. Använd fonten Times New Roman eller motsvarande. Rekommenderad fontstorlek minst 30 punkter men gärna mer om det passar med figurens storlek. Här tänker vi oss att figuren är ungefär i skärmstorlek. Man får sedan minska ner den så att den passar in på sidan i rapporten. Färger kan avändas men komplettera gärna med symboler eller olika linjetyper. Lämpig linjebredd är 2 punkter (MATLAB väljer normalt 0.5 men det blir för svagt). Lämplig symbolstorlek minst 6 punkter. Vi har jämfört två identiska batterier genom att göra en tvåkanalsmätning med lämplig last för att skapa urladdningskurvor. Man ser tydligt i Fig. 1 att batterierna har samma kapacitet, dvs arean under kurvan är jämförbar. Polspänning med 10 Ω last (V) 2 1.5 1 0.5 Batteri AAA 1 Batteri AAA 2 0 0 2000 4000 6000 8000 Urladdningstid (s) Figur 1. Standardtest för batteriurladdning med 10 Ω last för två identiska AAAbatterier. 13