Controllo RPM motore DC tramite BEMF.

Ciao ragazzi, come da titolo sto cercando di realizzare un controllo ad anello chiuso degli RPM del motore tramite la BEMF (tensione posteriore del motore generata dal' inerzia del rotore). Sto utilizzando il PWM per variare la tensione di armatura del motore e per leggere i valori di Bemf accendo il motore per 8ms e lo spengo per 2 ms in continuazione. Nel momento in cui lo spengo, leggo la Bemf, quando è stabile,dovuta al' inerzia. Ora accade questo, se non cè carico, i valori di Bemf corrispondono esattamente agli RPM voluti. quindi riesco perfettamente a leggere gli RPM dalla BEMF. Il problema sorge in questa condizione che ora espongo e non riesco a spiegarmi il perchè, probabilmente mi manca qualcosa, facendo un esempio:

Duty:10
RPM:3000
BEMF ADC: 3400

Con un Pwm da 0-255 impostato a 10, senza carico il motore gira a 3000 RPM e ottiene 3400 come Bemf.

Duty:50
RPM:6000
Bemf ADC: 2500

Con un Pwm da 0-255 impostato a 50, senza carico il motore gira a 6000 RPM e ottiene 2500 come Bemf.

Ora teoricamente se con 50 di duty ho 6000 RPM senza carico, se do carico al motore affinchè ottengo 3000 RPM dovrei leggere una Bemf identica a quella rilevata con duty 10 senza carico.
Invece la Bemf è esattamente diversa per tutti i valori di duty impostati. Per rilevare la velocità in RPM utilizzo uno strumento Laser puntato sul l'albero motore.

è come se la Bemf cambia al variare della coppia. Ma non ho idea del perchè si comporti così. Data la situazione attuale è ovviamente impossibile realizzare un controllo ad anello chiuso dato che la Bemf non è strettamente correlata alla velocità del motore, se ad esso viene applicato un carico.

Qualcuno può aiutarmi ?

Grazie a tutti

mettere schema e programma, grazie

non cè bisogno di schema e programma, ho bisogno di una consulenza sul problema esposto. Il problema non dipende ne dal codice ne dallo schema elettrico dato che è un problema comportamentale del motore.

allora chiedi a un forum di motoristi

alessiomariucci:
non cè bisogno di schema e programma, ho bisogno di una consulenza sul problema esposto. Il problema non dipende ne dal codice ne dallo schema elettrico dato che è un problema comportamentale del motore.

Bene, dato che NON è un problema di Arduino, dei suoi collegamenti o della sua programmazione, ma un problema di "elettrotecnica" ed in particolare della parte "motori elettrici", in applicazione del punto 16.11 del REGOLAMENTO, ti consiglio, come ha già fatto "Sandardoil" di rivolgerti ad un forum specializzato nella materia e chiudo qui questo thread che successivamente cancellerò.

Guglielmo