Jump to content
ELFORUM - Forumul electronistilor

Aprindere electronica


Guest DanielZamfir

Recommended Posts

Guest DanielZamfir

Buna ziua!

 

Am o motocicleta Ij Planeta 5(monocilindru/doi timpi) si dupa cum puteti ghici are o aprindere comandata de platina cu avans fix. Pana acum am mers cu o aprindere de la Gotronic comandata tot de platina. Daca tot am ramas fara permis cel putin pana la sfarsitul acestui an, m-am gandit sa aduc ceva modificari la motocicleta. In primul rand am decis ca vreau sa implementez un avans variabil: la turatie joasa avansul este mic si odata cu cresterea turatiei creste si avansul. Pentru asta o sa am nevoie de un microcontroller(12F629). Turatia motorului o voi citi cu ajutorul un optocuplor cu fanta. Acesta va comanda un convertor frecventa-tensiune LM2907 a carui iesire este analizata de microcontroller. Va trebui sa compar tensiunea de iesire de la convertor cu niste praguri prestabilite(referinta interna). La randul sau PIC-ul pune un "delay" intre "semnalul" de intrare si cel de iesire.

Spre exemplu:

Voi pozitiona optucuplorul cu fanta astfel incat sa indice pozitia pistonului cu 5mm inaintea PMS.

La o turatie mai mica de 1000RPM voi avea nevoie de un avans de 1.5mm inaintea PMS. Deci va trebui sa introduc un delay(dupa calcule am ajuns la valoarea de 3us).

La o turatie mai mica de 2000RPM voi avea nevoie de un avans de 3mm inaintea PMS. Deci va trebui sa introduc un delay de 1us s.a.m.d.

 

Mai jos o sa postez si o schema care inca este incompleta(trebuie sa calculez bine valorile tuturor rezistorilor si mai trebuie facute cateva "legaturi").

 

http://imageshack.us/photo/my-images/256/ignitionmodule.png/

 

O parte din schema(cea care comanda bobina) este luata de pe site-ul tehniq.go.ro

 

Pana acum am folosit PIC-ul 12F629 doar sa comand diferite motoare pas cu pas si led-uri.

Programarea o fac cu ajutorul programului mikroC PRO.

 

Acum sa prezint si "problemele" pe care le-am intampinat:

-cum folosesc comparatorul integrat?-trebuie sa compar GP1 cu o tensiune de referinta variabila pentru a stii in ce plaja de turatii ma aflu.

-trebuie sa pun delay-uri de ordinul nanosecundelor.

 

Cel mai bine ar fii daca acest delay ar varia liniar cu tensiunea de la LM2907 astfel:

-La turatie 0RPM delay 3000ns

-La turatie maxima ~6000RPM delay 0ns

Link to comment
  • Replies 15
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Guest pisica matache

Sunt total paralel cu microcontrolerele;de aceea cu ceva timp in urma,am vrut sa fac un avans variabil analogic,tot la un bicilindru, o Jawa 350TS.Ma gandisem tot la folosirea unui convertor frecventa-tensiune;tensiunea de iesire,proportionala cu turatia motorului,era comparata cu ajutorul a 12 comparatoare,cu 12 tensiuni de referinta.Iesirile comparatoarelor puneau la masa cate o rezistenta,care modifica timpul unui monostabil,care primea la intrare semnal de declansare de la platina si dadea la iesire un semnal intarziat pt comanda aprinderii,astfel incat sa se poata introduce o intarziere pt comanda bobinei de inductie,functie de turatie.Modificarea avansului s-ar fi putut face in zece puncte,de la 1000 la 6000RPM.Asta in mare...Am renuntat la idee,din doua motive.Harta aprinderii,care sigur nu e liniara,e greu de determinat practic.Fiind analogic,avansul era foarte greu de reglat .Cred ca varianta cu mirocontroler,elimina problema reglajelor;ramane insa problema stabilirii hartii corecte de aprindere...

Link to comment
Guest DanielZamfir

