Condivisione della tecnologia

[Implementazione da zero del motore brushless stm32 FOC] [Teoria] [3/6 posizione, velocità, controllo corrente]

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sezione precedente , attraverso la derivazione di SVPWM, abbiamo acquisito la capacità di controllare qualsiasi forza sul rotore del motore. In questa sezione, scegliamo la forma SVPWM di disaccoppiamento dell'asse dq del rotore ottenuta nella sezione precedente per controllare ragionevolmente la forza del rotore e raggiungere l'obiettivo finale del controllo del motore FOC: controllo di posizione, velocità e corrente.

Controllo PID

Le persone che leggono questa sezione molto probabilmente comprendono il controllo PID (proporzione proporzionale, integrale integrale, differenziale derivato), anch'esso limitato dalle mie capacità. Non fornirò qui una spiegazione completa, né coinvolgerà metodi di controllo avanzati.
Che si tratti della posizione, della velocità o della corrente del motore, tutti possono essere considerati parametri controllati.
Da un punto di vista intuitivo, quando il valore in tempo reale di un parametro controllato è inferiore al valore target, è necessario applicare una forza esterna per aumentare il parametro controllato. Se la forza esterna applicata è troppo grande, il parametro controllato verrà superato, facendo sì che l'ampiezza di oscillazione del parametro controllato vicino al valore target diventi sempre più grande. Se la forza esterna applicata è troppo piccola, il parametro raggiungerà il valore target troppo lentamente. Pertanto è necessario ottenere una forza esterna adeguata affinché i parametri controllati non oscillino sempre più violentemente e la velocità di regolazione non sia troppo lenta. Da questa idea di controllo intuitiva nasce la P in PID. Quando si utilizza semplicemente il controllo P, impostare la dimensione della forza esterna = la differenza tra il parametro controllato e il valore target * coefficiente P È molto intuitivo dire che maggiore è la differenza, maggiore è la forza esterna esercitata. Se il coefficiente P è impostato su un valore relativamente basso, sebbene il parametro controllato non oscilli continuamente e possa stabilizzarsi lentamente sul valore target, la velocità di regolazione è troppo lenta. A questo punto, è possibile aggiungere il controllo D del PID il parametro controllato originariamente oscilla. Si riduce rapidamente al valore target.
Pensiamo al controllo D da una prospettiva intuitiva Quando il parametro controllato si avvicina o supera il valore target sotto il puro controllo P, una forza di correzione nella direzione opposta alla velocità aiuta il parametro controllato a frenare vicino al valore target, consentendo al parametro controllato di frenare. freno. Riduci al valore target più velocemente. Questa forza di correzione nella direzione opposta alla velocità è il controllo D. Dopo aver aggiunto il controllo D, la dimensione della forza esterna di controllo = la differenza tra il parametro controllato e il valore target * velocità del parametro controllato coefficiente P * coefficiente D. Quando si utilizza il controllo D puro, poiché la velocità del parametro controllato è 0 nello stato iniziale, il parametro controllato non riceverà forza esterna. Si può anche vedere che il controllo P fornisce forza esterna e il controllo D vincola la forza esterna. Se il coefficiente D viene scelto troppo grande, una leggera velocità può causare un'enorme forza esterna; se il coefficiente D viene scelto troppo piccolo, non sarà sufficiente a limitare la forza esterna della produzione del controllo P e i parametri controllati saranno lenti a funzionare; stabilizzare.
Pensiamo al controllo I da una prospettiva intuitiva. Quando c'è un carico sul parametro controllato, la forza esterna fornita dal semplice controllo P potrebbe non essere sufficiente per supportare il carico. Pertanto, è possibile aggiungere un tale meccanismo per ridurre la differenza tra il parametro controllato e il valore target nel tempo. Accumulata, è possibile ottenere la potenza necessaria affinché il parametro controllato raggiunga il valore target in presenza di un carico. Questo meccanismo è che controllo. Dopo aver aggiunto il controllo I, la dimensione della forza esterna di controllo = la differenza tra il parametro controllato e il valore target * coefficiente P, la velocità del parametro controllato * coefficiente D, la differenza tra il parametro controllato e il valore target si accumula nel tempo * I coefficiente.
Quando si controlla il motore, senza circostanze speciali, poiché l'asse D non contribuisce alla rotazione del motore, il controllo pid può controllare solo la forza dell'asse q e l'asse D può essere controllato o l'uscita può essere controllata. essere impostato direttamente su 0.

