SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Departamento de Electrónica
Universidad de Alcalá
“Introducción a MATLAB, Toolbox de
Control y Simulink”
Ingeniería Técnica de Telecomunicación
Especialidad Sistemas Electrónicos
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 2 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
1. ¿QUÉ ES MATLAB?.
• Paquete software orientado al cálculo numérico, matrices,
procesamiento y análisis de la señal y gráficas
• Distintos campos de acción (aplicaciones):
Teoría de control
Tratamiento de señales
Inteligencia artificial
Diseño de sistemas de potencia
Control de procesos mecánicos, de aviación, automoción, etc.
Financiero
Mapeo y tratamiento de imágenes
Instrumentación y adquisición de datos
Identificación de sistemas
...
• Varios programas incluidos
MATLAB: Núcleo operativo de la herramienta matemática
Toolboxes: Librerías de funciones MATLAB asociadas a las
diferentes aplicaciones (Stateflow y Sisotool, interfaz gráfico,
control neuronal y borroso)
Simulink: Interfaz gráfico para el modelado y simulación de
sistemas
Blocksets: Bloques Simulink para aplicaciones específicas
Real Time Workshop, xPC Tarjet y desarrollo sobre DSPs y
FPGAs
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 3 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Diferentes tipos de archivos:
*.M Ficheros por lotes (*.bat) sobre S.O. MATLAB
*.MAT Fichero de datos de MATLAB
*.DLL Ficheros ejecutables sobre Windows diseñados con
MATLAB
*.MDL Modelos de Simulink
Otros *.fis, *.tbl, etc. para toolboxes de control borroso, stateflow
y otros paquetes
ENTORNO DE TRABAJO
• Varias ventanas de trabajo dentro de MATLAB
Ventana de comandos:
Directamente sobre S.O. MATLAB
Entorno de trabajo (Workspace):
Visualiza las variables definidas en
cada instante
Editor de ficheros *.m: Editor
inteligente (colores e indentado)
con depurador paso a paso y
visualización de variables internas
Editor de ficheros *.mdl: Editor
gráfico para diseñar modelos de
Simulink
Elección del directorio de
trabajo: Explorador de Windows
Figuras: Potente editor de figuras
con posibilidad de incluir textos,
cambiar el formato, etc.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 4 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 5 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
2. EL USO DE MATLAB
MANIPULACIÓN Y FORMATO DE DATOS
• Se trabaja con matrices de números reales o/y complejos.
• Los números complejos se definen gracias a los operadores i y j de
MATLAB. Así se puede escribir en MATLAB x=3+2j, que se definirá
como una matriz de tamaño 1x1
• Un escalar es una matriz de tamaño 1x1
• Una variable fila o columna es un vector, o un array
• Existen distintos formatos de datos con los que puede trabajar
MATLAB:
Short: 5 dígitos, punto fijo
Short e: 5 dígitos, punto flotante
Long: 15 dígitos, punto fijo
Long e: 15 dígitos, punto flotante
Hex: Hexadecimal
• Para indicar que se va a trabajar con uno u otro formato de datos
se utiliza la función de MATLAB “format”
GENERACIÓN DE MATRICES
• ¿Cómo generar una fila?
A=[a b c d e] ó A=[a, b, c, d, e]
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 6 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• ¿Cómo generar una columna?
B=[a; b; c; d; e] ó
















=
e
d
c
b
a
B
• ¿Cómo generar una matriz?
A= [a, b, c; d, e, f; g, h, i] ó
• ¿Cómo generar un serie de datos?
A(punto inicial: incremento: punto final)
Ejemplo:
B=[1:1:8]
Con lo que se define un array B con el siguiente contenido:
B=[1 2 3 4 5 6 7 8 ]
SUBMATRICES Y ELEMENTOS DE UNA MATRIZ
• Para identificar un elemento de una matriz se usa la notación A(i,j)
dónde i es la i-ésima fila y j es la j-ésima columna.










=
ihg
fed
cba
A
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 7 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Sea A la siguiente matriz:
Para identificar al nº 4 dentro de la matriz A se puede indicar como
A(2,1)
• Se puede identificar una parte de una matriz (submatriz) con la
siguiente notación:
A(fila_inicial:fila_final, col_inicial:col_final)
Ejemplo:
A partir de la matriz A definida en el ejemplo anterior, se define la
matriz B de la siguiente forma:
B=A(1:3,1:2)
Entonces B será una nueva matriz de valor:
Truco: El operador : puede utilizarse para identificar a todos los
elementos en una serie de datos. Así en el ejemplo anterior
B=A(1:3,1:2) es lo mismo que B=A(:,1:2)










=
987
654
321
A