Sunt total paralel cu microcontrolerele;de aceea cu ceva timp in urma,am vrut sa fac un avans variabil analogic,tot la un bicilindru, o Jawa 350TS.Ma gandisem tot la folosirea unui convertor frecventa-tensiune;tensiunea de iesire,proportionala cu turatia motorului,era comparata cu ajutorul a 12 comparatoare,cu 12 tensiuni de referinta.Iesirile comparatoarelor puneau la masa cate o rezistenta,care modifica timpul unui monostabil,care primea la intrare semnal de declansare de la platina si dadea la iesire un semnal intarziat pt comanda aprinderii,astfel incat sa se poata introduce o intarziere pt comanda bobinei de inductie,functie de turatie.Modificarea avansului s-ar fi putut face in zece puncte,de la 1000 la 6000RPM.Asta in mare...Am renuntat la idee,din doua motive.Harta aprinderii,care sigur nu e liniara,e greu de determinat practic.Fiind analogic,avansul era foarte greu de reglat .Cred ca varianta cu mirocontroler,elimina problema reglajelor;ramane insa problema stabilirii hartii corecte de aprindere...

Uitandu-ma pe internet am vazut ca harta aprinderii nu este liniara ci este reprezentata de o curba. Dar si liniar daca ar fii, tot ar merge mai bine decat un avans static.
Link to comment

Convertorul F/V se poate elimina, si se masoara timpul dintre doua actionari ale senzorului, care va fi folosit ca index in tabelul de intarzieri.Nu cred ca delay-ul pe MCU e critic (in jur de 1us la 16MHz), mai ales ca poti duce senzorul mult in urma.

La o turatie mai mica de 1000RPM voi avea nevoie de un avans de 1.5mm inaintea PMS. Deci va trebui sa introduc un delay(dupa calcule am ajuns la valoarea de 3us).

Nu stiu ce calcule ai facut, dar 3us pentru un avans de 3.5mm la 1000RPM iti da o cursa totala de 1167mm, ceea ce sigur nu e corect.
Link to comment
Guest DanielZamfir

Convertorul F/V se poate elimina, si se masoara timpul dintre doua actionari ale senzorului, care va fi folosit ca index in tabelul de intarzieri.

Nu cred ca delay-ul pe MCU e critic (in jur de 1us la 16MHz), mai ales ca poti duce senzorul mult in urma.

 

La o turatie mai mica de 1000RPM voi avea nevoie de un avans de 1.5mm inaintea PMS. Deci va trebui sa introduc un delay(dupa calcule am ajuns la valoarea de 3us).

Nu stiu ce calcule ai facut, dar 3us pentru un avans de 3.5mm la 1000RPM iti da o cursa totala de 1167mm, ceea ce sigur nu e corect.
Initial asa ma gandisem sa fac, sa masor timpul dintre doua impulsuri si sa se decida intr-o instructiune switch ce delay sa se introduca, dar nu stiu cum sa fac asta si am ramas sa folosesc convertorul.

 

 

Cum am facut calculele:

 

Cursa piston:85mm intre PMI si PMS

-Pozitie indicata de senzor:6mm inaintea PMS

-Plaja de frecventa analizata:0-1000RPM

-Avans dorit:1.5mm inaintea PMS

-La 1000RPM o tura completa se realizeaza in 60ms-pistonul parcurge de doua ori cei 85mm in 60ms-1mm este parcus in 0.3529ms(desi nu se ia in calcul faptul ca pentru cateva grade de rotatie, cand pistonul se afla la PMS si la PMI, pistonul nu se deplaseaza).

-Pentru a avea o scanteie la 1.5mm inaintea PMS trebuie sa introduc un delay care sa permita pistonului sa parcurga cei 4.5mm diferenta dintre semnalul senzorului si eveniment. Acesti 4.5mm vor fi parcursi in 1.588ms. Deci delay-ul impus daca motorul se afla in plaja de RPM 0-1000 este de 1.588ms.

Sper sa fi facut calculele bine.(Ar fii extraordinar deoarece toate delay-urile le-as putea face cu delay_us)

 

-Trebuie luat in calcul si faptul ca bobina are nevoie de timp pentru a stoca energie in camp magnetic. Tot de pe internet am vazut ca raportul dintre timpul de incarcare si timpul de "descarcare" este de 3 la 1. Astfel, daca intre doua scantei consecutive este o perioada de 60ms, pentru 45ms bobina acumuleaza energie si in 15ms trebuie sa o piarda.

Link to comment
Guest DanielZamfir

Am atasat mai jos schema finala. Am decis sa nu mai folosesc convertorul f/v. Optocuplorul cu fanta este un TCST2300.Acum as avea si o intrebare in legatura cu optocuplorul 4n25: pot sa elimin rezistorii R5 si R6? Eu i-am pus ca si cand tranzistorul ar fi comutat intre on si off de un buton, dar fara cei doi rezistori ar semana cu un darlington pair. Ori, optocuplorul poate fii scos de tot din schema pentru ca nu e necesar ca uC-ul sa fie izolat de circuitul din dreapta.

Aprindere.pdf

Link to comment
Guest DanielZamfir

Timpul de incarcare/descarcare va fii determinat de tablita care o sa treaca prin fanta optocuplorului. Timpul de incarcare reprezinta 3/4 din durata unei rotatii complete respectiv 1/4 este timpul de descarcare. Dioda D1 chiar nu stiu ce face.Asa ar arata tablita:

post-35719-139829469888_thumb.png

Link to comment

Am facut urmatorul tabel cu niste valori ce ar trebui testate pentru inceput.http://www.2shared.com/document/uLY5nD-s/tabel_avans.html

Am citit cu atentie ce sa scris aici si mia placut abordarea. Eu sunt profan in electronica. Adica sunt un incepator care nu stie nimic dar vrea sa faca lucruri mari si complicate cu cunostintele altora.. :jytuiyu Insa la partea mecanica lucrurile stau invers. Din cunostintele mele avansul se masoara in grade si nu in mm parcursi de piston.vreau sa mentionez ca viteza deplasarii pistonului e diferita in functie de pozitia arboreui cotit. deci la aceiasi turatie scade pana la 0 (punct mort) si urmeaza 90 grade de acceleratie dupa care alte 90 grade de deceleratie. Desigur valorile pentru inginerii care stiu matematica nu sunt deloc o problema si probabil deja au si solutia pt tine cu implementarea unei ecuatii in program.Dupa cum vad eu lucrurile, senzorul citeste frecventa o transmitea la prelucrare/calculare =rezultatul (avansul) ceea ce simplifica lucrurile.Si eu zic ca lucrurile care tu vrei sa le testezi ele sunt demult cunoscutea in lumea inginerilor auto.Totul depinde de cifra octanica (proprietatea amestecului de a arde fara detonare la un anumit grad de comprimare)Dar din spusele tale de mai sus vrei sa aprinzi amestecul in punctul 0 la 6000rot/min. E o gresala "detonanta" zic eu. Cu totii stim ca valoarea avansului in mod normal e 9 grade ca pana ajunge pistonul in punctul 0 amestecul sa se aprinda complet , la viteza maxima dar fara ca sa detoneze. In caz contrar o sa ai probleme cu motorul dupa o perioada. Desigur ca acele 9 grade e avansul pt bezina cu cifra octanica scazuta si este o valoaremedie aproximativa, care este depasita. Din aceasta cauza sa introdus aprinderea electronica. Insa ce vreau eu sa spun este ca aceste valori sunt arhicunoscute de specialistii care proiecteaza motoarele moderne. Acum urmeaza doar sa faci rost de ele.oricum ideea cu aprindere in punctul mort superior este o gresala. Aprinderea trebuie efectuata mai inainte. Dupa parerea me lucrurile stau ciar invers.Cu cat e mai mare turatia cu atat aprinderea se va face mai inainte, ca amestecul sa fie deja aprins in punctul 0 . Oricum imi place ideea si te felicit pentru ingeniozitate
Link to comment

Nu trebuie optocuplor, iar rezistenta R6 cade si ea, PIC-ul mentinand iesirea la 0v puternic.

Dioda D1 la ce serveste?

Alta intrebare, cat timp se incarca si se descarca bobina?

Mi se pare o exprimare gresita. Nu sunt electronist, nici macar printre incepatori nu ma pot considera insa o bobina nu are cum sa se incarce dupa parerea mea.

O bobina nu are capacitate ca un condensator. Inductanta ei este altceva... pricipiul de functionare e simplu.cand intrerupem circuitul bobinei primare in bobina secundara apare o tensiune oarecare...si nu invers. Deci tinand cont ca curentul circula cu viteza luminii nu conteaza cand are loc intrerupera pt ca se produce imediat si nu are nevoie de timp de incarcare. Ca descarcarea are o anumita inertie nu mai conteaza daca a aprins amestecul in timpul potrivit. Poate sa dureze chiar mai mult de 90 grade ca nu strica desi astea sunt fanteziile mele. In armata aveam ZIL 131 care avea un sistem de urgenta in caz daca se defecta bobina. cuplai un multivibrator cred.. si obtineai scantee continua cu motor oprit.. (as vrea una din aia acum).Asa vad eu lucrurile, asta am invatat la scoala de soferi.

Link to comment
Guest DanielZamfir
Am facut urmatorul tabel cu niste valori ce ar trebui testate pentru inceput.

