Lab#1Entregar.pdf

23
Universidad Tecnológica De Panamá Facultad De Ingeniería Electromecánica Curso: Laboratorio De Control I Lab #1 “Funciones de Transferencia, Polos, y Ceros” Profesor: Ing. Jorge Hernández, Ph.D. Estudiantes: Jean Duhé 8-868-52 José Chang Leung 8-848-2398 Máx Pinzón Fecha: 7/4/2015

Transcript of Lab#1Entregar.pdf

Universidad Tecnológica De Panamá

Facultad De Ingeniería Electromecánica

Curso:

Laboratorio De Control I

Lab #1

“Funciones de Transferencia, Polos, y Ceros”

Profesor:

Ing. Jorge Hernández, Ph.D.

Estudiantes:

Jean Duhé 8-868-52

José Chang Leung 8-848-2398

Máx Pinzón

Fecha: 7/4/2015

Asignación #1

1. Encuentre la expansión en fracciones parciales de las siguientes

funciones:

>> p1=[1 0]

p1 =

1 0

>> p2=[1 2]

p2 =

1 2

>> p3=[1 5]

p3 =

1 5

>> den0=conv(p1,p2)

den0 =

1 2 0

>> den=conv(den0,p3)

den =

1 7 10 0

>> num=[1]

num =

1

>> [R,P,K]=residue(num,den)

R =

0.0667

-0.1667

0.1000

P =

-5

-2

0

K =

[]

>> p1b=[1 0]

p1b =

1 0

>> p2b=[1 2 10]

p2b =

1 2 10

>> denb=conv(p1b,p2b)

denb =

1 2 10 0

>> numb=[1]

numb =

1

>> [R,P,K]=residue(numb,denb)

R =

-0.0500 + 0.0167i

-0.0500 - 0.0167i

0.1000

P =

-1.0000 + 3.0000i

-1.0000 - 3.0000i

0

K =

[]

>> p1c=[1 0]

p1c =

1 0

>> p2c=[1 2]

p2c =

1 2

>> p3c=[1 6 10]

p3c =

1 6 10

>> den0c=conv(p1c,p2c)

den0c =

1 2 0

>> denc=conv(den0c,p3c)

denc =

1 8 22 20 0

>> numc=[1 1]

numc =

1 1

>> [R,P,K]=residue(numc,denc)

R =

-0.1500 + 0.2000i

-0.1500 - 0.2000i

0.2500

0.0500

P =

-3.0000 + 1.0000i

-3.0000 - 1.0000i

-2.0000

0

K =

[]

>> numd=[1 1]

numd =

1 1

>> p1d=[1 2 2]

p1d =

1 2 2

>> p2d=[1 6 10]

p2d =

1 6 10

>> dend=conv(p1d,p2d)

dend =

1 8 24 32 20

>> [R,P,K]=residue(numd,dend)

R =

-0.0625 + 0.1875i

-0.0625 - 0.1875i

0.0625 - 0.0625i

0.0625 + 0.0625i

P =

-3.0000 + 1.0000i

-3.0000 - 1.0000i

-1.0000 + 1.0000i

-1.0000 - 1.0000i

K =

[]

2. Factorice los siguientes polinomios. Note que siempre que hay una

potencia del polinomio con signo negativo o que sea cero, al menos

una raíz tiene parte real positiva o cero.

>>

>>pola=[1 13 33 30]

pola =

1 13 33 30

>> ra=roots(pola)

ra =

-10.0000

-1.5000 + 0.8660i

-1.5000 - 0.8660i

>> polb=[1 3 28 226 600 400]

polb =

1 3 28 226 600 400

>> rb=roots(polb)

rb =

2.0000 + 6.0000i

2.0000 - 6.0000i

-3.0000 + 1.0000i

-3.0000 - 1.0000i

-1.0000

>>polc =

1 2 0 3 6

>> rc=roots(polc)

rc =

0.7211 + 1.2490i

0.7211 - 1.2490i

-2.0000

-1.4422

>> pold=[2 0 0 25 4]

pold =

2 0 0 25 4

>> rd= roots(pold)

rd =

1.2124 + 2.0118i

1.2124 - 2.0118i

-2.2648

-0.1601

3. Construya la función de transferencia en forma polinómica, dados

los siguientes datos.

>> ka=7

ka =

7

>> za=[2.5]

za =

2.5000

>> pa=[1.33 0.577]

pa =

1.3300 0.5770

>> [num3a,den3a]=zp2tf(za,pa,ka)

num3a =

0 7.0000 -17.5000

den3a =

1.0000 -1.9070 0.7674

>> kb=1

kb =

1

>> zb=[-0.21 0]

zb =

-0.2100 0

>> pol3b=[1 6 30]

pol3b =

1 6 30

>> r3b=roots(pol3b)

r3b =

-3.0000 + 4.5826i

-3.0000 - 4.5826i

>> pb=[1 -3+4.582i -3-4.582i]

pb =

1.0000 -3.0000 + 4.5820i

-3.0000 - 4.5820i

>> [num3b,den3b]=zp2tf(zb',pb',kb)

num3b =

0 1.0000 0.2100 0

den3b =

1.0000 5.0000 23.9947 -29.9947

>> kc = 1

kc =

1

>> zc= [0.88 0.10]

zc =

0.8800 0.1000

>> pc = [0.42 0.80 0.99]

pc =

0.4200 0.8000 0.9900

