Lucrarea consta in analiza unor algoritmi de control ce servesc la stabilizarea unui pendul [631906]

Rezumat
Lucrarea consta in analiza unor algoritmi de control ce servesc la stabilizarea unui pendul
inversat bazat pe o roata inertiala . Roata este actionata de un motor fara perii ce transmite o
miscare de rotatie intregului pendul prin variatie vitezei s ale de rotatie. In dezvoltarea
algoritmilor de control se va determina mai intai comportamentul sistemului ce trebuie
stabilizat, prin obtinerea unor ecuatii mateamatice ce il caracterizeaza. Avand acest model, se
va putea proiecta si simula controlerul. I n urma simularii, solutia va fi portata pe sistemul
fizic, unde se vor face ajustari in vederea maximizarii performantelor. Criteriile de
performanta pentri fiecare algoritm sunt: domeniul unghiular de functionare, abaterea fata de
pozitia de echilibru in regim stationar si sensibilitatea la perturbatii mecanice exterioare.

1. Introducere
1.1 Pendulul inversat
Un pendul inversat este un pendul care are centrul de masă deasupra punctului său de pivotare.
Implementarea clasica a pendulului inversat consta intr -un carucior ce are un pivot fixat pe
suprafata superioara. In jurul pivotului se roteste o tija de greuta te neglijabila, ce are atasat un
corp fix in capatul celalalt. Prin actionarea caruciorului cu o forta intru -un sens, va aparea o
alta forta de inertie de sens opus ce va actiona asupra corpului si va genera o miscare de rotatie
a tijei in jurul pivotului, ca in Figura 1 . Problema controlului consta in actionarea
corespunzatoare a caruciorului cu o forta pe axa orizontala, pentru a mentine tija in echilibru,
adica la un unghi de zero grade cu axa verticala. Astfel, ansamblul format din carucior si pendul
reprezinta procesul, iar mecanismul care actioneaza caruciorul cu o forta proportionala cu
unghiul pendulului reprezinta reactia negativa. Pendulul inversat reprezinta o problemă clasică
în teoria a controlului și este folosit ca punct de referință pentru e valuarea algoritmilor de
control.

Figura. 1
Pendulul inversat are aplicatii in ghidarea rachetelor , unde centrul de greutate se află în
spatele punctului de tracțiune, determinând instabilitate aerodinamică.
1.2 Roata inertiala
O roată de reacție este un tip de volant utilizat în principal de navele spațiale pentru controlul
atitudinii fără a folosi combustibil. Acesta este deosebit de utila atunci când sunt necesare
rotiri foarte fine , cum ar fi păstrarea unui telescop îndreptat către o stea. Mecanismul se
realizează echipând un corp cu un motor electric atașat la un volant care, atunci când isi
schimba viteza de rotatie , determină o miscare de rotatie a corpului proportionala cu
acceleratia unghiulara a volantului, prin conservarea momentului unghiula r. Roțile de reacție
pot roti corpul de care sunt atasate doar in jurul centrului de masa. Ele nu sunt capabile să
transfere aceste corpuri de la un loc la altul. Roțile de reacție funcționează în jurul unei v iteze
nominale de rotație zero. Cu cat volantul isi schimba viteza de rotatie mia rapid, cu atat
miscarea de rotatie imprimata sistemului este mai puternica. Pentru a maximiza miscarea de
rotatie ce este transmisa corpului, se foloseste urmatoarea tehnica: mai intai se duce volantul
la o viteza de rotatie constanta, insa de valoare mare. Apoi acesta este supusa unui mecan ism

de franare exterior, ce aduce viteza de rotatie la zero intr -un interval de timp foarte scurt. In
acest fel se obtine o acceleratie negativa de valoare foarte mare, ce se traduce printr -o forta
uriasa ce actioneaza asupra intregului ansamblu.
1.3 Ansamblul pendul inversat – roata inertiala
Prin fuzionarea celor doua concepte se obtine unul nou, ce constituie subiectul de interes al
acestei lucrari. Practic, in contextul acestui caz particu lar de pendul inversat, mecanismul
reglare ce aduce pendulul inapoi in pozitia de echilibru este roata inertiala .

Figura 2
Structura mecanica a sistemului aferent a cestui proiect de diploma este prezentata in Figura 2.
Pendulul inversat este reprezentat de cadrul metalic de forma patrata. In centrul acestuia este
atasat un motor ce actioneaza roata inertiala evidentiata cu verde in figura . Intreg ansamblul se
poate roti in jurul pivotului de culoare rosie cu frecari foarte mici. Momentul cinetic ce
provoa ca miscarea cadrului este generat de cuplul produs de motor. In concluzie, motorul
trebuie sa isi ajusteze in permantenta acest cuplu pentru a controla corespunzator modul in care
cadrul se misca
1.4 Scopul proiectului
Principa lul scop al acestei lucrari est e:
1. Dezvoltarea mai multor algoritmi capabili sa controleze si sa mentina cadrul metalic
din Figura 2 in pozitie de echilibru. Pozitia de echilibru se defineste ca acea pozitie in
care dreapta ce trece prin varful patrtului atasat pivotului si varful opus este
perpendiculara pe planul orizontal

