• No results found

Slutsats

In document TOM ESKILSSON FELIX LINDBLOM (Page 30-55)

Resultaten ifr˚an m¨atningar var n˚agorlunda f¨orv¨antade d˚a precisionen p˚a konstruk-tionen och komponenterna beh¨ovde vara h¨ogre ¨an de vi hade tillg˚ang till och kunde tillverka. Men resultatet var tillr¨ackligt bra f¨or att besvara de forskningsfr˚agor vi formulerade i projektets start.

16

4.2. SLUTSATS

Den f¨orsta forskningsfr˚agan kunde besvaras och slutssatsen som kunde dras efter testerna fr˚an den optiska och den induktiva givaren var att den optiska givaren presterade b¨attre ¨an den induktiva givaren p˚a grund av slumpm¨assiga fel fr˚an den induktiva givaren.

Fr˚an tabell 3.4 kunde slutsatsen att f¨or mycket av bromskraften inte g˚ar direkt till lastcellen utan tas upp av andra komponenter i form av tr¨oghetsmoment, frik-tionsv¨arme och friktion i kullager. Detta skapar m˚anga potentiella felk¨allor vilket g¨or det sv˚art att f˚a ut v¨arden som ¨ar konsekventa.

17

Kapitel 5

Rekommendationer för framtida arbeten

Om en fullskalig dynamometer skulle byggas s˚a skulle en induktiv givare vara att f¨oredra d˚a dessa ¨ar mer slitstarka och klarar h˚ardare milj¨oer ¨an vad optiska givare g¨or [1]. Om man dock skulle l¨agga tid p˚a att g¨ora n˚agon form av skydd f¨or en optisk givare s˚a att den blir mindre k¨anslig f¨or milj¨o s˚a skulle den enligt v˚ara resultat vara att f¨oredra d˚a den ger mer exakta resultat ¨an den induktiva. En f¨ordel med den optiska ¨ar ocks˚a att den g˚ar att driva med hj¨alp av arduinon, det vill s¨aga ingen extern sp¨anningk¨alla beh¨ovs till konstruktionen.

Om en fullskalig dynamometer skulle byggas s˚a skulle mekanismen f¨or att f˚a ut kraften som motorn genererar ¨andras eller helt och h˚allet bytas ut mot en annan l¨osning. Detta skulle speciellt vara n¨odv¨andigt d˚ast¨orre motorer med mer kraft skall m¨atas d˚a detta skulle generera otroligt mycket friktionsv¨arme och andra f¨orluster med en liknande konstruktion som anv¨andes f¨or prototypen i detta projekt. Detta skulle resultera i d˚alig repeterbarhet hos dynamometern vilket ej ¨ar bra d˚a god re-peterbarhet ¨ar en l¨amplig egenskap f¨or dynamometrar. Speciellt f¨or dynamometrar som anv¨ands av f¨oretag d¨ar dynamometern tillf¨or en viktig del till produkten [18].

D¨armed skulle n¨asta steg bli att testa de andra kompakta bromsarna som anv¨ands i dag, och sedan m¨ojligtvis optimera en utav dom. D¨ar en eddy current bromsme-kanism troligtvis skulle vara den rimligaste att unders¨oka f¨orst. Ett omr˚ade som

¨aven ¨ar viktigt att unders¨oka ¨ar vid vilken temperatur motorn ska testas, det ¨ar framf¨orallt viktigt vid m¨atning av f¨orbr¨anningsmotorer [5].

Efter att en motor har k¨orts i dynamometern exporteras resultatet f¨orst till ex-cel och sedan till Matlab d¨ar resultatet plottas med en f¨orprogramerad kod. Detta skulle vara l¨ampligt att se ¨over d˚a det b¨or g¨oras mer automatiserat. S˚a efter en k¨orning ¨ar gjord s˚a plottas resultatet automatiskt p˚a datorsk¨armen.

19

Litteraturförteckning

[1] Hans Johansson. Elektroteknik. Institutionen f¨or maskinkonstruktion, Tekniska h¨ogsk., Stockholm, 2006.

[2] Alan C. Lloyd & Thomas A. Cackette. Diesel Engines: Environmental Impact and Control. Journal of the Air & Waste Management Association, 51:6, 809-847, 2001, https://doi.org/10.1080/10473289.2001.10464315.

[3] Nazanin Mansouri. A Case Study of Volkswagen Unethical Practice in Diesel Emission Test. International Journal of Science and Engineering Applications, HELP University, Malaysia, 2016.

