Lab#1Entregar.pdf
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
>> 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