2. Analiza acestor algoritmi de reglare automata si observarea performantelor fiecaruia.
Montajul este echipat cu un giroscop si cu traductoare Hall ce furnizeaza informatii cu
privire la starea curenta in care se afla sistemul si ofera datele de intrare pentru blocul

de control. Cu alte cuvinte, acestea ajuta la realizarea reactiei negative. In functie de
algoritmul folosit, se va alelge care dintre acesti senzori va fi plasat in bucla de reactie
negativa. Criteriile d e performanta sunt:
• Domeniul unghiular de functionare al sistemului
• Sensibilitatea la perturbatii mecanice externe
• Amplitudinea oscilatiilor inn pozitia de echilibru cand nu exista un factor perturbant
aditional

2. Notiuni teoretice

2.1 Sistemele fara reglaj

Un sistem fara reglaj automat sau manual functioneaza in circuit deschis, adica nu prezinta
niciun fel de mecanism de reactie. Acestea se mai numesc si circuite deschise. In cazul
acestor sisteme, comportamentul iesirii procesului trebuie bine cunoscut pentru a proiecta
regulatorul, deoarece in timpul functionarii iesirea nu va fi observabila.

Figura 3
2.2 Sisteme cu reglaj automat

Un sistem cu reactie este unul în care semnalul de ieșire este eșantionat, iar apoi furnizat
înapoi intrarii pentru a forma un semnal de eroare care este furnizat regulatorului pentru a
ajusta corespunzator intrarea procesului. In acest fel, daca regulator ul este implementat
corect, acesta poate controla procesul in vederea minimizarii acelui semnal de eroare. In
figura 4, cu R s -a notat regulatorul, iar cu P procesul.

In contextul unui sistem cu reglare automata, senzorii au rolul de a furniza informatii cu
referire la starea curenta in care se afla sistemul. Acestia masoara si convertesc marimile
fizice din proces in marimi electrice si furnizeaza datele de intrare pentru regulatorul ce
controleaza procesul . Pentru a alege corespunzator un traductor, se i au in calcul urmatorii
parametrii : rezolutia senzorului, coeficientul de rejectie al zgomotului, frecventa maxima de
lucru .

Figura 4
Pentru implementarea algoritmului de reglaj este mai intai necesara cunoasterea modelului
matematic ce caracterizeaza pr ocesul. Modelarea matematică a proceselor si fenomenelor
reprezinta determinarea unui set de relații între variabile fizice, ca structuri matematice de tipul
ecuațiilor algebrice , pentru o caracterizare catmai apropiata de realitate a functionarii
procesului resp ective.
Pentru determinarea comportamentului procesului, aceste ecuatii se pot obtine fie utilizand
legi si teoreme ale fizicii pentru a obtine modelul teoretic, fie identificand sistemul pe cale
experimentala.
R
P
Input
Output
Reference
Input
Output
R
P
+

Prin identificarea unui sistem se intelege modelarea unui proces folosind date experimentale
ce au fost achizitionate in pe parcursul fu nctionarii acestuia. In urma acestei etape se obtine
modelul experimental, adica o reprezentare abstracta a unei entități reale. Modelele pot fi
liniare sau neliniare . In plus, daca sistemul analizat este analogic modelul este continuu, iar
daca acesta est e digital modelul este discret.

Obtinerea modelulu pe cale experimentala presupune urmatoarele etape:
• Achizitia unui set de esantioane atat pentru perturbatia ce a fost aplicata la intrarea
sistemului, cat si pentru raspunsul masurat la iesirea acestuia
• Stabilirea unei structuri matematice pentru modelul respectiv
• Gasirea coeficientilor acelei structuri ce caracterizeaza cel mai bine setul de date
achizitionat
Parcurgerea acestor etape implica urmatoarea presupunere: modelul matematic ales este
suficient d e complex pentru a putea caracteriza setul de date intr -o proportie suficient de mare.
In caz contrar, modelul procesului va fi unul eronat, lucru care va conduce la o proiectare
eronata a regulatorului. De exemplu, o functie de gradu doi, nu poate fi esti mata cu ajutorul
unei functii liniare.
In general, pentru estimarea matematica a comportamentului procesului se foloseste fie o
functie de transfer de ordin unu, fie una de ordin doi.

𝐻1(𝑠)=𝐾𝑃
𝑇𝑝∙𝑠+1∙𝑒−𝜏𝑠
Unde 𝐾𝑃 este coeficientul de amplificare, 𝑇𝑝 reprezintă constanta de timp a procesului si τ
timpul mort.
𝐻2(𝑠)=𝜔𝑛2
𝑠2+2∙𝜁∙𝜔𝑛+𝜔𝑛2

Unde 𝜔𝑛 este pulsatia naturala, iar ζ factorul de amortizare. Pentru acest tip de sistem, forma
raspunsului la impuls depinde de factorul de amortizare. Pentru orice valoare pozitiva a
acestuia, sistemul este stabil.