[4] Fredrik Bark. Bel¨aggningsanalys av motorprovningen vid Volvo Aero Corpo-ration. Institutionen f¨or teknik och naturvetenskap, Link¨opings Universitet, Norrk¨oping, 2005, http://urn.kb.se/resolve?urn=urn%3Anbn%3Ase%3Aliu%

3Adiva-97814.

[5] Christoffer Lind & Tobias Nilsson. Ny m¨at-trigger i Scanias motorprovning.

Institutionen f¨or teknikvetenskap och matematik, Lule˚a tekniska universitet, Lule˚a, 2011, http://www.diva-portal.org/smash/record.jsf?pid=diva2%

3A1029189

[6] How To Set Up A Photo Interrupter (or Slotted Optical) Swit-ch On The Arduino. http://www.utopiamechanicus.com/article/

arduino-photo-interruptor-slotted-optical-switch/ (h¨amtad 2019-03-27)

[7] Nihad Subasic. Kursmaterial MF133X, vt 2019, F5 Sensorer. Industriell teknik och management, Tekniska h¨ogsk., Stockholm, 2018.

[8] elektrokit, Lastcell 1kg.. https://www.electrokit.com/produkt/

lastcell-1kg/ (h¨amtad 2019-03-27)

LITTERATURF ¨ORTECKNING

[10] Frances Reed, How Do Servo Motors Work.. http://www.modularcircuits.

com/blog/articles/h-bridge-secrets/h-bridges-the-basics/ (h¨amtad 2019-03-28)

[11] Nihad Subasic. H-Bridge Tutorial. Industriell teknik och management, Teknis-ka h¨ogsk., Stockholm, 2018.

[12] S˚a fungerar en induktiv givare.. http://www.support-carlogavazzi.se/

artikel.asp?ID=793(h¨amtad 2019-03-28)

[13] Optical Encoder Project http://groups.csail.mit.edu/mac/users/

pmitros/encoder/ (h¨amtad 2019-04-28)

[14] Optical Position Encoder with Arduino https://www.electroschematics.

com/10494/arduino-optical-position-rotary-encoder/ (h¨amtad 2019-04-28)

[15] Arduino UNO REV3 SMD https://store.arduino.cc/

arduino-uno-smd-rev3 (h¨amtad 2019-04-05)

[16] How Do Microcontrollers Work? https://www.autodesk.com/products/

eagle/blog/how-microcontrollers-work/ (h¨amtad 2019-04-05)

[17] Jyotindra S. Killedar. Dynamometer: Theory and Application to Engine Testing Xlibris Corporation, 2012.

[18] Alaa E. El-Sharkawy. Reliability Analysis of Dynamometer Loading Parameters during Vehicle Cell Testing. DaimlerChrysler Corporation, United States, 2007, https://doi.org/10.4271/2007-01-0600.

22

Bilaga A

Flödesschema

Fl¨odesschema f¨or systemets funktion, gjord i draw.io.

23

START

Ingen bromskraft Medel bromskraft Hög bromskraft

Körning utan

Bilaga B

Schematisk figur över system

En Schematisk figur ¨over hela systemet som anv¨andes i detta projekt, gjord i frit-zing.

25

R3 R2 220Q

>

22QQ

±5%

±5% : > " "

' '

OPB960T51

Parts

rl

1& .. ±5 Vo ;> "

54

- 1

R7 4.7kQ ±5% "

I

A

-

GNO

I

Part4 ' I

51 52

- 1 - 1

:;:

- 1

R4 RS 4.7kQ 4.7kQ ±5% ±5% " " " H--""' #�°' Partl

11 111 1 11 11

a H � § p 3V3,- > sv "iic:a §s�- VIN- 0

i i

g g s 0 g � i g i i � i s

I 11 111 11

.. [

7 L

-1-

I -

-1-I-� 1 � i

3::c

8. �

< £ .... R r-;; (1) .... IP ai > > + ' + I• I · r

j'

---'- ....,_

+ 0 Sm©? �ulse Q

]2 GNO r.::i

�- -· I

A

n

0

I I

Load Cell

u

]1 + 0 Sm©? �ulse Q Part3

111111 111 1