>> [numca,denca]=zp2tf(zc',pc',kc')

numca =

0 1.0000 -0.9800 0.0880

denca =

1.0000 -2.2100 1.5438 -0.3326

>> kd = 1

kd =

1

>> zd =[1 3 5]

zd =

1 3 5

>> pd = [4 -6 -4 -1]

pd =

4 -6 -4 -1

>> [numda,denda]=zp2tf(zd',pd',kd')

numda =

0 1 -9 23 -15

denda =

1 7 -10 -112 -9

>> ke = 1

ke =

1

>> ze =[]

ze =

[]

>> pe= [2 0.40]

pe =

2.0000 0.4000

>> [num4a,den4a]=zp2tf(ze,pe,ke)

num4a =

0 0 1

den4a =

1.00 -2.4000 0.80

4. Hallar la representación en cero-polo de las siguientes funciones de

transferencia.

>> n1 = [4 17 525]

n1 =

4 17 525

>> d1 = [1 72 295 1600]

d1 =

1 72 295 1600

>> printsys (n1,d1)

num/den =

4 s^2 + 17 s + 525

---------------------------

s^3 + 72 s^2 + 295 s + 1600

>> [z,p,k] = tf2zp(n1,d1)

z =

-2.1250 +11.2576i

-2.1250 -11.2576i

p =

-68.0082 + 0.0000i

-1.9959 + 4.4207i

-1.9959 - 4.4207

k =

4

>> n2 = [4 7]

n2 =

4 7

>> d2 = [91 318 664]

d2 =

91 318 664

>> printsys(n2,d2)

num/den =

4 s + 7

--------------------

91 s^2 + 318 s + 664

>> [z,p,k]=tf2zp(n2,d2)

z =

-1.7500

p =

-1.7473 + 2.0601i

-1.7473 - 2.0601i

k =

0.0440

Asignación #2

>> num = [25 10 1]

num =

25 10 1

>> den = [250000 25 2510]

den =

250000 25 2510

>> [a,b,c,d] = tf2ss(num,den)

a =

-0.0001 -0.0100

1.0000 0

b =

1

0

c =

1.0e-04 *

0.3999 0.0300

d =

1.0000e-04

>> a=[0 0 1; -2 -3 0; 0 2 -3]

a =

0 0 1

-2 -3 0

0 2 -3

>> b= [0;2;0]

b =

0

2

0

>> c= [1 0 0]

c =

1 0 0

>> d=0

d =

0

>> [num,den]= ss2tf(a,b,c,d)

num =

0 0 0 4

den =

1.0000 6.0000 9.0000 4.0000

>> printsys(num,den,'s')

num/den =

4 s

---------------------

s^3 + 6 s^2 + 9 s + 4

>> [z,p,k] = ss2zp(a,b,c,d)

z =

0

p =

-1.0000 + 0.0000i

-1.0000 - 0.0000i

-4.0000 + 0.0000i

k =

4

Solución

𝑋3(𝑠) = 𝑠𝑋1(𝑠)

�̇�𝟏 = 𝒙𝟑

𝑋2(𝑠) = (𝑈(𝑠) − 𝑋1(𝑠)) ∗ (2

𝑠 + 3)

(𝑠 + 3)𝑋2(𝑠) = 2𝑈(𝑠) − 2𝑋1(𝑠)

�̇�2 + 3𝑥2 = 2𝑢 − 2𝑥1

�̇�𝟐 = 𝟐𝒖 − 𝟐𝒙𝟏 − 𝟑𝒙𝟐

𝑋1(𝑠) = (𝑋2(𝑠) − 𝑋3(𝑠)) ∗2

𝑠(𝑠 + 1)

𝑠(𝑠 + 1)𝑋1(𝑠) = 2𝑋2(𝑠) − 2𝑋3(𝑠)

�̈�1 + �̇�1 = 2𝑥2 − 2𝑥3

�̇�3 + 𝑥3 = 2𝑥2 − 2𝑥3

�̇�𝟑 = 𝟐𝒙𝟐 − 𝟑𝒙𝟑

Sabiendo esto y que la salida del sistema es x1, podemos escribir la representación en espacio de

estados:

[�̇�1

�̇�2

�̇�3

] = [0 0 1

−2 −3 00 2 −3

] [

𝑥1

𝑥2

𝑥3

] + [020

] 𝑢

𝑌 = [1 0 0] [

𝑥1

𝑥2

𝑥3

]

Asignación #3

>> n1=1;

>> d1=[1 4 1];

>> n2=[1 3];

>> d2=[1 3 12];

>> n3=1;

>> d3=[1 0];

>> printsys(n1,d1,'s')

num/den =

1

-------------

s^2 + 4 s + 1

>> printsys(n2,d2,'s')

num/den =

s + 3

--------------

s^2 + 3 s + 12

>> printsys(n3,d3,'s')

num/den =

1

-

S

>> [nret1,dret1]=feedback(n2,d2,n3,d3,-1)

nret1 =

0 1 3 0

dret1 =

1 3 13 3

>> printsys(nret1,dret1,'s')

num/den =

s^2 + 3 s

----------------------

s^3 + 3 s^2 + 13 s + 3

>>[nser1,dser1]=series(nret1,dret1,n1,d1);

>> printsys(nser1,dser1,'s')

num/den =

s^2 + 3 s

----------------------------------------

s^5 + 7 s^4 + 26 s^3 + 58 s^2 + 25 s + 3

>>[ntrans1,dtrans1]=feedback(nser1,dser1,n

3,d3,-1);

>> printsys(ntrans1,dtrans1,'s')

num/den =

s^3 + 3 s^2

--------------------------------------------

s^6 + 7 s^5 + 26 s^4 + 58 s^3 + 26 s^2 + 6 s

>> [nser2,dser2]=series(n1,d1,n3,d3);

>> printsys(nser2,dser2,'s')

num/den =

1

----------------

s^3 + 4 s^2 + s

>>[ntrans2,dtrans2]=feedback(nret1,dret1,n

ser2,dser2,+1);

>> printsys(ntrans2,dtrans2)

num/den =

s^5 + 7 s^4 + 13 s^3 + 3 s^2

--------------------------------------

s^6 + 7 s^5 + 26 s^4 + 58 s^3 + 24 s^2

A.)

>> n1=5.5

n1 =

5.5000

>> d1=1;

>> n2=100;

>> d2=[1 50];

>> printsys(n2,d2,'s')

num/den =

100

------

s + 50

>> n3=4;

>> d3=[1 1 0];

>> printsys(n3,d3,'s')

num/den =

4

--------

s^2 + s

>> nH=[1 0];

>> dH=1;

>> [nser1,dser1]=series(n2,d2,n3,d3);

>> printsys(nser1,dser1,'s')

num/den =

400

-------------------

s^3 + 51 s^2 + 50 s

>> n5=400;

>> d5=[1 51 450 0];

>> [nser2,dser2]=series(n1,d1,n5,d5);

>> printsys(nser2,dser2,'s')

num/den =

2200

--------------------

s^3 + 51 s^2 + 450 s

>> [ntrans1,dtrans1]=cloop(n5,d5,-1);

>> printsys(ntrans1,dtrans1)

num/den =

400

--------------------------

s^3 + 51 s^2 + 450 s + 400

Ahora buscamos las raíces de los polinomios encontrados:

>> p1=[1 51 50 2200 400];

>> r1=roots(p1)

r1 =

-50.8643 + 0.0000i

0.0234 + 6.5655i

0.0234 - 6.5655i

-0.1824 + 0.0000i

>> p2=[1 51.1 75.5 2225 700];

>> r2=roots(p2)

r2 =

-50.4721 + 0.0000i

-0.1553 + 6.6096i

-0.1553 - 6.6096i

-0.3173 + 0.0000i

>> p3=[1 56 305 2450 11400];

>> r3=roots(p3)

r3 =

-50.8640 + 0.0000i

-0.0045 + 6.6117i

-0.0045 - 6.6117i

-5.1270 + 0.0000i

>> p4=[1 101 2600 4700 110400];

>> r4=roots(p4)

r4 =

-50.6184 + 0.0000i

-50.2550 + 0.0000i

-0.0633 + 6.5875i

-0.0633 - 6.5875i

>> p5=[1 551 25550 27200 1100400];

>> r5=roots(p5)

r5 =

1.0e+02 *

-5.0000 + 0.0000i

-0.5087 + 0.0000i

-0.0007 + 0.0658i

-0.0007 - 0.0658i

>> p6=[1 51 450 400];

>> r6=roots(p6)

r6 =

-40.0000

-10.0000

-1.0000

B.)