Desigur, functia de transfer obtinuta pentru proces caracterizeaza un sistem instabil. Scopul
regulatorului este de a fi pus in bucla cu procesul si a forma un sistem global stabil.
𝐻(𝑠)=𝑏0+𝑏1∙𝑠+⋯+𝑏𝑚∙𝑠𝑚
𝑎0+𝑎1∙𝑠+⋯+𝑎𝑛∙𝑠𝑛
PID
Un controler PID calculează continuu o valoare de eroare e (t) ca diferență între o valoare de
referință dorită și o variabilă de proces măsurată , iar apoi aplică o corecție bazată pe valoarea
instantanee a erorii si derivata si integrala acesteia .
𝑢(𝑡)=𝐾𝑃∙𝑒(𝑡)+𝐾𝐷∙∫𝑒(𝜏)𝑑𝜏𝑡
0+𝐾𝐷𝑑𝑒(𝑡)
𝑑𝑡
Aplicand transformata Laplace obtinem:
𝑈(𝑠)=𝐾𝑃+𝐾𝐷∙1
𝑠+𝐾𝐷∙𝑠

Unde 𝐾𝑃, 𝐾𝐼, 𝐾𝐷, sunt constante ce pondereaza termenul proportional, pe cel integral si
respectiv derivativ. Proiectarea regulatorului presupune gasirea valorilor corespunzatoare ale
acestor constante.
Semnificatia fizica a fiecarui termen:
• Termenul proportional compen seaza valoarea curenta a erorii. Daca de exemplu eroarea
este de valoare mare si pozitiva, atunci si termenul prportional va fi de valoare mare si
pozitiv.
• Termenul i ntegrativ actioneaza in functie de suma valorilor precedente ale erorii. De
exemplu, dacă ieșirea curentă nu este suficient de puternică, integrala erorii se va
acumula în timp, iar controlerul va răspunde aplicând o acțiune mai puternică.
• Termenul derivativ compenseaza posibile tendințe viitoare ale erorii, pe baza ratei
actuale de variatie. D e exemplu, când termenul proportional aduce eroarea spre o
valoare apropiata de zero, acesta duce eroarea catre o valoare negativa, aparand oscilatii
amortizate ce conduc la un timp de stabilizare mai mare. Termenul derivativ atenueaza
acest „overshoot” si asigura o convergenta mai rapida.

In proiectarea unui regulator nu este obligatorie introducerea tuturor termenilor. Se pot realiza
cu succes regulatoare de tip PI sau PD. Regulatoarele PI sunt preferate atunci cand marimea
esantionata de bucla de reacti e este foarte zg omotoasa, iar termenul derivativ ar amplifica
aceste perturbatii.

Figura 5

Un exemplu al performantei unui lgoritm PD in raport cu un simplu P este ilustrat in Figura 5.
Se poate vedea ca prin adaugarea unui termen derivativ sistemul co nverge catre pozitia de
echilibru mai rapid si mai lin.
Avand in vedere ca sistemul abordat este unul digital, se va folosi forma discreta a regulatorului
PID. In aceasta, integrala se inlocuieste cu suma esantioanelor precedente, iar derivata se scrie
a diferenta a doua esantioane consecutive:
𝑢(𝑛)=𝐾𝑃∙𝑒(𝑛)+𝐾𝐷∙∑𝑢(𝑛)𝑁
0+𝐾𝐷
𝑇∙(𝑢(𝑛)−𝑢(𝑛−1))
Unde T este perioada de esantionare.

Control in spatiul starilor

Spațiul starilor este o metodă foarte comună de analiză și control a l sistemelor. Sta rile
reprezinta un set de variabile ale sistemului care prezic in mod clar comportamentul sistemului
in timp. C u alte cuvinte, pentru a avea un model al unui sistem care să prezică comportamentul
său, trebuie, în general , condiții inițiale. In plus, stiind valoarea fiecarei variabile de stare la un
moment timp, avem toata informatia ce caracterizeaza sistemul in acel moment.
In contextul acestui tip de control, ecuatiile matematice ce caracterizeaza sistemul sunt scrise
sub forma matriceala. Putem exprima relatiile din interiorul sistemului cu ajutorul a doua
ecuatii numite acuatiile spatiului de stari, unde A, B, C și D sunt matrici, iar x este vectorul de
stare , u este intrarea sistemului si y este ieșire.
𝑥[𝑛]=𝐴∙𝑥[𝑛−1]+𝐵∙𝑢[𝑛−1]
𝑦[𝑛]=𝐶∙𝑥[𝑛]+𝐷∙𝑢[𝑛]

Aceste ecuatii pot fi reprezentate cu ajutorul diagramei din Figura 6, unde blocurile galbene
reprezinta matriciile sistemului, insa semnalele ce pot circula prin fire pot fi vectori sau matrici.
Figura 6

