Jumping Jack Flash weblog

Hacking Icaro – il motor controller o centralina

Posted in minicar elettriche by jumpjack on 12 giugno 2019

Premessa

La mia Greengo/Zhidou/Xindayang Icaro modello A1 monta un motor controller della Kelly di tipo KHB72701C, alimentata dai 12V della batteria di servizio e dai 72V della batteria di trazione, che regge 350A continui e 700A di picco (max un minuto).

Considerando un’alimentazione di 72V nominali (che arriva anche a 80V reali a batteria piena), queste correnti corrispondono a 25-28kW continui e 50-56 kW di picco, a fronte dei 6 kW continui assorbiti dal motore della A1 (8 kW di picco nominalmente, che io ho portato a 12 kW riprogrammando il controller).

 

La comunicazione seriale

Oggi finalmente sono riuscito ad avere dalla Kelly un’informazione davvero preziosa: il protocollo di comunicazione tramite porta seriale RS232!

Normalmente usavo la porta seriale per riprogrammare i vari parametri (corrente massima, velocità massima, frenata rigenerativa), tramite l’apposito SW gratuito della Kelly, ma con queste nuove informazioni diventa ora anche possibile leggere una bella quantità di dati:

  1. current physical switch input status
  2. the current Hall sensor “A” signal status
  3. the current Hall sensor “B” signal status
  4. the current Hall sensor “C” signal status
  5. Copying flash data to ram before flash data reading operation
  6. controller’s model no
  7. controller’s SW version (BCD format)
  8. controller’s Throttle low-end dead zone
  9. controller’s Throttle high-end dead zone
  10. controller’s Brake low-end dead zone
  11. controller’s Brake high-end dead zone

E poi i livelli di questi valori analogici:

Gruppo 1 (comando ETS_A2D_BATCH_READ)

0. Brake (posizione pedale freno)

  1. TPS (posizione pedale acceleratore)
  2. Motor temperature
  3. Control power
  4. Vs (tensione di riferimento di 5V dei sensori di hall)
  5. B+ (tensione batteria di trazione)
  6. Controller’s temperature
  7. Ia
  8. Ib
  9. Ic
  10. Va
  11. Vb
  12. Vc
  13. H_Temperature
  14. V+ (tensione alimentazione motor controller – 12V nominali)
  15. L_Temperature

 

Gruppo 2 (Comando ETS_MONITOR):

0. n/a

  1. n/a
  2. Controller’s temperature in gradi Celsius
  3. B+ (tensione batteria di trazione)
  4. TPSx (?)
  5. BRAKEx (?)
  6. n/a
  7. I (phase current)
  8. zero current (?)

E infine:

  • 9. MSB of controller’s error state
  • 10. LSB of controller’s error state
  • 11. MSB of mechanical speed in RPM
  • 12. LSB of mechanical speed in RPM

La numerazione è quella della stringa di risposta del controller.

I codici di errore

La codifica dei codici di errore è piuttosto complicata, e si basa su questa tabella:

data[9]M 7 6 5 4 3 2 1 0 data[9]L
0x44 0x43 0x42 0x41 0x34 0x33 0x32 0x31
data[10]M 7 6 5 4 3 2 1 0 data[10]L
0x24 0x23 0x22 0x21 0x14 0x13 0x12 0x11

La sua interpretazione è parecchio complicata, ho provato a semplificarla, innanzitutto affiancando le due sotto-tabelle relative a data[9] e data[10], che sono MSB e LSB della word, risultando così questa tabella:

Le istruzioni dicono “if(data[9] << 8) | data[10]=0x4008,The corresponding error code is 0x43and 0x14.”.

Cioè, “se il numero che si ottiene affiancando data[9] e data[10] come nella tabella qui sopra è uguale a 0x4008, vuol dire che il codice di errore è ‘0x43 e 0x14′