>> n1=5.5;

>> d1=1;

>> n2=100;

>> d2=[1 50];

>> n3=4;

>> d3=[1 1 0];

>> nH=1;

>> dH=[1 0];

>> [nser1,dser1]=series(n2,d2,n3,d3);

>> printsys(nser1,dser1)

num/den =

400

-------------------

s^3 + 51 s^2 + 50 s

>>[nret1,dret1]=feedback(nser1,dser1,nH,d

H,-1);

>> printsys(nret1,dret1)

num/den =

400 s

---------------------------

s^4 + 51 s^3 + 50 s^2 + 400

>> [nser2,dser2]=series(nret1,dret1,n1,d1);

>> [ntrans1,dtrans1]=cloop(nser2,dser2,-1);

>> printsys(ntrans1,dtrans1)

num/den =

2200 s

------------------------------------

s^4 + 51 s^3 + 50 s^2 + 2200 s + 400

>> dH=[1 0.5];

>>[nret1,dret1]=feedback(nser1,dser1,nH,d

H,.1);

>> [nser2,dser2]=series(nret1,dret1,n1,d1);

>> [trans2,dtrans2]=cloop(nser2,dser2,-1);

>> printsys(trans2,dtrans2)

num/den =

2200 s + 1100

----------------------------------------

s^4 + 51.5 s^3 + 75.5 s^2 + 2225 s + 700

>> dH=[1 5];

>>[nret1,dret1]=feedback(nser1,dser1,nH,d

H,-1);

>> [nser2,dser2]=series(nret1,dret1,n1,d1);

>> [ntrans3,dtrans3]=cloop(nser2,dser2,-1);

>> printsys(ntrans3,dtrans3)

num/den =

2200 s + 11000

---------------------------------------

s^4 + 56 s^3 + 305 s^2 + 2450 s + 11400