Figura 7 evidentiaza drumul informatiei. Matriciile A si B indica in ce masura stariile curente
ale sistemului le vor influenta pe cele viitoare. Matrice a A descrie modul în care starile
sistemului se influențează reciproc de la un moment de timp la urmatorul. În această matrice
se gasesc de obicei relatii ce provin din legi le fizicii. Matricea va avea dimensiunea de m ×
m, unde m este numărul de stări. Matricea B indica cum sunt influentate starile sistemuui de
catre intrarea acestuia.
Figura 7

Bucla evidentiata cu rosu este repreze ntarea grafica a termenului 𝐴∙𝑥[𝑛−1], iar linia punctata
galbena reprezinta termenul 𝐵∙𝑢[𝑛−1].
Matricea C indica in ce masura starile influenteaza direct iesirea, iar matricea D modeleaza
influenta directa a intrarii la iesire. In majoritatea cazuril or, aceasta matrice este nula,
neexistând o cale directa de la intrare spre iesire. Ca urmare, blocul aferent matricii D poate fi
exclus din schema, precum si legaturile acestuia.

Toata analiza de mai sus a fost pentru sistemul in bucla deschisa, deci pro cesul. In continuare
va fi tratat cazul adaugarii unui regulator in bucla cu acesta. Consideram un vector K, pe care
il numim vectorul ponderilor de reactie. Pentru un sistem cu m stari, K va fi un vector de
dimensiune 1 𝑥 𝑚. Astfel, cand acesta este inmultit cu vectorul starilor de dimensiune 𝑚 𝑥 1,
va rezulta un scalar egal cu:
𝐾𝑥=[𝐾1,𝐾2,…,𝐾𝑚]∙[𝑥1

𝑥𝑚]=∑𝐾𝑖𝑥𝑖𝑚
𝑖=1
Neglijand Matricea D s introducand vectorul de reactie obtinem urmatoarea diagrama:
Figura 8
In acest fel, la iesirea blocului K se obtine un scalar ce trebuie scazut din valoarea referintei
pentru a obtine un semnal de eroare. Introducand semnalul de referinta 𝑢′ in ecuatie, obtinem:

𝑥[𝑛+1]=𝐴∙𝑥[𝑛]+𝐵∙(𝑢′[𝑛]−𝐾∙𝑥[𝑛])
Desfacem paranteza si obtinem:
𝑥[𝑛+1]=𝐴∙𝑥[𝑛]+𝐵∙𝑢′[𝑛]−𝐵𝐾∙𝑥[𝑛]
Inlocuind pe n cu n -1 se obtine:
𝑥[𝑛]=𝐴∙𝑥[𝑛−1]+𝐵∙𝑢′[𝑛−1]−𝐵𝐾∙𝑥[𝑛−1]
Restructurand ecuatia, aceasta devine:
𝑥[𝑛]=(𝐴−𝐵𝐾)∙𝑥[𝑛−1]+𝐵∙𝑢′[𝑛−1]
A carei forma omogena este:
𝑥[𝑛]=(𝐴−𝐵𝐾)𝑥[𝑛−1]
Inlocuind (𝐴−𝐵𝐾) cu 𝑀, obtinem
𝑥[𝑛]=𝑀𝑥[𝑛−1]

Figura 9
Se observa ca in lipsa reactiei 𝑀→𝐴, ceea ce ar si trebui sa se intample

Figura 9 ilustreaza schema sistemului echivalent, ce include si r eactia in componenta sa. Practic
am redus sistemul cu reactie la unul de aceeasi forma cu sistemul in bucla deschisa, dar alti
parametrii.

Algoritmul LQR

Teoria controlului optim al se referă la operarea unui sistem dinamic la un cost minim. Cazul
în care dinamica sistemului este descrisă de un set de ecuații diferențiale liniare, iar costul este
descris de o funcție patratică se numește problema LQ. Solutia acestor ecuatii este furnizată
de regulatorul liniar – cuadratic (LQR), un regulator cu reactie.

Fie un sistem analizat in intervalul de timp [𝑡0,𝑡1].
𝑥̇=𝐴𝑥+𝐵𝑢
Functia de cost se defineste ca:
𝐽=𝑥𝑇(𝑡1)𝐹(𝑡1)𝑥(𝑡1)+∫(𝑥𝑇𝑄𝑥+𝑢𝑇𝑅𝑢+2𝑥𝑇𝑁𝑢)𝑑𝑡𝑡1
𝑡0
Relatia ce minimizeaza valaorea costului este:
𝑢=−𝐾𝑥
Unde
𝐾=𝑅−1(𝐵𝑇𝑃(𝑡)+𝑁𝑇)
Iar P este gasit rezolvand ecuatia diferentiala Ricatti:
𝐴𝑇𝑃(𝑡)+𝑃(𝑡)𝐴−(𝑃(𝑡)𝐵+𝑁)𝑅−1(𝐵𝑇𝑃(𝑡)+𝑁𝑇)+𝑄=−𝑃̇(𝑡)

Implementarea practica

Mecanica

