Escolar Documentos
Profissional Documentos
Cultura Documentos
de Matlab
-LCA-
Arce, Gerardo.
Clases:
3 Practica – Simulink.
Gráficos 2D
Ajuste de curvas
Interpolación
Análisis numérico
Espacio de trabajo
Suma: +
resta: -
multiplicación: *
división: \ ó /
potencia: ^
Comentarios útiles
Funciones matemáticas
Números complejos
Funciones matemáticas
abs(x) Valor absoluto
acos(x) Arcocoseno
acosh(x) Arcocoseno hiperbólico
angle(x) Angulo de complejos
asin(x) Arcoseno
asinh(x) Arcoseno hiperbólico
atan(x) Arcotangente
atanh(x) Arcotangente hiperbólica
ceil(x) Redondeo hacia +
conj(x) Complejo conjugado
cos(x) Coseno
cosh(x) Coseno hiperbólico
exp(x) Exponencial e1=2.71
log (x) Logaritmo neperiano
Funciones matemáticas
fix(x) Redondeo hacia cero
floor(x) Redondeo hacia menos infinito
imag(x) Parte imaginaria compleja
log10(x) Logaritmo común
real(x) Parte real compleja
rem(x,y) Resto de la división (resto al dividir x/y)
round(x) Redondeo al entero más cercano
sign(x) Función signo
sin(x) Seno
sinh(x) Seno hiperbólico
sqrt(x) Raiz cuadrada
tan(x) Tangente
tanh(x) Tangente hiperbólica
Números complejos
Solve
– es una función que resuelve sistemas del tipo
x^3+2*x^2+3*x+x+5=0
El
número imaginario puro se representa
por i o j
– Cualquier número seguido de i representa un número
imaginario
Hay funciones específicas para su manejo:
– real(x)
– imag(x)
– conj(x)
– angle(x), etc.
Manejo de arrays
Arrays simples
Direccionamiento de arrays
Construcción de arrays
Funciones con arrays
Matemáticas de arrays con escalares
Matemáticas entre arrays
Orientación del array
Resumen de operaciones con arrays
Arrays simples
Manipulación matricial
Matrices especiales
Álgebra matricial
Matlab originariamente fue diseñado para simplificar el
cálculo del álgebra lineal
Para definir una matriz se distinguen las filas por ; o se
introduce enter
A.’ es la matriz transpuesta de A
A’ es la traspuesta conjugada de A
det(A) calcula el determinante de A
inv(A) es la inversa de A
rank(A) devuelve el rango de la matriz A
norm(A) calcula la normal de A
poly(A) obtiene el polinomio característico de la matriz A
Manipulación matricial
Los elementos de una matriz se
indican con su fila y columna:
A(columna, fila)
Con los dos puntos (:) se puede
seleccionar toda la fila o columna:
A(:,1), B(2,:)
find(x) transforma una matriz en una
sucesión de valores del tipo columna.
size(x) devuelve el tamaño en filas y
columnas.
Matrices especiales
Matriz de ceros: zeros(n,m)
Matriz de unos: ones(n,m)
Operaciones relacionales
Operaciones lógicos
== Igual a
~= No igual
Operadores lógicos
Operadores lógicos:
Operador Descripción
& AND
| OR
~ NOT
Funciones relacionales y lógicas
Función Descripción
Bucle for
Bucle while
Estructuras if-else
Bucle for
La forma general es:
– for n=1:5
x(n)=n*2
end
– Los comandos entre las sentencias for y end se ejecutan una vez
hasta llegar a su fin pudiendo también utilizar una matriz como
rango de evaluación
– Resultado:
x=
2
x=
2 4
x=
2 4 6
x=
2 4 6 8
x=
2 4 6 8 10
Bucle while
La forma general es:
while “expresión de veracidad”
“comandos”
end
Los“comandos” entre las
sentencias while y end se ejecutan
mientras todos los elementos a
evaluar sean verdaderos
Ejemplo de Bucle while
Resultado:
»n=1; x=
6
n=
» while n<6 2
x=
x(n)=n*6; n=
6 12
n=n+1; x=
3
end; n=
6 12 18
4
x=
6 12 18 24
n=
5
x=
6 12 18 24 30
n=
6
Estructuras if-else-end
La forma general es:
if “expresión”
“comandos”,“resultado”
end
También
if “expresión Nº1”
“comandos Nº1”,“resultado Nº1”
elseif “expresión Nº2”
“comandos Nº2”,“resultado Nº2”
else
“comandos Nº3”,“resultado Nº3”
end
Ejemplo Estructuras if-else-end
a Tolerancia ±0.25 [Watts]
k Potencia que dicipa la recistencia [Watts]
p Potencias
a=0.25
k=1
p=1.5
if p<=k-a,s='Funciona Bien'
elseif k-a<p&p<k+a,s='Funciona en el limite'
elseif p>=k+a,s='Se Quema'
end
Polinomios
Polinomios
Desarrollo
en fracciones parciales:
residue(p)
Gráficos 2D
Comando plot
Tipos de líneas y colores
Añadir rejillas y etiquetas
Gestión de los ejes
Manipulando gráficos 2D
Otros tipos de gráficos 2D
Comando plot
» x=linspace(0,2*pi,30)
» y=sin(x)
» plot(x,y)
Ejemplo de superposición de graficas
• Dibujar la función y=sin(x) y z=cos(x)
» x=linspace(0,2*pi,30)
» y=sin(x)
» z=cos(x)
» plot(x,y,x,z)
o tambien
» x=linspace(0,2*pi,30)
» y=sin(x)
» z=cos(x)
» W=[y;z]
» plot(x,W)
Tipos de líneas y colores
Colores Tipos de líneas
–y Amarillo –. Puntos
–m Magenta –o Círculos
–c Cyan –x Marcas x
–r Rojo –+ Marcas +
–g Verde –* Marcas *
–b Azul –- Línea continua
–w Blanco –: Línea punteada
–k Negro – -. Líneas y puntos
– -- Líneas discontinuas
Ejemplo de colores y linas
• Dibujar la función y=sin(x) y z=cos(x)
» x=linspace(0,2*pi,30)
» y=sin(x)
» z=cos(x)
» plot(x,y,'r*',x,z,'b:')
Añadir rejillas y etiquetas
Añadir rejillas: grid
Etiquetar eje x: xlabel(‘texto’)
BOTONES (PUSHBUTTONS)
BOTONES DE SELECCIÓN (CHECK BOXES)
TEXTO (LABEL)
BOTONES DE OPCIÓN (RADIO BUTTONS)
BARRAS DE DESPLAZAMIENTO (SCROLLING BARS O SLIDERS)
CAJAS DE SELECCIÓN DESPLEGABLES (POP-UP MENUS)
CAJAS DE TEXTO EDITABLES (EDITABLE TEXTBOXES)
MARCOS (FRAMES)
BOTONES (PUSHBUTTONS)
Funcion:
boton_calculo =
uicontrol(gcf,...
'Style','push',...
'Position',[10 10 100 25],...
'String','Calcular',...
'CallBack','a+b');
BOTONES DE SELECCIÓN (CHECK BOXES)
a=0,b=0,c=0,d=0,e=0,f=0,
Box_01 = uicontrol(gcf,...
'Style','checkbox',...
'Units','normalized','Position',[0.4 0.600 0.25 0.05],...
'String','valor $5',...
'CallBack',['a=b;if a==0,b=5;else a==5,b=0;end;b']);
Box_02 = uicontrol(gcf,...
'Style','checkbox',...
'Units','normalized','Position',[0.4 0.550 0.25 0.05],...
'String','valor $4',...
'CallBack',['c=d;if c==0,d=4;else c==4,d=0;end;d']);
Box_03 = uicontrol(gcf,...
'Style','checkbox',...
'Units','normalized','Position',[0.4 0.500 0.25 0.05],...
'String','valor $10',...
'CallBack',['e=f;if e==0,f=10;else e==10,f=0;end;f']);
boton_calculo = uicontrol(gcf,...
'Style','push',...
'Units','normalized','Position',[0.4 0.450 0.25 0.05],...
'String','Calcular',...
'CallBack','b+d+f');
TEXTO (LABEL)
BOTONES DE OPCIÓN (RADIO BUTTONS)
% Definir el texto de título para este grupo de controles
txt_01 = uicontrol(gcf,...
'Style','text','String','Tolerancia de la resistencia',...
'Units','normalized','Position',[0.4 0.60 0.25 0.05]);
% Definir la propiedad TickDir In con radiobutton (defecto)
tol=5
td_5 = uicontrol(gcf,...
'Style','radio', 'String','+/- 5%',...
'Units','normalized','Position',[0.4 0.55 0.25 0.05],...
'Value',1,...
'CallBack','set(td_5,''Value'',1),set(td_10,''Value'',0),set(td_1
5,''Value'',0),1,0,0,tol=5');
% Definir la propiedad TickDir Out con radiobutton
td_10 = uicontrol(gcf,...
'Style','radio','String','+/- 10%',...
'Units','normalized','Position',[0.4 0.50 0.25 0.05],...
'Value',0,...
'CallBack','set(td_5,''Value'',0),set(td_10,''Value'',1),set(td_1
5,''Value'',0),0,1,0,tol=10');
% Definir la propiedad TickDir Out con radiobutton
td_15 = uicontrol(gcf,...
'Style','radio','String','+/- 15%',...
'Units','normalized','Position',[0.4 0.45 0.25 0.05],...
'Value',0,...
'CallBack','set(td_5,''Value'',0),set(td_10,''Value'',0),set(td_1
5,''Value'',1),0,0,1,tol=15');
BARRAS DE DESPLAZAMIENTO
(SCROLLING BARS O SLIDERS)
barra_01 = uicontrol(gcf,...
'Style','slider',...
'Units','normalized','Position',[0.4 0.55 0.35
0.05],...
'Min',0,'Max',20000,'Value',5,...
'CallBack',['a=num2str(get(barra_01,''Val''))'])
;
CAJAS DE SELECCIÓN
DESPLEGABLES (POP-UP MENUS)
popcol = uicontrol(gcf,...
'Style','popup',...
'String','CINCO|DIEZ|QUINCE|VEINTE',...
'Units','normalized','Position',[0.4 0.55 0.35
0.05],...
'CallBack',['pop=[5,10,15,20];',...
'a=pop(get(popcol,''Value''))']);
CAJAS DE TEXTO EDITABLES (EDITABLE TEXTBOXES)
MARCOS (FRAMES)
ft_dir = uicontrol(gcf,...
'Style','frame',...
'Units','normalized','Position',[0.38 0.49 0.24 0.20]);
valor_01 = uicontrol(gcf,...
'Style','edit',...
'BackgroundColor','white',...
'FontSize',9,'FontName','Arial',...
'String',[400],...
'Units','normalized','Position',[0.4 0.60 0.20 0.05],...
'CallBack','r=valor_01')
boton_calculo = uicontrol(gcf,...
'Style','push',...
'Units','normalized','Position',[0.4 0.52 0.20 0.05],...
'String','Calcular',...
'CallBack','r*3');
Simulink:
Este programa se
basa en la utilización
de comandos en
sistemas de bloques,
cada bloque ejecuta
un comando
matemático.
Esta ventana muestra
las distintas galerías
donde se encuentran los
comandos de bloques.
En este curso no
profundizaremos en
todas las galerías ni en
todos los comandos ya
que por razones de
tiempo y necesidad de
uso solo utilizaremos los
sistemas de bloques
más necesarios para
Ingeniería Eléctrica.
Comenzaremos con la
galería Simulink:
La galería SOUCES:
Losbloques que
se encuentran
dentro son los
bloques de
entrada, los
generadores de
señales.
Constant
Este bloque se
utiliza para Constant value: Aquí se ingresa
ingresar la contante.
constantes.
Ingresar Signal Generator
Slope: m
Este bloque se utiliza para
Start time: cuando comienza a
generar una señal del tipo
funcionar
y = mx + h.
Initial output: h
Sine Wave
Este bloque utiliza una memoria mat Este bloque utiliza una memoria común
para guardar la señal para guardar la señal
Stop Simulation
Bloque de función
Resultado
visualizado con el
SCOPE
La galería SIGNAL & SYSTEMS:
From & GOTO
IN & OUT
Esta librería
nos proporciona
los distintos
tipos de fuentes
que necesitemos
para desarrollar
sistemas
eléctricos
básicos.
Elements:
Esta librería
nos proporciona
los distintos
tipos de
elementos tales
como
resistencias,
capacitores,
inductancias,
transformadores,
etc.
Diodos motores y medidores: