Está en la página 1de 28

Universidad Nacional de San Agustín

Escuela Profesional de Ingeniería Electrónica

Sistemas de Control Digital


Laboratorio 01

Comandos usados de control - Matlab

[ Grupo C ]
Alumnos:
Jhoel René Mamani Huanca

Docente:
Ing. William Mullisaca Atamari

Arequipa, Mayo del 2020


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Comandos usados de Control para Matlab


Laboratorio 01

1 Objetivos
Emplear MATLAB en la solución de problemas matemáticos que involucren a sistemas de control discreto.

2 Fundamento Teórico
Temas a desarrollar:
Comandos de Matlab más usados en sistemas de control digital.

3 Recomendaciones en seguridad
3.1 En condiciones de una emergencia Identique:
ˆ Vías de acceso y evacuación.
ˆ Equipos de respuesta a emergencias.
ˆ Señalización de seguridad.

3.2 Complete el ATS (Anexo 1) y cumpla las condiciones obligatorias para el uso del ambiente

4 Equipos y materiales a utilizar:


Un ordenador de mesa.

Universidad Nacional de San Agustín- Arequipa 1


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5 Procedimiento
5.1 [1 ones()]
Vector formado por el número 1 como primer elemento, y una matriz de unos que en este caso ones() representa
una matriz de unos, de 1x1.

Ejemplo:
1 % LABORATORIO 01 =Sistemas de control Digital.
2 % Mamani Huanca Jhoel Rene.
3 clc; clear all
4 set(0,'defaulttextinterpreter','Latex');
5
6 % Ejercicio 01
7 ones();
8 ones(1);
9 [1 ones(1)];

ans =
1
ans =
1
ans =
11

5.2 [1 zeros()]
Vector formado por el número 1 como primer elemento, y una matriz de ceros que en este caso zeros() representa
una matriz de ceros de 1x1.

Ejemplo:
1 % Ejercicio 02
2 [1 zeros()];
3 [1 zeros(1)];
4 [1 zeros(1,3)];

ans =
10
ans =
10
ans =
1000

5.3 abs()
abs(X) es el valor absoluto del elemento de X. Cuando X es complejo, abs(X) es el modulo o magnitud del
número complejo X.

Ejemplos:
1 % Ejercicio 03
2 =
x = 8;
3 abs(x);
4 x1 = 2+2i;
5 abs(x1);

ans =
8
ans =
2.8284

5.4 allmargin()
Proporciona información detallada acerca de la ganancia, fase y márgenes de retardo y las frecuencias de corte
correspondientes del modelo de bucle abierto SISO SYS.

Ejemplo: Obtendremos todos los márgenes de:


40K
G(s)H(s) =
s(s + 4)(s + 10)
Solución:

Universidad Nacional de San Agustín- Arequipa 2


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

1 % Ejercicio 04
2 num=[40];
3 den=conv(conv([1 0],[1 4]),[1 10]);
4 G=tf(num,den);
5 allmargin(G);

ans =
struct with elds:
GainMargin: 14.0000
GMFrequency: 6.3246
PhaseMargin: 70.8774
PMFrequency: 0.9675
DelayMargin: 1.2787
DMFrequency: 0.9675
Stable: 1

5.5 angle()
Retorno el ángulo de fase en radianes de cada elemento de la matriz h con elementos complejos.
Ejemplo:
1 % Ejercicio 05
2 z=2+3i; w=5+7i;
3 angle(z); % Devuelve 0.9828
4 angle([z,w]); % Devuelve 0.9828 0.9505

ans =
0.9828
ans =
0.9828 0.9505

5.6 bilinear()
La transformación bilineal es un mapeo matemático de variables. Transforma ltros analógicos, diseñados uti-
lizando las técnicas de diseño de ltros clásicos, en sus equivalentes discretos
Ejemplo:
1 % Ejercicio 06
2 Fs = 0.5; % frecuencia de muestreo
3 [z,p,k] = ellipap(6,5,90);
4 [num,den] = zp2tf(z,p,k);
5 [numd,dend] = bilinear(num,den,Fs);
6 fvtool(numd,dend); % Visualizar el filtro

-20

-40

-60

-80

-100

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9


Normalized Frequency (\times\pi rad/sample)

Figura 1: Filtro Visualización

Universidad Nacional de San Agustín- Arequipa 3


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.7 c2d()
Conversión de sistema continuo a tiempo discreto.
Sintaxis:

SY SD = C2D(SY SC, T S, M T ODO) calcula un SYSD modelo en tiempo discreto con TS tiempo de muestreo
que se aproxima al modelo SYSC de tiempo continuo.

Ejemplo:
1
G(s) =
s3 + 10s2 + 27s + 18
1 % Ejercicio 07
2 num = 1;
3 den = [1 10 27 18];
4 G = tf(1,[1 10 27 18]);
5 % para convertirlo a uno discreto con tiempo de muestreo 0.01seg
6 Gd=c2d(G,0.01);
7 Gc = d2c(Gd,'zho'); %utilizando el comando d2c

G=
1