Figura 10 ilustreaza implementarea practica a conceptelor discutate in primele capitole.
Intregul ansamblu a fost pus pe o placa de plexiglas ce are atasate niste picioare de cauciuc,
pentru a oferi o buna aderenta in contact cu vibratiile generate de motor.
Partile componente ale structur ii cu pendul inversat sunt:
• Pivot
• Cadru de aluminiu
• Motor fara perii
• Suport pentru motor
• Segmente de plastic ce realizeaza conexiunea intre motorul cu suport si cadrul
• Roata cu striatii in exterior
Pivotul si segmentele de plastic au fost relizate la impri manta 3D si sunt confectionate din
material ABS. Roata de culoare verde este fabricata din sticlotextolit.
Principalul dezavantaj al acestui montaj este pivotul, deoarece mecanismul de prindere intre
acesta si cadrul mecanic se face prin intermediul unui s urub. Acest lucru implica frecari
neliniare foarte mari, ce duc la imposibilitatea gasirii unui model matematic exact ce
caracterizeaza sistemul.

Marime Dimensiune
Diametru roata
Latura cadru metalic
Grosime roata
Distanta ax motor – punct de pivot are

Motorul folosit este un Maxon EC 45 flat. Acesta este alimentat cu o tensiune de 24V, si poate
atinge pana la 6700 rpm. Acesta este motivul pentru care a fost ales un motor fara perii in loc
de un motor clasic de curent continuu, deoarece poate ati nge viteze de rotatie foarte mari.
Ansamblul motor – roata imprima o miscare de rotatie sistemului atata timp cat exista
acceleratie unghiulara in rotatia axului motorului. Pentru ca miscarea imprimata sa fie puternica
trebuie ca acceleratia sa fie mentinu ta cat mai mult. Daca valoarea maxima a numarului de
rotatii pe minut ar fi mai mica, atunci viteza unghiulara s -ar satura mai rapid, si implicit si
acceleratia unghiulara ar dura mai putin. De aici nevoia de a avea o valoare cat mai ridicata
pentru turati a maxima. Nu a fost ales un motor mai performant, deoarece la valori foarte mari
de rotatii pe minut, ansamblul incepe sa vibreze din cauza imperfectiunilor de simetrie si duce
intreg sistemul in starea de instabilitate.

Figura 10

Blocurile el ectronice

Principalele blocuri electronice sunt:
• Placa de dezvoltare Arduino Uno cu microcontroller ATmega328P
• Controler motor Maxon ESCON 36/3 EC
• Giroscop BNO055
• Sursa in comutatie coboratoare de tensiune Pololu D24V10F5
• Sursa in comutatie Mean Well LRS -150-24
Toata logica de control a motorului si interogare senzori este gestionala de placa cu
microcontroller. In plus, algoritmul ruleaza tot in microcontroller, sistemul fiind independent
de orice unitate de procesare externa .
Pentru ca montajul nu prezi nta foarte conexiuni intre blocurile sale, legaturile au fost facute cu
fire, evitandu -se astfel realizarea unui cablaj imprimat.

Figura 11

Sursa in comutatie Mean Well LRS -150-24

Intreg montajul este alimentan din aceasta sursa in comutatie, care nu se afla pe standul de test,
ca celelalte placi de dezvoltare. Ea se alimenteaza la 220V AC, si prezinta o singura iesire fixa
de tensiune de 24V. Curentul maxim pe care il poate furniza sursa este de 6.5A. Desi teoretic
motorul necesita un curent mai mi c, pentru ca puteresa sa nominala este 50W, iar tensiunea de
alimentare 24V, acesta va consuma curent in conformitate cu regimul de functionare in care se
afla. De exemplu, daca acesta e comandat sa accelereze cu valoarea maxima posibila, el va
necesita un curent de pese 4A pentru un interval de timp foarte scurt. Cat timp sursa de
alimentare nu poate furzina acest curent, motorul nu va functiona conform asteptarilor.

Figura 12

Singurul circuit ce necesita 24V este controlerul. Celelalte au o tensiune de functionare egala
cu 5 volti. Pentru a face conversia de la 24V la 5V un alt circuit intermediar a fost introdus.

Convertorul in comutatie Pololu D24V10F5

Pentru ca majoritatea regulatoarelor liniare nu permit o diferenta atat de mare intre tensiune a
de intrare si cea de iesire, a fost nevoie de introducerea unui alt convertor in comutatie ca sa
furnizeze tensiunea de 5V. Acesta poate sa ofere la iesire pana la 1A pentru alimentarea placii
cu microcontroler si a giroscopului. Acestea consuma impreuna pana la 60mA, ceea ce asigura
ca acest convertor Buck nu va fi deloc solicitat. Eficienta de conversie este de 93%.

Figura 13

Placa de dezvoltare Arduino Uno

Aceasta placa de dezvoltare este bazata pe microcontrolerul Atmel ATmega328P ce poate
opera la maxim 16Mhz. Prezinta 14 intrari/iesiri digitale, dintre care 6 pot fi folosite ca iesire
PWM. In plus, are 6 intrari analogice si poate realiza comunicatii digitale cu protocoale ca SPI,
UART sau I2C. Place are integrat un chip ce realizeaza conversia UAR T-USB si astfel poate
comunica cu calculatorul prin intermediul consolei seriale. Acest lucru este foarte important
cand se doreste monitorizarea in timp real a valorilor unor variabile, deoarece placa poate fi
programata sa trimita in permanenta valorile acelor variabile catre calculator.

