23
Sistemes de Control amb no Linealitats Estàtiques Emprant M AT LAB c /Simulink c Sergio López-Doriga Guerra Enric Fossas Colet Ramon Costa Castelló 12 d’octubre de 2011

Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Sistemes de Control amb no Linealitats Estàtiques

Emprant MATLAB c© /Simulink c©

Sergio López-Doriga GuerraEnric Fossas ColetRamon Costa Castelló12 d’octubre de 2011

Page 2: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Índex

1 Simulació de sistemes amb no linealitats estàtiques 3

2 Tipus de no linealitats 3

2.1 Saturació . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Backslash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Histèresi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 Zona morta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5 Relé polaritzat ideal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.6 Altres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Modelització en Simulink c© 5

4 Dibuix del pla de fases 8

4.1 Representació del camp vectorial . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Diagrames de Bode i de Nyquist 14

6 Resolució d’equacions amb MATLAB c© 15

7 Anàlisi mitjançant la funció descriptiva 16

2

Page 3: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

1 Simulació de sistemes amb no linealitats estàtiques

Un sistema real té, en la majoria dels casos, no linealitats inevitables o inherents. Aquestes nolinealitats poden afectar el comportament del sistema, és per això que cal conèixer-les i estudiar-les. Aquest tipus de sistemes tenen normalment la component lineal clarament separada del’element no lineal, així es poden modelitzar amb un esquema de blocs com el de la Figura 1.

Figura 1: Esquema de blocs d’un sistema amb una no linealitat.

Hi ha diferents tipus de no linealitats en funció del sistema que s’estigui estudiant, tot seguit esfarà un repàs a les més comuns.

2 Tipus de no linealitats

Les no linealitats que s’estudiaran són continues i no diferenciables (no linealitats fortes), a més,no depenen de la derivada de la variable d’estat i per tant són no linealitats estàtiques (en cascontrari serien dinàmiques).

2.1 Saturació

En aquest tipus de no linealitat per a senyals d’entrada petits la sortida serà proporcional peròfora d’aquest rang la sortida es mantindrà constant. Aquest efecte es dóna generalment a causade limitacions en els components o en les condicions de funcionament. Un exemple són elsamplificadors. La següent funció (representada a la Figura 2) descriu aquest comportament:

f(x) =

−βα x < −αβx −α ≤ x ≤ αβα x > α

2.2 Backslash

Aquest comportament no lineal es caracteritza en què si l’entrada cambia de sentit (passa decréixer a decréixer o a l’inrevés) el canvi inicial no té efecte en la sortida. Aquest fenomen és

3

Page 4: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

a) Saturació b) Backslash

c) Zona morta d) Relé polaritzat ideal

Figura 2: Corbes característiques de les diferents no linealitats.

típic en els mecanismes de transmissió, sobretot en els engranatges, degut a l’espai que quedaentre les dents de dos rodes dentades. En la Figura 2 es pot veure la seva corba característica.

2.3 Histèresi

La histèresi agrupa a tot un conjunt de no linealitats. Es parla d’histèresi quan el sistema segueixuna trajectòria diferent segons si l’entrada creix o decreix.

Hi ha diferents tipus de comportaments (o característiques no lineals) que segueixen aquestacondició. L’exemple més conegut és la histèresi magnètica que presenten alguns componentsferromagnètics. Sistemes com relés i solenoids són els que acostumen a tenir aquest tipus de nolinealitats.

En la Figura 2 està representat el backslash (vist anteriorment a l’apartat 2.2) que és unacaracterística amb histèresi.

4

Page 5: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

2.4 Zona morta

També anomenada insensibilitat, aquest tipus de no linealitat presenta un rang d’entrades enque la sortida és nul.la. Fora d’aquest rang, la relació entre l’entrada i la sortida és lineal i dependent constant.

Aquesta característica es troba en molts sistemes físics en què és necessària certa energia inicialper posar-los en marxa. Un exemple pot ser un motor de contínua o diferents tipus de sensors iactuadors.