filtro

Nel controllo della velocità e nel controllo della corrente, limitati dalla precisione e dalla frequenza di campionamento, la velocità e la corrente sono instabili e cambiano rapidamente. Ad esempio, la figura seguente è un valore calcolato direttamente della velocità del motore. Sono presenti molti denti di sega e fluttuano attorno al valore reale Se tale valore viene utilizzato direttamente, causerà una notevole fluttuazione dell'uscita PID.
Inserisci qui la descrizione dell'immagine
L'immagine seguente mostra che dopo il filtraggio è più vicino al valore reale:Inserisci qui la descrizione dell'immagine Esistono molti metodi di filtraggio, come il filtro passa-basso e il filtro di Kalman. L'essenza è stimare un valore vicino al valore reale nei dati mescolati con rumore. Poiché il filtraggio è un argomento molto vasto, il principio non verrà spiegato in questa sezione. È possibile visualizzare direttamente il codice nella parte pratica successiva. Ricordiamo solo che i calcoli del filtraggio devono essere eseguiti prima di inserire il controller PID.

controllo della posizione individuale

La posizione si riferisce all'angolo. Va notato che ci sono due angoli fisici, uno è l'angolo del motore e l'altro è l'angolo del rotore. L'encoder del motore è installato sull'alloggiamento del rotore, quindi l'encoder ottiene l'angolo dell'alloggiamento del rotore e il rotore è posizionato all'interno. Poiché l'alloggiamento del rotore e il rotore sono fissati l'uno all'altro, esiste un offset fisso tra i due angoli Durante l'installazione, l'encoder Il grado zero del dispositivo non può essere esattamente rivolto verso il magnete permanente del rotore. L'angolo dell'encoder viene fornito dall'encoder ed è anche possibile conoscere l'angolo del rotore. Come ottenere questo offset fisso verrà spiegato nella successiva parte pratica. In questa sezione è necessario completare solo la parte di calcolo teorico. Il vettore magnetico risultante agisce sul magnete permanente del rotore, quindi il calcolo teorico si basa sull'angolo del rotore.
Inserisci qui la descrizione dell'immagine
Esistono due metodi per ottenere il controllo della posizione del rotore:

metodo PID:
L'idea intuitiva è quella di utilizzare l'asse q del rotore per tirare continuamente il rotore a sinistra e a destra. Una volta che il rotore si discosta dalla posizione target, applicare una forza inversa sull'asse q per tirare. Maggiore è la deviazione, maggiore la forza di trazione e il rotore ritorna nella posizione target.
Vantaggi: l'asse q può fornire una forza maggiore e il controllo della posizione è più veloce e potente.
Svantaggi: poiché l'asse q è diverso di 90 gradi dal vettore magnetico del magnete permanente del rotore, è necessario conoscere la posizione (angolo) in tempo reale del rotore.
Poiché la posizione in tempo reale del rotore è facile da ottenere con un encoder, nella maggior parte dei casi viene utilizzato pid per controllare la posizione.
Inserisci qui la descrizione dell'immagine
Lo schema a blocchi di controllo FOC di una posizione separata è mostrato di seguito. Ciò che l'immagine significa è inserire una posizione target, calcolare la differenza con l'angolo calcolato dall'encoder, quindi inserire il controller pid per controllare solo l'intensità dell'asse q del rotore, l'intensità dell'asse d è impostata direttamente su 0 e infine, l'intensità dell'asse dq (0 ~1) viene immessa nella funzione SVPWM derivata in precedenza e l'output è il ciclo di lavoro pwm del braccio del ponte uvw.Ciò che dovrebbe essere notato qui è la posizione di destinazione dell'input θ in theta_{in}θInPuò essere l'angolo del rotore, l'angolo dell'encoder o l'angolo multigiro, purché sia ​​correlato al feedback θ-tetaθMantieni semplicemente la stessa angolazione.
Inserisci qui la descrizione dell'immagine

Resistenza forzata dell'asse D:
L'idea centrale è controllare artificialmente la bobina per generare un vettore magnetico della bobina target e l'asse D del magnete permanente sarà attratto dalla posizione target. Si noti che questo metodo attira l'asse d nella posizione target.
Vantaggi: poiché viene generata la posizione target, non è necessario conoscere l'angolo del rotore, il rotore ne sarà naturalmente attratto.
Svantaggi: la componente della forza tangenziale è piccola e una leggera forza tangenziale esterna può far sì che il rotore si sposti ovviamente fuori posizione.
Inserisci qui la descrizione dell'immagine

Controllo individuale della velocità

Non è appropriato utilizzare il metodo del trascinamento dell'asse D per il controllo della velocità, poiché lo scopo del trascinamento dell'asse D non è quello di utilizzare un encoder. Senza i dati dell'encoder, è difficile calcolare la velocità. Il controllo della velocità può utilizzare il metodo di controllo pid, ma poiché il valore della velocità cambia in modo relativamente instabile durante la rotazione del motore e il controllo D è proporzionale alla modifica del parametro controllato, generalmente viene utilizzato solo il controllo PI.
Il metodo di calcolo della velocità è molto semplice Angolo attuale − Ultimo angolo registrato Δ t frac{Angolo attuale - Ultimo angolo registrato}{Delta{t}}ΔTangolo attualeUltimo angolo registrato
Il controllo della velocità può essere ottenuto inserendo la differenza tra la velocità target e la velocità in tempo reale nel controllo PI.
Lo schema a blocchi del controllo FOC della velocità individuale è mostrato di seguito.
Inserisci qui la descrizione dell'immagine

Controllo individuale della corrente

La corrente del motore rappresenta la coppia. Dopo che la forza del rotore è stata disaccoppiata dall'asse dq, si può scoprire che solo l'asse q contribuisce alla rotazione del motore e solo l'asse q genera coppia. Pertanto, è necessario controllare solo la corrente dell'asse q controllare la coppia del motore. Se viene controllata anche la corrente dell'asse D, è possibile migliorare il tasso di utilizzo della corrente del motore, ridurre la generazione di calore e aumentare la coppia massima erogata dal motore.
Inserisci qui la descrizione dell'immagine
Ottieni la corrente del motore:
L'asse dq del rotore è un concetto astratto, utilizzato per facilitare il disaccoppiamento della forza del rotore. La corrente dell'asse dq non può essere rilevata direttamente. La corrente che può essere rilevata direttamente è la corrente sul circuito della linea di fase del motore la corrente può essere calcolata in base alla corrente della linea di fase ottenuta.
Esistono molti modi per rilevare la corrente della linea di fase. I due metodi più comuni sono: 1. Il rilevamento della corrente viene posizionato tra i tubi di alimentazione del braccio del ponte superiore e inferiore, operazione denominata rilevamento in linea. 2. Il rilevamento della corrente è posizionato tra il braccio inferiore e GND, operazione denominata rilevamento low-side.
Inserisci qui la descrizione dell'immagine
a causa di un nodo流出电流 流入电流=0 , quindi sono necessarie solo due unità di rilevamento della corrente per linee trifase. Tuttavia, è meglio utilizzare tre unità di rilevamento della corrente per il rilevamento del lato basso, poiché quando il ciclo di lavoro pwm di un determinato braccio del ponte è 1 o vicino a 1, non ci sarà corrente che passa attraverso il braccio inferiore del ponte oppure la corrente lo farà. essere instabile e le tre linee di fase lo faranno solo. L'unità di rilevamento della corrente rimanente può raccogliere la corrente normalmente. Dopo che ci sono tre unità di rilevamento della corrente, è possibile leggere tutte e tre le unità di rilevamento della corrente. Due dei valori di corrente vengono selezionati in base al servizio ciclo, e l'altro si calcola assumendo che la somma delle correnti sia 0. Il rilevamento online non presenta questo problema, perché non importa se il braccio inferiore del ponte è chiuso o meno, c'è sempre corrente che scorre attraverso la linea di fase. Poiché la tensione nella posizione di rilevamento online è relativamente elevata, l'unità di rilevamento corrente per il rilevamento online deve essere in grado di sopportare una tensione elevata ed è relativamente costosa.