Figura 14

Desi aceasta placa nu e destinata aplicatiilor profesionale, datorita frecventei de lucru relativ
scazuta si a posibilitatilor limitate de a configura perifericele, fost aleasa pentru ca ceea ce
poate oferi satisface necesitatile acestui proiect. Partea dificila a utilizarii algoritmilor de
control tratati in lucrare nu este etapa de rulare, ci etapa de implementare care presupune gasirea
unor coeficienti corespunzatori. Bineinteles, etapa ce are loc in Matl ab si presupune niste
simulari. Placa interogheaza fiecare senzor si foloseste aceste date pentru a recalcula anumiti
parametrii. In functie de parametrii calculati, aceasta unitate de procesare decide cum sa
comande motorul. Comanda motorului se face indi rect, prin intermediul driverului de motor.

Pini utilizati
Numele pinului Functia
9 Ieșire PWM
10 Iesire digitala
11 Iesire digitala
A1 Intrare analogica
A4 SDA (I2C)
A5 SCL (I2C)

Pinul 11 este folosit pentru a transmite controlerului curentul cu care trebuie comandat motorul.
Acest lucru se face prin intermediul modificarii factorului de umplere al semnalului PWM.

Gama de valori pe care o poate lua acest curent de comanda este limitata de rezolutia
perifericului de PWM, adica 8 biti. Pinul 9 indic a directia de rotatie a rotii, iar pinul 10
activeaza sau dezactiveaza comanda motorului. Cat timp valoarea tensiunii pe acest pin este 0,
motorul nu se va misca.

BNO055

Acest circuit integrat este un senzor de miscare cu noua grade de libertate, ce ing lobeaza un
giroscop, un magnetometru si un accelerometru. A fost ales datorita performantelor sale foarte
bune. Poate furniza date cu o frecventa de maxim 100Hz si datorita procesorului ARM Cortex
M0 ce ruleaza in interiorul chipului, ofera o rejectie foar te buna a zgomotului. Acest procesor
trece datele prin anumite filtre digitale inainte de a le furniza microcontrolerului. Asadar,
nevoie de a filtra informatia in microcontroler dispare.
Figura 15
Marimile ce pot fi urnizate sunt:
• Unghiurile Euler
• Cei pat ru cuaternioni
• Viteza unghiulara pe 3 axe
• Intensitatea campului magnetic pe 3 axe
• Acceleratia liniara – fara acceleratia gravitationala
• Acceleratia gravitationala
• Temperatura

Cu toate acestea, in rularea algoritmilor se va folosi doar unghiul de pe o anum ita axa. Acesta
va fi calculat cu ajutorul cuaternionilor.

Controlerul de motor Maxon ESCON 36/3 EC

Avantajul acestui controler consta in faptul ca poate fi configurat foarte usor, folosind interfata
grafica oferita de peoducator. De asemenea, se pot ale ge si modifica functiile pinilor, dar si
modul de control al motorului (de exemplu control in curent sau in turatie). In urma selectarii
tipului de comanda, controlerul isi calculeaza sin gur parametrii buclei de reglaj.
Pentru aceasta aplicatie a fost pref erat un control al motorului in curent . Astfel, acceleratia rotii
este mdificata prin variatia curentului de comanda. Utilizatorul seteaza doar tipul controlerului
si parametrii acestuia, iar intreaga priectare este realizata de aplicatia ESCON Studio iar paoi
transferata in placa electronica.

Figura 16

Valorile impuse, dupa care a fost configurat driverul, sunt:
Marime Valoare
Constanta de viteza 271 rpm/V
Numarul de perechi de poli 8
Viteza de rotatie maxima 6300 rpm
Curentul nominal 2.32 A
Curen tul maxim 4 A

Figura 15 ilustreaza rezultatul procesului de auto reglare a driverului, iar grafucul arata in ce
masura controlerul proiectat satisface asteptarile.

Figura 17
Driverul prezinta protectii foarte eficiente ce impiedica motorul sa se arda a ccidental. De
asemenea, printre parametii configurati se afla si curentul maxim de functionare. Asadar, de
indata ce curentul maxim este configurat corect, motorul nu se va arde niciodata.

Intrarile si iesirile motorului sunt.

Intrare/Iesire Functie
Intrarea digitala 1 Curentul de comanda, transmis sub forma de PWM
Intrarea digitala 2 Activare: 1 – activat. 0 – dezactivat
Intrarea digitala 3 Sens: 1 – orar. 0 – anti orar
Iesire analogica 1 Furnizeaza o tensiune proportionala cu viteza de rotatie

Astfel microcontrol erul ii transmite driverului un semnal PWM cu un anumit factor de umplere,
iar acesta interpreteaza valoarea si deduce curentul aferent acesteia. Factorul de umplere poate
varia intre 10% si 90%, valori corespunzatoare pentru 0A, respectiv 4 A. In concluzie, legea de
conversie este:
𝐼=5∙𝐹𝑈−0.5
Unde FU este valoarea factorului de umplere.

