Documentos de Académico
Documentos de Profesional
Documentos de Cultura
[ Grupo C ]
Alumnos:
Jhoel René Mamani Huanca
Docente:
Ing. William Mullisaca Atamari
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
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.
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
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
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".
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.
ans =
0.5000
5.14 deconv()
Deconvolución y división polinómica.
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(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
1.5
0.5
-0.5
-1
-1.5
0 5 10 15 20 25 30 35
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 )
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.
ans =
2.7183 2.7183 1.0000
1.0000 1.0000 7.3891
1.0000 1.0000 0.3679
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
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]);
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
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
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.
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)')
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
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.
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.
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)
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)
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
3
Amplitude
-1
-2
0 5 10 15 20 25
Time (seconds)
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.
Impulse Response
8
5
Amplitude
-1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time (seconds)
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);
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:
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
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));
Pole-Zero Map
2
1.5
0.5
-0.5
-1
-1.5
-2
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0
-1
Real Axis (seconds )
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=
-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.
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)
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
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)
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
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)
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:
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
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 =
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
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)
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
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.
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.