Questo perchè 0x4008 si può scomporre in 4 – 0 – 0 – 8, che in binario diventa 0100 – 0000 – 0000 – 1000, e mettendo questa fila di 1 e 0 sotto la tabella, si ottiene che bisogna considerare le sole caselle in coincidenza degli 1, ottenendo quindi appunto 0x43 e 0x14.

Al momento però non dispongo ancora di una tabella che dica cosa significhino questi numeri, vedrò se riesco a farmela dare.

Intanto però ecco un’altra tabella, che riassume tutti i comandi elencati nella nota tecnica che mi hanno mandato:

 

La tabella sopra descrive il formato della stringa di comando da inviare sulla seriale, quella sotto la risposta ricevuta.

A me pare che le caselle rosse siano sbagliate, perchè dicono che il comando dovrebbe essere lungo un byte ma io ne vedo 2, quindi dovrò chiedere chiarimenti… anche se al momento lo stato dei sensori di hall è decisamente la cosa che mi interessa di meno.

Le ultime due righe della tabella sotto, anche se si leggono poco, contengono i dati descritti estesamente a inizio articolo.

Adesso devo “solo” o trovare un programma per leggere/scrivere dati grezzi sulla seriale,… o scrivermelo.

La documentazione

Cercando su google il titolo del documento che la Kelly mi ha mandato ho trovato due link utili:

C’è poi anche la risposta a un mio vecchio post su Endlesssphere, che suggerisce che le Kelly aderiscano allo standard SAE J1939-21 , che permetterebbe di leggere questi dati:

[*]The running direction
[*]The high and low speed
[*]Mode selection
[*]Speed low byte (motor rpm)
[*]Speed high byte (motor rpm)
[*]Low power consumption mode
[*]Subtotal mileage. low byte
[*]Subtotal mileage. high byte
[*]Fault code
[*]DC voltage- low byte
[*]DC voltage – high byte
[*]Motor current- low byte
[*]Motor current – high byte

Questo potrebbe essere un dispositivo utile per collegarsi al CANBUS, tramite PC o tramite Arduino:

https://www.cooking-hacks.com/documentation/tutorials/can-bus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo

 

Rivenditori europei di centraline per scooter elettrici

Posted in Diario elettrico Ecojumbo 5000, scooter elettrici by jumpjack on 5 ottobre 2015

www.kellycontroller.com (Cina):

  • KLS7250D – $439.00 – €385.00 (Sinusoidale: alto rendimento, basso riscaldamento, silenziosa; per motori da 5 kW;160A/400A)
  • KEB72600X – $299.00 – €266.00
  • KEB72601X – $319.00 – €283.00
  • KEB72800X (senza regen) – $379.00 / €337.00
  • KEB72801X (con regen) – $399.00 / €355.00
  • Tenuta stagna: 19$
  • Cavo a 14 poli: 9$
  • Smart precharger (circuito di pre-carica lenta per salvaguardare il controller all’accensione): €87.00, dalla Finlandia.
  • Altro smart recharger, della REC-BMS: P-C164_0.5 (o P-C164_1.5 o P-C164_4.0) 36,00 euro, dalla  Germania. Per batterie fino a 120V. Resistenza da 164 ohm. I tre modelli dànno 0.5, 1.5 o 4.0 secondi di ritardo.

http://www.green-scooter.hu/kefe_nelkulihez.html (Ungheria):

La valuta è il Fiorino Ungherese (Forint su Google), che vale 3,2 centesimi oggi; quindi per convertire in euro i prezzi bisogna dividere per 100 e moltiplicare per 3:

  • Kelly KEB72800512,00 euro
  • Kelly KEB72801 (con recupero di energia in frenata): 576,00 euro.

La 72600 non c’è, e la 72331 è per un motore da 3.3 kW.

Hanno anche:

  • Golden Motor HPC300H da 300A di picco a 320,00 euro
  • Golden Motor  HPC500H da 500A a 352,00 euro.

http://www.smartemotion.de/de/e-mobility-komponenten/steuerungen?p=1 (Germania):

  • HPC300H – 585,00
  • Sevcon Gen4 sinusoidale per motori fino a 5kW – 749,00 euro.
  • VEC 300  sinusoidale per motori fino a 5 kW – 589,00 euro.

http://www.miromax.lt/en/m-6/c-39/c-44-bldc_motor_controllers#to_products (Lituania):

http://www.lipoly.de/index.php?main_page=index&cPath=880_3834_3838_3836  (Germania):

http://www.devi-motion.com/webshop/controller/p-1/ (Olanda):

http://eskutr.cz/en/7-regulatory – Rep. Ceca (Moneta: corona):

http://emoto.fi/index.php?route=product/product&product_id=76 (Finlandia):

  • HPC300: 868,00 euro

Riepilogo:

  • KLS7250D (sin): 385 €
  • KEB72600X: 266-329 €
  • KEB72601X: 283-349 €
  • KEB72800X: 337-512€
  • KEB72801X: 355-576 €
  • HPC300H: 320-490 €
  • VEC300 (sin): 516-660 €
  • Sevcon Gen4 (sin): 749 euro

Diario elettrico Ecojumbo 5000: 3/10/2015, caccia alla centralina

Posted in scooter elettrici by jumpjack on 3 ottobre 2015

Sembra che trovare una centralina da 60V/5000W sia un’impresa impossibile! Titanica! Mastodontica!

Sembra che le vendano solo in Cina e in America!

Una gran rottura, considerando che tutte le volte che ho ordinato dalla Cina, il pacco è arrivato dopo almeno due mesi; a volte dopo così tanto tempo che ho chiesto un rimborso credendo che fosse andato perso! E poi le scartoffie della dogana, le tasse della dogana… Comprare fuori Europa è una gran seccatura! Se lo faccio… finirò per rimettere lo scooter a posto… giusto in tempo per quando farà  troppo freddo per andare in giro in scooter!

Comunque, intanto mi sto orientando su una centralina Kelly, visto che ne esiste una miriade di varietà, il che immagino significhi che se ne intendono!

Per l’ecojumbo serve una centralina con almeno 85A continui, la corrente minima necessaria per sostenere una velocità di 90 km/h. Ovviamente, maggiore è la corrente continua tollerata, meno si affaticherà la centralina, più durerà. E più costerà…

Provo a fare un po’ di ordine nella kellybaraonda…

KEB:
Due cifre dopo il 72= kW * 10

  • KEB72450X (85A/220A, 4.5kW/13kW) (senza regen) $239.00
  • KEB72451X (85A/220A, 4.5kW/13kW) (con regen) $259.00
  • KEB72600X (senza regen) (110A/280A 6.0kW/16.8kW)  $299.00
  • KEB72601X (110A/280A 6.0kW/16.8kW) $319.00
  • KEB72800X (senza regen) (140A/350A 8.4 kW/21kW) – $379.00 / €337.00
  • KEB72801X (con regen) (140A/350A 8.4 kW/21kW) – $399.00 / €355.00

KBS/KBS-L/KBS-E/KBS-X:
Qui le due cifre dopo il 72 non indicano la potenza ma la corrente di picco divisa per 10.

  • KBS72151E (80A/160A, 4.8 kW/9.6 kW) $199.00 (leggermente poco potente)
  • KBS72181E (110A/200A, 6.6 kW/12 kW) $219.00

L = tutti i cavi su un lato
X = versione “migliorata” (?) (manuale)
E = più potenti

KLS-D/KLS-S

Onda sinusoidale, più silenziosa.

Le due cifre dopo il 72 indicano la potenza del motore * 10 (50 = 5 kW).
Secondo loro su un motore da 5 kW ci vuole una centralina KLS7250D da 160A/9.6kW!

  • S finale = per motore con meno di 4 kW;
  • D finale = per motore con più di 4 kW

KBL
KBL72151X (88A/150A, 5.2kW/9kW) $339.00
KBL72221X (112A/220A, 6.7kW/13kW )$399.00

KLS-S: per motori da meno di 4 kW
Le due cifre dopo il 72 indicano la potenza del motore * 10 (40 = 4 kW)

KSL
Senza sensori di hall, non vanno bene

KIM
Per motori AC a induzione.

KHB (Alta potenza):
Troppo potenti (da 600A in su)

KDC:
Troppo potenti (da 8 kW in su)

KDS
Per motori brushed, non vanno bene (Motor Controller | EV Parts – Kelly Controls, LLC)

KDZ:
Per motori brushed, non vanno bene (Motor Controller | EV Parts – Kelly Controls, LLC).

Interessante e preoccupante ammonizione sul manuale:
All contactors or circuit breakers in the B+ line must have precharge resistors across their contacts. Lack of even one of these precharge resistors may severely damage the controller at switch-on.

Quindi quelle papabili sarebbero, in ordine di potenza:

  1. KBS72151E (80A/160A, 4.8kW/9.6 kW) $199.00
  2. KEB72451X (85A/220A, 5.0kW/13kW) $259.00
  3. KBL72151X (88A/150A, 5.2kW/9kW) $339.00
  4. KBS72181E (110A/200A, 6.6kW/7.2 kW) $219.00
  5. KEB72601X (110A/280A, 6.6kW/16.8kW) $319.00
  6. KBL72221X (112A/220A, 6.7kW/13kW )$399.00

La più adatta sembrerebbe la KBL72151X da 5.2 kW/88A, ma costa 339$, mentre la KBS72151E da 4.8 kW/80A ne costa 199: 140 dollari di differenza per 400W di differenza?!?

Sulle KSL ho trovato questo, cercando la differenza tra una sigla Kxx e l’altra:

THE CHARACTERISTICS OF KELLY KSL SENSORLESS BLDC CONTROLLER:
1. KSL is designed for fan,pump,compressor.It is not suitable for electric vehicles such as motorcycle,scooter or moped project.
2. KSL will drive the motor with a certain speed once power is on.You can not stop it unless power is off.
3. You can not change its direction unless the power is off also.
4. You may apply a higher throttle position for the controller before power is on.It will be easy for the controller to start the motor.
5. It only supports 1,7000eRPM so far.

Frequently Asked Questions – Kelly Controls, LLC

Quindi le KSL non vanno bene per uno scooter.

 Poi:

Customers can configure three kinds of control modes other than KD/KDS controller in GUI. KD/KDS controller can only work with torque mode.

  • speed control mode: The controller will output to the motor a voltage proportional to throttle
  • torque mode: The controller will output to the motor a current proportional to throttle
  • balanced mode: between them.

Suppongo che lo “speed control mode” sia l’unico applicabile su un mezzo elettrico. Il che escluderebbe tutti i modelli KDx.

  • “E” in models KDS/KBS  gets higher efficiency and higher continuous current. It generates 30% to 50% less heat comparing with standard model.
  • Kelly brushless controllers(KBL, KEB, KBS, HP,KHB series) […] can do electric reversing by themselves
  • I modelli “KLS” sono ad onda sinusoidale, programmabili anche da Android e più silenziosi degli altri, ma più costosi.
  • I KBL dovrebbero essere modelli “generici” (e che vuol dire???). Hanno tutti il regen.
  • I “KEB” dovrebbero essere per le “EBike”… che ovviamente in inglese possono essere sia Bike che MotorBike, cioè sia bici che scooter! Sono con o senza regen (1 o 0 finale).
  • I KBS dovrebbero essere forse “Small” (loro dicono “mini”). Hanno tutti il regen.
  • I KDS dovrebbero essere i controller “mini” ma per motori brusheD, a spazzole. Nessun KDS ha il regen.
  • I KSL sono SensorLess e abbiamo detto che non vanno bene.