Controlerul Maxon ofera si valoarea curenta a vitezei de rotatie, oferind o tensiune
proportionala cu aceasta, ce este esantionata si interpretata de microcontroler. Acesta este
configurat sa furn izeze valori intre 0V si 2.5V pentru viteze de rotatie cuprinse intre 0rpm,
respectiv 6300rpm. Acest lucru este valabil doar pentru sensul orar. Pentru celalalt sens,
valoarea absoluta a tensiunii furnizata va fi aceeasi, dar semnul va fi opus. Aici apare nevoie
unei translatari a semnalului analogic, deoarece convertorul analogic digital al
microcontrollerului ATmega328P este unul unipolar, deci nu va fi capabil sa citeasca semnale
aflate la un potential mai mic decat masa.

Figura 18

Translatia de nivel se face folosind un sumator simplu cu doua rezistente. Din teorema
superpozitiei rezulta:
𝑉𝐴𝑟𝑑𝑢𝑖𝑛𝑜 _𝐼𝑛=1
2(5+𝑉𝐸𝑆𝐶𝑂𝑁𝐴𝑛𝑎𝑙𝑜𝑔𝑂𝑢𝑡)
Unde 𝑉𝐸𝑆𝐶𝑂𝑁𝐴𝑛𝑎𝑙𝑜𝑔𝑂𝑢𝑡 poate lua valori intre -2.5V si 2.5V. Asadar, 𝑉𝐴𝑟𝑑𝑢𝑖𝑛𝑜_𝐼𝑛 va lua valori
intre 1.25V si 3.75V, interval cuprins in gama de citire a convertorului.

Pentru testarea functionalitatii driverului de motor, au fost generate semnale de comanda din
microcontroler, iar valoarea parametrilor interni ai d riverului a fost observata cu ajutorul
interfetei grafice a programului ESCON Studio, ca in Figura 19.

Figura 20

Procesul

Primul pas in proiectarea regulatorului este determinarea modelului matematic pentru proces.
Acest a se va determina prin doua metode. Prima implica determinarea functiei de transfer a
procesului pe cale teoretica, folosind ecuatii ce rezulta din legile mecanicii. A doua metoda
presupune identificarea sistemului folosind un set de masuratori inregistrat e in timpul
functionarii acestuia. Dupa determinarea acestui model se va putea trece la implementarea
propriuzisa a regulatorului.

Metoda teoretica:

Ecuatiile sistemului vor fi preluate din [] si vor fi adaptate la parametrii sistemului tratat in
lucrare . Acestea sunt:
𝜃𝑐̈=(𝑚𝑐𝑙𝑐+𝑚𝑟𝑙)𝑔sin𝜃𝑐−𝑇𝑚−𝐶𝑐𝜃𝑐̇+𝐶𝑟𝜃𝑟̇̇
𝐼𝑏+𝑚𝑤𝑙2
𝜃𝑤̈=(𝐼𝑐+𝐼𝑟+𝑚𝑟𝑙2)(𝑇𝑚−𝐶𝑟𝜃𝑟)̇
𝐼𝑟(𝐼𝑐+𝑚𝑟𝑙2)−(𝑚𝑐𝑙𝑐+𝑚𝑟𝑙)𝑔sin𝜃𝑐−𝐶𝑐𝜃𝑐̇̇
𝐼𝑐+𝑚𝑟𝑙2
𝑇𝑚=𝐾𝑚∙𝑢

Unde 𝑚𝑐 reprezinta masa cadrului metalic, iar 𝑚𝑟 masa rotii. 𝐶𝑟 si 𝐶𝑐 sunt coeficientii de
frecare ai rotii, respectiv cadrului metalic cu punctul de pivotare. 𝑢 este intrarea in curent a
sistemului. 𝑇𝑚 reprezinta cuplul produs de motor , 𝐾𝑚 constanta de cuplu, iar lungimile 𝑙 si 𝑙𝑟
sunt evidentiate in Figura
Figura 21

Asadar, 𝑙 reprezinta distanta intre punctul de pivotare si centrul de masa, iar 𝑙𝑟 distanta intre
punctul de pivotare si centrul de masa. Numeric, acesti parametrii se regases in tabelul:

𝑙 9.5∙10−2 𝑚
𝑙𝑟 0.85∙10−2 𝑚
𝑚𝑟 0.115 𝑘𝑔
𝑚𝑐 0.17 𝑘𝑔
𝐼𝑐 10−3 𝑘𝑔∙𝑚2
𝐼𝑟 0.27∙10−3 𝑘𝑔∙𝑚2
𝐶𝑟 0.05∙10−3 𝑘𝑔∙𝑚2∙𝑠−1
𝐶𝑐 3∙10−3 𝑘𝑔∙𝑚2∙𝑠−1
𝐾𝑚 33.5∙10−3 𝑁𝑚∙𝐴−1