s3 + 10s2 + 27s + 18
Continuous-time transfer function.

Gd =
1,626e − 07z 2 + 6,342e − 07z + 1,546e − 07

z 3 − 2,902z 2 + 2,807z − 0,9048
Sample time: 0.01 seconds Discrete-time transfer function.

Gc =
1

s3 + 10s2 + 27s + 18
Continuous-time transfer function.

5.8 c2dm()
Conversión de sistema continuo a tiempo discreto por varios métodos.
Ya se realizó en el ejercicio anterior 07.

5.9 cloop()
Comando cloop para obtener la función de transferencia resultante de un sistema con retroalimentación unitaria.
1 % Ejercicio 09
2 numc=2.5*[1 0.5]; denc=[1 0]; % Gc
3 nump=[3]; denp=conv([1 2],[1 3]); %Gp
4 %Funcion Transferencia bloques serie
5 [nums,dens] = series(numc,denc,nump,denp);
6 printsys(nums,dens)

num/den =
7,5s + 3,75

s3 + 5s2 + 6s

5.10 conv()
Convolución y multiplicación de polinomios.
1 % Ejercicio 10
2 p = [1 8 2];
3 q = [1 3];
4 n = conv(p,q)

n=
1 11 26 6

Universidad Nacional de San Agustín- Arequipa 4


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.11 d2c()
Cadena que especica un método de conversión de discreta a continuo tiempo:

'zoh' - de orden cero mantenga en las entradas. Asume las entradas de control son a trozos constante durante
el período de muestreo.
1 % Ejercicio 11
2 num = 1;
3 den = [1 4 9 13];
4 Gt = tf(num,den);
5 Gt=c2d(Gt,0.01);

Gt =
1,65e − 07z 2 + 6,534e − 07z + 1,617e − 07
-
z 3 − 2,96z 2 + 2,921z − 0,9608
Sample time: 0.01 seconds Discrete-time transfer function.

5.12 d2cm()
D2cm Conversión de sistemas LTI discretos a tiempo continúo. [Ac, Bc, Cc, Dc] = D2cm(A, B, C, D, T, ”mtodo”)
convierte el sistema de estadoespacio- tiempo discreto de tiempo continúo usando "método":
1. 'zoh' Convertir en tiempo continúo suponiendo una retención de orden cero en las entradas.
2. 'tustin' Convertir en tiempo continúo usando la aproximación bilineal (Tustin) en el derivado.
3. 'prewarp' Convertir en tiempo continúo usando la aproximación bilineal (Tustin) con prewarping frecuen-
cia. Especique la frecuencia crítica con un argumento adicional, es decir D2cm (A, B, C, D, T, 'prewarp',
aseo)
4. 'matched' Convertir el sistema SISO a tiempo continúo utilizando el método de polos y ceros emparejado.
[NUMC, denc] = D2cm (NUM, DEN, Ts, método) convierte la función de transferencia polinomio de tiempo
discreto G (z) = NUM (z) / DEN (z) a tiempo continuo, G (s) = NUMC (s) / denc (s), el uso de "método".

Nota: 'foh' ya no está disponible.


1 % Ejercicio 12
2 Gtt = d2c(Gt,'zho'); %utilizando el comando d2c
3 [nume, deno] = d2cm(num,den, 2, 'zho') % utilizando d2cm

Gtt =
1
-
s3 + 4s2 + 9s + 13
Continuous-time transfer function.

nume =
0 -0.0743 0.1661 -0.2542 0.1072
deno =
1.0000 -1.7374 4.5091 -3.1975 2.8933

5.13 dcgain()
Permite obtener la ganancia estática de una función de transferencia.

Sintaxis:
K = dcgain(SY S) calcula el estado de equilibrio (DC o baja frecuencia) de ganancia del sistema dinámico de
SYS.

Ejemplo: Deniendo la siguiente función:


nump 3
Gp (s) = =
denp (s + 2)(s + 3)
1 % Ejercicio 13
2 num=[3]; den=conv([1 2],[1 3]);
3 G=tf(num,den);
4 dcgain (G);

ans =
0.5000

Universidad Nacional de San Agustín- Arequipa 5


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.14 deconv()
Deconvolución y división polinómica.

[Q, R] = deconv(B, A) deconvolves vector A de vector B. El resultado se devuelve en el vector Q y el resto en


el vector R tal que:
B = conv(A, Q) + R
Si A y B son vectores de coecientes polinómicos, deconvolución es equivalente a la división polinómica. El
resultado de dividir B por A es Q y el resto cociente R.

Probemos con u, v, q y r denidos en la muestra:


1 % Ejercicio 14
2 u = [1 2 3 4];
3 v = [10 20 30];
4 c = conv(u,v);
5 [q,r] = deconv(c,u);

c=
10 40 100 160 170 120
q=
10 20 30
r=
000000

5.15 dimpulse()
Respuesta al impulso de sistemas lineales de tiempo discreto.

dimpulse (A, B, C, D, IU) representa la respuesta del sistema discreto:


x[n + 1] = Ax[n] + Bu[n]

y[n] = Cx[n] + Du[n]