http://www.2shared.com/document/uLY5nD-s/tabel_avans.html

Am citit cu atentie ce sa scris aici si mia placut abordarea. Eu sunt profan in electronica. Adica sunt un incepator care nu stie nimic dar vrea sa faca lucruri mari si complicate cu cunostintele altora.. :jytuiyu

Insa la partea mecanica lucrurile stau invers.

Din cunostintele mele avansul se masoara in grade si nu in mm parcursi de piston.vreau sa mentionez ca viteza deplasarii pistonului e diferita in functie de pozitia arboreui cotit. deci la aceiasi turatie scade pana la 0 (punct mort) si urmeaza 90 grade de acceleratie dupa care alte 90 grade de deceleratie. Desigur valorile pentru inginerii care stiu matematica nu sunt deloc o problema si probabil deja au si solutia pt tine cu implementarea unei ecuatii in program.

Dupa cum vad eu lucrurile, senzorul citeste frecventa o transmitea la prelucrare/calculare =rezultatul (avansul) ceea ce simplifica lucrurile.

Si eu zic ca lucrurile care tu vrei sa le testezi ele sunt demult cunoscutea in lumea inginerilor auto.

Totul depinde de cifra octanica (proprietatea amestecului de a arde fara detonare la un anumit grad de comprimare)

Dar din spusele tale de mai sus vrei sa aprinzi amestecul in punctul 0 la 6000rot/min.

E o gresala "detonanta" zic eu. Cu totii stim ca valoarea avansului in mod normal e 9 grade ca pana ajunge pistonul in punctul 0 amestecul sa se aprinda complet , la viteza maxima dar fara ca sa detoneze. In caz contrar o sa ai probleme cu motorul dupa o perioada.

Desigur ca acele 9 grade e avansul pt bezina cu cifra octanica scazuta si este o valoaremedie aproximativa, care este depasita. Din aceasta cauza sa introdus aprinderea electronica.

Insa ce vreau eu sa spun este ca aceste valori sunt arhicunoscute de specialistii care proiecteaza motoarele moderne. Acum urmeaza doar sa faci rost de ele.

oricum ideea cu aprindere in punctul mort superior este o gresala. Aprinderea trebuie efectuata mai inainte. Dupa parerea me lucrurile stau ciar invers.

Cu cat e mai mare turatia cu atat aprinderea se va face mai inainte, ca amestecul sa fie deja aprins in punctul 0 .

Oricum imi place ideea si te felicit pentru ingeniozitate

 

Va salut!

 

Intr-adevar, avansul se masoara in grade. Ij-ul este a doua motocicleta, dupa Mobra Hoinar. In ambele manuale de intretinere avansul se masoara in mm cursa piston inaintea PMS(dupa parerea mea nu ar fii la indemana oricui sa regleze avansul masurandu-l in grade).

 

Dar din spusele tale de mai sus vrei sa aprinzi amestecul in punctul 0 la 6000rot/min.

La 6000 rot/min avansul era maxim, adica 6mm inaintea PMS(pe primul rand din tabel este avansul, randul cu pozitie e unul auxiliar ajutand la niste calcule in tabel).

 

In alta ordine de idei, azi am terminat circuitul si am scris repede un cod simplu sa testez. Merge ok.

As putea sa folosesc acest cod daca as ramane pentru varianta de avans fix. Inca nu am avut timp sa il pun pe motocicleta deoarece nu am inca tablita care trece prin fanta optocuplorului(maine sper sa pot testa).

 

#define sens GPIO.GP3#define hi 1#define lo 0#define outp GPIO.GP0void main() { int ok=0; GPIO=0; TRISIO.GP0=0; TRISIO.GP1=0; TRISIO.GP2=0; TRISIO.GP3=1; while(ok==0)  if(sens==hi)   ok=1; while(1) {  if(sens==hi)   while(sens==hi)    outp=hi;  if(sens==lo)   while(sens==lo)    outp=lo; }}
Link to comment
  • 9 months later...

Salut, am si eu un IZH Jupiter 4, 350 cmc si 2 cilindrii si avans fix (2,5mm), m-ar interesa ce rezultate ai avut cu aprinderea electronica si avans dinamic.Postul vad ca-i vechi, dar poate ca intre timp ai finalizat-o!Sunt interesat de asa ceva, eu ma gandeam sa cumpar doua aprinderi cu senzori cu tot tip gotronic, dar avansul tot fix o sa fie!Ar fi interesant de reimprospatat informatiile acumulate pana acum, ce zici?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines