Está en la página 1de 23

Universidad Tecnolgica De Panam

Facultad De Ingeniera Electromecnica

Curso:
Laboratorio De Control I

Lab #1
Funciones de Transferencia, Polos, y Ceros

Profesor:
Ing. Jorge Hernndez, Ph.D.

Estudiantes:
Jean Duh 8-868-52
Jos Chang Leung 8-848-2398
Mx Pinzn

Fecha: 7/4/2015
Asignacin #1
1. Encuentre la expansin en fracciones parciales de las siguientes
funciones:

>> p1=[1 0] >> den=conv(den0,p3)

p1 = den =

1 0 1 7 10 0

>> p2=[1 2] >> num=[1]

p2 = num =

1 2 1

>> p3=[1 5]
>> [R,P,K]=residue(num,den)
p3 =
R=
1 5
0.0667

-0.1667
>> den0=conv(p1,p2)
0.1000
den0 =
P=
1 2 0
-5

-2

K=

[]
>> p1b=[1 0] >> numb=[1]

p1b = numb =

1 0 1

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

>> p2b=[1 2 10] R=

p2b = -0.0500 + 0.0167i

1 2 10 -0.0500 - 0.0167i

0.1000

>> denb=conv(p1b,p2b) P=

denb = -1.0000 + 3.0000i

1 2 10 0 -1.0000 - 3.0000i

K=

[]
>> p1c=[1 0] >> numc=[1 1]

p1c = numc =

1 0 1 1

>> p2c=[1 2]

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

1 2 R=

-0.1500 + 0.2000i

>> p3c=[1 6 10] -0.1500 - 0.2000i

p3c = 0.2500

1 6 10 0.0500

P=

>> den0c=conv(p1c,p2c) -3.0000 + 1.0000i

den0c = -3.0000 - 1.0000i

1 2 0 -2.0000

>> denc=conv(den0c,p3c) K=

denc = []

1 8 22 20 0
>> numd=[1 1] >> [R,P,K]=residue(numd,dend)

numd = R=

1 1 -0.0625 + 0.1875i

-0.0625 - 0.1875i

>> p1d=[1 2 2] 0.0625 - 0.0625i

p1d = 0.0625 + 0.0625i

1 2 2

P=

>> p2d=[1 6 10] -3.0000 + 1.0000i

p2d = -3.0000 - 1.0000i

1 6 10 -1.0000 + 1.0000i

-1.0000 - 1.0000i

>> dend=conv(p1d,p2d)

dend = K=

[]

1 8 24 32 20
2. Factorice los siguientes polinomios. Note que siempre que hay una
potencia del polinomio con signo negativo o que sea cero, al menos
una raz tiene parte real positiva o cero.

>>
>> polb=[1 3 28 226 600 400]
>>pola=[1 13 33 30]

pola = polb =

1 13 33 30 1 3 28 226 600 400

>> rb=roots(polb)
>> ra=roots(pola)

ra = rb =

2.0000 + 6.0000i

-10.0000 2.0000 - 6.0000i

-3.0000 + 1.0000i
-1.5000 + 0.8660i

-1.5000 - 0.8660i -3.0000 - 1.0000i

-1.0000

>>polc = >> pold=[2 0 0 25 4]

1 2 0 3 6 pold =

2 0 0 25 4

>> rc=roots(polc)

rc = >> rd= roots(pold)

0.7211 + 1.2490i rd =

0.7211 - 1.2490i 1.2124 + 2.0118i

-2.0000 1.2124 - 2.0118i

-1.4422 -2.2648

-0.1601
3. Construya la funcin de transferencia en forma polinmica, dados
los siguientes datos.

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

ka = num3a =

7 0 7.0000 -17.5000

den3a =

>> za=[2.5] 1.0000 -1.9070 0.7674

za =

2.5000

>> pa=[1.33 0.577]

pa =

1.3300 0.5770

>> kb=1 -3.0000 + 4.5826i

kb = -3.0000 - 4.5826i

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

>> zb=[-0.21 0] pb =

zb = 1.0000 -3.0000 + 4.5820i

-0.2100 0 -3.0000 - 4.5820i

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

>> pol3b=[1 6 30] num3b =

pol3b = 0 1.0000 0.2100 0

1 6 30 den3b =

>> r3b=roots(pol3b) 1.0000 5.0000 23.9947 -29.9947

r3b =
>> kc = 1 >> pc = [0.42 0.80 0.99]

kc = pc =

1 0.4200 0.8000 0.9900

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

zc = numca =

0.8800 0.1000 0 1.0000 -0.9800 0.0880

denca =

1.0000 -2.2100 1.5438 -0.3326