A una muestra de unidad se aplica a la IU entradas. El número de puntos se determina automáticamente.

dimpulse(N U M, DEN )
traza la respuesta al impulso de la función de transferencia polinomio G(z) = N U M (z)/DEN (z) donde NUM
y DEN contienen los coecientes del polinomio en potencias descendentes de z.
1 % Ejercicio 15
2 =
num=conv([1 1],[1 1]);
3 =
den=[1 1.1314 0.64];
4 h=dimpulse(num,den);
5 =
stem(0:length(h) 1,h) % para generar los h

Universidad Nacional de San Agustín- Arequipa 6


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

1.5

0.5

-0.5

-1

-1.5
0 5 10 15 20 25 30 35

Figura 2: Dimpulse plot

5.16 dlinmod()
El dlinmod función puede linealizar discreta, multifrecuencia y sistemas continuos y discretos híbridos en cual-
quier tiempo de muestreo dado. Utilice la misma sintaxis de llamada para dlinmod como para linmod, pero
insertar el tiempo de la muestra en la que realizar la linealización como segundo argumento. Por ejemplo,
[Ad, Bd, Cd, Dd] = dlinmod(0 sys0 , T s, x, u)

produce un modelo de espacio de estado discreto en el tiempo de muestreo Ts y el punto de trabajo propuesta
por el vector de estado x y vector de entrada u. Para obtener una aproximación modelo continuo de un sistema
discreto, establezca Ts a 0.

5.17 dlsim()
Simulación de sistemas lineales de tiempo discreto dlsim (NUM, DEN, U) representa el tiempo de respuesta de
la función de transferencia.
Descripción G (z) = NUM (z) / DEN (z) donde NUM y DEN contienen los coecientes del polinomio en
potencias descendentes de z. Si LONGITUD (NUM) = LONGITUD (DEN) a continuación dlsim (NUM, DEN,
T) es equivalente a FILTRO (NUM, DEN, U). Cuando se invoca con los argumentos de la mano izquierda,
[Y, X] = dlsim(A, B, C, D, U )

[Y, X] = dlsim(N U M, DEN, U )


Devuelve la salida y el estado historial vez en las matrices Y y X.
Sin trama se dibuja en la pantalla. Y tiene tantas columnas como salidas y longitud (U) las. X tiene tantas
columnas como estados y longitud (U) las.
1 % Ejercicio 17
2 % Consideraando mutivariables de sistema 4to orden a,b,c,d
3 % Con 2 entradas y 2 salidas
4 = = = =
a = [0.603 0.603 0 0; 0.603 0.603 0 0;0 0 0.603 0.603;0 0 0.603 0.603];
5 =
b = [1.1650, 0.6965;0.6268 1.6961;0.0751,0.0591;0.3516 1.7971];
6 = = = =
c = [0.2641, 1.4462,1.2460,0.5774;0.8717, 0.7012, 0.6390, 0.3600];
7 = = =
d = [ 0.1356, 1.2704; 1.3493,0.9846];
8 % Tomamos white noise sequence de 1000 points como entrada u.
9 N = 1000;
10 u = randn(N,2);
11 y = dlsim(a,b,c,d,u)

Universidad Nacional de San Agustín- Arequipa 7


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.18 dlsim()
Igual al comando 7