In modelul descris mai sus, se observa ca exista o neliniaritate introdusa de acel sinus. Prin
urmare, principiile teoriei sistemelor liniar e nu vor putea fi aplicate in acest caz . Asadar, analiza
sistemului se va restrange pentru o gata redusa de unghiuri. Conform aproximatiei unghiurilor
mici, sin𝜃≅θ, pentru 𝜃∈(−15°,15°). Calculele si analizele ce vor urma adopta aceasta
aproximatie.

In continuare se va trece la modelul de stare, scriind matricile sistemului, in conformitate cu []:
𝐴=
[ 0 1 0
(𝑚𝑐𝑙𝑐+𝑚𝑟𝑙)𝑔
(𝐼𝑐+𝑚𝑟𝑙2)−𝐶𝑐
(𝐼𝑐+𝑚𝑟𝑙2)𝐶𝑟
(𝐼𝑐+𝑚𝑟𝑙2)
−(𝑚𝑐𝑙𝑐+𝑚𝑟𝑙)𝑔
(𝐼𝑐+𝑚𝑟𝑙2)𝐶𝑐
(𝐼𝑐+𝑚𝑟𝑙2)−𝐶𝑟(𝐼𝑐+𝐼𝑟+𝑚𝑟𝑙2)
𝐼𝑟(𝐼𝑐+𝑚𝑟𝑙2)]

𝐵=
[ 0
−𝐾𝑚
𝐼𝑐+𝑚𝑟𝑙2
𝐾𝑚(𝐼𝑐+𝐼𝑟+𝑚𝑟𝑙2)
𝐼𝑟(𝐼𝑐+𝑚𝑟𝑙2)]

𝐶=[100]

𝐷=0
Raspunsul la impuls al sistemului este prezentat in Figura []. Asadar, instabilitatea sistemului
este evidenta in ambele diagrame din Figura 22. Polul din semiplanul drept provoaca aceasta
instabilitate.

Figura 22
l = 9.5 * 10^ -2;
lb = 0.85 *10^ -2;
mb = 0.17;
mw = 0.115;
Ib = 10^ -3;
Iw =0.27*10^ -3;
Cw = 0.05*10^ -3;
Cb = 3*10^ -3;
g = 9.81;
Km = 33.5 * 10^ -3;
A = [0, 1, 0; …
g*(mb*lb + mw*l)/(Ib+mw*l^2), -Cb/(Ib+mw*l^2),
Cw/(Ib+mw*l^2); …
-g*(mb*lb + mw*l)/(Ib+mw*l^2 ), Cb/(Ib+mw*l^2),
-Cw*(Ib+Iw+mw*l^2)/(Iw*(Ib+mw*l^2))];
B = [0; -Km/(Ib+mw*l^2);
Km*(Ib+Iw+mw*l^2)/(Iw*(Ib+mw*l^2))];
C = [1, 0, 0];
D = 0;
SYS = ss(A, B, C, D)
impulse( SYS)
pzplot(SYS)

Metoda identificarii practice a sistemului

Aceasta metoda foloseste date inregistrate experiental pentru a determina functia de transfer a
sistemului. Desi modelul rezulat inglobeaza erorile cu o precizie mai mare, deoarece
determinarea se face chiar pe modelul practic, acesta va fi unul simplifica t in comparatie cu cel
rezultat din metoda teoretica.

Figura 23
P
Curent
Unghi

Pentru a obtine setul de masuratori se va aplica o treapta de curent la intrarea sistemului si se
va inregistra cum variaza . Inregistrarea datelor a fost facuta cu ajuorul consolei seriale, ca in
Figura []. Dupa terminarea achizitiei, datele au fost extrase din consol a, si introduse intr -un
fisier .csv pentru a putea fi importat in Matlab.
Figura 24

Dupa ce fisierul a fost introdus sub forma de vector, s-a folosit instrumentul de identificare a
sistemelor din Matlab. Acestuia i s -a specificat ca acel vector reprezinta raspunsul sistemului
in domeniul timp la semnal treapta, iar acesta a calculat functia de transfer ce caracterizeaza
cel mai bine acel set de date. Numarul de pol i si zerouri pentru aceasta functie de transfer a fost
setat de utilizator. Determinarea functiei de transfer din raspunsul la se mnal treapta foloseste
folosest e princi piile sisteme lor liniare. Asadar, folosirea acestui se de date pentru a estima
functia de transfer se poate face doar daca sistemul este liniar. D in metoda precedenta, rezulta
clar intervalul in care sistemul poate fi aproximat cu unul liniar. In concluzie se poate fa ce
estimarea pe setul de date, in intervalul (0°,15°). Limitand set ul achizitionat la acest interval,
obtinem:

0 0.02 0.05 0.10 0.16 0.25

Functia de transfer ce estimeaza cel ma i bine acest set de date, ce are un zero si doi poli este:
𝐻(𝑠)=24
𝑠2−34.8𝑠

Codul ce calculeaza raspunsul la impuls pentru sistemul gasit este:
num = [24];
den = [1, -34.8, 0];
G = tf(num,den)
[y,t]=impulse(G);
plot(t, y)
figure
pzplot(G)

Proiectarea si testarea algoritmilor de control

Similar Posts