=
87
54
21
B
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 8 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
VARIABLES
• A la hora de definir una variable (matriz, submatriz, array o escalar)
se distingue entre mayúsculas y minúsculas.
• Cuando se llama a una función de MATLAB sin especificar variable
de salida, se vuelca el resultado en la variable por defecto ans. La
notación ; omite la presentación del resultado en pantalla al final de
un comando
COMANDOS Y FUNCIONES DE MATLAB
• MATLAB posee gran número de funciones provenientes de:
MATLAB: Juego de funciones y operadores básico
Toolbox: Dependiendo del tipo añadirá funciones especiales
Generadas por el usuario: funciones o scripts
• Operadores de uso general (help general)
help Comando de ayuda
who (s) Lista de variables (con s indica info sobre variable)
what (o dir) Lista de ficheros .M y .MAT
clear Borrar variables
load Carga de variables desde un fichero
save Guardar variables a un fichero *.mat
cd Cambiar de directorio de trabajo
! Ejecutar funciones DOS
... Continúa en la línea siguiente
% Comentario en una función
demo Llamada a los ejemplos de uso de MATLAB
mex Compilar ficheros de MATLAB
Truco: Es muy recomendable el uso de la help de MATLAB
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 9 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Operadores para matrices y arrays y variables especiales (help
ops)
ans Most recent answer.
eps Floating point relative accuracy.
realmax Largest positive floating point number.
realmin Smallest positive floating point number.
pi 3.1415926535897....
i, j Imaginary unit.
inf Infinity.
NaN Not a number
isnan True for Not a number
isinf True for infinite elements.
isfinite True for finite elements.
why Succinct answer.
Nota: Es importantísimo tener en cuenta la propiedad conmutativa en
algunas operaciones aritméticas de matrices.
A/B ≠ B/A
ya que A/B= A*B-1
y B/A= B*A-1
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 10 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Otras funciones especiales, que se organizan en diferentes
categorías. Las que no pertenecen a ninguna toolbox ni blockset
específico se muestran en la siguiente tabla:
MATLABlang Programming language constructs.
MATLABelmat Elementary matrices & matrix manipulation.
MATLABelfun Elementary math functions.
MATLABspecfun Specialized math functions.
MATLABmatfun Matrix functions
MATLABdatafun Data analysis and Fourier transforms.
MATLABaudio Audio support.
MATLABpolyfun Interpolation and polynomials.
MATLABfunfun Function functions and ODE solvers.
MATLABsparfun Sparse matrices.
MATLABgraph2d Two dimensional graphs.
MATLABgraph3d Three dimensional graphs.
MATLABspecgraph Specialized graphs.
MATLABgraphics Handle Graphics.
MATLABuitools Graphical user interface tools.
MATLABstrfun Character strings.
MATLABiofun File input/output.
MATLABtimefun Time and dates.
MATLABdatatypes Data types and structures.
MATLABverctrl Version control.
MATLABdemos Examples and demonstrations.
De entre ellas se pueden remarcar algunas más interesantes:
• Polinomios (help polyfun)
roots Find polynomial roots.
poly Convert roots to polynomial.
polyval Evaluate polynomial.
polyvalm Evaluate polynomial with matrix argument.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 11 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
residue Partial fraction expansion (residues).
polyfit Fit polynomial to data.
polyder Differentiate polynomial.
polyint Integrate polynomial analytically.
conv Multiply polynomials.
deconv Divide polynomials.
Además de éstas, en esta categoría, hay funciones específicas para
análisis geométrico y de interpolación.
• Estructuras del lenguaje MATLAB (help lang) (solo las más
representativas)
if Conditionally execute statements.
else IF statement condition.
elseif IF statement condition.
end Terminate scope of FOR, WHILE, SWITCH, TRY and IF
for Repeat statements a specific number of times.
while Repeat statements an indefinite number of times.
break Terminate execution of WHILE or FOR loop.
continue Pass control to the next iteration of FOR or WHILE loop.
switch Switch among several cases based on expression.
case SWITCH statement case.
otherwise Default SWITCH statement case.
try Begin TRY block.
catch Begin CATCH block.
return Return to invoking function.
error Display error message and abort function.
warning Display warning message.
lasterr Last error message.
lastwarn Last warning message.
disp Display an array.
display Overloaded function to display an array.
fprintf Display formatted message.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 12 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
sprintf Write formatted data to a string.
input Prompt for user input.
keyboard Invoke keyboard from M file
pause Wait for user response.
uimenu Create user interface menu.
uicontrol Create user interface control.
• Generación de matrices (help elmat)
zeros Zeros array.
ones Ones array.
eye Identity matrix.
repmat Replicate and tile array.
rand Uniformly distributed random numbers.
randn Normally distributed random numbers.
linspace Linearly spaced vector.
logspace Logarithmically spaced vector.
freqspace Frequency spacing for frequency response.
meshgrid X and Y arrays for 3 D plots.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 13 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Funciones Elementales.
sin Sine.
sinh Hyperbolic sine.
asin Inverse sine.
asinh Inverse hyperbolic sine.
cos Cosine.
cosh Hyperbolic cosine.
acos Inverse cosine.
acosh Inverse hyperbolic cosine.
tan Tangent.
tanh Hyperbolic tangent.
atan Inverse tangent.
atan2 Four quadrant inverse tangent.
atanh Inverse hyperbolic tangent.
sec Secant.
sech Hyperbolic secant.
asec Inverse secant.
asech Inverse hyperbolic secant.
csc Cosecant.
csch Hyperbolic cosecant.
acsc Inverse cosecant.
acsch Inverse hyperbolic cosecant.
cot Cotangent.
coth Hyperbolic cotangent.
acot Inverse cotangent.
acoth Inverse hyperbolic cotangent.
exp Exponential.
log Natural logarithm.
log10 Common (base 10) logarithm.
log2 Base 2 logarithm and dissect floating point number.
pow2 Base 2 power and scale floating point number.
sqrt Square root.
nextpow2 Next higher power of 2.
abs Absolute value.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 14 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
angle Phase angle.
complex Construct complex data from real & imaginary parts.
conj Complex conjugate.
imag Complex imaginary part.
real Complex real part.
unwrap Unwrap phase angle.
isreal True for real array.
cplxpair Sort numbers into complex conjugate pairs.
fix Round towards zero.
floor Round towards minus infinity.
ceil Round towards plus infinity.
round Round towards nearest integer.
mod Modulus (signed remainder after division).
rem Remainder after division.
sign Signum.
• Análisis de datos
max Largest component.
min Smallest component.
mean Average or mean value.
median Median value.
std Standard deviation.
var Variance.
sort Sort in ascending order.
sum Sum of elements.
prod Product of elements.
hist Histogram.
histc Histogram count.
trapz Trapezoidal numerical integration.
diff Difference and approximate derivative.
gradient Approximate gradient.
cov Covariance matrix.
filter One dimensional digital filter.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 15 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
filter2 Two dimensional digital filter
conv Convolution and polynomial multiplication.
convn N dimensional convolution
deconv Deconvolution and polynomial division.
fft Discrete Fourier transform.
fftn N dimensional discrete Fourier Transform.
ifft Inverse discrete Fourier transform.
ifftn N dimensional inverse discrete Fourier Transform.
• Manipulación de matrices
norm Matrix or vector norm.
normest Estimate the matrix 2 norm
rank Matrix rank.
det Determinant.
trace Sum of diagonal elements.
null Null space.
orth Orthogonalization.
inv Matrix inverse.
pinv Pseudoinverse.
lscov Least squares with known covariance.
eig Eigenvalues and eigenvectors.
svd Singular value decomposition.
gsvd Generalized singular value decomposition.
eigs A few eigenvalues.
svds A few singular values.
polyeig Polynomial eigenvalue problem.
expm Matrix exponential.
logm Matrix logarithm.
sqrtm Matrix square root.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 16 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
FUNCIONES DE REPRESENTACIÓN GRÁFICA
• La función más importante es “plot”, que abre una ventana de figura
y representa en ella (en general) los datos que le son pasados
como parámetros. Para representar x=f(t) se hará la llamada
plot (t,x)
• Se puede incluir información sobre el formato del gráfico (color, tipo
de línea, etc). Las opciones posibles son las que se muestran a
continuación (help plot):
• Permite realizar representaciones de varias señales en una misma
figura. Para ello simplemente se incluyen todas las variables en una
misma llamada a plot.
* star
+ plus
-- dashed
x x-mark
-. dashdot
o circle
: dotted
. point
- solid
^ triangle (up)
< triangle (left)
> triangle (right)
v triangle (down)
d diamond
s square
p pentagram
h hexagram
y yellow
m magenta
c cyan
r red
g green
b blue
w white
k black
Color
Tipo de línea
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 17 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Funciones asociadas a plot:
loglog Log log scale plot.
semilogx Semi log scale plot.
semilogy Semi log scale plot.
polar Polar coordinate plot.
zoom Zoom in and out on a 2 D plot.
grid Grid lines.
subplot Create axes in tiled positions.
plotedit Tools for editing and annotating plots.
legend Graph legend.
title Graph title.
xlabel X axis label.
ylabel Y axis label.
text Text annotation.
gtext Place text with mouse.
Merece la pena especial atención a la función “subplot” que divide la
pantalla gráfica (ventana de figura) en N filas y M columnas. El formato
función es subplot (N, M, J), donde J es la sub-figura sobre la que se
quiere dibujar.
• Funciones asociadas a las figuras en general
figure Create figure window.
clf Clear current figure.
close Close figure.
subplot Create axes in tiled positions.
cla Clear current axes.
axis Control axis scaling and appearance.
hold Hold current graph.
ishold Return hold state.
line Create line.
text Create text.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 18 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
surface Create surface.
image Create image.
set Set object properties.
get Get object properties.
drawnow Flush pending graphics events.
Ejemplo:
Representar una señal senoidal y otra cosenoidal en la misma figura
entre 0 y 6π (3 periodos de la señal senoidal). Se haría de la siguiente
forma:
t=(0:0.1:6*pi) % el incremento de punto a punto de la
gráfica será de 0.1
x=sin(t) % se crea el vector x, será la salida senoidal
y=cos(t) % se crea el vector y, será salida cosenoidal
plot(t,x,’b’,t,y,’c+’) % se dibujan en la misma gráfica y con
distintos formatos de ploteado (color y
punteado)
Además, con las siguientes líneas de MATLAB se han incorporado los
textos a la figura:
grid
title(‘Ejemplo funcion seno y coseno’)
xlabel(‘tiempo’)
ylabel(‘seno/coseno’)
gtext(‘valor nulo’) % y se coloca el texto en el punto deseado
gtext(‘valor máximo’) % y se coloca el texto en el punto deseado
gtext(‘valor mínimo’) % y se coloca el texto en el punto deseado
El resultado es una ventana figura como la que se muestra a
continuación:
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 19 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Se desea representar ahora las señales senoidal y cosenoidal en la
misma ventana de figuras pero por separado, por lo que se usa
subplot, de este modo:
subplot(2,1,1) % se elige la subfigura primera o superior: fila
1ª, columna 1ª
plot(t,x,'b')
grid
title(‘Ejemplo funcion seno’)
xlabel(‘tiempo’)
ylabel(‘seno’)
subplot(2,1,2) % se elige la subfigura segunda o inferior: fila
2ª, columna 1ª
plot(t,y,'c+')
grid
title(‘Ejemplo funcion coseno’)
xlabel(‘tiempo’)
ylabel(‘coseno’)
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 20 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Tal y como se observa todas las funciones de dibujo se refieren a la
sub-figura elegida con la función subplot. El resultado es el que se
muestra a continuación:
0 2 4 6 8 10 12 14 16 18 20
-1
-0.5
0
0.5
1
Ejemplo funcion seno
tiempo
seno
0 2 4 6 8 10 12 14 16 18 20
-1
-0.5
0
0.5
1
coseno
tiempo
Ejemplo funcion coseno
FICHEROS *.M: SCRIPTS Y FUNCIONES.
• Son archivos tipo ASCII (se realizan en cualquier editor ASCII,
aunque conviene usar el que tiene MATLAB para ello, pues incluye
un depurador) que contienen una serie de órdenes incluso
llamadas a otros ficheros *. M
• Ambas se pueden llamar desde la línea de comandos de MATLAB
o desde otra estructura similar
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 21 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Los ficheros tipo scripts:
Están compuestos por llamadas a otras funciones de MATLAB
(parecido a las llamadas realizadas por DOS en los ficheros
*.BAT)
Puede utilizar las variables del entorno de trabajo (Workspace) y
devuelve los resultados a este mismo entorno. Se trata por tanto
de trabajo con variables globales
Se suelen utilizar para tareas de inicialización o de definición de
un gran número de variables en el entorno de trabajo
• Por su parte, las funciones:
Comienzan con la palabra clave function en la primera línea del
fichero
Es una aplicación (función) definida por el usuario a la que se le
pasan parámetros y que permite devolver parámetros, de forma
similar a funciones en ‘C’. La sintaxis para el paso de
parámetros es la siguiente:
function [salida1, salida2,...] = nom_función(param1, param2,...)
Las variables que utiliza son, por tanto, locales a la función
(principal diferencia con los scripts)
La función definida por el usuario se podrá invocar desde la
línea de comandos o desde cualquier script
Deben de coincidir el nombre del fichero y el nombre de la
función a implementar
Tras la primera línea (function... ) se inctroducen líneas de
comentario (comienzan por %), que serán la ayuda de la función
que se presente en la ventana de comandos de MATLAB
cuando se invoque a la ayuda de dicha función. Por ejemplo si
se define la función prueba de este modo:
function prueba()
%esta función no tiene parámetros de entrada ni de salida
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 22 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Cuando se invoque a la ayuda de la función en la ventana de
órdenes de MATLAB aparecerá lo siguiente:
>> help prueba
>> esta función no tiene parámetros de entrada ni de salida
• Suele ser habitual utilizar sentencias de control (ver help lang) en la
escritura de las funciones y los scrips
• Algunas de las funciones más habituales en las funciones y los
scrips
Input: Asigna un valor introducido por teclado a una variable.
Muestra una cadena de caracteres.
Keyboard: Introduce un punto de ruptura en la secuencia de
ejecución de la función. En ese momento se le permite acceder
al usuario a las variables locales y globales del sistema. Se sale
de este modo tecleando RETURN
Pause: Introduce una pausa en la ejecución de la función. Se
continua con la ejecución pulsando cualquier tecla
Ejemplo:
Crear una función llamada MEDIA que calcule el valor medio de un
array.
function y=media(x)
[m,n]=size(x);
if m==1 %es por tanto un vector
y=sum(x)/n;
else
error ('Debes de introducir un vector');
end
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 23 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Realizar una función en MATLAB que permita resolver un sistema
lineal de ‘n’ ecuaciones con ‘n’ incógnitas (siendo ‘n’ un valor
cualquiera). El formato de llamada a la función debe ser el siguiente:
[sol,n_sol]=sistema(S)
donde:
• sol= vector que contiene las soluciones al sistema
• N_sol= número de soluciones del sistema
• S=matriz que contiene los coeficientes y términos independientes de
las n ecuaciones en el siguiente formato:
function [sol,n_sol]=prac2_1(S)
%FUNCION QUE RESUELVE UN SISTEMA DE ECUACIONES
[filas,columnas]=size(S);
if (filas>columnas)
error('Sistema de ecuaciones no correcto')
else
%vector formado por la ultima col
Aux_1=S(:,columnas);
%Se convierten los términos independientes a valor
% positivo ya que el usuario los introduce como valor negativo
Aux_1=Aux_1*(-1);
columnas=columnas-1;
%matriz cuadrada formada por los coeficientes de las variables
Aux=S(:,1:columnas);
Aux_inv=inv(Aux); %Aux_inv=Aux-1
sol=Aux_inv*Aux_1; %matriz solucion
0525
01325
023
=−−+−
=−++
=−+−
cba
cba
cba









 −