5.19 dlyap()
Resolver ecuaciones de Lyapunov discretos.
1 % Ejercicio 19
2 %Ejemplificacion
3 n = 15;
4 =
A = diag(ones(1,n 1),1);
5 Q = eye(n);
6 p = poly(0.1 * ones(1,n));
7 = =
A(end,:) = p(end: 1:2);
8 P = dlyap(A, Q); % uso del dlyap para resolver la ecuacion
9 accuracy = norm(A * P * A' =P + Q);

5.20 eig()
Calcula los autovalores de una matriz, valores propios y vectores propios de la matriz simbólica. lambda = eig(A)

. . .devuelve un vector simbólico que contiene los valores propios de la plaza simbólica de la matriz A.

Ejemplo:
1 % Ejercicio 20
2 A=[1 2;3 4];
3 [V D]=eig(A);

V=
-0.8246 -0.4160
0.5658 -0.9094

D=
-0.3723 0
0 5.3723

5.21 eval()
Evalúa una función en los valores de x.
Sintaxis:

eval (expresión) realiza la expresión, una cadena que contiene cualquier expresión MATLAB válida. Usted puede
construir la expresión mediante la concatenación de subcadenas y variables dentro de corchetes:
expression = [string1, int2str(var), string2, ...]
Ejemplo:
1 % Ejercicio 21
2 =
nombre='3*x.^2 5';
3 x=[ 1 2 4];
4 eval(nombre);

ans =
-2 7 43

5.22 expm()
Y = EXP M (X) calcula la matriz exponencial de X.

Ejemplo: - Comparar Exponenciales.


- Calcular y comparar la exponencial de A con la exponencial matricial de A.
1 % Ejercicio 22
2 A = [1 1 0; 0 0 2; 0 0 =1];
3 exp(A);

ans =
2.7183 2.7183 1.0000
1.0000 1.0000 7.3891
1.0000 1.0000 0.3679

Universidad Nacional de San Agustín- Arequipa 8


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.23 ezplot()
Graca una función f en el intervalo [a,b] adicionándole un título por defecto ezplot('f',[a,b])
1 % Ejercicio 23
2 = =
ezplot('4 abs(x)',[ 3,3]);

4-abs(x)

3.5

2.5

1.5

-3 -2 -1 0 1 2 3
x

Figura 3: Gráca en intérvalo -3 y 3.

5.24 zplot3()
3-D curva paramétrica plotter.
ezplot3(x, y, z)traza la curva espacial x = x(t), y = y(t), z = z(t) sobre el dominio predeterminado 0 < t < 2π .

ezplot3(x, y, z, [T min, T max])representa la curva x = x (t), y = y (t), y z = z (t) sobre el dominio tmin < t <
tmax.

Ejemplo:
- Trazar la curva paramétrica x = sen (t), y = cos (t), z = t en el dominio [0, 6π].
1 % Ejercicio 24
2 syms t;
3 ezplot3(sin(t), cos(t), t,[0,6*pi]);

Universidad Nacional de San Agustín- Arequipa 9


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

x = sin(t), y = cos(t), z = t

20

15

10
z

0
1
0.5 1
0 0.5
0
-0.5
-0.5
y -1 -1 x

Figura 4: Gráca 3 dimensiones.

5.25 feedback()
Código para el análisis de los sistemas de control, en donde se considera que ya se han denido G1(s), G2(s),
etcétera, y H(s).
Conexión de dos sistemas por realimentación no unitaria.

Sintaxis:
sys = f eedback(SY S1, SY S2) devuelve una sys modelo de objetos para la interconexión de retroalimentación
negativa del modelo de objetos SYS1 y SYS2.

Ejemplo:
1 % Ejercicio 25
2 % Definicion de Gs(s), Gp(s) y H(s).
3 numc = [1 2.5]; denc =[1 0]; %Gs
4 nump = [3]; denp = [1 1 20]; %Gp
5 numh = [10]; denh = [1 1]; % H
6 %serie
7 [nums,dens] = series(numc,denc,nump,denp);
8 printsys(nums,dens);
9
10 %Funcion de transferencia con realimentacion unitaria: num/den
11 % el signo negativo indica retroalimentacion negativa.
12 =
[num,den] = feedback(nums,dens,numh, 1); % uso de feedback
13 printsys(num,den);

num/den =
3s + 7,5
-
s + s2 + 20s
3

Y con usando el feedback retroalimentación


num/den =
−3s − 7,5
-
−1s − 1s2 + 10s + 75
3

5.26 lter()
Filtro digital 1-D
y = f ilter(b, a, x) ltra los datos de entrada, x, utilizando una función de transferencia racional denido por el
numerador y denominador coecientes b y A, respectivamente.

Universidad Nacional de San Agustín- Arequipa 10


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Si x es un vector, entonces el ltro devuelve los datos ltrados como un vector del mismo tamaño que x.
Si x es una matriz, luego ltrar actos a lo largo de la primera dimensión y devuelve los datos ltrados para cada
columna.
Si x es una matriz multidimensional, luego ltrar actos a lo largo de la primera dimensión de matriz cuyo tamaño
no es igual 1.
y = f ilter(b, a, x, zi) utiliza las condiciones iniciales, zi, por los retrasos de ltro. La longitud de zi debe ser
igual a max (longitud (a), la longitud (b)) - 1.
y = f ilter(b, a, x, zi, dim) actúa junto tenue dimensión. Por ejemplo, si x es una matriz, a continuación,
f iltrado(b, a, x, zi, 2) devuelve los datos ltrados para cada la.

Ejemplo:
- Obtenga la transformada Z inversa de:
1 + z ( − 1) + z ( − 2)
X(z) =
1 − z ( − 1)

z2 + z + 1
X(z) =
z2 − z
1 % Ejercicio 26
2 =
num = [1 1 1];
3 =
den = [1 1 0];
4 x = [1 zeros(1,40)];
5 y = filter(num,den,x);
6 plot(y,'o')
7 grid
8 title('Respuesta a la entrada de kronecker')
9 xlabel('k')
10 ylabel('y(k)')

Respuesta a la entrada de kronecker


2

1.9

1.8

1.7

1.6
y(k)

1.5

1.4

1.3

1.2

1.1

1
0 5 10 15 20 25 30 35 40 45
k

Figura 5: Gráca en lter

5.27 ltic()
Las condiciones iniciales de forma directa aplicación del ltro II transpuesta z = ltic(b, a, y, x) encuentra las
condiciones iniciales, z, por los retrasos en la aplicación del ltro en forma directa II transpuesta dado resul-
tados pasados y y entradas x. Los vectores b y A representan los coecientes de numerador y denominador,
respectivamente, de función de transferencia del ltro.

Universidad Nacional de San Agustín- Arequipa 11


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Los vectores x e y contienen la entrada o salida más reciente en primer lugar, y la entrada más antigua o la
salida anterior.
donde n es la longitud (b) -1 (el orden numerador) y m es la longitud (a) -1 (el orden denominador). Si la
longitud (x) es menor que n, almohadillas ltic it con ceros a longitud n; si la longitud (y) es menor que m,
almohadillas ltic it con ceros a la longitud m. Elementos de x más allá de x (n-1) y los elementos de y más allá
y (m-1) son innecesarios por lo ltic los ignora.

Z de salida es un vector columna de longitud igual a la mayor de n y m. z describe el estado de los retrasos
dadas entradas pasadas x y salidas anteriores y. z = f iltic(b, a, y) asume que la entrada x es 0 en el pasado.

El ltro de funciones (b, a, X, zi). por ejemplo: y (n) = - 0.5y (n-1) + x (n) x (n) = u (n) y (-1) = 1.

¾Cómo resolverá esto la función de ltro?


1 % Ejercicio 27
2 b = 1;
3 a = [1 0.5];
4 y = filter(b,a,ones(10,1),filtic(b,a,1));

y=
0.5000
0.7500
0.6250
0.6875
0.6563
0.6719
0.6641
0.6680
0.6660
0.6670

5.28 impulse()
Calcula la respuesta impulso unitario de un modelo de sistema dinámico. Para los sistemas dinámicos en tiempo
continuo, la respuesta de impulso es la respuesta a una entrada de Dirac δ(t). Para los sistemas de tiempo
discreto, la respuesta de impulso es la respuesta a un impulso unidad de área de la longitud y la altura Ts 1
/ Ts, donde Ts es el tiempo de muestreo del sistema. (Este pulso se acerca δ(t) como Ts se aproxima a cero.)
Para los modelos de espacio de estado, el impulso asume valores iniciales de estado son cero.

Impulse (sys) traza la respuesta al impulso del modelo de sistema dinámico sys. Este modelo puede ser continuo
o discreto, y SISO o MIMO. La respuesta al impulso de los sistemas multi-entrada es el conjunto de respuestas
de impulso para cada canal de entrada. La duración de la simulación se determina automáticamente para mos-
trar el comportamiento transitorio de la respuesta.

Ejemplo:
- Trazar la respuesta al impulso del modelo de espacio de estado de segundo orden.
1 % Ejercicio 28
2 =
a = [ 0.5572 =0.7814;0.7814 0];
3 =
b = [1 1;0 2];
4 c = [1.9691 6.4493];
5 sys = ss(a,b,c,0);
6 impulse(sys)

Universidad Nacional de San Agustín- Arequipa 12


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Impulse Response
From: In(1) From: In(2)
12

10

6
Amplitude

-2

-4

-6
0 5 10 15 20 25 0 5 10 15 20 25
Time (seconds)

Figura 6: Respuesta Impulso

5.29 initial()
1 % Ejercicio 29
2 = =
a = [ 0.5572, 0.7814; 0.7814, 0];
3 c = [1.9691 6.4493];
4 x0 = [1 ; 0];
5 sys = ss(a,[],c,[]);
6 initial(sys,x0); % uso de initial

Response to Initial Conditions


5

3
Amplitude

-1

-2
0 5 10 15 20 25
Time (seconds)

Figura 7: Respuesta Initial

Universidad Nacional de San Agustín- Arequipa 13


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.30 length()
Largo de un vector. Longitud de la mayor dimensión de matriz.
L = length(X) devuelve la longitud de la dimensión más grande de matriz X. Para los vectores, la longitud es
simplemente el número de elementos.

Ejemplo:
- Número de elementos vectoriales.
- Encuentra la longitud de un vector espaciados de manera uniforme en el intervalo [5,10].
1 % Ejercicio 30
2 v = 5:10;
3 L = length(v);

L=
6

5.31 limit()
El comando limit(f, x, a) sirve para calcular el límite de la función f cuando la variable x tiende al punto a.
1 % Ejercicio 31
2 syms x;
3 limit((1= cos(x))/x^2, x,0);

ans =
1/2

5.32 impulse()
Extracto de tiempo continuo modelo de estado-espacio lineal alrededor del punto de operación.

Se mantiene el orden de los estados desde el modelo no lineal al modelo lineal. Para los sistemas de Simulink,
una variable de cadena que contiene el nombre del bloque asociado a cada estado se puede obtener utilizando
[tamaos, x0, xstring] = sys.

Ejemplo: calcular la respuesta al impulso.


1 % Ejercicio 32
2 sys = tf([8 18 32],[1 6 14 24]);
3 impulse(sys)

Impulse Response
8

5
Amplitude

-1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time (seconds)

Figura 8: Respuesta Impulso

Universidad Nacional de San Agustín- Arequipa 14


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.33 linspace()
Crea un espacio de puntos en base aun intervalo de números que se dan en los argumentos.
1 % Ejercicio 33
2 = =
linspace(2,10,5) %incremento(10 2)/(5 1)=2

ans =
2 4 6 8 10

5.34 lsim()
Dado un sistema descrito como un objeto LTI, la lsim comando se puede ejecutar una simulación del sistema
usando entradas arbitrarias y condiciones iniciales. Argumento.

El comando lsim(sys, U, T, X0) traza el tiempo de respuesta de un sistema invariante en el tiempo lineal. Este
sistema puede ser continua o discreta. Para un sistema de tiempo continuo, la ecuación diferencial está integrado
de vez T (0) a T (longitud (T)), a partir de la condición inicial X0 y el uso de la entrada U. El vector de entrada
debe tener el mismo número de entradas como el vector tiempo. Si las condiciones iniciales son todos cero, X0
puede omitirse.

Ejemplo:
1 % Ejercicio 34
2 = = =
A = [ 20 40 60 1 0 0 0 1 0];
3 B = [1 0 0];
4 C = [0 0 1];
5 D = 0;
6 syms T;
7 T = 0:0.01:10; % tiempo de simulacion = 10 seg
8 U = zeros(size(T)); % sin entrada
9 X0 = [0.1 0.1 0.1]; % condiciones iniciales de los tres estados
10 sys = ss(A,B,C,D); % construyendo un modelo de sistema
11 lsim(sys, U, T, X0) % simulando y graficando la respuesta (la salida)
12 =
title('Response to Non Zero Initial Conditions');

5.35 ones()
Denición devuelve una matriz de unos.
Argumento.
X = ones() devuelve el escalar 1.
X = ones(n)devuelve una matriz de unos.

Ejemplo:
1 % Ejercicio 35
2 ones(5);

ans =
1 1111
1 1111
1 1111
1 1111
1 1111

5.36 plot()
Sirve para gracar funciones.
Argumentos:
En los argumentos podemos dar diferentes funciones simultaneas para gracar además de modicar el color y
forma de puntos en las grácas en el argumento linespec así como asignarle un valor a los puntos de la gráca.
Ejemplo:
1 % Ejercicio 36
2 =
x = pi:.1:pi;
3 y = sin(x);
4 plot(x,y);

Universidad Nacional de San Agustín- Arequipa 15


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-4 -3 -2 -1 0 1 2 3 4

Figura 9: Gráca

5.37 pole()
Calcula los polos de un a funcion de transferencia.

Ejemplo:
1 % Ejercicio 37
2 num=[1 10];
3 den=[20 15 50];
4 pole(tf(num,den));

ans =
-0.3750 + 1.5360i
-0.3750 - 1.5360i

5.38 polival()
Evalúa un polinomio en valores que recibe la función.

Ejemplo:
1 % Ejercicio 38
2 fx=[1 3 5];
3 polyval(fx,[1 5 0]);

ans =
9 45 5

5.39 pulstran()
pulstran genera trenes de impulsos de funciones continuas o pulsos prototipo muestreados.
Argumentos:
y = pulstran(t, d,0 f unc0 )genera un tren de pulsos basado en muestras de una función continua, 'func', donde
'func' es pulstran se evalúa de longitud (d) veces y devuelve la suma de las evaluaciones y = f unc(td(1)) +
f unc(td(2))+ ...

Ejemplo:

Universidad Nacional de San Agustín- Arequipa 16


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

1 % Ejercicio 39
2 t = 0 : 1/1e3 : 1; % 1 kHz sample freq for 1 sec
3 d = 0 : 1/3 : 1; % 3 Hz repetition freq
4 =
y = pulstran(t,d,'tripuls',0.1, 1);
5 plot(t,y);

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 10: Gráca pulstran

5.40 pzmap()
Graca los polos y ceros de una función de transferencia.

1 % Ejercicio 40
2 num=[1 10];
3 den=[20 15 50];
4 pzmap(tf(num,den));

Universidad Nacional de San Agustín- Arequipa 17


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Pole-Zero Map
2

1.5

Imaginary Axis (seconds-1 )


1

0.5

-0.5

-1

-1.5

-2
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0
-1
Real Axis (seconds )

Figura 11: Gráca pzmap

5.41 rank()
Proporciona el rango de una función, proporciona una estimación del número de las o columnas de una matriz
completa linealmente independientes.

Argumento
- k = rank(A) devuelve el número de valores singulares de A que son más grandes que la tolerancia predeter-
minada, max (tamaño (A)) * eps (norma (A)).

- k = rank(A, tol) devuelve el número de valores singulares de A que son mayores que tol.

Ejemplo:
1 % Ejercicio 41
2 rank(ones(4,4));

ans =
1

5.42 residue()
Proporciona los numeradores, denominadores y residuo de las fracciones parciales de una división de polinomios.

Argumento:
También se puede almacenar los valores recibidos en diferentes variables.
[r, p, k] = residuo(b, a)

[b, a] = residuo(r, p, k)
Ejemplo:
1 % Ejercicio 42
2 [a,b,c]=residue([1 2 3],[4 5 6]);

a=
0.0938 - 0.1224i
0.0938 + 0.1224i

b=

Universidad Nacional de San Agustín- Arequipa 18


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

-0.6250 + 1.0533i
-0.6250 - 1.0533i

c=
0.2500

5.43 roots()
Halla las raíces de un polinomio dado.
1 % Ejercicio 43
2 = =
p = [3 2 4];
3 r = roots(p);

r=
1.5352
-0.8685

5.44 solve()
Herramienta que se utiliza para resolver ecuaciones y desigualdades.

Argumentos:
solve(eq, x, opciones) devuelve el conjunto de todas las soluciones complejas de una ecuación o desigualdad eq
con respecto a x solve (eq, x = a .. b , options )
solve(eq, vars, options) resuelve ecuaciones de varias variables solve(eq, options) solve(eqs, x, options) resuelve
ecuación de varias variables con respecto de x.

Ejemplo:
1 % Ejercicio 44
2 syms x;
3 solve(x.^2 > 5, x);

ans =
5( 1/2) + 1
−5( 1/2) − 1

5.45 ss()
Crea modelos en espacio de estado o convierte modelos LTI a espacio de estado recibiendo matrices.

Ejemplo:
1 % Ejercicio 45
2 = =
A = [0 1; 5 2];
3 B = [0;3];
4 C = [0 1];
5 D = 0;
6 sys = ss(A,B,C,D);

sys =
A = x1 x2
x1 0 1
x2 -5 -2

B = u1
x1 0
x2 3

C = x1 x2
y1 0 1

D = u1
y1 0
Continuous-time state-space model.

Universidad Nacional de San Agustín- Arequipa 19


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.46 Ss2tf()
Convierte funciones de estad e funciones de transferencia.

Argumentos:
[B, A] = ss2tf (A, B, C, D) convierte un espacio de estados de un sistema en una función de transferencia equi-
valente. Ss2tf devuelve el Laplace transformada función de transferencia para sistemas de tiempo continuo y la
transferencia de Z-transform función para sistemas de tiempo discreto.
[B, A] = ss2tf (A, B, C, D, N I) devuelve la función de transferencia que se produce cuando la ni TH entrada de
un sistema con múltiples entradas es excitado por un impulso unitario.

Ejemplos:
1 % Ejercicio 46
2 = =
A = [0 1; 5 2];
3 B = [0;3];
4 C = [0 1];
5 D = 0;
6 [b, a] = ss2tf (A, B, C, D)

b=
030

a=
125

5.47 Ss2zp()
Descompone una función de transferencia en en sus ceros polos y ganancia.
[z, p, k] = ss2zp(A, B, C, D)

1 % Ejercicio 47
2 b = [2 3 0];
3 a = [1 0.4 1];
4 [A,B,C,D] = tf2ss(b,a);
5 [z,p,k] = ss2zp(A,B,C,D,1)

z=
0
-1.5000

p=
-0.2000 + 0.9798i
-0.2000 - 0.9798i

k=
2

5.48 stairs()
Elabora gráco tipo escalera de las funciones que propongamos tal igual como el comando plot también podre-
mos asignarle un valor a su salida.

stairs(X, Y )
stairs(___, LineSpec)
h = stairs(___)

Ejemplo:
1 % Ejercicio 48
2 X = linspace(0,4*pi,40);
3 Y = sin(X);
4 figure
5 stairs(Y)

Universidad Nacional de San Agustín- Arequipa 20


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 5 10 15 20 25 30 35 40

Figura 12: Gráca stairs

5.49 stem()
Sirve para hacer grácas mediante pulsos también al igual que el comando stairs se le puede asignar un valor a
su salida.

Argumentos:
stem(Y )example
stem(X, Y )example
stem(___,0 f illed0 )example
stem(___, LineSpec)
h = stem(___)

Ejemplo:
1 % Ejercicio 49
2 X = linspace(0,4*pi,40);
3 Y = sin(X);
4 stem(Y)

Universidad Nacional de San Agustín- Arequipa 21


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 5 10 15 20 25 30 35 40

Figura 13: Gráca stem

5.50 step()
Simula y graca una respuesta de una función de transferencia cuando se le somete entrada escalón.

Ejemplo:
1 % Ejercicio 50
2 s = tf('s');
3 =
G = exp( s) * (0.8*s^2+s+2)/(s^2+s);
4 T = feedback(ss(G),1);
5 step(T)

Step Response
1.8

1.6

1.4

1.2
Amplitude

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25
Time (seconds)

Figura 14: Gráca step

Universidad Nacional de San Agustín- Arequipa 22


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.51 syms()
Sirve para declarar una o más variables simultáneamente para trabajar con ellas syms x.

Ejemplo:
1 % Ejercicio 51
2 syms x y

5.52 tf()
Sirve para crear una función de transferencia en base a su numerador y denominador recibiendo vectores y
tomándolos como polinomios.
sys = tf (num, den)
sys = tf (num, den, T s)
Ejemplo:
1 % Ejercicio 52
2 syms t
3 w=tf([1 2 3],[4 5])

w=
s2 + 2s + 3

4s + 5
Continuous-time transfer function.

5.53 Tf2ss()
Convierte una función de transferencia en su forma espacial mediante variables.

Argumento:

Posee 4 variables de salida y de entrada el numerador y denominador de la función de transferencia.

Ejemplo:
1 % Ejercicio 53
2 b = [0 2 3; 1 2 1];
3 a = [1 0.4 1];
4 [A,B,C,D] = tf2ss(b,a)

A=
-0.4000 -1.0000
1.0000 0

B=
1
0

C=
2.0000 3.0000
1.6000 0

D=
0
1

5.54 Tf2zp()
Convierte una función de transferencia en su forma de polos, ceros y ganancia [z,p,k] = tf2zp(b,a) contiene 3
variables de salida para cada parámetro que saquemos de la función de transferencia que está escrito en forma
de numerador y denominador.

Ejemplo:
1 % Ejercicio 33
2 = =
linspace(2,10,5) %incremento(10 2)/(5 1)=2

Universidad Nacional de San Agustín- Arequipa 23


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

z=
-2.0000 + 2.0000i
-2.0000 - 2.0000i

p=
-1.5000 + 3.5707i
-1.5000 - 3.5707i

k=
0.4000

5.55 tfdata()
Accede a la composición de la función de transferencia devolviendo su numerador y denominador.
[num, den] = tf data(sys)

[num, den, T s] = tf data(sys)


Ejemplo:
1 % Ejercicio 55
2 h = tf([1],[1 2 5]);
3 [num,den] = tfdata(h,'v')

num =
001

den =
125

5.56 zero()
Nos retorna lo ceros y ganancia de la función de transferencia que invoquemos z = zero(sys).
[z, gain] = zero(sys)

Ejemplo:
1 % Ejercicio 56
2 [z gain]=zero(tf([1 2 3],[4 5]))

z=
-1.0000 + 1.4142i
-1.0000 - 1.4142i

gain =
0.2500

5.57 zeros()
Crea matrices del tamaño que le indiquemos llenándolas con ceros predeterminadamente o también asignándole
valores en el argumento.
X = zeros(n)
X = zeros(sz1,...,szN)

Ejemplo:
1 % Ejercicio 57
2 X = zeros(2,3,4);
3 size(X)

ans =
234

Universidad Nacional de San Agustín- Arequipa 24


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

5.58 zp2ss()
Convierte una función de transferencia dado en sus parámetros de ceros polos y ganancia y los convierte en su
modo espacial.
[A, B, C, D] = zp2ss(z, p, k)
Ejemplo:
1 % Ejercicio 58
2 [A,B,C,D] = zp2ss([ =9 8 6],[10 5 2],5)

A=
10.0000 0 0
2.0000 7.0000 -3.1623
0 3.1623 0

B=
1
1
0

C=
10.0000 50.0000 -101.1929

D=
5

5.59 zp2tf()
Convierte los parámetros de ceros polos y ganancia en una función de transferencia de parámetros numerador
y denominador.
[b, a] = zp2tf (z, p, k)

1 % Ejercicio 59
2 =
[a,b]=zp2tf(3,[1 2], 5)

a=
0 -5 15

b=
1 -3 2

5.60 zpk()
Crea una función de transferencia en base a sus polos, ceros y ganancia sys = zpk(z, p, k).

Ejemplo:
1 % Ejercicio 60
2 = = =2],5)
z=zpk([5 6],[ 1

z=
5(s − 5)(s + 6)

(s + 1)(s + 2)
Continuous-time zero/pole/gain model.

5.61 zplane()
Graca los ceros y polos de una función de transferencia.

Argumento:

zplane(z, p)
zplane(b, a)
zplane(d)
[hz, hp, ht] = zplane(z, p)

Universidad Nacional de San Agustín- Arequipa 25


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

1 % Ejercicio 61
2 [z,p,k] = ellip(4,3,30,200/500);
3 zplane(z,p)
4 grid

0.8

0.6

0.4
Imaginary Part

0.2

-0.2

-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1
Real Part

Figura 15: Gráca zplane

6 Observaciones y Conclusiones

Se pudo ver que Matlab es un software capaz de gracar funciones matemáticas. Es importante para
describir comportamientos en sistemas de control, para así saber su respuesta y aplicar algún control al
sistema.

Gracias a las facilidades de MATLAB se puede estar seguro sobre hallar la respuesta correcta con menos
esfuerzos y además se tiene un ahorro de tiempo considerable.

MATLAB trabaja con una memoria dinámica que no requiere que se le declaren las variables que se van
a usar durante elprograma, sino que estas se denen al usarlas por primera vez. Esta es una gran ventaja
ya que hacee posible estar en libertad de denir variables según se requiera al escribir el código.

Universidad Nacional de San Agustín- Arequipa 26


Sistemas de Control Digital- Laboratorio 01 Jhoel René Mamani Huanca

Referencias
[1] DOLORES M. Etter. Solucion de problemas de ingeniería con Matlab. 2da Ed. 1998.
[2] Pérez López César. (2002). MATLAB y sus aplicaciones en las ciencias y la ingeniería.Prentice Hall. Páginas:
6  14
[3] Moore Holly. (2007). Matlab para ingenieros. Pearson Prentice Hall. Paginas: 1  53.

Universidad Nacional de San Agustín- Arequipa 27

También podría gustarte