>> pd = [4 -6 -4 -1]
>> kd = 1 pd =
kd = 4 -6 -4 -1
1
>> [numda,denda]=zp2tf(zd',pd',kd')

>> zd =[1 3 5] numda =


zd = 0 1 -9 23 -15
1 3 5 denda =
1 7 -10 -112 -9
>> ke = 1 >> pe= [2 0.40]
ke = pe =
1 2.0000 0.4000

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


ze = num4a =
[] 0 0 1
den4a =
1.00 -2.4000 0.80

4. Hallar la representacin en cero-polo de las siguientes funciones de


transferencia.

>> n1 = [4 17 525] ---------------------------


n1 = s^3 + 72 s^2 + 295 s + 1600
4 17 525 >> [z,p,k] = tf2zp(n1,d1)
z=
>> d1 = [1 72 295 1600] -2.1250 +11.2576i
d1 = -2.1250 -11.2576i
1 72 295 1600 p=
-68.0082 + 0.0000i
>> printsys (n1,d1) -1.9959 + 4.4207i
num/den = -1.9959 - 4.4207
k=
4 s^2 + 17 s + 525 4
>> n2 = [4 7]
n2 = >> [z,p,k]=tf2zp(n2,d2)
4 7 z=
-1.7500
>> d2 = [91 318 664] p=
d2 = -1.7473 + 2.0601i
91 318 664 -1.7473 - 2.0601i
k=
>> printsys(n2,d2) 0.0440
num/den =
4s+7
--------------------
91 s^2 + 318 s + 664
Asignacin #2
>> num = [25 10 1] >> [a,b,c,d] = tf2ss(num,den)
num = a=
25 10 1 -0.0001 -0.0100
1.0000 0
>> den = [250000 25 2510] b=
den = 1
250000 25 2510 0
c=
1.0e-04 *
0.3999 0.0300
d=
1.0000e-04
>> a=[0 0 1; -2 -3 0; 0 2 -3]
a= >> [num,den]= ss2tf(a,b,c,d)
num =
0 0 1
-2 -3 0 0 0 0 4
0 2 -3
den =
>> b= [0;2;0]
b= 1.0000 6.0000 9.0000 4.0000

0
2 >> printsys(num,den,'s')
0 num/den =

>> c= [1 0 0] 4s
c= ---------------------
s^3 + 6 s^2 + 9 s + 4
1 0 0
>> [z,p,k] = ss2zp(a,b,c,d)
>> d=0 z=
d= 0

0 p=
-1.0000 + 0.0000i
-1.0000 - 0.0000i
-4.0000 + 0.0000i

k=
4
Solucin

3 () = 1 ()

2
2 () = (() 1 ()) ( )
+3
( + 3)2 () = 2() 21 ()

2 + 32 = 2 21

2
1 () = (2 () 3 ())
( + 1)
( + 1)1 () = 22 () 23 ()
1 + 1 = 22 23
3 + 3 = 22 23

Sabiendo esto y que la salida del sistema es x1, podemos escribir la representacin en espacio de
estados:
1 0 0 1 1 0
[ 2 ] = [2 3 0 ] [2 ] + [2]
3 0 2 3 3 0

1
= [1 ]
0 0 2]
[
3
Asignacin #3

>> n1=1; >> printsys(n3,d3,'s')

>> d1=[1 4 1]; num/den =

>> n2=[1 3]; 1

>> d2=[1 3 12]; -

>> n3=1; S

>> d3=[1 0];

>> printsys(n1,d1,'s') >> [nret1,dret1]=feedback(n2,d2,n3,d3,-1)

num/den = nret1 =

1 0 1 3 0

------------- dret1 =

s^2 + 4 s + 1 1 3 13 3

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

num/den = num/den =

s+3 s^2 + 3 s

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

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


>> [nser2,dser2]=series(n1,d1,n3,d3);
>>[nser1,dser1]=series(nret1,dret1,n1,d1); >> printsys(nser2,dser2,'s')
>> printsys(nser1,dser1,'s') num/den =
num/den = 1
s^2 + 3 s ----------------
---------------------------------------- s^3 + 4 s^2 + s
s^5 + 7 s^4 + 26 s^3 + 58 s^2 + 25 s + 3

>>[ntrans2,dtrans2]=feedback(nret1,dret1,n
>>[ntrans1,dtrans1]=feedback(nser1,dser1,n ser2,dser2,+1);
3,d3,-1); >> printsys(ntrans2,dtrans2)
>> printsys(ntrans1,dtrans1,'s') num/den =
num/den = s^5 + 7 s^4 + 13 s^3 + 3 s^2
s^3 + 3 s^2 --------------------------------------
-------------------------------------------- s^6 + 7 s^5 + 26 s^4 + 58 s^3 + 24 s^2
s^6 + 7 s^5 + 26 s^4 + 58 s^3 + 26 s^2 + 6 s
A.)

>> n1=5.5

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

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

num/den =

>> d1=1; 400

>> n2=100; -------------------

>> d2=[1 50]; s^3 + 51 s^2 + 50 s

>> printsys(n2,d2,'s') >> n5=400;

num/den = >> d5=[1 51 450 0];

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

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

s + 50 num/den =

2200

>> n3=4; --------------------