En el cas d’una zona morta simètrica, la següent funció (representada a la Figura 2) defineixaquest comportament:

f(x) =

β(x+ α) x < −α

0 −α ≤ x ≤ αβ(x− α) x > α

2.5 Relé polaritzat ideal

Aquesta no linealitat també es coneix com de connexió-desconnexió o tot-res. La sortida serà unaconstant positiva o una negativa en funció del signe de l’entrada. Aquesta característica permetmodelitzar, per exemple, la fricció de Coulomb. En models més complerts, la sortida en comptesde ser una constant té un cert pendent per tal de simular l’efecte viscós.

La següent funció determina aquest comportament:

f(x) =

{βx− α x < 0βx+ α x > 0

En la Figura 2 es mostra la corba tant per al cas constant (β = 0) com per al cas lineal (β 6= 0).

2.6 Altres

A part de les no linealitats presentades en els apartats anterior, hi ha altres tipus decomportaments cadascun amb una característica diferent. Així, podem trobar un potenciòmetre,un diode (real o ideal), un detector fotoelèctric, un circuit sintonitzat...

3 Modelització en Simulink c©

Per estudiar un sistema amb una no linealitat estàtica Simulink c© disposa de diferents blocsque modelitzen les diferents característiques no lineals. El primer pas serà, per tant, crear unnou model seleccionant en el menú principal File>New>Model.

A mode d’exemple, es farà servir un sistema que simula el control d’orientació d’una nau espacial(no hi ha fregament). L’esquema de blocs del sistema és el que es pot veure a la Figura 3.

5

Page 6: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 3: Esquema de blocs del sistema de control d’orientació.

Per tal de simplificar es considerarà θr = 0 i per tant l’equació que governa el sistema quedaθ = U . Les variables d’estat són x1 = θ i x2 = θ i la característica no lineal es defineix per:

U(s) =

{α θ < 0−α θ > 0

Utilitzant els blocs de què Simulink c© disposa1 es muntarà l’esquema de blocs del sistema. Lamajoria dels blocs es trobaran al submenú de la llibreria anomenat Commonly Used Blocks peròen el cas de les no linealitats caldrà buscar-les en Discontinuities.

Per al sistema que es vol estudiar serà suficient un parell d’integradors (Integrator), un guany(Gain) i un relé polaritzat ideal que en Simulink c© s’anomena Coulomb & Viscous Friction.A més, per poder visualitzar les variables d’estat s’afegirà un bloc Mux (que agrupi les dosvariables) connectat a un bloc Scope. L’esquema del model ha de quedar com el de la Figura 4.

Figura 4: El sistema d’estudi modelitzat en Simulink c© .

Abans de posar en marxa la simulació cal introduir els paràmetres de cada bloc. En el cas delsintegradors serà suficient amb les condicions inicials (es suposarà x1ini = 1 i x2ini = 1). Per ala no linealitat, es tindrà en compte que la sortida U(s) és constant i de mòdul igual a α, pertant, tal com es pot veure a la Figura 5 s’indica Offset=alpha i Gain=0. Si aquests paràmetreses posen en genèric (amb el nom de la variable) després serà més fàcil fer modificacions des dela finestra de comanes de MATLAB c© .

1Si no es veu la llibreria de blocs, per obrir-la només cal prémer View>Library Browser.

6

Page 7: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 5: Finestra d’opcions del bloc Coulomb & Viscous Friction.

Un cop afegits tots els paràmetres referents al sistema, només caldrà indicar a Simulink c© lesopcions de la simulació tals com el temps total de simulació i el període de mostratge. Això esfarà en el menú Simulation>Configuration Parameters... al qual es pot accedir apretant Ctrl+E.Un cop acabat es guarda el model (orientacioNau.mdl) i s’inicia la simulació.

Si en comptes de visualitzar la sortida es volen emmagatzemar els resultats de la simulació enuna variable determinada caldrà afegir per a cada sortida un bloc To Workspace com es veu a laFigura 6. En les opcions d’aquest bloc caldrà indicar el nom de la variable de sortida i el formaten què es vol guardar. En general, i per comoditat a l’hora de fer càlculs senzills, és recomanableguardar les dades en forma d’Array.

Figura 6: El sistema modelitzat amb ports de sortida per emmagatzemar els resultats.

7

Page 8: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

4 Dibuix del pla de fases

Sigui un sistema amb dos variables d’estat x1 i x2, l’evolució del sistema en el pla (x1,x2) a partird’unes condicions inicials forma una trajectòria. Un conjunt de trajectòries formaran un retratde fases.

Continuant amb l’exemple de l’apartat anterior, per tal de dibuixar la trajectòria que segueixel sistema a partir d’unes condicions inicials donades (x1ini = 1 i x2ini = 1), s’usarà el blocXY Graph que rebrà com a entrades2les dues variables d’estat. El resultat obtingut pel modelorientacioNau.mdl és el de la Figura 7.

Figura 7: Trajectòria del sistema en el pla de fases per a x1ini = 1 i x2ini = 1.

Per tal de dibuixar el retrat de fases (diferents trajectòries en el mateix gràfic) es treballarà desdeMATLAB c© . Primer de tot, tal com s’ha explicat en l’apartat anterior, com que no es voldràvisualitzar directament la sortida sinó que es voldrà emmagatzemar en variables es canviarà elbloc XY Graph per dos blocs To Workspace tal com es veu a la Figura 6. Les variables de sortidas’anomenaran x1sort i x2sort i s’emmagatzemaran en forma d’array.

2La variable connectada a l’entrada superior serà la que es representi a l’eix d’abscisses.

8

Page 9: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

A continuació es crearà un fitxer M-file anomenat retratFases.m en el que s’escriurà el següent:

model = ’orientacioNau.mdl ’;alpha =1; %fixa el valor d’alphahold on; %activa la superposició de dibuixos en la última figurafor i=1:5 %per a valors enters d’u a cinc ...

%canvia els valors de les condicions inicialsx1ini=i;x2ini=i;sim(model); %simula el sistemaplot(x1sort ,x2sort); %dibuixa la sortida

end

El retrat de fases resultant és el que es pot veure a la Figura 8.

Figura 8: Retrat de fases del sistema θ = U .

9

Page 10: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 9: Mallat resultant amb la funció meshgrid si els vectors d’entrada sóneix_X=eix_Y=[0,1,2,3].

4.1 Representació del camp vectorial

MATLAB c© disposa de la funció quiver que permet representar gràficament les línies de campd’un cert camp vectorial.� �

quiver(X,Y,U,V)

\matlab representarà els vectors amb components definides en les matrius (U,V) en lesposicions indicades per les matrius (X,Y).

Les matrius X, Y, U i V han de tenir les mateixes dimensions.� �Abans de cridar la funció quiver, caldrà definir les matrius de vectors (U,V) i de posicions(X,Y). Per a realitzar aquesta tasca serà útil la funció meshgrid que permet de forma fàcilcrear dues matrius, les components de les quals definiran els punts (x,y) d’una zona de l’espaideterminada.

10

Page 11: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 10: Sistema per al qual es dibuixarà el camp vectorial. La no linealitat es correspon auna zona morta de pendent unitari.

� �[X,Y] = meshgrid(eix_X ,eix_Y)

X i Y són les components dels punts que defineixen una quadrícula dibuixada a partirdels punts indicats en els eixos pels vectors eix_X i eix_Y.� �

Per entendre millor el funcionament de la funció meshgrid es pot dibuixar el mallat generat si elsvectors d’entrada són eix_X=eix_Y=[0,1,2,3]. Les matrius X i Y definiran els punts marcatsamb un cercle a la Figura 9.

Cal recordar queMATLAB c© permet generar vectors amb punts equiespaiats entre dos extremsamb la següent sintaxi:� �

w=w_min:dist:w_max;w és un vector amb punts equiespaiats entre w_min i w_max. dist serà la distància entre

punts.� �Un cop definides les matrius de posició (X,Y) es pot avaluar el valor de la funció per a cadapunt de l’espai i emmagatzemar-lo en una nova matriu Z (que tindrà les mateixes dimensions).Cal recordar que per a fer algunes operacions component a component amb matrius o vectors,com per exemple la multiplicació, serà necessari afegir un punt ’.’ davant del respectiu signe dela operació (per exemple ’.*’).

11

Page 12: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Exemple

En aquest exemple es dibuixarà el camp vectorial del sistema definit a l’esquema de la Figura10.

Es prendran com a variables d’estat u1 i y. Així, tenint en compte les relacions directes u1 = 1su

i y = 1s+3u1, es poden trobar les equacions del sistema:{

y = −3y + u1u1 = u

Es defineix l’espai amb u1 a l’eix d’abscisses i y a l’eix d’ordenades. A l’hora de calcular lesderivades cal tenir en compte que u ve donat pel valor de sortida de la no linealitat que enaquest cas és una zona morta i que depèn alhora del valor que pren y:

u(y) =

y + 1 y < −10 −1 ≤ y ≤ 1

y − 1 y > 1

Per tal de dibuixar el camp vectorial es crearan dos fitxers nous: en un es definirà la funció u(y),en l’altre s’escriuran les instruccions per tal de dibuixar el camp vectorial. Un cop executat elsegon arxiu, s’obté la Figura 11.

%% funU.m%function U=funU(Y,kx ,ky)

if Y(kx,ky)<-1U=Y(kx,ky)+1;

elseif Y(kx,ky) >=-1 && Y(kx,ky) <=1U=0;

elseU=Y(kx,ky) -1;

endend

close allclear all%calculo els vectors X (variable u1) i Y (variable y)x_lin = -3:0.5:3;y_lin = -3:0.5:3;[X,Y]= meshgrid(x_lin ,y_lin);

%calculo u1punt=ufor kx=1: length(x_lin)

for ky=1: length(y_lin)U(kx,ky)=funU(Y,kx,ky);

end

12

Page 13: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 11: Camp vectorial del sistema de la Figura 10.

end%calculo ypunt=-3y+u1V=-3.*Y+X;%dibuixo el camp vectorialquiver(X,Y,U,V);

13

Page 14: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

5 Diagrames de Bode i de Nyquist

Per tal de representar el diagrama de Bode o el diagrama de Nyquist d’un sistema, MATLAB c©disposa de les funcions bode i nyquist. Per poder utilitzar qualsevol d’aquestes comanes,prèviament s’haurà d’haver definit el sistema per al qual es vol dibuixar el diagrama.

També pot ser útil la funció bodemag que treballa igual que la funció bode però només mostrala corba de guany del diagrama.� �

bode(sist ,{wmin ,wmax})

La funció representa el sistema sist en un diagrama de Bode.wmin i wmax són opcionals i indiquen els valors de la freqüència (en rad/s) entre els

quals es vol representar el diagrama. També es pot escriure un vector defreqüències on es volen

dibuixar punts del diagrama.� �� �

nyquist(sist ,{wmin ,wmax})

La funció representa el sistema sist en un diagrama de Nyquist.wmin i wmax són opcionals i indiquen els valors de la freqüència (en rad/s) entre els

quals es vol representar el diagrama. També es pot escriure un vector defreqüències on es volen

dibuixar punts del diagrama.� �Exemple

Es disposa del sistema lineal descrit per la següent funció de transferència:

G(s) =−10s

s2 + 2.1s+ 100

Per tal de representar el seu diagrama de Bode i seguidament el diagrama de Nyquist es faranservir les següents instruccions:

>> G=tf([-10 0],[1 2.1 100])

Transfer function:-10 s

-----------------s^2 + 2.1 s + 100

>> bode(G);>> nyquist(G);

14

Page 15: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

6 Resolució d’equacions amb MATLAB c©

La funció fsolve de MATLAB c© permet resoldre equacions o sistemes d’equacions. Lesequacions hauran de ser del tipus F (x) = 0, en cas contrari serà convenient reescriure-les pertal que presentin aquesta forma. Caldrà indicar unes condicions inicials a partir de les qualsMATLAB c© començarà a iterar.

La funció optimset permet indicar a la funció fsolve alguns paràmetres de funcionament. Entred’altres, es pot ajustar el nombre màxim d’iteracions que fsolve podrà fer (MaxIter) i també latolerància que es permet en el resultat (TolFun). Per trobar una llista completa de les diferentsopcions i dels valors que poden prendre es pot escriure help optimset en la línia de comanes deMATLAB c© .� �

Y=fsolve(@fun , x0, optimset (...))

Y serà el vector de solucions del sistema definit a @fun.@fun serà una funció definida en un m-file (fun.m) que prendrà uns valors d’entrada X i

retornarà la funció avaluada en aquests valors F(X).x0 seràn les condicions inicials a partir de les quals \matlab començarà a buscar la

solució del sistema.El tercer paràmetre es opcional i permet ajustar la forma en què \matlab farà servir la

funció fsolve.� �Exemple

Es vol resoldre el següent sistema d’equacions:{0 = x2 + 3xy + 30 = y2 + 2xy + 4

Per fer-ho primer caldrà escriure el fitxer fun.m per tal de definir les equacions del sistema. Elfitxer tindrà les següents instruccions:

%% fun.m%function [sortida ]=fun(entrada)

sortida=zeros(size(entrada));x=entrada (1);y=entrada (2);

sortida (1)=x^2+3*x*y+3;sortida (2)=y^2+2*x*y+4;

end

Amb la funció definida, només queda introduir les condicions inicials i cridar la funció fsolveper trobar la solució.

15

Page 16: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

>> x0=[1 2];>> Y=fsolve(@fun ,x0)Optimization terminated: first -order optimality is less than options.TolFun.

Y =

-2.2693 1.1971

Per tant, la solució al sistema d’equacions plantejat és x = −2.2693 i y = 1.1971. Si es volcomprovar la solució només cal avaluar la funció en els valors de la solució i veure que la respostaés molt propera a zero. Això es fa de forma directa tal com es mostra a continuació:

>> fun(Y)

ans =

1.0e-011 *

0.6297 -0.0305

7 Anàlisi mitjançant la funció descriptiva

Sigui un sistema en llaç tancat composat per una part lineal i una no linealitat estàtica com elde la Figura 12. El comportament en règim permanent d’aquest tipus de sistema es pot estudiaremprant la funció descriptiva.

Figura 12: Esquema de blocs d’un sistema amb una no linealitat estàtica.

En concret, per comprovar si el sistema3compleix la condició d’estacionarietat (existeix un ciclelímit i hi ha oscil.lacions o hi ha un punt d’equilibri) es resoldrà la igualtat N(E) · L(jω) = −1.Aïllant la part lineal, queda a una banda −1

N(E) que és el que normalment rep el nom de funciódescriptiva. Si la equació té solució voldrà dir que el sistema té un cicle límit amb una amplitudd’oscil.lació i una pulsació determinades. Si la equació no té solució el sistema no oscil.larà.

3Es considerarà que r = 0.

16

Page 17: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 13: Representació gràfica de la no linealitat N(E) respecte de l’amplitud d’oscil.lació E.

Mitjançant el mètode explicat a l’apartat anterior (comana fsolve) es pot resoldre la igualtatnumèricament considerant que hi ha dues equacions (mòdul i fase) amb dues incògnites(l’amplitud d’oscil.lació E i la seva pulsació ω).{

|N(E) · L(jω)| = 1bN(E) · L(jω) = π

Una altra opció és representar en un mateix diagrama de Nyquist tant la part lineal del sistema(L(jω)) com la funció descriptiva de la part no lineal ( −1

N(E)). El punt de tall (si existeix) enspermetrà conèixer l’amplitud d’oscil.lació E i la pulsació ω. En cas que no hi hagi cap punt detall, voldrà dir que la igualtat N(E) · L(jω) = −1 no té solució i que el sistema no oscil.larà.També pot donar-se el cas en què existeixi més d’un punt de tall, l’avantatge de resoldre elsistema gràficament és que permet veure ràpidament quantes solucions té.

Exemple

Mitjançant la representació gràfica del diagrama de Nyquist, es buscarà l’amplitud d’oscil.lacióE i la pulsació d’un sistema en què la part no lineal serà una saturació (veure apartat 2.1) ambα = 1 i β = 0, 25. Per la part lineal s’utilitzarà la mateixa planta que en l’exemple de l’apartat

17

Page 18: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 14: Representació gràfica del diagrama de Nyquist de L(jω) i de la funció descriptiva−1N(E) .

anterior (pàg. 14), d’aquesta manera, les expressions que defineixen el sistema són:

L(s) =−10s

s2 + 2.1s+ 100

N(E) =

{β si E ≤ 1

2βπ

[arcsin( 1

E ) +1E

√1− 1

E2

]si E > 1

Per representar el diagrama de Nyquist de la part lineal del sistema (L(jω)) s’usaran les mateixesinstruccions que s’han explicat a l’anterior exemple (pàg. 14):

>> L=tf([-10 0],[1 2.1 100])

Transfer function:-10 s

-----------------s^2 + 2.1 s + 100

>> nyquist(L);

Un cop representada la part lineal, caldrà representar-hi a sobre la funció descriptiva de la partno lineal −1

N(E) per tal de veure si existeix algun punt de tall entre les dues corbes. Abans, però, es

18

Page 19: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 15: Diagrama de Bode del sistema en llaç tancat amb la freqüència d’oscil.lació ωcl i elsseus múltiples remarcats.

representarà la no linealitat N(E) en funció de l’amplitud d’oscil.lació E per veure quin és el seucomportament. Amb aquest objectiu, primer s’escriu en un fitxer m-file (anomenat NE_sat.m)la funció que defineix la no linealitat. Després d’introduir les següents comanes s’obté com aresultat el gràfic de la Figura 13:

%% NE_sat.m%function NE=NE_sat(E, beta)

NE=zeros(size(E));

k1=find(E<=1);k2=find(E>1);

NE(k1)=beta;NE(k2)=(2* beta/pi)*(asin (1./E(k2))+(1./E(k2)).*sqrt (1 -1./(E(k2).*E(k2))));

end

>> E=0:0.01:2;>> beta =0.25;>> plot(E,NE_sat(E,beta));

19

Page 20: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 16: Esquema en Simulink c© del sistema proposat incloent l’impuls inicial per a lasimulació.

Amb l’ajut de la representació de N(E) es veu fàcilment que per a tot E ≤ 1, N(E) = 0.25 quejustament és el valor de β i per tant −1

N(E) = −10.25 = −4. A mesura que l’amplitud E augmenti

per sobre de E = 1, N(E) disminuirà (veure Figura 13) i la funció descriptiva (que és la inversa)augmentarà en mòdul.

Així, en un diagrama amb eixos Re-Img, N(E) es veurà com una semirecta continguda entre[−4,−∞). Amb això, es pot representar la funció descriptiva a sobre del diagrama de Nyquistde L(s) generat anteriorment obtenint el diagrama de la Figura 14.

>> nyquist(L);>> hold on;>> invNE =-1./ NE_sat(E,beta);>> plot(real(invNE),imag(invNE));

Cal notar que degut a que el diagrama de Nyquist es dibuixa en el parell d’eixos Real-Imaginari,caldrà separar les components real i imaginària de N(E). Per fer-ho s’usaran les funcions reali imag respectivament.

Ara que ja estan representats en un mateix diagrama els dos costats de la igualtat L(jω) = −1N(E)

(Figura 14), es pot veure que hi ha un punt de tall entre les dues corbes. Així, es pot predir queel sistema tindrà oscil.lacions (hi haurà un cicle límit).

Per conèixer la freqüència d’oscil.lació cal tenir en compte que si es prem amb l’eina Data cursora sobre d’un punt en el diagrama MATLAB c© indica a quina freqüència correspon el punt enqüestió. En l’exemple només cal mirar el punt de tall i, per tant, ωcl = 10rad/s.

Com que el punt de tall es correspon amb (Re, Im) = (−4.76, 0), per trobar l’amplitud d’oscil-lació es pot fer la següent deducció:

L(jω) =−1N(E)

= −4, 76 =⇒ N(E) =−1−4, 76

= 0, 21

20

Page 21: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Figura 17: Resposta temporal del sistema no lineal.

N(E) =2β

π

[arcsin(

1

E) +

1

E

√1− 1

E2

]= 0, 21

Mirant el gràfic de la Figura 13, per a N(E) = 0, 21 s’observa que l’amplitud d’oscil.lació val:

Ecl = 1, 36.

Per tal de comprovar el resultat es pot dibuixar el diagrama de Bode del sistema i veure quinés el comportament del seus harmònics. Si tot és correcte, la part lineal hauria d’actuar com unfiltre passabaixos i per tant, el guany per al primer harmònic hauria de ser suficientment superioral de la resta.

21

Page 22: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Per a comprovar-ho s’escriuen les següents instruccions que permeten dibuixar el diagrama deBode que es veu a la Figura 15.

>> Llt=feedback(L,1)

Transfer function:-10 s

-----------------s^2 - 7.9 s + 100

>> w=10;>> bodemag(Llt)>> hold on>> bodemag(Llt ,’ok ’,[w 2*w 3*w 4*w 5*w])

Per últim, es pot simular mitjançant Simulink c© el sistema proposat i dibuixar la sortida percomprovar-ne que l’amplitud d’oscil.lació i la freqüència previstes són correctes.

A l’hora de dibuixar l’esquema en Simulink c© caldrà tenir en compte que la saturació ambpendent β = 0, 25 equival a una saturació de pendent unitari connectada pel darrera amb unguany de valor β. A més, caldrà donar al sistema un únic impuls inicial que es pot resoldre ambdos graons de valor igual però amb signes contraris i amb un petit temps de decalatge entre ells.L’esquema final es pot veure a la Figura 16.

Amb els resultats de la simulació (representats a la Figura 17) es pot veure que efectivamentEcl = 1, 36 i ωcl = 10rad/s.

22

Page 23: Sistemes de Control amb no Linealitats Estàtiques Emprant ... · 6 Resolució d’equacions amb MATLAB c La funció fsolve de MATLAB c permet resoldre equacions o sistemes d’equacions

Índex alfabèticMATLAB c©, 1, 6, 8, 10, 11, 14, 15, 20Simulink c©, 1, 5–7, 20, 22TolFun, 15fsolve, 15, 17optimset, 15

Backslash, 3, 4backslash, 4bode, 14bodemag, 14

camp vectorial, 10connexió-desconnexió, 5continues, 3Coulomb, 5

diagrama de Bode, 14diagrama de Nyquist, 14, 17, 20

eix d’abscisses, 12eix d’ordenades, 12

funció descriptiva, 16, 17, 20

histèresi, 4

insensibilitat, 5

linealitat estàtica, 16

MATLAB, 1, 6, 8, 10, 11, 14, 15, 20meshgrid, 10, 11

no diferenciables, 3Nyquist, 18nyquist, 14

Pla de fases, 8

quiver, 10

règim permanent, 16Relé, 4, 5relé, 6retrat de fases, 8, 9

Saturació, 3, 4Simulink, 1, 5–7, 20, 22

tot-res, 5

variables d’estat, 8

Zona morta, 4, 5

23