a [ � � § p '"- > sv 'iic:a §s�- VIN

I

g ;

i � I

s

I 11 111111

Load Cell!

I

0

fntz.ing

E2B-M12KS04-WP-B1

Bilaga C

Resultat varvtal från körningar

27

Mattningspänning 2 volt Mattningspänning 3 volt

Mattningspänning 4 volt Mattningspänning 5 volt

Mattningspänning 6 volt

Bilaga D

Arduinokod

D.1 Huvudprogram

29

/*

* Program namn: main

* Skapare: Felix Lindblom, Tom Eskilsson * Senast modifierad: 2019-05-03

* Beskrivning: Kör lastcellen, induktiva och optiska givarna *

*/

#include <HX711_ADC.h> // Krävs för att lastcellsförstärkaren ska fungera. Källa till kod: https://github.

com/olkal/HX711_ADC

HX711_ADC LoadCell(4, 5); // parameters: dt pin, sck pin<span data-mce-type="bookmark" style="display: inline-block; width:

0px; overflow: hidden; line-height: 0;"

class="mce_SELRES_start"></span>

// Initiering av alla parametrar som används till den optiska givaren

unsigned long lastmillis = 0;

const byte interruptPin2 = 2;

// Initiering av alla parametrar som används till den inuktiva giavren

unsigned long lastmillis2 = 0;

const byte interruptPin3 = 3;

int start_knapp; // Variabeln som används för att läsa in om

startknappen blivit nedtryckt

int startPin = 9; // Pin som startknappen skall vara kopplad till

float moment = 0; // Variabel som det beräknade momentet från lastcellen lagras i

float i = 0; // Variabeln som värdet från lastcellen lagras i

int startakorning = 0; // Variabeln som används för att styra startknappen

int starttid = 0; // Variabel som lagrar vad tiden är när startknappen trycks ned

void setup() {

Serial.begin(250000); // Initiering av Serial

attachInterrupt(digitalPinToInterrupt(interruptPin2), rpm_measopt, FALLING); // Initierar interrupt för optiska givaren

attachInterrupt(digitalPinToInterrupt(interruptPin3), rpm_measind, FALLING); // Initierar interrupt för induktiva givaren

LoadCell.begin(); // Startar anslutningen til lastcellsförstärkaren HX711

LoadCell.start(2000); // Ger lastcellen 2000ms att stabilisera sig

LoadCell.setCalFactor(2100.0); // Kalibreringsfaktor för lastcellen. Kalibrerad för att ge vikt i gram [g]

}

void loop() {

start_knapp = digitalRead(startPin); // Läser av startknappen

// If-sats som kollar om startknappen blivit intryckt. Om den blivit det så startas en körning av dynamometern

if (start_knapp == HIGH && startakorning == 0){

Serial.println("Startar körning");

startakorning = 1;

starttid = millis();

start_knapp = LOW;

delay(1000);

}

// If-sats som kollar om startknapen blivit intryckt if (startakorning == 1){

// While-sats som ger oss en körning på 20 sekunder while (millis()-starttid <20000){

Serial.println(rpm); // Printar varvtal för optiska givaren på datorn

Serial.println(rpm2); // Printar varvtal för induktiva givaren på datorn

LoadCell.update(); // Hämtar data från lastcellen float i = LoadCell.getData(); // Lagrar datan från lastcellen

moment = i*0.001*4.4; // Beräknar moment med datan från lastcellen [kgcm]

Serial.println(moment); // Printar det beräknade momentet på datorn

Serial.println(millis()); // Printar tiden på datorn Serial.println(" "); // Printar ett blanksteg för att göra datan lättläst

} }

// If-sats som nollar startkorning så att startknappen går att använda igen för att starta en körning

if (start_knapp == HIGH && startakorning == 1){

startakorning = 0;

start_knapp = LOW;

} }

// Funktionen som interrupten för den optiska givaren

startar när en interrupt sker

void rpm_measopt(){

rad = 2*M_PI/4; // Beräknar antal interrupts per varv []

vin_hast = rad/(millis()-timeold)*1000; // Beräknar vinkelhastigheten [rad/s]

rpm = 60*vin_hast/(2*3.14); // Beräknar varvtal [rpm]

timeold = millis();

if (rpm>1800) { rpm = rpmold;

}

rpmold = rpm;

}

// Funktionen som interrupten för den induktiva givaren startar när en interrupt sker

void rpm_measind(){

rad2 = 2*M_PI/4; // Beräknar antal interrupts per varv []

vin_hast2 = rad2/(millis()-timeold2)*1000; // Beräknar vinkelhastigheten [rad/s]

rpm2 = 60*vin_hast2/(2*3.14); // Beräknar varvtal [rpm]

timeold2 = millis();

if (rpm2>1800) { rpm2 = rpmold2;

}

rpmold2 = rpm2;

}