>> d3=[1 1 0]; s^3 + 51 s^2 + 450 s

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

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

4 >> printsys(ntrans1,dtrans1)

-------- num/den =

s^2 + s 400

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

>> nH=[1 0]; s^3 + 51 s^2 + 450 s + 400

>> dH=1;
Ahora buscamos las races de los polinomios encontrados:

>> p1=[1 51 50 2200 400]; >> p4=[1 101 2600 4700 110400];

>> r1=roots(p1) >> r4=roots(p4)

r1 = r4 =

-50.8643 + 0.0000i -50.6184 + 0.0000i

0.0234 + 6.5655i -50.2550 + 0.0000i

0.0234 - 6.5655i -0.0633 + 6.5875i

-0.1824 + 0.0000i -0.0633 - 6.5875i

>> p2=[1 51.1 75.5 2225 700]; >> p5=[1 551 25550 27200 1100400];

>> r2=roots(p2) >> r5=roots(p5)

r2 = r5 =

-50.4721 + 0.0000i 1.0e+02 *

-0.1553 + 6.6096i -5.0000 + 0.0000i

-0.1553 - 6.6096i -0.5087 + 0.0000i

-0.3173 + 0.0000i -0.0007 + 0.0658i

>> p3=[1 56 305 2450 11400]; -0.0007 - 0.0658i

>> r3=roots(p3)

r3 = >> p6=[1 51 450 400];

-50.8640 + 0.0000i >> r6=roots(p6)

-0.0045 + 6.6117i r6 =

-0.0045 - 6.6117i -40.0000

-5.1270 + 0.0000i -10.0000

-1.0000
B.)
>> n1=5.5; >> printsys(ntrans1,dtrans1)

>> d1=1; num/den =

>> n2=100; 2200 s

>> d2=[1 50]; ------------------------------------

>> n3=4; s^4 + 51 s^3 + 50 s^2 + 2200 s + 400

>> d3=[1 1 0];

>> nH=1; >> dH=[1 0.5];

>> dH=[1 0]; >>[nret1,dret1]=feedback(nser1,dser1,nH,d


H,.1);
>> [nser1,dser1]=series(n2,d2,n3,d3);
>> [nser2,dser2]=series(nret1,dret1,n1,d1);
>> printsys(nser1,dser1)
>> [trans2,dtrans2]=cloop(nser2,dser2,-1);
num/den =
>> printsys(trans2,dtrans2)
400
num/den =
-------------------
2200 s + 1100
s^3 + 51 s^2 + 50 s
----------------------------------------

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


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

>> printsys(nret1,dret1) >> dH=[1 5];

num/den = >>[nret1,dret1]=feedback(nser1,dser1,nH,d
H,-1);
400 s
>> [nser2,dser2]=series(nret1,dret1,n1,d1);
---------------------------
>> [ntrans3,dtrans3]=cloop(nser2,dser2,-1);
s^4 + 51 s^3 + 50 s^2 + 400
>> printsys(ntrans3,dtrans3)

num/den =
>> [nser2,dser2]=series(nret1,dret1,n1,d1);
2200 s + 11000
>> [ntrans1,dtrans1]=cloop(nser2,dser2,-1);
---------------------------------------

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 races de los polinomios encontrados:

>> p1=[1 51 50 2200 400]; >> p2=[1 51.1 75.5 2225 700];

>> r1=roots(p1) >> r2=roots(p2)

r1 = r2 =

-50.8643 + 0.0000i -50.4721 + 0.0000i

0.0234 + 6.5655i -0.1553 + 6.6096i

0.0234 - 6.5655i -0.1553 - 6.6096i

-0.1824 + 0.0000i -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; >> d3=1;

>> d1=0.8; >> n4=10;

>> printsys(n1,d1) >> d4=[1 0 0];

num/den = >> printsys(n4,d4,'s')

1 num/den =

--- 10

0.8 ---

s^2

>> n2=1;

>> d2=[1 0]; >> n5=10;

>> printsys(n2,d2,'s') >> d5=1;

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

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

- num/den =

S s

---------

>> n3=2; 0.8 s + 1


>>[nser1,dser1]=series(nret1,dret1,n3,d3); >> [nser3,dser3]=series(npar1,dpar1,n4,d4);

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

num/den = >> printsys(nret3,dret3)

2s num/den =

--------- 16 s^2 + 48 s + 10

0.8 s + 1 ---------------------------------------

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

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

>>[nret2,dret2]=feedback(nser2,dser2,n3,d3 >>
,-1); [ntrans,dtrans]=feedback(nret3,dret3,n5,d5,
-1);
>>[npar1,dpar1]=parallel(nser1,dser1,nret2,
dret2); >> printsys(ntrans,dtrans)

>> printsys(npar1,dpar1) num/den =

num/den = 16 s^2 + 48 s + 10

1.6 s^2 + 4.8 s + 1 ------------------------------------------

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

0.64 s^2 + 2.4 s + 2

También podría gustarte