Dopo aver ottenuto le correnti della linea trifase, trovare un modo per convertirle in correnti dell'asse dq.La corrente della linea di fase può essere proiettata sull'asse dq, in modo che la corrente dell'asse dq possa essere ottenuta direttamente. Tuttavia, il metodo tradizionale corrente consiste nel proiettare prima l'asse dq alfa alfaαAsse e beta-betaβasse (questo passaggio è chiamato trasformazione di Clark), e poi alfa alfaαAsse e beta-betaβLa corrente dell'asse viene proiettata sull'asse dq (questo passaggio è chiamato trasformazione di parcheggio), perché verrà utilizzato nel FOC sensorless di posizione più avanzato alfa alfaαAsse e beta-betaβcorrente dell'asse.

trasformazione di Clark:
La corrente trifase Io u, io v, io w Io_u,I_v,I_wIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOio,IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOla,IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOioProgetto a Io α , Io β Io_alfa, Io_betaIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOα,IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβCome si può vedere dalla relazione geometrica nella figura seguente, l'espressione di proiezione è:
{ Io α = Io u − Io v ∗ cos ⁡ 6 0 ° − Io w ∗ cos ⁡ 6 0 ° Io β = Io v ∗ cos ⁡ 3 0 ° − Io w ∗ cos ⁡ 3 0 °{IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOα=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOioIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOlacosìììììììììììì60gradoIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOiocosìììììììììììì60gradoIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβ=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOlacosìììììììììììì30gradoIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOiocosìììììììììììì30grado {IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOα=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOioIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOlacosìììììììììììì60°IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOiocosìììììììììììì60°IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβ=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOlacosìììììììììììì30°IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOiocosìììììììììììì30°
Inserisci qui la descrizione dell'immagine

trasformazione del parco:
Volere Io α , Io β Io_alfa, Io_betaIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOα,IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβL'asse viene proiettato sull'asse dq (moltiplicato effettivamente per una matrice di rotazione). Come si può vedere dalla relazione geometrica nella figura seguente, l'espressione di proiezione è:
{ I d = I α ∗ cos ⁡ θ I β ∗ sin ⁡ θ I q = − I α ∗ sin ⁡ θ I β ∗ cos ⁡ θ{IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOD=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOαcosììììììììììììθ IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβpeccatoθIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOQ=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOαpeccatoθ IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβcosììììììììììììθ {IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOD=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOαcosììììììììììììθ IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβpeccatoθIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOQ=IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOαpeccatoθ IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOβcosììììììììììììθ
Inserisci qui la descrizione dell'immagine

Il grafico di controllo FOC di una singola corrente è quello mostrato di seguito Poiché la variazione di corrente è relativamente instabile, il controllo D relativo alla velocità di variazione del parametro controllato solitamente non viene utilizzato qui, viene utilizzato solo il controllo PI.
Inserisci qui la descrizione dell'immagine

Controllo in cascata posizione-velocità-corrente

Se esiste un requisito del genere: quando si controlla la posizione, specificare la velocità massima e la corrente massima quando il motore ritorna in posizione o quando si controlla la velocità, specificare la corrente massima quando il motore raggiunge la velocità target, quindi è necessario utilizzarla il controllo del livello di stringa posizione-velocità-corrente. Il controllo in cascata in questo caso non controlla il motore per raggiungere un determinato valore di corrente o di velocità, ma richiede che il motore raggiunga il valore di corrente massimo o il valore di velocità massimo durante il processo di controllo, poiché è impossibile mantenere il motore in una posizione. C'è velocità o c'è corrente.
Il controllo in cascata significa che l'ingresso del circuito di controllo corrente è l'uscita del circuito di controllo precedente. Prendendo come esempio il controllo della posizione in cascata, lo schema a blocchi di controllo è:
Inserisci qui la descrizione dell'immagine


La parte teorica è ora terminata. Abbiamo ottenuto il metodo di calcolo di SVPWM e il processo di controllo di posizione, velocità e corrente. Possiamo scrivere il codice FOC. Tuttavia, incontreremo vari problemi nella pratica, come la sequenza delle linee di fase e servizio pwm Rispetto alla modalità di implementazione, al tempo di campionamento corrente, alla configurazione della periferica, ecc., la seguente parte pratica utilizza il re ultra-comune ed economico a chip singolo: gli strumenti smt32f103c8t6 e stm32cube, senza utilizzare la libreria del motore, per ottenere un risultato completo. Controllo FOC da zero.