BILAGA D. ARDUINOKOD

D.2 Bromsmekanism

34

/*

* Program namn: bromsmek

* Skapare: Felix Lindblom, Tom Eskilsson * Senast modifierad: 2019-05-03

* Beskrivning: Styr servomotorerna till bromsmekanismen *

*/

#include <Servo.h> // Ett bibliotek som används för att enkelt styra servomotorerna

// Initierar två stycken servomotorer Servo servo6;

// Sätter pins för knappar som ska användas för att styra bromsstyrka

int broms0Pin = 10;

int broms1Pin = 11;

int broms2Pin = 12;

void setup() {

// Sätter pin 6 och 7 till att styra servomotorerna servo6.attach(6);

servo7.attach(7);

}

void loop() {

// Läser av om pinsen har HIGH eller LOW broms0_knapp = digitalRead(broms0Pin);

broms1_knapp = digitalRead(broms1Pin);

broms2_knapp = digitalRead(broms2Pin);

// Om knappen broms0 trycks ned så ställs servomotorerna i ett läge för att ej bromsa

if (broms0_knapp == HIGH){

servo6.write(92);

servo7.write(85);

}

// Om knappen broms1 trycks ned så ställs servomotorerna i läget som ger låg bromskraft

if (broms1_knapp == HIGH) { servo6.write(99);

servo7.write(79);

}

// Om knappen broms1 trycks ned så ställs servomotorerna i läget som ger hög bromskraft

if (broms2_knapp == HIGH) { servo6.write(100);

servo7.write(78);

}

}

Bilaga E

Matlabkod

E.1 Matlab plot

37

% Programnamn: Plotter

% Skapare: Felix Lindblo, Tom Eskilsson

% Senast modifierad: 2019-05-03

% Beskrivning: Importerar data från excel som sparas i vektorer för att

% sedan kunna plotta datan.

clear all clc

A = readcell('testrun_5v_lastcell_merkraft.xlsx'); % Importerar excelfil med % data från körning

i = 1;

i1 = 1;

% While-sats som lagrar värden från körningen i olika vektorer while i < 57985

rpm_optisk(i1) = A(i); % Lagrar varvtal från optiska givaren i en vektor

rpm_induktiv(i1) = A(i+1); % Lagrar varvtal från induktiva givaren i en vektor lastcell(i1) = A(i+2); % Lagrar beräknat moment från lastcell i en vektor tid(i1) = A(i+3); % Lagrar tid i vektor

% Konverterar de skapade vektorerna från strings till doubles för att % kunna plotta datan

rpm_oplot = str2double(rpm_optisk);

rpm_iplot = str2double(rpm_induktiv);

lastcell_plot = str2double(lastcell);

tid_plot = cell2mat(tid);

% Plottar datan från optiska och induktiva givarna figure(1);

plot(tid_plot, rpm_oplot);

hold on

plot(tid_plot, rpm_iplot);

hold on

legend('rpm_o_p_t_i_s_k', 'rpm_i_n_d_u_k_t_i_v');

grid on

plot(tid_plot, lastcell_plot);

hold on

% Beräknar medelvärde för varvtal från körningen medelv_optisk = mean(rpm_oplot);

medelv_induktiv = mean(rpm_iplot);

E.2. BER¨AKNINGAR

E.2 Beräkningar

39

% Programnamn: Beräkningar

% Skapare: Felix Lindblom, Tom Eskilsson

% Senast Modifierad: 2019-05-03

% Beskrivning: Beräkningar av elmotorns konstanter och mätningsresultat.

clear all

%% Mätdata Lite broms (1) U=5; %Spänning, Volt I1=2.2; %Ström, Amper MNm1=k2fiM*I1; %Moment, Nm M1=100/9.82*MNm1; %Moment, Kgcm P1=U*I1; %Effekt in i motorn, W

Pf1=R*I1^2; %Motorns förlusteffekt, W Put1=P1-Pf1; %Effekt på axeln, W

%Dynonometer mätning

c=2.43; %Konstant, kallibrering av dynomometer n1=497; %rpm, varv/min

%% Mätdata Mycket broms (2) U=5; %Spänning, Volt

TRITA TRITA-ITM-EX 2019:32

www.kth.se

In document TOM ESKILSSON FELIX LINDBLOM (Page 30-55)

Related documents