=
5-2-51-
1-325
2-113
S
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 24 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
[n_sol, a]=size(sol); %retorno del resultado
end
Ejemplo:
Crear una función llamada MAXIMO que devuelva el mayor de los
elementos de un vector.
N=maximo(A)
• N= número mayor de A;
• A= vector enviado;
function x=maximo(A)
% Se introduce un vector y se obtiene el valor maximo de él
[m,n]=size(A); %Se saca el numero de columnas y filas
if m==1 %Se trata de un vector
long=length(A);
i=2;
sol=A(1);
while (i<=long)
if A(i)>=sol %Se compara si el valor actual es
%mayor que el anterior. Si lo es
sol=A(i); %se acumula
end %fin del if
i=i+1;
end %fin del while
x=sol;
else
error ('Introduce un vector y no una matriz');
end %fin del if principal
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 25 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
3. EL USO DE SIMULINK
• Herramienta gráfica incorporada a Matlab, que permite de forma
más fácil definir el modelo de sistemas de muy diferentes tipos (no
solo LTI) y aplicaciones
• Los elementos de trabajo de un modelo de Simulink son objetos o
iconos, agrupados en librerías que proporciona el paquete
integrado de Matlab para las distintas aplicaciones
• El fichero asociado a cada modelo es un *.MDL, que puede ser
abierto como un fichero *.M cualquiera (tiene una estructura
especial pero el funcionamiento es el mismo)
• Se puede llamar a la librería de bloques de Simulink (ventana
Simulink) desde la ventana de comandos tecleando “Simulink”, o
abrir directamente un fichero *.MDL
• Pasos a seguir para trabajar con Simulink:
1. Definición gráfica del modelo a simular con las librerías de
Matlab para Simulink
2. Simulación del modelo y análisis de resultados, que se pueden
mostrar directamente en Simulink o a través de Matlab enviando
los resultados al entorno de trabajo
• Librerías de Simulink Posee librerías distribuidas en función de la
aplicación. Tiene una librería básica, llamada Simulink, con el
siguiente contenido:
Sources (fuentes de señal)
Sinks (sumideros o almacén de resultados)
Continuous
Discrete
No linear
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 26 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Signals&Systems (buses, multiplexores y demultiplexores,
puertos para enviar señales de un modelo a otro, etc.)
Math (trigonométricas, aritméticas, etc.)
Funciones y tablas (llamadas a funciones de Matlab o de usuario
y tablas de look-up)
...
• Hay librerías específicas para cada aplicación (Blocksets y
Toolboxes):
Control (controladores ya diseñados)
Control Borroso
Control Neuronal
Identificación
Power
DSP
Fixed Point
Comunicaciones
RTW y xPC Tarjet
Stateflow
User Interface
...
• El usuario puede definir nuevas librerías a partir de algún modelo
realizado, mediante los bloques S-function
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 27 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
OBJETOS BÁSICOS DE SIMULINK
• Fuentes: Emisores de información (Generadores de señales, señal
rampa, impulso, ...)
• Procesos: Bloques de E/S de todos los tipos antes mencionados
• Destinos: Receptores de información
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 28 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Conexiones: Son unidireccionales. Hipotéticos cables.
CREACIÓN DE UN MODELO SIMULINK
• Para generar un diagrama de bloques, una vez abierto un fichero
*.MDL nuevo y con ventana de Simulink, se sigue el siguiente
proceso:
1. Se abre la librería donde se encuentra el elemento necesario.
2. Para copiar un objeto de la sesión de trabajo, basta con
seleccionar el objeto y arrastrarlo
3. Para hacer una conexión entre una salida y una entrada, se
posiciona el cursor sobre la salida de la fuente o la entrada, se
pulsa el botón izquierdo del ratón y sin soltarlo se desplaza el
cursor hasta el otro punto que se desea unir
4. Haciendo doble click sobre los elementos copiados se modifican
los parámetros de éste. (Admiten parámetros que sean variables
de Workspace)
Ejemplo
Realizar el diagrama de bloques de la figura:
1. Se entra en Simulink y se abre una ventana nueva.
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 29 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
2. Se abre la librería continuous y se copian los bloques sumador y
F.T.
3. Se abre la librería sources y se copia el bloque escalón (step
input)
4. Se abre la librería sinks y se copia el bloque scope
5. Se unen mediante el ratón los bloques.
6. Se editan los bloques para que aparezcan como en la figura (en
el bloque “Trasnfer Fcn” Numerator y Denominator han de
contener los coeficientes del polinomio correspondiente en
potencias decrecientes de ‘s’). En el ejemplo:
Numerator [1 2]
Denominator [1 2 5]
7. Se salva el fichero (*.MDL).
Truco: Probar a definir los parámetros de configuración de los bloques
mediante variables definidas previamente en el entorno de trabajo de
MATLAB. De este modo se facilita el diseño de sistemas en base a un
modo de funcionamiento prueba-error
CONFIGURACIÓN DE LA SIMULACIÓN
• Es importante configurar la simulación antes de realizarla. Para
ello, en el menú principal de la ventana del modelo (*.MDL) creado
con Simulink ir a Simulation Parameters
• Permite configurar diferentes características sobre la simulación, a
saber:
La forma de resolver el sistema de ecuaciones diferenciales que
componen el modelo diseñado en Simulink y al tiempo de
simulación
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 30 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Las variables de salida que ha de generar la simulación en el
entorno de trabajo de MATLAB
Otros parámetros avanzados de simulación, como la
configuración de los avisos y errores que ha de generar la
simulación por conexiones incorrectas, o la configuración de la
compilación del modelo con la herramienta RTW
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 31 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• Con respecto al paso de SIMULACIÓN, es necesario tener en
cuenta ciertos aspectos básicos
El paso de simulación es el intervalo de integración de los
algoritmos de resolución del modelo
Se puede definir variable (lo fija Simulink en función del modelo
concreto a simular) en todos los casos excepto en la generación
de código RTW
Si el paso de simulación es muy bajo el tiempo de ejecución
elevado (puntos excesivos), y si es muy bajo la resolución es
peor (se pierde definición del sistema), pudiendo incluso llegar a
no representar correctamente le comportamiento del sistema al
no cumplir la teoría de sistemas muestreados (al fin y al cabo la
simulación de sistemas continuos con Simulink pretende
representar su comportamiento real en el tiempo)
Una regla práctica es hacer que el paso de simulación sea al
menos de la décima parte del tiempo de subida de la respuesta
del sistema
• Con respecto a las variables de salida de Simulink, es necesario
comentar también un punto:
Se pueden pasar las respuestas de las simulación al Workspace
de MATLAB a través de los bloques “to Workspace” de Simulink
Convendrá también tener en el entorno de trabajo el array de
tiempo con el que se ha generado la simulación
Éste se puede generar con un bloque “Clock” de Simulink y
pasarlo a MATLAB del mismo modo, pero también se puede
usar la variable tout que se genera automáticamente si así se
indica en la configuración de la simulación
La variable yout que se genera del mismo modo contiene el
resultado de las señales conectadas a puertos de salida del
modelo de Simulink
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 32 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Visualizar el resultado de la simulación del modelo del ejemplo anterior
Nota: Prestar atención a que la respuesta coincida exactamente con
la aquí mostrada y modificar la configuración de los bloques de
Simulink correspondientes para que así sea
Ejemplo:
Variar el modelo anterior para implementar el siguiente sistema.
Visualizar desde MATLAB y desde Simulink los resultados (variable
Salida frente al tiempo)
Desde Simulink: con el bloque Scope:
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 33 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Desde MATLAB:
>>plot(tout, Salida);
o
>>plot(tiempo, Salida);
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 34 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Truco: Se puede arrancar la simulación de un modelo preexistente
(fichero *.MDL) con la función sim de MATLAB, con la siguiente
sintaxis:
[T,X,Y] = sim('modelo', [TInicio TFin] ,OPTIONS,UT)
Donde los parámetros 2º al 4º de la llamada a sim son opcionales
Ejemplo:
Realizar el siguiente diagrama de bloques y representar desde
MATLAB la señal de salida
¿Para qué sirve el multiplexor?
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 35 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
4. LA TOOLBOX DE CONTROL DE MATLAB
• Funciones de aplicación específica para ingeniería de control de
sistemas. Son ficheros *.M
• Sirve tanto para control continuo como para control discreto,
clásico (en espacios transformados sobre sistemas LTI) y de otros
tipos (variables de estado, borroso, neuronal, robusto, no lineal,
etc.)
• En los dos campos permite realizar tareas de: modelado,
conversión de modelos y análisis de respuesta temporal,
frecuencial y en espacios transformados
• Las herramientas para obtención de los modelos de los sistemas
se encuentran en otra Toolbox: la de identificación
• Todas las funciones de control se encuentran en la demo de
control que se ejecuta con el comando MATLAB: ctrldemo
MODELADO DE SISTEMAS DE CONTROL CONTINUO
• Las funciones de la toolbox en MATLAB permiten trabajar solo
sobre sistemas lineales e invariantes continuos y discretos en el
tiempo, y en espacio transformado
• Permiten representar los sistemas LTI mediante 4 modelos
diferentes en los espacios transformados (‘s’ para sistemas
continuos y ‘z’ para sistemas discretos):
Función de transferencia
Función Polo-Cero
Descomposición en fracciones simples
Variables de Estado
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 36 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
FUNCIÓN DE TRANSFERENCIA
• El formato Función de Transferencia (FT) corresponde con
representaciones del siguiente tipo:
t-j
t
2-j
2
1j
1
n-m
n
2-m
2
1-m
1
s*b...s*bs*b
sa...s*as*a
den(s)
num(s)
H(s)
+++
+++
== −
• ¿Cómo se introduce en MATLAB una FT?: creando dos vectores
que contengan el valor de los coeficientes del numerador y
denominador del sistema en el espacio transformado
correspondiente
Ejemplo:
Obtenga el modelo MATLAB del siguiente sistema en formato FT:
5)1)(s4s(s
12s3s
H(s) 2
2
+++
++
=
A través de un fichero script, o de comandos de MATLAB:
num=[3 2 1]; %numerador
den1=[1 4 1]; %primer polinomio del denominador
den2=[1 5]; %segundo polinomio del denominador
den=conv(den1,den2); %multiplicación de dos polinomios
FORMATO POLO–CERO
• El formato polo–cero corresponde con representaciones del
siguiente tipo:
)p-)...(sp-)(sp-)(sp-(s
)z-)...(sz-)(sz-)(sz-(s
kH(s)
n321
n321
=
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 37 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
• ¿Cómo se introduce en MATLAB un sistema en este formato?: en
este caso se crean dos vectores que contengan el valor de los
polos y los ceros (raíces del denominador y del numerador
respectivamente) de la función de transferencia del sistema a
representar
Ejemplo:
Obtenga el modelo MATLAB del siguiente sistema en formato cero-
polo:
5)4)(s3)(s(s
2)1)(s(s
4H(s)
+++
++
=
Mediante un fichero script:
K=4; %constante del sistema
Z=[-1 –2]; %ceros del sistema
P=[-3 –4 –5]; %polos del sistema
CONVERSIÓN ENTRE FORMATOS
• Las siguientes funciones permiten realizar conversiones entre los
distintos formatos de representación de sistemas
residue Expansión en fracciones parciales
roots Obtiene las raíces de un polinomio
poly Obtiene un polinomio desde sus raíces
conv Permite multiplicar polinomios
tf2zp De FT a formato polo–cero
zp2tf De formato polo–cero a FT
c2dm, d2c Conversión entre el mundo discreto y el continuo
printsys Imprime la función de transferencia de un sistema
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 38 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Transformar de formato función de transferencia a formato polo cero la
siguiente función:
)102)(10010()2(
)1)(10(20
)(
)(
)( 3422
3
−++++
++
==
ssssss
ss
sD
sN
sG
En MATLAB:
num1=10;
num2=[1 10]; %(s+10)
num3=[1 0 0 1]; % (s^3+1)
NUM=conv(num1,(conv(num2,num3)));
den1=[1 0]; % (s)
den2=[1 2]; % (s+2)
den2=conv(den2,den2); %Generando (s+2)^2
den3=[1 10 100]; %(s^2+10s+100)
den4=[1 2 0 0 -10]; %(s^4+2s^3-10)
DEN=conv(den1,conv(den2,conv(den3,den4)));
[Z,P,K]=tf2zp(NUM,DEN); %CONVERSIÓN A CERO POLO
Ejemplo:
Transformar de formato polo-cero a formato función de transferencia la
siguiente función:
)2()3)(4(
)1(
)( 2342
3
+++++
+
=
sssss
s
sH
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 39 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
En MATLAB:
Z=[-1; -1; -1 ]; %(s+1)^3
D1=roots([1 5 2]); %Obtención de las raíces de (s^2+5s+2)
B=[1 3];
D2=roots(conv(B,B)); %(s+3)^2
P=[4; D2; D1];
k=1;
[NUM,DEN]=zp2tf(Z,P,k);
Si una vez hecho esto, se hace desde la ventana de comandos una
llamada a printsys(NUM,DEN), el resultado es el siguiente:
s^3 + 3 s^2 + 3 s + 1
----------------------------------------------------
s^5 + 7 s^4 - 3 s^3 - 107 s^2 - 210 s - 72
GENERACIÓN DE DIAGRAMA DE BLOQUES, CONEXIÓN DE
SISTEMAS
• La toolbox de MATLAB para control incluye también funciones
para resolver las funciones de transferencia expresadas
mediante diagrama de bloques
• Las siguientes funciones permiten realizar conexiones entre los
distintos bloques que conforman un sistema de control
cloop Cierra el lazo realimentación unitaria
feedback Conexión mediante realimentación
series Conexión en serie de modelos
parallel Conexión en paralelo de sistemas
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 40 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Obtener la función de transferencia total del sistema que se muestra a
continuación, suponiendo que se parte del conocimiento del
numerador y el denominador de cada bloque del diagrama
en MATLAB, de la siguiente forma:
[NUM,DEN]=feedback(NUMZP, DENZP, NUMTF,DENTF,-1);
[NUM,DEN]=cloop(NUM, DEN,-1);
Step Input
+
-
Sum
+
-
Sum1
25
s+10
Transfer Fcn
(s-1)(s-2)(s-3)
(s+1)(s+3)(s-4)
Zero-Pole Auto-Scale
Graph
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 41 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
5. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA
TOOLBOX DE CONTROL (I)
• Conjunto de instrucciones que facilitan el análisis de la respuesta
temporal, frecuencial y lugar de las raíces de un sistema de control.
• En este punto solo se van a presentar las funciones relacionadas
con el análisis temporal
RESPUESTA TEMPORAL
• Se usa para obtener características temporales del régimen
transitorio y del permanente o estacionario, de la respuesta de un
sistema a entradas diversas
• Las funciones de la toolbox de MATLAB utilizadas para generar
respuestas temporales ante entradas variadas, son las siguientes
step Respuesta a un escalón
impulse Respuesta a un impulso
lsim Entrada aleatoria
ginput Averiguar valores de un determinado punto de la gráfica
damp Permite obtener ωωωωn y ξξξξ
dcgain Permite obtener la ganancia estática de una FT
Nota: Las funciones step e impulse generan automáticamente una
gráfica de la respuesta temporal, en caso de no pedir ningún valor de
salida
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 42 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Dado el siguiente sistema determinar su respuesta al impulso y al
escalón:
1
1
)(
+
=
s
sH
La respuesta al impulso se obtendrá mediante el siguiente comando:
>>impulse([1],[1 1]);
Impulse Response
Time (sec)
Amplitude
0 1 2 3 4 5 6
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 43 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Posteriormente se llama a la función step, obteniéndose el resultado
gráfico que se muestra a continuación:
>>step([1],[1 1]);
Step Response
Time (sec)
Amplitude
0 1 2 3 4 5 6
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 44 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
6. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA
TOOLBOX DE CONTROL (II)
• La toolbox de control de MATLAB posee un conjunto de funciones
que permiten realizar fácilmente trazados del Lugar de las Raíces
de un sistema realimentado, así como sacar información a partir de
éste
• Las funciones relacionadas con el trazado del Lugar de las Raíces
se muestran en la siguiente tabla
Nota: la función rlocus abre directamente una ventana de figura nueva
y dibuja en ella el Lugar de las Raíces del sistema cuya F(s) (o F(z))se
pasa como parámetro. Sin embargo, la función rlocfind necesita de la
ejecución previa de la anterior para operar
Ejemplo:
Se desea conocer el trazado del Lugar de las Raíces del sistema
siguiente:
1
s +1.5s+82
Transfer Fcn1
s+13
s+10
Transfer Fcn
K
Gain
rlocus Trazado del Lugar de las Raíces (para ss. continuos y
discretos)
rlocfind Identificación concreta de un punto del lugar
pzmap Representación del diagrama de polos y ceros
sgrid Red de obtener ωωωωn y ξξξξ en el plano ‘s’
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 45 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Para resolverlo se ejecuta desde MATLAB el siguiente conjunto de
comandos:
NUMG=[1 13] %Numerador de G(s)
DENG=[1 10] %Denominador de G(s)
NUMH=[1] %Numerador de H(s)
DENH=[1 1.5 8] %Denominador de H(s)
N=conv(NUMG,NUMH) %Numerador de G(s)H(s)
D=conv(DENG,DENH) %Denominador de G(s)H(s)
rlocus(N,D)
sgrid
Root Locus
Real Axis
ImagAxis
-12 -10 -8 -6 -4 -2 0
-40
-30
-20
-10
0
10
20
30
40
40
35
30
25
20
15
10
5
40
35
30
25
20
15
10
5
0.7
0.4
0.28 0.19 0.135 0.095 0.06 0.03
0.7
0.4
0.28 0.19 0.135 0.095 0.06 0.03
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 46 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Obtenga para el sistema del ejemplo anterior cuál es el valor de K que
hace al sistema inestable
Dicho valor será aquél que haga que las raíces del lugar representado
anteriormente tengan parte real positiva. Para poder obtener dicho
valor se utiliza la función rlocfind, de esta forma:
>> rlocfind(N,D)
Obteniéndose el siguiente resultado en la ventana de comandos de
MATLAB:
>>Select a point in the graphics window
>>selected_point =
0.0482 +12.6479i
>>ans =
136.2106
Truco: Si se desea conocer además el valor que tienen todas las
raíces del sistema en lazo cerrado para esa K se deberá recoger como
parámetro de salida de rlocfind un vector que contendrá el dichos
valores de este modo:
>>[K,raices]= rlocfind(N,D)
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 47 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Ejemplo:
Si se desea que el sistema tenga una respuesta con coeficiente de
amortiguación de valor 0.1, indique cuál sería el valor de K necesario y
compruebe el resultado con la función step
Para conocer el valor de K con ξξξξ=0.1 se redibuja el Lugar de las
Raíces son rejilla y se invoca a la función sgrid de este modo
>> sgrid(0.1,2)
Donde el valor de ωn se ha fijado sin ningún criterio concreto
Después se llama vuelve a llamar a la función rlocfind, y se obtiene el
valor de K que será el fijado en el diagrama de bloques de Simulink
que permite obtener la espuesta al escalón del sistema en lazo
cerrado. El resultado se muestra en la figura siguiente:
0 2 4 6 8 10 12 14 16 18 20
-5
0
5
10
15
20
“Introducción a MATLAB, Toolbox de Control y Simulink”
Pág 48 Laboratorio de Sistemas Electrónicos de Control Continuo
I.T.T Sistemas Electrónicos
Para comprobar si la respuesta coincide con la de un sistema de
segundo orden típico, se obtiene el valor de Mp correspondiente al
coeficiente de amortiguación comentado. Calculando dicho valor el
resultado es de 72.9%
Como se observa, el Mp es mayor. Esto se debe a que el sistema en
lazo cerrado tiene además un cero y otro polo que no es del todo
dominante

Más contenido relacionado

La actualidad más candente

Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicasGermanGeorge
 
Elementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoElementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoAlanFher Gonzalez
 
Introducción a los Sistemas de Control y sus Elementos
Introducción a los Sistemas de Control y sus ElementosIntroducción a los Sistemas de Control y sus Elementos
Introducción a los Sistemas de Control y sus ElementosJeickson Sulbaran
 
Introducción al Control Automático
Introducción al Control AutomáticoIntroducción al Control Automático
Introducción al Control AutomáticoUNEFA
 
Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Mosfect en empobrecimiento
Mosfect en empobrecimientoMosfect en empobrecimiento
Mosfect en empobrecimientoRockian Loup
 
fuentes independientes
fuentes independientesfuentes independientes
fuentes independientesbeatrizavf2
 
Ingeniería de control: Retroalimentación y sistemas de control.pdf
Ingeniería de control: Retroalimentación y sistemas de control.pdfIngeniería de control: Retroalimentación y sistemas de control.pdf
Ingeniería de control: Retroalimentación y sistemas de control.pdfSANTIAGO PABLO ALBERTO
 
L09 sumador restador-binariode8bits
L09 sumador restador-binariode8bitsL09 sumador restador-binariode8bits
L09 sumador restador-binariode8bitsChristian Acuña
 
Fuentes independientes y dependientes
Fuentes independientes y dependientesFuentes independientes y dependientes
Fuentes independientes y dependientesvictor garcia
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRguest21fbd4
 
Control de motor trifasico con spwm
Control de motor trifasico con spwmControl de motor trifasico con spwm
Control de motor trifasico con spwmhenrytosco5
 

La actualidad más candente (20)

Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicas
 
Reporte compuertas logicas
Reporte compuertas logicas Reporte compuertas logicas
Reporte compuertas logicas
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
Familias Lógicas
Familias Lógicas Familias Lógicas
Familias Lógicas
 
Elementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctricoElementos pasivos y activos en un circuito eléctrico
Elementos pasivos y activos en un circuito eléctrico
 
Introducción a los Sistemas de Control y sus Elementos
Introducción a los Sistemas de Control y sus ElementosIntroducción a los Sistemas de Control y sus Elementos
Introducción a los Sistemas de Control y sus Elementos
 
Transductores pasivos
Transductores  pasivosTransductores  pasivos
Transductores pasivos
 
Introducción al Control Automático
Introducción al Control AutomáticoIntroducción al Control Automático
Introducción al Control Automático
 
Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Los Flip Flops
Los Flip FlopsLos Flip Flops
Los Flip Flops
 
Mosfect en empobrecimiento
Mosfect en empobrecimientoMosfect en empobrecimiento
Mosfect en empobrecimiento
 
Subestaciones
SubestacionesSubestaciones
Subestaciones
 
fuentes independientes
fuentes independientesfuentes independientes
fuentes independientes
 
Ingeniería de control: Retroalimentación y sistemas de control.pdf
Ingeniería de control: Retroalimentación y sistemas de control.pdfIngeniería de control: Retroalimentación y sistemas de control.pdf
Ingeniería de control: Retroalimentación y sistemas de control.pdf
 
Ejemplos de lazo abierto
Ejemplos de lazo abiertoEjemplos de lazo abierto
Ejemplos de lazo abierto
 
L09 sumador restador-binariode8bits
L09 sumador restador-binariode8bitsL09 sumador restador-binariode8bits
L09 sumador restador-binariode8bits
 
Proyecto 7 Flip Flop
Proyecto 7 Flip FlopProyecto 7 Flip Flop
Proyecto 7 Flip Flop
 
Fuentes independientes y dependientes
Fuentes independientes y dependientesFuentes independientes y dependientes
Fuentes independientes y dependientes
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGR
 
Control de motor trifasico con spwm
Control de motor trifasico con spwmControl de motor trifasico con spwm
Control de motor trifasico con spwm
 

Destacado

Introducci´on a matlab y simulink para el control
Introducci´on a matlab y simulink para el controlIntroducci´on a matlab y simulink para el control
Introducci´on a matlab y simulink para el control3inar
 
2 detalles de simulink y control
2 detalles de simulink y control2 detalles de simulink y control
2 detalles de simulink y controlMartin Carlos
 
Calculo de cortocircuito_65pag
Calculo de cortocircuito_65pagCalculo de cortocircuito_65pag
Calculo de cortocircuito_65pagVon Pereira
 
Tipos de Control
Tipos de ControlTipos de Control
Tipos de Controlluis Knals
 
Sistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkSistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkMarc Llanos
 
13924257 calculo-de-las-corrientes-de-cortocircuito
13924257 calculo-de-las-corrientes-de-cortocircuito13924257 calculo-de-las-corrientes-de-cortocircuito
13924257 calculo-de-las-corrientes-de-cortocircuito1451273
 
Manual simulink
Manual simulinkManual simulink
Manual simulinkcosococo
 

Destacado (9)

Riesgos eléctricos
Riesgos eléctricosRiesgos eléctricos
Riesgos eléctricos
 
Introducci´on a matlab y simulink para el control
Introducci´on a matlab y simulink para el controlIntroducci´on a matlab y simulink para el control
Introducci´on a matlab y simulink para el control
 
Curso calidad potencia
Curso calidad potenciaCurso calidad potencia
Curso calidad potencia
 
2 detalles de simulink y control
2 detalles de simulink y control2 detalles de simulink y control
2 detalles de simulink y control
 
Calculo de cortocircuito_65pag
Calculo de cortocircuito_65pagCalculo de cortocircuito_65pag
Calculo de cortocircuito_65pag
 
Tipos de Control
Tipos de ControlTipos de Control
Tipos de Control
 
Sistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkSistemas dinamicos con_simulink
Sistemas dinamicos con_simulink
 
13924257 calculo-de-las-corrientes-de-cortocircuito
13924257 calculo-de-las-corrientes-de-cortocircuito13924257 calculo-de-las-corrientes-de-cortocircuito
13924257 calculo-de-las-corrientes-de-cortocircuito
 
Manual simulink
Manual simulinkManual simulink
Manual simulink
 

Similar a Tutorial de MatLab (20)

Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
Matlab
MatlabMatlab
Matlab
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink
 
Matlab scientific scilab_mathematics
Matlab scientific scilab_mathematicsMatlab scientific scilab_mathematics
Matlab scientific scilab_mathematics
 
Curso matlab básico semestre 1 - 2017
Curso matlab básico   semestre 1 - 2017Curso matlab básico   semestre 1 - 2017
Curso matlab básico semestre 1 - 2017
 
Apuntes matlab
Apuntes matlabApuntes matlab
Apuntes matlab
 
Matlab
MatlabMatlab
Matlab
 
2_LenguajeMATLAB
2_LenguajeMATLAB2_LenguajeMATLAB
2_LenguajeMATLAB
 
Manualmv1
Manualmv1Manualmv1
Manualmv1
 
Intro matlab msantos
Intro matlab msantosIntro matlab msantos
Intro matlab msantos
 
matlab (2).pptx
matlab (2).pptxmatlab (2).pptx
matlab (2).pptx
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Copiade documento(2)
Copiade documento(2)Copiade documento(2)
Copiade documento(2)
 
Computacion ii cap i
Computacion ii cap iComputacion ii cap i
Computacion ii cap i
 
computacion
computacioncomputacion
computacion
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
Apuntes matlab
Apuntes matlabApuntes matlab
Apuntes matlab
 
Respuesta en frecuencia
Respuesta en frecuenciaRespuesta en frecuencia
Respuesta en frecuencia
 
Matlab
MatlabMatlab
Matlab
 
Matlab robotica
Matlab roboticaMatlab robotica
Matlab robotica
 

Último

Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasJilvertHuisaCenteno
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)esmerling14
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLucindaMy
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaCulturaGeneral1
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfAnthony Gualpa
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmáncesarguzmansierra751
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptxJOSLUISCALLATAENRIQU
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEfrain Yungan
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfLABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfPeraltaFrank
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfesparzadaniela548
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfjhorbycoralsanchez
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Categorización de las industrias mas relevantes del ecuador.pdf
Categorización de las industrias mas relevantes del ecuador.pdfCategorización de las industrias mas relevantes del ecuador.pdf
Categorización de las industrias mas relevantes del ecuador.pdfAnthony Gualpa
 

Último (20)

Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitarias
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA Colombia
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdf
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmán
 
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx5. MATERIAL COMPLEMENTARIO - PPT  de la Sesión 02.pptx
5. MATERIAL COMPLEMENTARIO - PPT de la Sesión 02.pptx
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfLABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdfMETROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
METROLOGÍA ÓPTICA E INSTRUMENTACIÓN BÁSICA.pdf
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdf
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Categorización de las industrias mas relevantes del ecuador.pdf
Categorización de las industrias mas relevantes del ecuador.pdfCategorización de las industrias mas relevantes del ecuador.pdf
Categorización de las industrias mas relevantes del ecuador.pdf
 

Tutorial de MatLab

  • 1. Departamento de Electrónica Universidad de Alcalá “Introducción a MATLAB, Toolbox de Control y Simulink” Ingeniería Técnica de Telecomunicación Especialidad Sistemas Electrónicos
  • 2. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 2 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 1. ¿QUÉ ES MATLAB?. • Paquete software orientado al cálculo numérico, matrices, procesamiento y análisis de la señal y gráficas • Distintos campos de acción (aplicaciones): Teoría de control Tratamiento de señales Inteligencia artificial Diseño de sistemas de potencia Control de procesos mecánicos, de aviación, automoción, etc. Financiero Mapeo y tratamiento de imágenes Instrumentación y adquisición de datos Identificación de sistemas ... • Varios programas incluidos MATLAB: Núcleo operativo de la herramienta matemática Toolboxes: Librerías de funciones MATLAB asociadas a las diferentes aplicaciones (Stateflow y Sisotool, interfaz gráfico, control neuronal y borroso) Simulink: Interfaz gráfico para el modelado y simulación de sistemas Blocksets: Bloques Simulink para aplicaciones específicas Real Time Workshop, xPC Tarjet y desarrollo sobre DSPs y FPGAs
  • 3. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 3 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Diferentes tipos de archivos: *.M Ficheros por lotes (*.bat) sobre S.O. MATLAB *.MAT Fichero de datos de MATLAB *.DLL Ficheros ejecutables sobre Windows diseñados con MATLAB *.MDL Modelos de Simulink Otros *.fis, *.tbl, etc. para toolboxes de control borroso, stateflow y otros paquetes ENTORNO DE TRABAJO • Varias ventanas de trabajo dentro de MATLAB Ventana de comandos: Directamente sobre S.O. MATLAB Entorno de trabajo (Workspace): Visualiza las variables definidas en cada instante Editor de ficheros *.m: Editor inteligente (colores e indentado) con depurador paso a paso y visualización de variables internas Editor de ficheros *.mdl: Editor gráfico para diseñar modelos de Simulink Elección del directorio de trabajo: Explorador de Windows Figuras: Potente editor de figuras con posibilidad de incluir textos, cambiar el formato, etc.
  • 4. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 4 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos
  • 5. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 5 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 2. EL USO DE MATLAB MANIPULACIÓN Y FORMATO DE DATOS • Se trabaja con matrices de números reales o/y complejos. • Los números complejos se definen gracias a los operadores i y j de MATLAB. Así se puede escribir en MATLAB x=3+2j, que se definirá como una matriz de tamaño 1x1 • Un escalar es una matriz de tamaño 1x1 • Una variable fila o columna es un vector, o un array • Existen distintos formatos de datos con los que puede trabajar MATLAB: Short: 5 dígitos, punto fijo Short e: 5 dígitos, punto flotante Long: 15 dígitos, punto fijo Long e: 15 dígitos, punto flotante Hex: Hexadecimal • Para indicar que se va a trabajar con uno u otro formato de datos se utiliza la función de MATLAB “format” GENERACIÓN DE MATRICES • ¿Cómo generar una fila? A=[a b c d e] ó A=[a, b, c, d, e]
  • 6. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 6 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • ¿Cómo generar una columna? B=[a; b; c; d; e] ó                 = e d c b a B • ¿Cómo generar una matriz? A= [a, b, c; d, e, f; g, h, i] ó • ¿Cómo generar un serie de datos? A(punto inicial: incremento: punto final) Ejemplo: B=[1:1:8] Con lo que se define un array B con el siguiente contenido: B=[1 2 3 4 5 6 7 8 ] SUBMATRICES Y ELEMENTOS DE UNA MATRIZ • Para identificar un elemento de una matriz se usa la notación A(i,j) dónde i es la i-ésima fila y j es la j-ésima columna.           = ihg fed cba A
  • 7. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 7 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Sea A la siguiente matriz: Para identificar al nº 4 dentro de la matriz A se puede indicar como A(2,1) • Se puede identificar una parte de una matriz (submatriz) con la siguiente notación: A(fila_inicial:fila_final, col_inicial:col_final) Ejemplo: A partir de la matriz A definida en el ejemplo anterior, se define la matriz B de la siguiente forma: B=A(1:3,1:2) Entonces B será una nueva matriz de valor: Truco: El operador : puede utilizarse para identificar a todos los elementos en una serie de datos. Así en el ejemplo anterior B=A(1:3,1:2) es lo mismo que B=A(:,1:2)           = 987 654 321 A           = 87 54 21 B
  • 8. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 8 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos VARIABLES • A la hora de definir una variable (matriz, submatriz, array o escalar) se distingue entre mayúsculas y minúsculas. • Cuando se llama a una función de MATLAB sin especificar variable de salida, se vuelca el resultado en la variable por defecto ans. La notación ; omite la presentación del resultado en pantalla al final de un comando COMANDOS Y FUNCIONES DE MATLAB • MATLAB posee gran número de funciones provenientes de: MATLAB: Juego de funciones y operadores básico Toolbox: Dependiendo del tipo añadirá funciones especiales Generadas por el usuario: funciones o scripts • Operadores de uso general (help general) help Comando de ayuda who (s) Lista de variables (con s indica info sobre variable) what (o dir) Lista de ficheros .M y .MAT clear Borrar variables load Carga de variables desde un fichero save Guardar variables a un fichero *.mat cd Cambiar de directorio de trabajo ! Ejecutar funciones DOS ... Continúa en la línea siguiente % Comentario en una función demo Llamada a los ejemplos de uso de MATLAB mex Compilar ficheros de MATLAB Truco: Es muy recomendable el uso de la help de MATLAB
  • 9. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 9 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Operadores para matrices y arrays y variables especiales (help ops) ans Most recent answer. eps Floating point relative accuracy. realmax Largest positive floating point number. realmin Smallest positive floating point number. pi 3.1415926535897.... i, j Imaginary unit. inf Infinity. NaN Not a number isnan True for Not a number isinf True for infinite elements. isfinite True for finite elements. why Succinct answer. Nota: Es importantísimo tener en cuenta la propiedad conmutativa en algunas operaciones aritméticas de matrices. A/B ≠ B/A ya que A/B= A*B-1 y B/A= B*A-1
  • 10. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 10 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Otras funciones especiales, que se organizan en diferentes categorías. Las que no pertenecen a ninguna toolbox ni blockset específico se muestran en la siguiente tabla: MATLABlang Programming language constructs. MATLABelmat Elementary matrices & matrix manipulation. MATLABelfun Elementary math functions. MATLABspecfun Specialized math functions. MATLABmatfun Matrix functions MATLABdatafun Data analysis and Fourier transforms. MATLABaudio Audio support. MATLABpolyfun Interpolation and polynomials. MATLABfunfun Function functions and ODE solvers. MATLABsparfun Sparse matrices. MATLABgraph2d Two dimensional graphs. MATLABgraph3d Three dimensional graphs. MATLABspecgraph Specialized graphs. MATLABgraphics Handle Graphics. MATLABuitools Graphical user interface tools. MATLABstrfun Character strings. MATLABiofun File input/output. MATLABtimefun Time and dates. MATLABdatatypes Data types and structures. MATLABverctrl Version control. MATLABdemos Examples and demonstrations. De entre ellas se pueden remarcar algunas más interesantes: • Polinomios (help polyfun) roots Find polynomial roots. poly Convert roots to polynomial. polyval Evaluate polynomial. polyvalm Evaluate polynomial with matrix argument.
  • 11. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 11 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos residue Partial fraction expansion (residues). polyfit Fit polynomial to data. polyder Differentiate polynomial. polyint Integrate polynomial analytically. conv Multiply polynomials. deconv Divide polynomials. Además de éstas, en esta categoría, hay funciones específicas para análisis geométrico y de interpolación. • Estructuras del lenguaje MATLAB (help lang) (solo las más representativas) if Conditionally execute statements. else IF statement condition. elseif IF statement condition. end Terminate scope of FOR, WHILE, SWITCH, TRY and IF for Repeat statements a specific number of times. while Repeat statements an indefinite number of times. break Terminate execution of WHILE or FOR loop. continue Pass control to the next iteration of FOR or WHILE loop. switch Switch among several cases based on expression. case SWITCH statement case. otherwise Default SWITCH statement case. try Begin TRY block. catch Begin CATCH block. return Return to invoking function. error Display error message and abort function. warning Display warning message. lasterr Last error message. lastwarn Last warning message. disp Display an array. display Overloaded function to display an array. fprintf Display formatted message.
  • 12. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 12 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos sprintf Write formatted data to a string. input Prompt for user input. keyboard Invoke keyboard from M file pause Wait for user response. uimenu Create user interface menu. uicontrol Create user interface control. • Generación de matrices (help elmat) zeros Zeros array. ones Ones array. eye Identity matrix. repmat Replicate and tile array. rand Uniformly distributed random numbers. randn Normally distributed random numbers. linspace Linearly spaced vector. logspace Logarithmically spaced vector. freqspace Frequency spacing for frequency response. meshgrid X and Y arrays for 3 D plots.
  • 13. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 13 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Funciones Elementales. sin Sine. sinh Hyperbolic sine. asin Inverse sine. asinh Inverse hyperbolic sine. cos Cosine. cosh Hyperbolic cosine. acos Inverse cosine. acosh Inverse hyperbolic cosine. tan Tangent. tanh Hyperbolic tangent. atan Inverse tangent. atan2 Four quadrant inverse tangent. atanh Inverse hyperbolic tangent. sec Secant. sech Hyperbolic secant. asec Inverse secant. asech Inverse hyperbolic secant. csc Cosecant. csch Hyperbolic cosecant. acsc Inverse cosecant. acsch Inverse hyperbolic cosecant. cot Cotangent. coth Hyperbolic cotangent. acot Inverse cotangent. acoth Inverse hyperbolic cotangent. exp Exponential. log Natural logarithm. log10 Common (base 10) logarithm. log2 Base 2 logarithm and dissect floating point number. pow2 Base 2 power and scale floating point number. sqrt Square root. nextpow2 Next higher power of 2. abs Absolute value.
  • 14. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 14 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos angle Phase angle. complex Construct complex data from real & imaginary parts. conj Complex conjugate. imag Complex imaginary part. real Complex real part. unwrap Unwrap phase angle. isreal True for real array. cplxpair Sort numbers into complex conjugate pairs. fix Round towards zero. floor Round towards minus infinity. ceil Round towards plus infinity. round Round towards nearest integer. mod Modulus (signed remainder after division). rem Remainder after division. sign Signum. • Análisis de datos max Largest component. min Smallest component. mean Average or mean value. median Median value. std Standard deviation. var Variance. sort Sort in ascending order. sum Sum of elements. prod Product of elements. hist Histogram. histc Histogram count. trapz Trapezoidal numerical integration. diff Difference and approximate derivative. gradient Approximate gradient. cov Covariance matrix. filter One dimensional digital filter.
  • 15. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 15 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos filter2 Two dimensional digital filter conv Convolution and polynomial multiplication. convn N dimensional convolution deconv Deconvolution and polynomial division. fft Discrete Fourier transform. fftn N dimensional discrete Fourier Transform. ifft Inverse discrete Fourier transform. ifftn N dimensional inverse discrete Fourier Transform. • Manipulación de matrices norm Matrix or vector norm. normest Estimate the matrix 2 norm rank Matrix rank. det Determinant. trace Sum of diagonal elements. null Null space. orth Orthogonalization. inv Matrix inverse. pinv Pseudoinverse. lscov Least squares with known covariance. eig Eigenvalues and eigenvectors. svd Singular value decomposition. gsvd Generalized singular value decomposition. eigs A few eigenvalues. svds A few singular values. polyeig Polynomial eigenvalue problem. expm Matrix exponential. logm Matrix logarithm. sqrtm Matrix square root.
  • 16. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 16 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos FUNCIONES DE REPRESENTACIÓN GRÁFICA • La función más importante es “plot”, que abre una ventana de figura y representa en ella (en general) los datos que le son pasados como parámetros. Para representar x=f(t) se hará la llamada plot (t,x) • Se puede incluir información sobre el formato del gráfico (color, tipo de línea, etc). Las opciones posibles son las que se muestran a continuación (help plot): • Permite realizar representaciones de varias señales en una misma figura. Para ello simplemente se incluyen todas las variables en una misma llamada a plot. * star + plus -- dashed x x-mark -. dashdot o circle : dotted . point - solid ^ triangle (up) < triangle (left) > triangle (right) v triangle (down) d diamond s square p pentagram h hexagram y yellow m magenta c cyan r red g green b blue w white k black Color Tipo de línea
  • 17. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 17 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Funciones asociadas a plot: loglog Log log scale plot. semilogx Semi log scale plot. semilogy Semi log scale plot. polar Polar coordinate plot. zoom Zoom in and out on a 2 D plot. grid Grid lines. subplot Create axes in tiled positions. plotedit Tools for editing and annotating plots. legend Graph legend. title Graph title. xlabel X axis label. ylabel Y axis label. text Text annotation. gtext Place text with mouse. Merece la pena especial atención a la función “subplot” que divide la pantalla gráfica (ventana de figura) en N filas y M columnas. El formato función es subplot (N, M, J), donde J es la sub-figura sobre la que se quiere dibujar. • Funciones asociadas a las figuras en general figure Create figure window. clf Clear current figure. close Close figure. subplot Create axes in tiled positions. cla Clear current axes. axis Control axis scaling and appearance. hold Hold current graph. ishold Return hold state. line Create line. text Create text.
  • 18. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 18 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos surface Create surface. image Create image. set Set object properties. get Get object properties. drawnow Flush pending graphics events. Ejemplo: Representar una señal senoidal y otra cosenoidal en la misma figura entre 0 y 6π (3 periodos de la señal senoidal). Se haría de la siguiente forma: t=(0:0.1:6*pi) % el incremento de punto a punto de la gráfica será de 0.1 x=sin(t) % se crea el vector x, será la salida senoidal y=cos(t) % se crea el vector y, será salida cosenoidal plot(t,x,’b’,t,y,’c+’) % se dibujan en la misma gráfica y con distintos formatos de ploteado (color y punteado) Además, con las siguientes líneas de MATLAB se han incorporado los textos a la figura: grid title(‘Ejemplo funcion seno y coseno’) xlabel(‘tiempo’) ylabel(‘seno/coseno’) gtext(‘valor nulo’) % y se coloca el texto en el punto deseado gtext(‘valor máximo’) % y se coloca el texto en el punto deseado gtext(‘valor mínimo’) % y se coloca el texto en el punto deseado El resultado es una ventana figura como la que se muestra a continuación:
  • 19. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 19 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Se desea representar ahora las señales senoidal y cosenoidal en la misma ventana de figuras pero por separado, por lo que se usa subplot, de este modo: subplot(2,1,1) % se elige la subfigura primera o superior: fila 1ª, columna 1ª plot(t,x,'b') grid title(‘Ejemplo funcion seno’) xlabel(‘tiempo’) ylabel(‘seno’) subplot(2,1,2) % se elige la subfigura segunda o inferior: fila 2ª, columna 1ª plot(t,y,'c+') grid title(‘Ejemplo funcion coseno’) xlabel(‘tiempo’) ylabel(‘coseno’)
  • 20. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 20 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Tal y como se observa todas las funciones de dibujo se refieren a la sub-figura elegida con la función subplot. El resultado es el que se muestra a continuación: 0 2 4 6 8 10 12 14 16 18 20 -1 -0.5 0 0.5 1 Ejemplo funcion seno tiempo seno 0 2 4 6 8 10 12 14 16 18 20 -1 -0.5 0 0.5 1 coseno tiempo Ejemplo funcion coseno FICHEROS *.M: SCRIPTS Y FUNCIONES. • Son archivos tipo ASCII (se realizan en cualquier editor ASCII, aunque conviene usar el que tiene MATLAB para ello, pues incluye un depurador) que contienen una serie de órdenes incluso llamadas a otros ficheros *. M • Ambas se pueden llamar desde la línea de comandos de MATLAB o desde otra estructura similar
  • 21. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 21 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Los ficheros tipo scripts: Están compuestos por llamadas a otras funciones de MATLAB (parecido a las llamadas realizadas por DOS en los ficheros *.BAT) Puede utilizar las variables del entorno de trabajo (Workspace) y devuelve los resultados a este mismo entorno. Se trata por tanto de trabajo con variables globales Se suelen utilizar para tareas de inicialización o de definición de un gran número de variables en el entorno de trabajo • Por su parte, las funciones: Comienzan con la palabra clave function en la primera línea del fichero Es una aplicación (función) definida por el usuario a la que se le pasan parámetros y que permite devolver parámetros, de forma similar a funciones en ‘C’. La sintaxis para el paso de parámetros es la siguiente: function [salida1, salida2,...] = nom_función(param1, param2,...) Las variables que utiliza son, por tanto, locales a la función (principal diferencia con los scripts) La función definida por el usuario se podrá invocar desde la línea de comandos o desde cualquier script Deben de coincidir el nombre del fichero y el nombre de la función a implementar Tras la primera línea (function... ) se inctroducen líneas de comentario (comienzan por %), que serán la ayuda de la función que se presente en la ventana de comandos de MATLAB cuando se invoque a la ayuda de dicha función. Por ejemplo si se define la función prueba de este modo: function prueba() %esta función no tiene parámetros de entrada ni de salida
  • 22. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 22 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Cuando se invoque a la ayuda de la función en la ventana de órdenes de MATLAB aparecerá lo siguiente: >> help prueba >> esta función no tiene parámetros de entrada ni de salida • Suele ser habitual utilizar sentencias de control (ver help lang) en la escritura de las funciones y los scrips • Algunas de las funciones más habituales en las funciones y los scrips Input: Asigna un valor introducido por teclado a una variable. Muestra una cadena de caracteres. Keyboard: Introduce un punto de ruptura en la secuencia de ejecución de la función. En ese momento se le permite acceder al usuario a las variables locales y globales del sistema. Se sale de este modo tecleando RETURN Pause: Introduce una pausa en la ejecución de la función. Se continua con la ejecución pulsando cualquier tecla Ejemplo: Crear una función llamada MEDIA que calcule el valor medio de un array. function y=media(x) [m,n]=size(x); if m==1 %es por tanto un vector y=sum(x)/n; else error ('Debes de introducir un vector'); end
  • 23. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 23 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Realizar una función en MATLAB que permita resolver un sistema lineal de ‘n’ ecuaciones con ‘n’ incógnitas (siendo ‘n’ un valor cualquiera). El formato de llamada a la función debe ser el siguiente: [sol,n_sol]=sistema(S) donde: • sol= vector que contiene las soluciones al sistema • N_sol= número de soluciones del sistema • S=matriz que contiene los coeficientes y términos independientes de las n ecuaciones en el siguiente formato: function [sol,n_sol]=prac2_1(S) %FUNCION QUE RESUELVE UN SISTEMA DE ECUACIONES [filas,columnas]=size(S); if (filas>columnas) error('Sistema de ecuaciones no correcto') else %vector formado por la ultima col Aux_1=S(:,columnas); %Se convierten los términos independientes a valor % positivo ya que el usuario los introduce como valor negativo Aux_1=Aux_1*(-1); columnas=columnas-1; %matriz cuadrada formada por los coeficientes de las variables Aux=S(:,1:columnas); Aux_inv=inv(Aux); %Aux_inv=Aux-1 sol=Aux_inv*Aux_1; %matriz solucion 0525 01325 023 =−−+− =−++ =−+− cba cba cba           − = 5-2-51- 1-325 2-113 S
  • 24. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 24 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos [n_sol, a]=size(sol); %retorno del resultado end Ejemplo: Crear una función llamada MAXIMO que devuelva el mayor de los elementos de un vector. N=maximo(A) • N= número mayor de A; • A= vector enviado; function x=maximo(A) % Se introduce un vector y se obtiene el valor maximo de él [m,n]=size(A); %Se saca el numero de columnas y filas if m==1 %Se trata de un vector long=length(A); i=2; sol=A(1); while (i<=long) if A(i)>=sol %Se compara si el valor actual es %mayor que el anterior. Si lo es sol=A(i); %se acumula end %fin del if i=i+1; end %fin del while x=sol; else error ('Introduce un vector y no una matriz'); end %fin del if principal
  • 25. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 25 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 3. EL USO DE SIMULINK • Herramienta gráfica incorporada a Matlab, que permite de forma más fácil definir el modelo de sistemas de muy diferentes tipos (no solo LTI) y aplicaciones • Los elementos de trabajo de un modelo de Simulink son objetos o iconos, agrupados en librerías que proporciona el paquete integrado de Matlab para las distintas aplicaciones • El fichero asociado a cada modelo es un *.MDL, que puede ser abierto como un fichero *.M cualquiera (tiene una estructura especial pero el funcionamiento es el mismo) • Se puede llamar a la librería de bloques de Simulink (ventana Simulink) desde la ventana de comandos tecleando “Simulink”, o abrir directamente un fichero *.MDL • Pasos a seguir para trabajar con Simulink: 1. Definición gráfica del modelo a simular con las librerías de Matlab para Simulink 2. Simulación del modelo y análisis de resultados, que se pueden mostrar directamente en Simulink o a través de Matlab enviando los resultados al entorno de trabajo • Librerías de Simulink Posee librerías distribuidas en función de la aplicación. Tiene una librería básica, llamada Simulink, con el siguiente contenido: Sources (fuentes de señal) Sinks (sumideros o almacén de resultados) Continuous Discrete No linear
  • 26. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 26 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Signals&Systems (buses, multiplexores y demultiplexores, puertos para enviar señales de un modelo a otro, etc.) Math (trigonométricas, aritméticas, etc.) Funciones y tablas (llamadas a funciones de Matlab o de usuario y tablas de look-up) ... • Hay librerías específicas para cada aplicación (Blocksets y Toolboxes): Control (controladores ya diseñados) Control Borroso Control Neuronal Identificación Power DSP Fixed Point Comunicaciones RTW y xPC Tarjet Stateflow User Interface ... • El usuario puede definir nuevas librerías a partir de algún modelo realizado, mediante los bloques S-function
  • 27. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 27 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos OBJETOS BÁSICOS DE SIMULINK • Fuentes: Emisores de información (Generadores de señales, señal rampa, impulso, ...) • Procesos: Bloques de E/S de todos los tipos antes mencionados • Destinos: Receptores de información
  • 28. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 28 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Conexiones: Son unidireccionales. Hipotéticos cables. CREACIÓN DE UN MODELO SIMULINK • Para generar un diagrama de bloques, una vez abierto un fichero *.MDL nuevo y con ventana de Simulink, se sigue el siguiente proceso: 1. Se abre la librería donde se encuentra el elemento necesario. 2. Para copiar un objeto de la sesión de trabajo, basta con seleccionar el objeto y arrastrarlo 3. Para hacer una conexión entre una salida y una entrada, se posiciona el cursor sobre la salida de la fuente o la entrada, se pulsa el botón izquierdo del ratón y sin soltarlo se desplaza el cursor hasta el otro punto que se desea unir 4. Haciendo doble click sobre los elementos copiados se modifican los parámetros de éste. (Admiten parámetros que sean variables de Workspace) Ejemplo Realizar el diagrama de bloques de la figura: 1. Se entra en Simulink y se abre una ventana nueva.
  • 29. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 29 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 2. Se abre la librería continuous y se copian los bloques sumador y F.T. 3. Se abre la librería sources y se copia el bloque escalón (step input) 4. Se abre la librería sinks y se copia el bloque scope 5. Se unen mediante el ratón los bloques. 6. Se editan los bloques para que aparezcan como en la figura (en el bloque “Trasnfer Fcn” Numerator y Denominator han de contener los coeficientes del polinomio correspondiente en potencias decrecientes de ‘s’). En el ejemplo: Numerator [1 2] Denominator [1 2 5] 7. Se salva el fichero (*.MDL). Truco: Probar a definir los parámetros de configuración de los bloques mediante variables definidas previamente en el entorno de trabajo de MATLAB. De este modo se facilita el diseño de sistemas en base a un modo de funcionamiento prueba-error CONFIGURACIÓN DE LA SIMULACIÓN • Es importante configurar la simulación antes de realizarla. Para ello, en el menú principal de la ventana del modelo (*.MDL) creado con Simulink ir a Simulation Parameters • Permite configurar diferentes características sobre la simulación, a saber: La forma de resolver el sistema de ecuaciones diferenciales que componen el modelo diseñado en Simulink y al tiempo de simulación
  • 30. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 30 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Las variables de salida que ha de generar la simulación en el entorno de trabajo de MATLAB Otros parámetros avanzados de simulación, como la configuración de los avisos y errores que ha de generar la simulación por conexiones incorrectas, o la configuración de la compilación del modelo con la herramienta RTW
  • 31. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 31 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • Con respecto al paso de SIMULACIÓN, es necesario tener en cuenta ciertos aspectos básicos El paso de simulación es el intervalo de integración de los algoritmos de resolución del modelo Se puede definir variable (lo fija Simulink en función del modelo concreto a simular) en todos los casos excepto en la generación de código RTW Si el paso de simulación es muy bajo el tiempo de ejecución elevado (puntos excesivos), y si es muy bajo la resolución es peor (se pierde definición del sistema), pudiendo incluso llegar a no representar correctamente le comportamiento del sistema al no cumplir la teoría de sistemas muestreados (al fin y al cabo la simulación de sistemas continuos con Simulink pretende representar su comportamiento real en el tiempo) Una regla práctica es hacer que el paso de simulación sea al menos de la décima parte del tiempo de subida de la respuesta del sistema • Con respecto a las variables de salida de Simulink, es necesario comentar también un punto: Se pueden pasar las respuestas de las simulación al Workspace de MATLAB a través de los bloques “to Workspace” de Simulink Convendrá también tener en el entorno de trabajo el array de tiempo con el que se ha generado la simulación Éste se puede generar con un bloque “Clock” de Simulink y pasarlo a MATLAB del mismo modo, pero también se puede usar la variable tout que se genera automáticamente si así se indica en la configuración de la simulación La variable yout que se genera del mismo modo contiene el resultado de las señales conectadas a puertos de salida del modelo de Simulink
  • 32. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 32 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Visualizar el resultado de la simulación del modelo del ejemplo anterior Nota: Prestar atención a que la respuesta coincida exactamente con la aquí mostrada y modificar la configuración de los bloques de Simulink correspondientes para que así sea Ejemplo: Variar el modelo anterior para implementar el siguiente sistema. Visualizar desde MATLAB y desde Simulink los resultados (variable Salida frente al tiempo) Desde Simulink: con el bloque Scope:
  • 33. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 33 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Desde MATLAB: >>plot(tout, Salida); o >>plot(tiempo, Salida);
  • 34. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 34 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Truco: Se puede arrancar la simulación de un modelo preexistente (fichero *.MDL) con la función sim de MATLAB, con la siguiente sintaxis: [T,X,Y] = sim('modelo', [TInicio TFin] ,OPTIONS,UT) Donde los parámetros 2º al 4º de la llamada a sim son opcionales Ejemplo: Realizar el siguiente diagrama de bloques y representar desde MATLAB la señal de salida ¿Para qué sirve el multiplexor?
  • 35. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 35 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 4. LA TOOLBOX DE CONTROL DE MATLAB • Funciones de aplicación específica para ingeniería de control de sistemas. Son ficheros *.M • Sirve tanto para control continuo como para control discreto, clásico (en espacios transformados sobre sistemas LTI) y de otros tipos (variables de estado, borroso, neuronal, robusto, no lineal, etc.) • En los dos campos permite realizar tareas de: modelado, conversión de modelos y análisis de respuesta temporal, frecuencial y en espacios transformados • Las herramientas para obtención de los modelos de los sistemas se encuentran en otra Toolbox: la de identificación • Todas las funciones de control se encuentran en la demo de control que se ejecuta con el comando MATLAB: ctrldemo MODELADO DE SISTEMAS DE CONTROL CONTINUO • Las funciones de la toolbox en MATLAB permiten trabajar solo sobre sistemas lineales e invariantes continuos y discretos en el tiempo, y en espacio transformado • Permiten representar los sistemas LTI mediante 4 modelos diferentes en los espacios transformados (‘s’ para sistemas continuos y ‘z’ para sistemas discretos): Función de transferencia Función Polo-Cero Descomposición en fracciones simples Variables de Estado
  • 36. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 36 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos FUNCIÓN DE TRANSFERENCIA • El formato Función de Transferencia (FT) corresponde con representaciones del siguiente tipo: t-j t 2-j 2 1j 1 n-m n 2-m 2 1-m 1 s*b...s*bs*b sa...s*as*a den(s) num(s) H(s) +++ +++ == − • ¿Cómo se introduce en MATLAB una FT?: creando dos vectores que contengan el valor de los coeficientes del numerador y denominador del sistema en el espacio transformado correspondiente Ejemplo: Obtenga el modelo MATLAB del siguiente sistema en formato FT: 5)1)(s4s(s 12s3s H(s) 2 2 +++ ++ = A través de un fichero script, o de comandos de MATLAB: num=[3 2 1]; %numerador den1=[1 4 1]; %primer polinomio del denominador den2=[1 5]; %segundo polinomio del denominador den=conv(den1,den2); %multiplicación de dos polinomios FORMATO POLO–CERO • El formato polo–cero corresponde con representaciones del siguiente tipo: )p-)...(sp-)(sp-)(sp-(s )z-)...(sz-)(sz-)(sz-(s kH(s) n321 n321 =
  • 37. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 37 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos • ¿Cómo se introduce en MATLAB un sistema en este formato?: en este caso se crean dos vectores que contengan el valor de los polos y los ceros (raíces del denominador y del numerador respectivamente) de la función de transferencia del sistema a representar Ejemplo: Obtenga el modelo MATLAB del siguiente sistema en formato cero- polo: 5)4)(s3)(s(s 2)1)(s(s 4H(s) +++ ++ = Mediante un fichero script: K=4; %constante del sistema Z=[-1 –2]; %ceros del sistema P=[-3 –4 –5]; %polos del sistema CONVERSIÓN ENTRE FORMATOS • Las siguientes funciones permiten realizar conversiones entre los distintos formatos de representación de sistemas residue Expansión en fracciones parciales roots Obtiene las raíces de un polinomio poly Obtiene un polinomio desde sus raíces conv Permite multiplicar polinomios tf2zp De FT a formato polo–cero zp2tf De formato polo–cero a FT c2dm, d2c Conversión entre el mundo discreto y el continuo printsys Imprime la función de transferencia de un sistema
  • 38. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 38 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Transformar de formato función de transferencia a formato polo cero la siguiente función: )102)(10010()2( )1)(10(20 )( )( )( 3422 3 −++++ ++ == ssssss ss sD sN sG En MATLAB: num1=10; num2=[1 10]; %(s+10) num3=[1 0 0 1]; % (s^3+1) NUM=conv(num1,(conv(num2,num3))); den1=[1 0]; % (s) den2=[1 2]; % (s+2) den2=conv(den2,den2); %Generando (s+2)^2 den3=[1 10 100]; %(s^2+10s+100) den4=[1 2 0 0 -10]; %(s^4+2s^3-10) DEN=conv(den1,conv(den2,conv(den3,den4))); [Z,P,K]=tf2zp(NUM,DEN); %CONVERSIÓN A CERO POLO Ejemplo: Transformar de formato polo-cero a formato función de transferencia la siguiente función: )2()3)(4( )1( )( 2342 3 +++++ + = sssss s sH
  • 39. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 39 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos En MATLAB: Z=[-1; -1; -1 ]; %(s+1)^3 D1=roots([1 5 2]); %Obtención de las raíces de (s^2+5s+2) B=[1 3]; D2=roots(conv(B,B)); %(s+3)^2 P=[4; D2; D1]; k=1; [NUM,DEN]=zp2tf(Z,P,k); Si una vez hecho esto, se hace desde la ventana de comandos una llamada a printsys(NUM,DEN), el resultado es el siguiente: s^3 + 3 s^2 + 3 s + 1 ---------------------------------------------------- s^5 + 7 s^4 - 3 s^3 - 107 s^2 - 210 s - 72 GENERACIÓN DE DIAGRAMA DE BLOQUES, CONEXIÓN DE SISTEMAS • La toolbox de MATLAB para control incluye también funciones para resolver las funciones de transferencia expresadas mediante diagrama de bloques • Las siguientes funciones permiten realizar conexiones entre los distintos bloques que conforman un sistema de control cloop Cierra el lazo realimentación unitaria feedback Conexión mediante realimentación series Conexión en serie de modelos parallel Conexión en paralelo de sistemas
  • 40. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 40 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Obtener la función de transferencia total del sistema que se muestra a continuación, suponiendo que se parte del conocimiento del numerador y el denominador de cada bloque del diagrama en MATLAB, de la siguiente forma: [NUM,DEN]=feedback(NUMZP, DENZP, NUMTF,DENTF,-1); [NUM,DEN]=cloop(NUM, DEN,-1); Step Input + - Sum + - Sum1 25 s+10 Transfer Fcn (s-1)(s-2)(s-3) (s+1)(s+3)(s-4) Zero-Pole Auto-Scale Graph
  • 41. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 41 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 5. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (I) • Conjunto de instrucciones que facilitan el análisis de la respuesta temporal, frecuencial y lugar de las raíces de un sistema de control. • En este punto solo se van a presentar las funciones relacionadas con el análisis temporal RESPUESTA TEMPORAL • Se usa para obtener características temporales del régimen transitorio y del permanente o estacionario, de la respuesta de un sistema a entradas diversas • Las funciones de la toolbox de MATLAB utilizadas para generar respuestas temporales ante entradas variadas, son las siguientes step Respuesta a un escalón impulse Respuesta a un impulso lsim Entrada aleatoria ginput Averiguar valores de un determinado punto de la gráfica damp Permite obtener ωωωωn y ξξξξ dcgain Permite obtener la ganancia estática de una FT Nota: Las funciones step e impulse generan automáticamente una gráfica de la respuesta temporal, en caso de no pedir ningún valor de salida
  • 42. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 42 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Dado el siguiente sistema determinar su respuesta al impulso y al escalón: 1 1 )( + = s sH La respuesta al impulso se obtendrá mediante el siguiente comando: >>impulse([1],[1 1]); Impulse Response Time (sec) Amplitude 0 1 2 3 4 5 6 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
  • 43. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 43 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Posteriormente se llama a la función step, obteniéndose el resultado gráfico que se muestra a continuación: >>step([1],[1 1]); Step Response Time (sec) Amplitude 0 1 2 3 4 5 6 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
  • 44. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 44 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos 6. FUNCIONES DE ANÁLISIS DE SISTEMAS CONTINUOS DE LA TOOLBOX DE CONTROL (II) • La toolbox de control de MATLAB posee un conjunto de funciones que permiten realizar fácilmente trazados del Lugar de las Raíces de un sistema realimentado, así como sacar información a partir de éste • Las funciones relacionadas con el trazado del Lugar de las Raíces se muestran en la siguiente tabla Nota: la función rlocus abre directamente una ventana de figura nueva y dibuja en ella el Lugar de las Raíces del sistema cuya F(s) (o F(z))se pasa como parámetro. Sin embargo, la función rlocfind necesita de la ejecución previa de la anterior para operar Ejemplo: Se desea conocer el trazado del Lugar de las Raíces del sistema siguiente: 1 s +1.5s+82 Transfer Fcn1 s+13 s+10 Transfer Fcn K Gain rlocus Trazado del Lugar de las Raíces (para ss. continuos y discretos) rlocfind Identificación concreta de un punto del lugar pzmap Representación del diagrama de polos y ceros sgrid Red de obtener ωωωωn y ξξξξ en el plano ‘s’
  • 45. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 45 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Para resolverlo se ejecuta desde MATLAB el siguiente conjunto de comandos: NUMG=[1 13] %Numerador de G(s) DENG=[1 10] %Denominador de G(s) NUMH=[1] %Numerador de H(s) DENH=[1 1.5 8] %Denominador de H(s) N=conv(NUMG,NUMH) %Numerador de G(s)H(s) D=conv(DENG,DENH) %Denominador de G(s)H(s) rlocus(N,D) sgrid Root Locus Real Axis ImagAxis -12 -10 -8 -6 -4 -2 0 -40 -30 -20 -10 0 10 20 30 40 40 35 30 25 20 15 10 5 40 35 30 25 20 15 10 5 0.7 0.4 0.28 0.19 0.135 0.095 0.06 0.03 0.7 0.4 0.28 0.19 0.135 0.095 0.06 0.03
  • 46. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 46 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Obtenga para el sistema del ejemplo anterior cuál es el valor de K que hace al sistema inestable Dicho valor será aquél que haga que las raíces del lugar representado anteriormente tengan parte real positiva. Para poder obtener dicho valor se utiliza la función rlocfind, de esta forma: >> rlocfind(N,D) Obteniéndose el siguiente resultado en la ventana de comandos de MATLAB: >>Select a point in the graphics window >>selected_point = 0.0482 +12.6479i >>ans = 136.2106 Truco: Si se desea conocer además el valor que tienen todas las raíces del sistema en lazo cerrado para esa K se deberá recoger como parámetro de salida de rlocfind un vector que contendrá el dichos valores de este modo: >>[K,raices]= rlocfind(N,D)
  • 47. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 47 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Ejemplo: Si se desea que el sistema tenga una respuesta con coeficiente de amortiguación de valor 0.1, indique cuál sería el valor de K necesario y compruebe el resultado con la función step Para conocer el valor de K con ξξξξ=0.1 se redibuja el Lugar de las Raíces son rejilla y se invoca a la función sgrid de este modo >> sgrid(0.1,2) Donde el valor de ωn se ha fijado sin ningún criterio concreto Después se llama vuelve a llamar a la función rlocfind, y se obtiene el valor de K que será el fijado en el diagrama de bloques de Simulink que permite obtener la espuesta al escalón del sistema en lazo cerrado. El resultado se muestra en la figura siguiente: 0 2 4 6 8 10 12 14 16 18 20 -5 0 5 10 15 20
  • 48. “Introducción a MATLAB, Toolbox de Control y Simulink” Pág 48 Laboratorio de Sistemas Electrónicos de Control Continuo I.T.T Sistemas Electrónicos Para comprobar si la respuesta coincide con la de un sistema de segundo orden típico, se obtiene el valor de Mp correspondiente al coeficiente de amortiguación comentado. Calculando dicho valor el resultado es de 72.9% Como se observa, el Mp es mayor. Esto se debe a que el sistema en lazo cerrado tiene además un cero y otro polo que no es del todo dominante