>> dH=[1 50];

>>[nret1,dret1]=feedback(nser1,dser1,nH,dH,-1);

>> [nser2,dser2]=series(nret1,dret1,n1,d1);

>> [ntrans4,dtrans4]=cloop(nser2,dser2,-1);

>> printsys(ntrans4,dtrans4)

num/den =

2200 s + 110000

------------------------------------------

s^4 + 101 s^3 + 2600 s^2 + 4700 s + 110400

>> dH=[1 500];

>>[nret1,dret1]=feedback(nser1,dser1,nH,dH,-1);

>> [nser2,dser2]=series(nret1,dret1,n1,d1);

>> [ntrans5,dtrans5]=cloop(nser2,dser2,-1);

>> printsys(ntrans5,dtrans5)

num/den =

2200 s + 1100000

---------------------------------------------

s^4 + 551 s^3 + 25550 s^2 + 27200 s + 1100400

Ahora buscamos las raíces de los polinomios encontrados:

>> p1=[1 51 50 2200 400];

>> r1=roots(p1)

r1 =

-50.8643 + 0.0000i

0.0234 + 6.5655i

0.0234 - 6.5655i

-0.1824 + 0.0000i

>> p2=[1 51.1 75.5 2225 700];

>> r2=roots(p2)

r2 =

-50.4721 + 0.0000i

-0.1553 + 6.6096i

-0.1553 - 6.6096i

-0.3173 + 0.0000i

>> p3=[1 56 305 2450 11400];

>> r3=roots(p3)

r3 =

-50.8640 + 0.0000i

-0.0045 + 6.6117i

-0.0045 - 6.6117i

-5.1270 + 0.0000i

>> p4=[1 101 2600 4700 110400];

>> r4=roots(p4)

r4 =

-50.6184 + 0.0000i

-50.2550 + 0.0000i

-0.0633 + 6.5875i

-0.0633 - 6.5875i

>> p5=[1 551 25550 27200 1100400];

>> r5=roots(p5)

r5 =

1.0e+02 *

-5.0000 + 0.0000i

-0.5087 + 0.0000i

-0.0007 + 0.0658i

-0.0007 - 0.0658i

>> n1=1;

>> d1=0.8;

>> printsys(n1,d1)

num/den =

1

---

0.8

>> n2=1;

>> d2=[1 0];

>> printsys(n2,d2,'s')

num/den =

1

-

S

>> n3=2;

>> d3=1;

>> n4=10;

>> d4=[1 0 0];

>> printsys(n4,d4,'s')

num/den =

10

---

s^2

>> n5=10;

>> d5=1;

>> [nret1,dret1]=feedback(n1,d1,n2,d2,-1);

>> printsys(nret1,dret1,'s')

num/den =

s

---------

0.8 s + 1

>>[nser1,dser1]=series(nret1,dret1,n3,d3);

>> printsys(nser1,dser1)

num/den =

2 s

---------

0.8 s + 1

>> [nser2,dser2]=series(n1,d1,n2,d2);

>>[nret2,dret2]=feedback(nser2,dser2,n3,d3

,-1);

>>[npar1,dpar1]=parallel(nser1,dser1,nret2,

dret2);

>> printsys(npar1,dpar1)

num/den =

1.6 s^2 + 4.8 s + 1

--------------------

0.64 s^2 + 2.4 s + 2

>> [nser3,dser3]=series(npar1,dpar1,n4,d4);

>> [nret3,dret3]=cloop(nser3,dser3,-1);

>> printsys(nret3,dret3)

num/den =

16 s^2 + 48 s + 10

---------------------------------------

0.64 s^4 + 2.4 s^3 + 18 s^2 + 48 s + 10

>>

[ntrans,dtrans]=feedback(nret3,dret3,n5,d5,

-1);

>> printsys(ntrans,dtrans)

num/den =

16 s^2 + 48 s + 10

------------------------------------------

0.64 s^4 + 2.4 s^3 + 178 s^2 + 528 s + 110