Dece scriu aceste randuri? Pentru ca exista multi oameni care merg ca oile pe un drum uitandu-se mereu in jos fara sa vada ca drumul pe care au apucat-o are 5000 de Km lungime si ca parcurgerea lui le-ar lua 200 de ani la viteza lor de mers. Sunt lucruri pe care nu le putem face oricat de mult ne-am dori acest lucru pentru ca apare factorul TIMP. Timp de documentare, timp de aprofundare, timp de dobandire-a cunostintelor care ne lipsesc (vezi cei care vor sa faca contolere dar nu au programat niciodata un procesor), timp de executie, timp de remediat erori de proiectare pentru ca "nu stiam ca aia si ailalta", timp de masurat performantele si regandire-a proiectului...pana cand se ajunge la ceva care merge si se poate folosi.
Oricum va doresc succes si va admir ca aveti elan dar inainte de a sari uitativa cat de departe este malul celalalt.
Si acum, dupa morala, urmeaza si o mica explicatie.
Contolerele SENSORLESS, ca asa se numesc, sunt contolere care invart motoare SENSORLESS care nu au senzori hall (sau alte metode) pentru determinarea pozitiei rotorului.
Pentru determinarea pozitiei se poate folosi urmatorul principiu: (incerc o descriere larga si principiala)
In orice moment de timp doar doua din cele trei "infasurari" sunt alimentate cea de-a treia este in "aer".
De la aceasta se citeste o tensiune care variaza datorita rotatiei motorului pe perioada cat celelalte doua infasurari sunt alimentate (infasurare in camp magnetic).
In functie de configuratia motorului , numar de poli, infasurari etc, tensiunea respectiva variaza corespunzator. Procesorul trebuie sa aiba intrare de ADC si la o anumita valoare a tensiunii respective (pentru unele motoare se citeste trecerea prin zero a tensiunii) se ia acest moment ca referinta si fata de el cu un TIMMING anume se da comanda tranzistoarelor de putere care alimenteaza infasurarile urmatoare. Si ciclul se repeta cu urmatoare infaurare care ramane libera si care se masoara si se trece la urmatoarea pereche de tranzistoare si tot asa.
Trebuie un procesor rapid cu un ADC pe 8 biti (cred eu ca este suficient) cu un timp de stabilire suficient de mic ca sa nu dureze masurarea tensiunii respective prea mult ca nu se mai ajunge cu motorul la turatia maxima niciodata.
Trebuie ca frecventa de lucru a procesorului sa fie suficient de mare ca sa se poata face calculele necesare in program si sa mai ramana si timp pentru masuratorile necesare. Mai bine sa trebuiesca sa "pierzi timp" cu niste bucle dacat sa nu ai timp sa faci ce trebuie sa fac in program.
Cu alte cuvinte softul face totul aici si erori de programare duc la neinvartirea motorului, sau invartire dar fara forta pentru.
In momentul in care creste turatia timpii de comutatie scad...iar odata cu cresterea sarcinii (aer impins etc) si TIMINGUL se micsoreaza punand tranzistoarele mai devreme si pentru mai mult timp in conductie pentru a roti eficient motorul. In procesor trebuie sa functioneze astfel de bucle care sa tina cont de cat de repede se invarte motorul si de cat de greu (sarcina mica-mare) se invarte motoul. Pe langa astea mai trebuie masurat si impulsul de comanda din receptor si in functie de el "invartit" motorul. plus alte bucle de siguranta pentru a proteja si motorul si userul si acumulatorii etc.
Recomand incepatorilor sa scrie un program care sa apinda un LED proportional cu miscarea mansei de la telecomanda. Pana camd nu ati facut asta uitati de darlingtoane si alte dastea.
Inca odata succes.
Aceasta postare a fost editata de charlie: 11 May 2005 - 02:48 PM