Está en la página 1de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing.

Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)


Desarrollo De Contenidos Editados Por La Ctedra
Ao 2015
Asignatura: Fundamentos de Informtica
Especialidad: Ing. Elctrica
Profesor: Ing. Carlos Vctor Coyos
ccoyos@electrica.frc.utn.edu.ar
JTP: Ing. Horacio Pablo Lezin
hlezin@electrica.frc.utn.edu.ar
Contenido:
UNIDAD TEMATICA 5: Software de la especialidad
5.1 INTRODUCCION AL USO DE MATLAB: Descripcin. Arranque. Ayuda. Interfaz
de usuario. Formato de nmeros y precisin. Edicin de lnea de comandos.
Comandos bsicos. Manejo de variables. Asignar, nombrar, borrar y visualizar
variables.Operadores aritmticos, relacionales y lgicos. Expresiones simblicas.
Funciones elementales. Guardar y cargar ficheros de datos.
TRATAMIENTO DE VECTORES Y MATRICES: Carga de vectores. Operaciones
elementales. Componentes equiespaciados, comandos linspace y logspace.
Introduccin de matrices, referencia de elementos, filas y columnas. Comandos
diag e inv. Funciones y operaciones elementales. Solucin de ecuaciones lineales.
TRATAMIENTO DE POLINOMIOS: Representacin. Races. Valuacin. Producto.
Comandos principales. REPRESENTACIONES GRFICAS: Comandos plot, axis,
grid, xlabel, ylabel, title, legend, ginput, loglog, semilogx, semilogy, logspace, fplot,
clf. TRATAMIENTO DE NMEROS COMPLEJOS: Representacin. Asignacin a
vectores y matrices. Funciones elementales, complex, abs, angle, conj.
5.2 INTRODUCCIN A LA PROGRAMACIN: Ficheros de comandos (SCRIPTS).
Estilo y hbitos de programacin. Estructuras condicionales y repetitivas.
Sentencias while, for, break, continue. Bucles anidados. Comandos %, input, disp,
fprintf. FUNCTION: Declaracin, variable, parmetros, nombre, instrucciones.
Entorno de variables. Recepcin y entrega de vectores o matrices.
5.3 INTERACCIN CON EXCEL: Importar y exportar datos. Funcin xlsread y xlswrite
5.4 SIMULINK : Conceptos de Modelar, Simular, Analizar. Arrancar simulink. Bloques
propios. Libreras. Creacin de un modelo: Insercin, parmetros y conexin de
bloques. Seales Vectoriales. Etiquetas. Visualizar seales. Guardar e Imprimir un
modelo. Parmetros de simulacin. Opcin Solver. Tiempo de simulacin. Mtodo
de integracin. Paso variable y paso fijo. Tamao de paso. Margen de error.
Tolerancia relativa y absoluta. Opcin Diagnostics. Mejora de precisin y velocidad.
Uso de mscaras. Funciones S: Cuando se usan y como funcionan.
SIMPOWERSYSTEMS: Introduccin, libreras y creacin de modelos.

Pgina 1 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
INTRODUCCIN A LA PROGRAMACIN Y AL USO DE MATLAB

ATENCION

El presente trabajo, que trata sobre los contenidos segn programa analtico de la
ctedra, es solamente a fines de LECTURA BSICA INTRODUCTORIA.

La profundidad de los contenidos desarrollados en el presente deben ser estudiados


desde el material publicado en la autogestion, denominado:
Matlab7.0_como_si_estuviera_en_primero

OBJETIVOS

SUMINISTRAR a los alumnos las herramientas introductorias fundamentales para la


comprensin, operacin y desarrollo de programas informticos, actuando como
elemento potenciador.

CAPACITAR a los alumnos en el manejo de utilitarios y software de uso especfico


de la especialidad, para familiarizarlos con estas tecnologas aplicadas a la
resolucin sistemtica de problemas que se presentan en el desarrollo de la carrera.

REFLEXION

El uso de software especializado no reemplaza el conocimiento cientfico y


matemtico que debe poseer un ingeniero electricista para realizar estudios de
sistemas elctricos, sino que constituye una ayuda para obtener resultados de
manera rpida y precisa.

El manejo de software en el mundo de la informtica es un proceso de aprendizaje


continuo y sin lmite. El aprendizaje lleva a agilizar el manejo del software pero no
llega nunca al manejo total del mismo.

Pgina 2 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Descripcin

Matlab es un entorno de computacin y desarrollo de aplicaciones


totalmente integrado, orientado para llevar a cabo proyectos en donde se encuentren
implicados un gran nmero de clculos matemticos y se requiera la visualizacin
grfica de los mismos, Matlab integra un anlisis numrico, clculo matricial, proceso de
seales y visualizacin grfica.
El nombre de Matlab proviene de la abreviacin inglesa Matrix Laboratory, (Laboratorio
de Matrices) y su cdigo en principio fue escrito para proporcionar un fcil acceso al
software de matrices desarrollado en los aos 70s, dentro de los proyectos Linpack y
Eispack, que fueron libreras desarrolladas en Fortran.
Lo podemos considerar como un lenguaje de programacin interpretado. stos
lenguajes interpretados o scriptingno deben ser compilados. Un script es una serie de
rdenes que se pasan a un intrprete para que las ejecute. Estas rdenes estn escritas
en un lenguaje de programacin propio del intrprete que ejecuta lo pedido en una lnea
y no ejecuta la siguiente hasta que haya terminado la anterior, siempre que esta sea
correcta.
Difiere de un archivo de cdigo fuente por l hecho que no tiene que ser compilado, es
decir es ejecutable por s mismo siempre que se llame con l intrprete adecuado.
De este modo podemos diferenciar los lenguajes basados en cdigo fuente de los
lenguajes de scripting.
Los primeros son, por ejemplo, C++, Fortran, Cobol, Pascal...
En ellos se genera un cdigo fuente y un programa llamado compilador que a su vez lo
convierte en un archivo que l sistema operativo es capaz de ejecutar. Este ejecutable
es a su vez dependiente del sistema operativo, con lo que no distribuimos l ejecutable
sino l cdigo fuente sabiendo que la mquina a la que migramos l cdigo dispone de
tal compilador.
Entre los lenguajes de scripting ms conocidos tenemos por ejemplo los lenguajes de
uso general, como Java.
Existe una gran variedad en los lenguajes de scripting orientado a fines matemticos.
Como son Matlab, Maple, Mathematica, Scilab, etc.
De stos los ms conocidos son Matlab y Mathematica, en parte debido a que son
programas comrciales. No debemos considerar a Matlab como nico lenguaje sujeto a
un fin. El scripting cientfico es una gran herramienta que nos puede ser de mucha
ayuda en la solucin de problemas cientficos y la visualizacin de resultados. Una vez
que hayamos aprendido a usar l entorno de Matlab nos ser ms fcil aprender a
utilizar Scilab por la similitud en su ejecucin de rdenes.
La sintaxis de Matlab es muy simple y cuenta con una gran biblioteca de funciones
matemticas. Es un lenguaje muy cmodo si deseamos escribir pequeos programas no
muy complejos o para guardar instrucciones y despus ejecutarlas en secuencia con el
fin de mostrar los resultados sobre algn problema complejo. Matlab es ante todo un
lenguaje, ms que un programa en s. Y como mencionamos anteriormente casi todo lo
que aprendamos en l, lo podemos realizar en Scilab...
Desde sus inicios, Matlab ha estado renovndose. Producto del inters en distintas
reas han surgido gran cantidad de tiles para cada rea que vienen agrupados en
paquetes denominados toolboxes o cajas de herramientas entre los cuales podemos
nombrar los toolboxes SIMULINK y SIMPOWERSYSTEM, que trataremos ms adelante.
Contiene muchas herramientas y utilidades que permiten adems diversas
funcionalidades, como la representacin grfica en 2 y 3 dimensiones.
Estas caractersticas hacen de Matlab una herramienta de trabajo muy extendida entre
los estudiantes universitarios como entre tcnicos e investigadores.
Pgina 3 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Resumiendo
MATLAB: MATrix LABoratory. (Laboratorio de matrices)

Realiza clculos numricos con vectores y matrices.


Trabaja con nmeros escalares tanto reales como complejos, con cadenas de
caracteres y otras estructuras de informacin mas complejas.
Permite realizar una amplia variedad de grficos en dos y tres dimensiones.
Tiene un lenguaje de programacin propio.
MATLAB se puede arrancar como cualquier otra aplicacin de Windows, clicando
dos veces en el icono correspondiente en el escritorio o por medio del men Inicio.

Arranque de Matlab (Versin Matlab R2013a)


Al arrancar MATLAB se abre una ventana similar a la mostrada en la siguiente figura.

Ventana inicial de MATLAB R2013a.


sta vista que se obtiene eligiendo la opcin Layout/Default, en el men HOME.

Pgina 4 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Como esta configuracin puede ser cambiada fcilmente por el usuario, es posible que
en muchos casos concretos lo que aparezca sea muy diferente. En cualquier caso, una
vista similar se puede conseguir con el citado comando.
Esta ventana inicial requiere unas primeras explicaciones.
La parte ms importante de la ventana inicial es la subventana Command Window
(ventana principal), que emplearemos para transmitir las rdenes a Matlab.
Matlab es un programa command-driven, es decir, que se introducen las rdenes
escribindolas una a una a continuacin del smbolo >> (prompt: aviso caracterstico),
que aparece en una interfaz de usuario (subventana).
En esta subventana se ejecutan los comandos de MATLAB, a continuacin del prompt
que indica que el programa est preparado para recibir instrucciones.

En la figura muestra que se ha ejecutado el comando


>>A=magic(6)
Que nos entrega una matriz aleatoria de 6 x 6.
Una manera de seguir esta introduccin consiste en abrir Matlab en otra ventana,
e ir copiando y pegando el comando a continuacin del smbolo >>.
En la pantalla aparecen ventanas tambin muy tiles:
La ventana Current Folder muestra los ficheros del directorio activo o actual. El
directorio activo se puede cambiar desde la Command Window, o desde la propia
ventana con los mtodos de navegacin de directorios propios de Windows.
La ventana Workspace contiene informacin sobre todas las variables que se hayan
definido en esta sesin y permite ver y modificar las matrices con las que se est
trabajando.

Pgina 5 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

La ventana Command History muestra los ltimos comandos ejecutados en la


Command Window. Estos comandos se pueden volver a ejecutar haciendo doble clic
sobre ellos. Clicando sobre un comando con el botn derecho del ratn se muestra un
men contextual con las posibilidades disponibles en ese momento. Para editar uno de
estos comandos hay que copiarlo antes a la Command Window.
Una vez que hemos arrancado Matlab, si deseamos terminar podemos bien teclear exit
en la ventana de comandos, pulsar la secuencia ctrl.+Q o ir a la barra de ttulo y elegir
Cerrar.

Para apreciar desde el principio la potencia de MATLAB, se puede comenzar por escribir
en la Command Window a continuacin del prompt la siguiente lnea y al finalizar pulsar
enter.
>> A=rand(6),B=inv(A),B*A

Pgina 6 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

En la lnea de comandos anterior se han escrito tres instrucciones diferentes, separadas


por comas.
Como consecuencia, la respuesta del programa tiene tres partes tambin, cada una de
ellas correspondiente a cada una de las instrucciones.
Con la primera instruccin A=rand(6) se define una matriz cuadrada (66) llamada A,
cuyos elementos son nmeros aleatorios entre cero y uno (aunque aparezcan slo 4
cifras, han sido calculados con 16 cifras de precisin).
En la segunda instruccin B=inv(A), se define una matriz B que es igual a la inversa de
la matriz A.
Finalmente en la tercera instruccin se ha multiplicado B por A, y se comprueba que el
resultado es la matriz unidad.
Otro de los puntos fuertes de MATLAB son los grficos, que se vern con ms detalle
en una seccin posterior.
A modo de ejemplo, se puede teclear la siguiente lnea y pulsar intro:
>> x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Funcin seno(x)')

Pgina 7 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Al ejecutar sta sentencia aparecer una nueva ventana como la siguiente.

En la Figura se puede observar que se abre una nueva ventana en la que aparece
representada la funcin sin(x).
Esta figura tiene un ttulo "Funcin seno(x)" y un cuadriculado o "grid".
En realidad la lnea de comando anterior contiene tambin varias instrucciones
separadas por comas o puntos y comas.
En la primera se crea un vector x con 801 valores reales entre -4 y 4, separados por una
centsima.
A continuacin se crea un vector y, cada uno de cuyos elementos es el seno del
correspondiente elemento del vector x.
Despus se dibujan los valores de y en ordenadas frente a los de x en abscisas.
Las dos ltimas instrucciones establecen la cuadrcula y el ttulo.
Como mencionramos, en captulos siguiente veremos con mas detalles las
representaciones grficas.

Pgina 8 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
AYUDA EN MATLAB
Ayuda en lnea
Como mencionramos, ste documento es tan slo una introduccin -muy resumida- del
lenguaje y del manejo de Matlab, por lo que antes de seguir, es conveniente indicar
cmo puede obtenerse ayuda sobre cualquier detalle referente a Matlab.
Desde Matlab pueden obtenerse explicaciones sobre un tema particular. Hay varios
mtodos.
Con el comando help
N 1)
Si se escribe slo help, se obtiene una lista de toolboxes y utilidades
instaladas, que se pueden elegir para su consulta por medio de un
hipervnculo que los lleva a la pgina de ayuda.

Tambin puede obtenerse informacin sobre uno de los temas de esa lista, por
ejemplo:
>>help elfun
(proporciona informacin sobre funciones matemticas elementales)

Pgina 9 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
N 2) En un segundo nivel es posible obtener ayuda sobre un toolbox determinado,
escribiendo:
>> help nombre_toolbox
(Ejemplo >> help simulink)

N 3) Finalmente, para solicitar una informacin ms completa sobre el uso y sintaxis


de una funcin o un comando, es preciso teclear:
>>help nombre_funcin
(Ejemplo >> help sqrt)
>>help nombre_comando
(Ejemplo >> help input)

Pgina 10 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Con la ventana de ayuda.
Escogiendo en la cinta de tareas el men Help dispondremos de opciones distintas de
ayudas e informacin sobre el software.

Eligiendo la opcin Documentation se abre una ventana general donde Tambin puede
escribirse directamente en la zona superior izquierda el nombre del comando deseado:
por ejemplo, para buscar informacin sobre sqrt (raiz cuadrada)

Pgina 11 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Con Demos
Las demostraciones (demos) son un conjunto de scripts (programas), modelos o videos
existentes dentro del entorno de ayuda de MATLAB, que ofrecen una perspectiva de las
capacidades del programa por medio de la ejecucin de los mismos.
>>demo
Nos abre una ventana de ayuda de como empezar con Demos

En la ventana izquierda posicionar el ratn sobre un toolbox y hacer click sobre el


mismo, desplegndose una ventana a la derecha, donde se visualizan distintos demos,
activar el deseado por medio del hipervinculo y luego arrancar la demostracin.

Pgina 12 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Desenvolverse en la interfaz de usuario

Reglas bsicas.
El punto decimal es . (no una coma).
En Matlab, las maysculas y las minsculas son distintas. Es decir, A es una
variable diferente de a.
Matlab distingue entre maysculas y minsculas por lo que casi siempre los comandos e
instrucciones se escriben con minsculas.
Por ejemplo, no es lo mismo pi que Pi. Podemos teclear ambas expresiones y descubrir
que la primera funciona perfectamente mientras que la segunda causa un error al ser
ejecutada.

Formato de nmeros y precisin


En Matlab la precisin utilizada es de aproximadamente 16 dgitos.
El formato con el que deseamos visualizar los valores, puede ser modificado por los
siguientes comandos:
Para esto utilizaremos como ejemplo la fraccin 4/3
Comando
format short
format long
format short e
format long e
format bank
format hex
format rat

Visualizacin
Por omisin 4 decimales
14 decimales
4 decimales
15 decimales
2 decimales
Exp. hexadecimal
Cociente de entero

Ejemplo
1.3333
1.33333333333333
1.3333e+000
1.333333333333333e+000
1.33
3ff5555555555555
4/3

Edicin de la lnea de comandos.


Con las flechas del teclado se pueden recuperar las rdenes anteriores, sin
tener que volver a teclearlas.
Es habitual cometer un error al escribir una cierta expresin, sobre todo si sta es larga
y complicada, y no darnos cuenta hasta ejecutarla y comprobar l mensaje de error, esto
ser algo normal si estamos empezando a conocer Matlab, mediante las teclas de los
cursores podemos editar las instrucciones escritas anteriormente y as corregirlas.
>> d2_f=(y2-2*y1+y3)/deltax^2)
??? d2_f=(y2-2*y1+y3)/deltax^2)
|
Error: Unbalanced or misused parentheses or brackets.
>>
En vez de volver a teclear toda la lnea de comando, puede recuperarse la instruccin
pulsando la tecla "flecha hacia arriba", desplazarse hasta el error (en nuestro ejemplo
falta un parntesis) con la flecha hacia a la izquierda, y arreglarlo:
d2_f=(y2-2*y1+y3)/(deltax^2)

Pgina 13 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

La siguiente tabla muestra l uso de las teclas del cursor y otros


Teclas del cursor vertical
Teclas del cursor horizontal
Inicio
Fin
Blackspace
Esc

Permiten l movimiento por todos los comandos que


hayamos introducidos anteriormente.
Nos permite movernos por la lnea de comando.
Para colocar l cursor al comienzo de la lnea.
Para colocarlo al final de la misma.
Borra la lnea de edicin completa.
Despus de haber escrito un comando, esta tecla lo
puede borrar.

COMANDOS BSICOS
En esta seccin se explica cmo usar Matlab a modo de calculadora. Empecemos con
algo sencillo: las operaciones matemticas elementales.
Manejo de variables
Asignacin
Para asignar un valor a una variable, por ejemplo x, usamos el signo =.
Por ejemplo: x=2+3
x=2+3 (en este caso estamos asignando al identificador x el valor de la suma 2+3)
x=
5
Si no se asigna el resultado a ninguna variable, Matlab lo asigna por defecto a la
variable ans (answer):
2+3
ans =
5
Para saber cul es el valor asignado a una determinada variable, basta introducir el
nombre de la variable:
x
x=
5
Nombres de variables
Se debe tener cuidado con los nombres de las variables que se utilizan.
Probar lo siguiente:
sin = 5
y = sin(pi)
La variable sin oculta la funcin del mismo nombre.
Borrar variables

Pgina 14 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
clear sup

Borra del Workspace la variable sup

clear all

Borra todas las variables del Workspace

Visualizar el nombre de las variables utilizadas


El comando who indica las variables con las que se est trabajando
>> who
Your variables are:
R
V
horas_trab
pagar
valor_hora
Para una lista un poco ms detallada sobre las caractersticas de cada variable
utilizamos whos adems de la lista proporcionara informacin acerca del tipo de datos
en cada variable y el tamao que ocupa en memoria
Operadores aritmticos
La notacin de operadores para las operaciones matemticas elementales es:
^
*
/
+
-

potenciacin
multiplicacin
divisin
suma
resta

El orden, precedencia o jerarqua en que se realizan las operaciones de una lnea, es el


siguiente: primero la potenciacin, luego las multiplicaciones y divisiones y finalmente
las sumas y las restas.
Si se quiere forzar un determinado orden, se deben utilizar parntesis, que se evalan
siempre primero.
Por ejemplo, para hallar dos dividido tres,
2/2+1
ans =
2
(en efecto: primero se calcula 2/2 y luego se suma 1).
Forzando la operacin por medio de parntesis
2/(2+1)
ans =
0.6667
Primero se calcula el parntesis (2+1)=3 y luego se realiza la divisin 2/3.

Pgina 15 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Operadores relacionales
Se utilizan para establecer una relacin entre dos valores crendose una expresin
relacional. Esta expresin compara los valores entre si y produce un resultado de
certeza o falsedad (verdadero o falso) denominado valor lgico.
Los operadores relacionales comparan valores del mismo tipo (numricos o carcter).
>
<
==
~=
<=
>=

mayor que
menor que
igual que
diferente que
menor o igual que
mayor o igual que

Dos observaciones:
N 1) El operador relacional igual que, se construye con dos smbolos ==.
El motivo es: si se escribe x=3, el resultado es que se le asigna a x el valor 3. En
definitiva, no se hace ninguna pregunta.
Si lo que se desea es preguntar es x igual a 3?, no se puede escribir x=3, pues en este
caso x tomara el valor 3, independientemente de lo que valiera antes.
En cambio, x==3 es el anlogo en lenguaje informtico a la pregunta: es x igual a 3?.
Tras la pregunta x==3 la variable x sigue valiendo lo mismo que antes de realizar la
misma.
N 2) La tilde ~ del operador diferente que se consigue apretando la tecla Alt y sin
soltarla escribir con el teclado el nmero 126. En algunos sistemas operativos,
tambin sirve apretar AltGr y, sin soltarla, apretar la tecla 4.
Operadores lgicos
Estos operadores se utilizan para establecer relaciones entre valores lgicos, crendose
una expresin lgica. Estos valores pueden ser resultado de una expresin relacional.
Tipos de operadores Lgicos
Denominacin
Conjuncin
Disyuncin
Negacin

Cdigo Matlab
&
|
~

Cdigo ASCII
Alt + 38
Alt + 124
Alt + 126

Expresiones simblicas
Si deseamos trabajar con smbolos, debemos indicarle al programa que se trata de
smbolos.
Para esto utilizamos el comando sym por ejemplo, si escribimos: 2/3
>> 2/3
ans =

Pgina 16 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
0.6667
En cambio, si queremos que 2 y 3 se consideren como smbolos (de forma que slo se
opere de forma exacta con ellos), deberemos escribir:
>>sym(2/3)
ans =
2/3
Si deseamos realizar la siguiente operacin aritmtica: (2/3)+(1/4), Debemos escribir:
>>sym(2/3)+sym(1/4)
ans =
11/12
o tambin
>> sym((2/3)+(1/4))
ans =
11/12
Anlogamente se pueden definir variables; por ejemplo, para definir la variable x
podramos escribir:
>>x= sym('x')
Una vez definida la variable x, podremos realizar operaciones simblicas con ella:
>>x+3*x
ans =
4*x
Si tenemos que
simultneamente,

utilizar

varios

smbolos

es

recomendable

definirlos

todos

Esta instruccin va seguida de los smbolos a definir, separados por espacios; Ej.:
>>syms t s x y
Funciones elementales.
Las funciones, en Matlab, se escriben introduciendo el argumento entre parntesis a
continuacin del nombre de la funcin, sin dejar espacios. Por ejemplo:
y=exp(0)
y=
1
La funcin exp es el nmero natural e elevado a la potencia indicada entre parntesis
(en este caso cero).
He aqu una tabla con algunas funciones elementales
sin

seno

cos

coseno

Pgina 17 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
tan

tangente

sec

secante

csc

cosecante

cot

cotangente

exp

exponencial

log

logaritmo natural

sqrt

raz cuadrada

abs

valor absoluto

Para obtener las funciones trigonomtricas inversas, basta aadir una a delante del
nombre de la funcin. Y para las funciones hiperblicas, una h al final.
Por ejemplo, atanh(x) es el arcotangente hiperblico de x:
>> z=atanh(2)
z=
0.5493 + 1.5708i (dnde z es un nmero complejo).
No presentar el resultado en la pantalla
En ocasiones, es interesante no presentar el resultado en la pantalla (por ejemplo,
cuando se trata de una lista de datos muy larga). Eso se consigue poniendo un punto y
coma al final de la instruccin.
>> y=sqrt(4);
>>
(El resultado no aparece, pero sin embargo el clculo se ha realizado)
ya que si hacemos:
>> y
y=
2
(Vemos que y=2)
Guardar y cargar ficheros de datos.
save nom_arch

Guarda el Workspace en un archivo con el nombre nom_arch

load nom_arch

Carga en el Workspace el archivo guardado como nom_arch

Pgina 18 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
TRATAMIENTO DE VECTORES, MATRICES Y POLINOMIOS
La especialidad de Matlab es el manejo de matrices. Recordemos que Matlab son las
siglas de Matrix Laboratory.
VECTORES
Carga de vectores
Vector fila: se define introduciendo los componentes, separados por espacios o por
comas y entre corchetes
v=[sqrt(3) 0 -2]
v=
1.7321 0 -2.0000
Vector columna: se separan las filas por puntos y comas
w=[1;0;1/3]
w=
1.0000
0
0.3333
Operaciones elementales
Transposicin: Para la operacin transponer (cambiar filas por columnas) se utiliza el
apstrofe
>> w=[1 0 1/3]
w=
1.0000
0
>> w'
ans =
1.0000
0
0.3333

(vector w)
0.3333
(vector transpuesto de w)

Suma:
v+w'
ans =

2.7321 0 -1.6667

Producto:
v*w
ans =

1.0654

Pgina 19 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Componentes equiespaciados: Para crear un vector de este tipo, se emplean los dos
puntos y no son necesario los corchetes.
x=4:2:10
x=
4 6 8

10

(los componentes de x van desde 4 de 2 en 2 hasta 10).

Otra forma de generar vectores de componentes equiespaciados es usando los


comandos linspace y logspace.
El comando linspace genera un vector desde n1 a n2 de n componentes, los cuales
poseen valores espaciados linealmente.
>>t = linspace(n1,n2,n)
Ej:
>> t = linspace(4,10,4)
t=
4 6 8 10
Por su parte, logspace produce tambin un vector de n componentes, pero sus valores
n1
n2
estn espaciados logartmicamente desde 10 a 10 .
>>w = logspace(n1,n2,n)
Ejemplo
>> w = logspace(4,10,4)
w=
10000.00 1000000.00 100000000.00 10000000000.00

MATRICES
Carga de matrices
Para introducir matrices, se separa cada elemento con un espacio o con coma y cada
fila con un punto y coma
>> M = [1 2 3 ;4 5 6 ;7 8 9]
M=
123
456
789
Referencia a componente, fila o columna
Para referirse a un componente de la matriz

Pgina 20 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
>> M(3,1)
ans =
7

(3 indica tercera fila y 1 indica primera columna)

o tambin
>> M(3)
ans =
7

(es el tercer elemento contando sucesivamente por columnas)

>> M(8)
ans =
6

(es el octavo elemento contando sucesivamente por columnas)

Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
>> v2=M(2,:)
v2 =
4

>> v1=M(:,2)
v1 =
2
5
8

(v2 es la segunda fila de M)

(v1 es la segunda columna de M)

Diagonal: para obtener la diagonal de la matriz M, usamos el comando diag


>> diag(M)
ans =
1
5
9
Inversa: para obtener la inversa de una matriz A, usamos el comando inv
>>A=[2 4 6;4 5 6;3 1 -2];
>> inv(A)
ans =
-2.6667 2.3333 -1.0000
4.3333 -3.6667 2.0000
-1.8333 1.6667 -1.0000
Funciones y operaciones elementales
B = A'

calcula la traspuesta (conjugada) de la matriz A

B = A.'

calcula la traspuesta (sin conjugar) de la matriz A

Pgina 21 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
v = poly(A)

devuelve

un

vector

con

los

coeficientes

del

polinomio

caracterstico de la matriz cuadrada A


t = trace(A)

devuelve la traza t (suma de los elementos de la diagonal) de una


matriz cuadrada A

[m,n] = size(A)

devuelve el nmero de filas m y de columnas n de una matriz


rectangular A

n = size(A)

devuelve el tamao de una matriz cuadrada A

nf = size(A,1)

devuelve el nmero de filas de A

nc = size(A,2)

devuelve el nmero de columnas de A

Con las matrices tambin funcionan las operaciones matemticas elementales.


>> M = [1 2 3 ;4 5 6 ;7 8 9]
M=
123
456
789
>> M*M
ans =
30 36 42
66 81 96
102 126 150
>> M^2
ans =

30 36 42
66 81 96
102 126 150

Operaciones con elementos


Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes
del operador.
Si se quiere elevar al cuadrado cada uno de los elementos de M, entonces:
>>M.^2
ans =
1 4 9
16 25 36
49 64 81
Tipos de matrices predefinidas
Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de
Pgina 22 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
tipos particulares. Algunas de estas funciones son las siguientes:
eye(4)
zeros(3,5)
zeros(4)
ones(3)
ones(2,4)
rand(3)
rand(2,5)

forma la matriz unidad de tamao (4x4)


forma una matriz de ceros de tamao (3x5)
dem de tamao (4x4)
forma una matriz de unos de tamao (3x3)
idem de tamao (2x4)
forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin
uniforme, de tamao (3x3)
idem de tamao (2x5)

Solucin de ecuaciones lineales


Para resolver un sistema de ecuaciones lineales, Matlab dispone del comando rref
Por ejemplo, si tenemos l siguiente sistema:

2 x1 + 4 x2 + 6 x3 = 18
4 x1 + 5 x2 + 6 x3 = 24
3 x1 + x2 2 x3 = 4
La solucin de este sistema es:
>> A=[2 4 6 18; 4 5 6 24; 3 1 -2 4];
rref(A)
ans =
1 0 0 4
0 1 0 -2
0 0 1 3
De donde podemos observar que 4, -2 y 3 son soluciones del sistema
Ayuda sobre matrices
>>help elmat)
POLINOMIOS
Representacin: los polinomios se representan por vectores cuyas componentes son
los coeficientes del mismo.
Si tenemos

2
p(x) = x - 3x + 2 ,ste polinomio se representa por un vector p

p=[1 -3 2]
p=
1 -3 2
Races: Para hallar las races del polinomio, se hace

Pgina 23 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

roots(p)
ans =
2
1
Valuacin: para hallar el valor de P(x) para un determinado valor de x.(por ejemplo,
para x=0)
polyval(p,0)
ans =
2
Producto: Utilizamos una funcin llamada conv() ( producto de convolucin).
En el siguiente ejemplo vamos a observar cmo podemos multiplicar un polinomio de
segundo grado por otro de tercer grado:
>> pol1=[1 -2 4]
pol1 =
1 -2 4
>> pol2=[1 0 3 -4]
pol2 =
1 0 3 -4
>> pol3=conv(pol1,pol2)
pol3 =
1 -2 7 -10 20 -16
Comandos principales: Los principales comandos para trabajar con polinomios son los
siguientes:
roots(pol)

Nos muestra las races del polinomio pol

polyval(pol,x)

Evaluamos el polinomio pol para l valor de x. Si x es un vector, pol


se evala para cada elemento de x

polyvalm(pol,A)

Evaluamos el polinomio pol para la matriz A

conv(p1,p2)

Producto de convolucin de dos polinomios p1 y p2

[c,r]=deconv(p,q)

Divisin del polinomio p entre el polinomio q. En c se devuelve el


cociente y en r l residuo de la divisin

residue(p1,p2)

descompone l cociente entre p1 y p2 en suma de fracciones


simples

polyder(pol)

Calcula la derivada de un polinomio

Pgina 24 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
polyder(p1,p2)

Calcula la derivada de producto de los polinomios


REPRESENTACIONES GRFICAS

Plot: las grficas son producidas por l comando plot, aunque se pueden generar
grficas de otras maneras, en este caso mostraremos el uso del mismo.
Para ver las especificaciones posibles, teclear help plot.
Representacin de la funcin seno entre 0 y 10.
Para empezar creamos una variable x que vaya de cero a 10:
x=0:0.1:10;
y a continuacin, calculemos sin(x) almacenando el resultado en la variable y:
y=sin(x);
Para trazar el grfico, se emplea la funcin plot:
plot(x,y)
y se obtiene en otra ventana el siguiente grfico.

Axis: entre los muchos comandos que se pueden utilizar para modificar los grficos, es
muy til el empleado para cambiar la escala de los ejes.
La orden es:
>> axis([x1 x2 y1 y2])
donde x1, x2 son los lmites inferior y superior del eje x, e y1 e y2 los del eje y.
Para representar los puntos o datos con smbolos de colores, se aade la especificacin
entre apstrofes al comando plot.
Vamos a crear una variable con dos filas que contenga los nmeros del 1 al 10 en la
primera fila, y el doble de esos nmeros en la segunda, y dibujarlos con puntos rojos:
>> x1=0:10
x1 =
0 1 2

10

>> x2=2*x1
Pgina 25 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
x2 =
0

10

12

14

16

18

20

>> x=[x1;x2]
x=
0 1 2
0 2 4

3
6

4
8

5
10

6
12

7
14

8
16

9
18

10
20>> plot ( x (1, :) , x (2 , : ) , 'ro )

Donde, 'ro' establece un grfico de color rojo: r y de puntos: o

Si no se indica nada, el grfico se traza con una lnea azul.


Comandos bsicos
grid

traza un cuadrcula.

xlabel ('ttulox')

para poner un ttulo en x

ylabel('ttuloy')

para poner un ttulo en y

title

('Plano complejo')

Para imprimir una figura, basta seleccionar print del men de la figura.
El comando plot nos da la opcin de cambiar la representacin de los puntos de la
grfica, las formas ms habituales son:
Car.
.
o
x

Representacin
punto
crculo
marca

Car.
*
:

Representacin
asterisco
slido
punteado

Car.
-+
-.

Representacin
segmento
ms
segmento punto

Los tipos de color los obtenemos introduciendo la letra de cada color:


Letra
y
b
w

Color
amarillo
azul
blanco

Letra
c
m
k

Color
cyan(azul claro)
magenta
negro

Letra Color
rojo
r
verde
g

Pgina 26 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Otras consideraciones y ejemplos


Para ello vamos a crear una serie de incrementos que hemos definido anteriormente,
stos iniciaran con un valor -4 hasta +4, con incrementos de 0.1.
El comando loglog crea un dibujo usando escalas logartmicas para ambos ejes.
El comando semilogx crea un dibujo usando una escala logartmica para l eje x, y una
escala lineal para el eje y.
El comando semilogy crea un dibujo usando una escala logartmica para el eje y, y una
escala lineal para l eje x.
El comando logspace crea una escala para un determinado eje.
Ej:
>>x=logspace(-1,3);
>>loglog(x,exp(x));

%Crea un eje x de 10^-1 a 10^3


%Grafica la funcin e^x

El comando fplot nos permite dibujar la grfica de una funcin con la siguiente sintaxis:
>>fplot(`funcin',[inicio,final])
El comando clf nos borra la grfica creada.
Para que la grfica tenga una leyenda ubicada en el 3 cuadrante para distinguir las
series graficadas,
legend('seno',3)
Para incluirle al grfico una rejilla o cuadriculado usamos:
grid on
Ejemplo: dibujar la grfica de la funcin seno entre cero y 2*pi, con un ttulo y con una
leyenda que aparezca en el 3 cuadrante.
Adems la grafica aparecer con una grilla y en el Command Windows los valores
extremos de los ejes.
>> fplot('sin',[0,2*pi]),title('FUNCION seno'),legend('seno',3),grid on,axis
ans =
0 6.2832 -1.0000 1.0000

Pgina 27 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Un comando muy til tambin es [ejes]=ginput(#) con l que podemos sealar varios
puntos de la grfica y Matlab los desplegara en l Command Windows
Ejemplo :
>> x=-4:0.1:4; %Creamos l argumento
y=sin(x);
z=cos(x);
plot(x,z,'-',x,y,'.')
xlabel('Valores del tiempo');
ylabel('Funciones del tiempo');
title('Graficando con Matlab');
grid on ;axis;
% Ahora crearemos un mensaje en la pantalla;
legend(... %Creamos un mensaje que describa un poco la curva...
{'Grafica de sin','Grafica de cos'},...
'Color',[0.2078 0.6902 0.6784],...Definimos l color de fondo combinando rojo,verde,azul
'LineWidth',2,...%Definimos l ancho del borde
'XColor',[1 0 0.502],...%l color del borde con intensidades de 0 a 1
'YColor',[1 0 0.502],...
'FontName','Technic',...%Definimos l estilo de las letras
'Location','NorthWestOutside',...%Definimos la localizacion.
'EdgeColor',[1 0 0.502]);
[x,y]=ginput(3); [x,y]
Cuando se ejecute ste cdigo, se nos abre el grfico y una cruz mvil con el ratn, para
indicarle un punto de la grfica haciendo click y el cdigo nos devuelve las coordenadas
de tantos puntos como sea el argumento de ginput.

Pgina 28 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Para ms informacin o ayuda en lnea help graph2d o help graph3d.


TRATAMIENTO DE NUMEROS COMPLEJOS
En muchos clculos matriciales los datos y/o los resultados no son reales sino
complejos, con parte real y parte imaginaria.
MATLAB trabaja sin ninguna dificultad con nmeros complejos.
>> a=sqrt(-4)
a=
0 + 2.0000i
>> 3 + 4j
ans =
3.0000 + 4.0000i
Representacin
>> 3 + 4j
ans =
3.0000 + 4.0000i

Pgina 29 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

En la entrada de datos de MATLAB se pueden utilizar indistintamente la i y la j para


representar el nmero imaginario unidad (en la salida, sin embargo, puede verse que
siempre aparece la i).
Si la i o la j no estn definidas como variables, puede intercalarse el signo (*).
Esto no es posible en el caso de que s estn definidas, porque entonces se utiliza el
valor de la variable.
En general, cuando se est trabajando con nmeros complejos, conviene no utilizar la i
como variable ordinaria, pues puede dar lugar a errores y confusiones.
>> i=2
i=

2
>> 2+3i
ans =
2.0000 + 3.0000i
>> 2+3*i
ans =
8
>> 2+3*j
ans =
2.0000 + 3.0000i
Cuando i y j son variables utilizadas para otras finalidades, como unidad imaginaria
puede utilizarse tambin la funcin sqrt(-1), o una variable a la que se haya asignado el
resultado de esta funcin.
>> 2+3*sqrt(-1)
ans =
2.0000 + 3.0000i
Asignacin a vectores y matrices
La asignacin de valores complejos a vectores y matrices desde teclado puede hacerse
de las dos formas, que se muestran en el ejemplo siguiente:
(conviene hacer antes clear i, para que i no est definida como variable):
>> A = [1+2i 2+3i ; -1+i 2-3i]
A=
1.0000 + 2.0000i 2.0000 + 3.0000i
-1.0000 + 1.0000i 2.0000 - 3.0000i
>> A = [1 2; -1 2] + [2 3; 1 -3]*i
A=
1.0000 + 2.0000i 2.0000 + 3.0000i
-1.0000 + 1.0000i 2.0000 - 3.0000i
Puede verse que es posible definir las partes reales e imaginarias por separado. En este
caso s es necesario utilizar el operador (*), segn se muestra en el ejemplo anterior.

Pgina 30 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Funciones elementales con complejos


>> Z=complex(3,4)
Z=
3.0000 + 4.0000i
>> Mod_Z=abs(Z)
Mod_Z =
5
>> arg_Z=angle(Z)
arg_Z =
0.9273 (en radianes)
>> conjugado_Z=conj(Z)
conjugado_Z =
3.0000 - 4.0000i

Pgina 31 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Casos Prcticos Resueltos
4

I. Graficar la funcin y = sin(x ), para x de 0 a 2pi, usando 200 puntos y usando 500
puntos
>> x=linspace(0,2*pi,200);plot(x,sin(x.^4),'r'),grid on,legend('y=sin(x^4)')

>>x=linspace(0,2*pi,500);plot(x,sin(x.^4)),grid on,legend('y=sin(x^4)')

Pgina 32 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

II. Graficar el crculo de centro en (-2,1) y radio 3.


x=linspace(0,2*pi,500);plot(3*cos(x)-2,3*sin(x)+1,'r*'),grid on, axis equal

III. Hacer la grafica de dos rectas, escribir en esta grfica la solucin del sistema
de ecuaciones dada por estas dos rectas
2x + 3y = 13
2x y = 1

>> x=linspace(-10,20,200),y1=(13-2*x)/3,y2=(2*x-1),plot(x,y1,'b.',x,y2,'r.'),grid on,


legend('x=2;y=3'),axis square

Pgina 33 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

IV. Usando el comando plot repetidamente y apropiadamente graficar un circulo


inscrito en un triangulo y el triangulo inscrito en una circunferencia.
>>x=linspace(0,2*pi,500);x1=linspace(0,2*sqrt(3),500);x2=linspace(-2*sqrt(3),0,500);...
x3=linspace(-2*sqrt(3),2*sqrt(3),500);...
plot(4*cos(x),4*sin(x),'b.'),hold on;plot(2*cos(x),2*sin(x),'b.');...
y1=-2;y2=sqrt(3)*(x2)+4;y3=-sqrt(3)*(x1)+4;plot(x3,y1,'b.',x2,y2,'b.',x1,y3,'b.'),hold on
axis([-4.5 4.5 -4.5 4.5])
axesm miller

V. Usando el comando plot repetidamente y apropiadamente graficar la siguiente


figura
>> k1=linspace(0,2*pi,500);plot(4*cos(k1),4*sin(k1),'b.');hold on,...
x1=linspace(0,2*pi,500);plot(0.5*cos(x1)-1.5,0.5*sin(x1)+1.5,'b.');fill(0.5*cos(x1)1.5,0.5*sin(x1)+1.5,'c.');...
x2=linspace(0,2*pi,500);plot(0.5*cos(x2)+1.5,0.5*sin(x2)+1.5,'b.');fill(0.5*cos(x2)+1.5,0.5*
sin(x2)+1.5,'c.');...
x3=linspace(-2.5,2.5,500);y=0.240*(x3.^2)-2.5;plot(x3,y,'b.')
axis([-4.5 4.5 -4.5 4.5])
axesm miller

Pgina 34 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

VI. Hacer la codificacin en matlab para hallar la suma de los n primeros nmeros
naturales
>> fprintf('\t\tsuma de los n primeros numeros naturales\n');
n=input('ingrese el valor de n: ')
k=0;
for j=1:n
k=k+j;
end
fprintf('suma = %7f\n',k)
VII. Hacer la codificacin en matlab para hallar la suma de los cuadrados de los n
primeros nmeros naturales.
>> fprintf('\t\tsuma de los cuadrados de los n primeros numeros naturales\n');
n=input('ingrese el valor de n: ')
k=0;
for j=1:n
k=k+j*j;
end
fprintf('suma = %7f\n',k)

VIII. Hacer la codificacin en matlab para calcular la suma S= 1*2+2*3+.... +n*(n+l).


>> fprintf('\t\tsuma de la serie S=1*2+2*3+3*4+...+n(n+1)\n');
n=input('ingrese el valor de n: ')
k=0;
for j=1:n
k=k+j*(j+1);
end
fprintf('suma = %7f\n',k)
IX. Calcular la suma S = 1+3 + 5 +7+ .. +(2n- l).
>> fprintf('\t\tsuma de la serie S=1+3+5+7+...+(2n-1)\n');
n=input('ingrese el valor de n: ')
k=0;
for j=1:n
k=k+(2*j-1);
end
fprintf('suma = %7f\n',k)

Pgina 35 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
X. Hacer la codificacin en matlab para graficar y calcular el rea de un rectngulo
dado la base y altura.
>> fprintf('\t\trea de un rectangulo\n')
a=input('ingrese el ancho del rectangulo: ')
h=input('ingrese la altura del rectangulo: ')
fprintf('rea del rectangulo = %5f\n',a*h)
x=linspace(0,a,500);y=linspace(0,h,500);y1=0;y2=h;x1=0;x2=a;plot(x,y1,'b.',x,y2,'b.',x1,y,'
b.',x2,y,'b.'); hold on
axis([-1 (a+1) -1 (h+1)])
axis square
XI. Hacer la codificacin en matlab para graficar y calcular el rea de un rombo
dado sus dos diagonales.
fprintf('\t\trea de un rombo\n')
a=input('ingrese la 1 diagonal del rombo: ')
b=input('ingrese la 2 diagonal del rombo: ')
fprintf('rea del rombo = %7f\n',(a*b)/2)
x1=linspace(0,a/2,500);x2=linspace(a/2,a,500);y1=(b/a)*x1;y2=-(b/a)*(x2-a);y3=(b/a)*x1;y4=(b/a)*(x2-a);...
plot(x1,y1,'r.',x2,y2,'r.',x1,y3,'r.',x2,y4,'r.')
axis ([-0.5 a+0.5 -(b/2+0.5) (b/2+0.5)])
XII. Hacer la codificacin en matlab tal que:
Lea dos nmeros.
El primero representar el da y mes de su nacimiento (por ejemplo 4 de diciembres ser
412).
El segundo nmero vendr dado por su edad.
Luego realice los siguientes clculos:
Multiplique el primer nmero por 2
Adicinale 5
Multiplquelo por 50
Smele el segundo nmero
Smele 365
Y rstele 615.
EI resultado vendr a ser la unin del primer nmero con el segundo.
Este juego es conocido.
a=input('Ingrese el dia y mes de su nacimiento, (ejemplo: 4 de diciembre ser 412): ');
b=input('Ingrese su edad: ');
z=(a*2+5)*50+b+365-615

Pgina 36 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
PROGRAMACIN CON MATLAB
Introduccin
Estos desarrollos pretenden servir de gua para dar los primeros pasos en la
programacin con Matlab. Para aprender a programar, el lenguaje que se emplee es
(hasta cierto punto) irrelevante, lo ms importante son los conceptos de lgica de
programacin. Una vez conocido un lenguaje, pasar a otro no suele resultar difcil. Como
Matlab es un lenguaje simple, resulta idneo para los comienzos.
Un programa consiste en una serie de instrucciones escritas en un lenguaje de
programacin que se ejecutarn secuencialmente (una detrs de otra). Por lo tanto, es
requisito previo conocer cmo escribirlas correctamente (sintaxis).
Creando Un Programa
En Matlab existen dos tipos de ficheros *.m, los ficheros de comandos (llamados
scripts en ingls) y las funciones.
Los SCRIPTS contienen simplemente un conjunto de comandos que se ejecutan
sucesivamente cuando se teclea el nombre del fichero en la lnea de comandos de
MATLAB o se incluye dicho nombre en otro fichero *.m.
Un fichero de comandos puede llamar a otros ficheros de comandos.
Si un fichero de comandos se llama desde de la lnea de comandos de MATLAB, las
variables que crea pertenecen al espacio de trabajo base de MATLAB y permanecen
en l cuando se termina la ejecucin de dicho fichero.
Las FUNCIONES permiten definir funciones enteramente anlogas a las de MATLAB,
con su nombre, sus argumentos y sus valores de retorno. Los ficheros *.m que
definen funciones permiten extender las posibilidades de MATLAB; de hecho existen
bibliotecas de ficheros *.m que se venden (toolkits) o se distribuyen gratuitamente (a
travs de Internet). Las funciones definidas en ficheros *.m se caracterizan porque la
primera lnea (que no sea un comentario) comienza con la palabra function, seguida
por los valores de retorno (entre corchetes [ ] y separados por comas, si hay ms de
uno), el signo igual (=) y el nombre de la funcin, seguido de los argumentos de entrada
(entre parntesis y separados por comas).
Su estructura es la siguiente:
function [lista de valores de retorno]= name(lista de argumentos)
Ficheros De Comandos (SCRIPTS)
La elaboracin de un scripts en Matlab es muy sencilla. Basta abrir un documento de
texto (se puede hacer con cualquier editor, Matlab trae uno incorporado), escribir las
instrucciones tal como se pondran en la ventana de comandos y guardar el documento
con la extensin .m (por ejemplo: miprog.m). Matlab reconoce automticamente los
ficheros que tienen extensin .m
Si en la ventana de comandos se introduce
>>miprog
las rdenes almacenadas en el fichero miprog.m se ejecutarn, una tras otra.

Pgina 37 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
A ese recorrido a travs de las instrucciones se le conoce con el nombre de flujo y las
rdenes de un programa se denominan sentencias.
El hecho de guardar una serie de instrucciones (el cdigo) en un fichero tiene de por s
algunas ventajas: evita el repetir las sentencias en la ventana de comandos.
La potencia de un programa se pone de manifiesto si en l se contienen instrucciones
que controlan qu sentencias se ejecutan en cada circunstancia.(estructuras de
control)
Estilo
Un programa elegante suele ser un buen programa.
Empecemos diciendo que, en general, para realizar una tarea particular se pueden
emplear muchos programas diferentes que den el mismo resultado correcto. Cul es el
ms eficiente?
Hay que ir probando para mejorar la velocidad. Con la prctica -y el estudio- se
descubren las maneras ms rpidas de implementar las instrucciones entre todas las
posibles.
La confeccin de programas se vuelve frecuentemente una tarea rutinaria donde el
orden facilita las cosas.
Repasar un programa una y otra vez, modificando poco a poco el cdigo para depurarlo,
exige una cierta disciplina.
Aunque cada uno tenga sus preferencias, es conveniente desarrollar algunos hbitos.
Hbitos De Programacin
El programa debe resultar de fcil lectura. As, pasado el tiempo, es ms sencillo
revisarlo.
Los nombres de los objetos deben ser identificadores autoexplicativos. Los
nombres abstractos restan claridad al programa.
Introducir comentarios en el programa. Los comentarios son lneas que no se
ejecutan, en las que se escriben aclaraciones explicativas. Para que una lnea no se
ejecute, basta escribir al principio de ella el smbolo %. Un programa con comentarios
es ms fcil de entender.
Suele ser bueno definir las variables al comienzo. Ello evita tener que buscarlas a
lo largo del cdigo para cambiar su valor cuando sea necesario.
Para ver dnde empiezan y dnde acaban los bucles y ramificaciones, es costumbre
indentar (introducir una sangra) en las lneas contenidas en ellos. Eso resulta de
especial ayuda para interpretar las estructuras repetitivas y selectivas.

Pgina 38 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Estructuras Condicionales (Selectivas)
Para implementar el control del flujo, son muy tiles las expresiones relacionales y
lgicas, las cuales arrojan como resultado falso o verdadero.
En un programa, a veces es necesario preguntarse: es x mayor que y?
Pues si x es mayor que y, entonces......., y si no, ...... ;
o bien: caso de que la variable x sea menor que cero, hacer tal cosa.
Una condicin, como se ha indicado, slo admite dos respuestas: verdadero o falso.
As, a la pregunta es x mayor o igual que y?, que en el lenguaje de Matlab se expresa
x>=y, slo caben dos respuestas posibles:
s, verdadero, x es mayor o igual que y
o bien,
no, falso, x no es mayor o igual que y.
En resumen: con las expresiones relacionales y lgicas se pueden realizar preguntas de
respuesta unvoca (verdadero o falso), que permitan luego tomar una decisin.
MATLAB posee un lenguaje de programacin que como cualquier otro lenguaje
dispone de sentencias para realizar Estructuras Condicionales.
Las mismas permiten realizar una u otra operacin segn se cumpla o no una
determinada condicin. La Figura muestra tres posibles formas de bifurcacin.

Pgina 39 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SENTENCIA if
if condicion
sentencias
end
SENTENCIA if_else
if condicion
bloque1
else
bloque 2
end
SENTENCIA if_elseif
if condicion1
bloque1
elseif condicion2
bloque 2
elseif condicion3
bloque 3
else
bloque 4
end
SENTENCIA switch
Realiza una funcin anloga a un conjunto de if...elseif concatenados.
switch n
case 1, disp('Ud. ingreso 1'),
case 2, disp('Ud. ingreso 2')
case {3,4,5}, disp('Ud. ingreso 3,4 o 5')
otherwise, disp('El nmero es mayor que 5')
end
Al principio se evala el valor del identificador, para nuestro caso n (variable de
control), el cual debe ser un nmero escalar o una cadena de caracteres.
Este valor se compara en las distintas case, y en el caso que se verifique igualdad, se
ejecuta el bloque de sentencias que corresponda con ese resultado.
Si ninguna es igual a n se ejecutan las sentencias correspondientes a otherwise.
Segn puede verse en el ejemplo anterior, es posible agrupar varias condiciones dentro
de unas llaves (constituyendo lo que se llama un cell array o vector de celdas); basta la
igualdad con cualquier elemento del cell array para que se ejecute ese bloque de
sentencias.

Pgina 40 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Estructuras repetitivas (Bucles)
MATLAB posee un lenguaje de programacin que como cualquier otro lenguaje
dispone de sentencias para realizar estructuras repetitivas o cclicas.
Las computadoras estn especialmente diseadas para ejecutar tareas repetidamente.
Las estructuras de control repetitivas o cclicas son aquellas en las que una sentencia o
grupos de sentencias se repiten muchas veces.
Los pasos donde se realiza la sentencia o sentencias que se repiten se identifica como
cuerpo del bucle o cuerpo del ciclo y cada repeticin del cuerpo del bucle se denomina
iteracin.
Tipos de estructuras repetitivas en Matlab:

Sentencia Mientras
Sentencia Para

Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos.
Las figuras muestran dos posibles formas de bucle, con el control situado al principio o
al final del mismo.
Si el control est al comienzo de la estructura es posible que las sentencias no se
ejecuten nunca, por no haberse cumplido la condicin cuando se llega al bucle por
primera vez.

Si el control est al final de la estructura las sentencias se ejecutarn por lo menos


una vez, aunque la condicin no se cumpla.

Muchos lenguajes de programacin disponen de bucles con control al principio (while y


for en C/C++/Java) y al final (do while en C/C++/Java).
En MATLAB no hay bucles con control al final del bucle, es decir, no existe construccin
anloga a do ... while.
Pgina 41 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SENTENCIA while
La estructura repetitiva Mientras (while para Matlab) se emplea cuando el nmero de
repeticiones no se conoce por anticipado y el cuerpo del bucle se repite mientras la
condicin sea cierta. Por esta razn a estos bucles se les denomina bucles
condicionales.Cuando la sentencia while se ejecuta, el primer paso es la evaluacin de
la condicin. Si se evala a falso, ninguna sentencia se realiza y el programa prosigue
en la siguiente sentencia despus del bucle. Si la condicin se evala a verdadera,
entonces se ejecutan las sentencias contenidas dentro del cuerpo del bucle y se evala
de nuevo la condicin.
Seudocdigo
Mientras Condicin
sentencias
fin mientras
Matlab
while Condicin
sentencias
end
Regla: en sta estructura se debe controlar una variable en la condicin y que vare en
cada iteracin. Esa variacin se debe producir en alguna sentencia dentro del bucle.
SENTENCIA for
En numerosas ocasiones se desea un bucle que se ejecute un nmero deseado de
veces, y cuyo nmero de iteraciones se conozca por anticipado.
Para este tipo de aplicaciones se utiliza la sentencia Para (for para Matlab).
La sentencia for requiere que conozcamos por anticipado el nmero de veces (Vf) que
se ejecutan las sentencias del interior del bucle.
Al ejecutarse la sentencia for la primera vez, el valor inicial Vi=1 se asigna a V, que se
denomina variable de control, y a continuacin se ejecuta la sentencia del interior del
bucle. Al llegar al final del bucle se verifica si el valor final Vf es mayor que el valor
inicial; en caso negativo se incrementa el valor de la variable de control en el valor p
(p=paso o incremento, por lo general p=1) y se vuelven a ejecutar todas las sentencias
del interior del bucle, hasta que la variable de control sea mayor que el valor final (Vf),
en cuyo momento se termina el bucle y se sigue con la siguiente sentencia fuera del
mismo.
Seudocdigo
Para V=1:1:Vf
sentencias
fin Para
Matlab
for V=1:1:Vf
sentencias
end

Pgina 42 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Regla: es ilegal intentar modificar el valor de la variable de control, en su valor inicial y
su valor final dentro del bucle.
La siguiente construccin ejecuta sentencias con valores de i de 1 a n, variando de uno
en uno; mostrando el valor de i en cada ciclo.
for i=1:n
i
end
En algunos casos es necesario que la variable de control aumente su valor con
incremento distinto de 1. Por ejemplo:
for cont=1:0.5:10
Sentencias
end
En ste caso cont tomar como valor inicial el valor igual 1 y en cada ciclo se
incrementar 0,5 hasta que cont tome un valor mayor a 10, dando por terminado el
bucle.
Esto nos permite utilizar el valor de la variable de control para intervenir en alguna
expresin dentro del ciclo.
En el siguiente ejemplo se presenta un incremento negativo
for i=n:-0.2:1
i
end
El bucle se ejecuta por primera vez con i=n, y luego i se va reduciendo de 0.2 en 0.2
hasta que llega a ser menor que 1, en cuyo caso el bucle se termina.
Bucles anidados
La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos sus
posibles valores).
m=3
n=m
for i=1:m
i
for j=1:n
j
end
end
SENTENCIA break
Hace que se termine la ejecucin del bucle for y/o while y se contine con el programa
fuera del ciclo.
n=2
for i=1:10
i,a=n^i
if a>20
break
end
end

Pgina 43 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
El bucle comienza con i=1 y luego se muestra el valor de i y de a=n^i y a posterior se
pregunta si a es mayor que 20, mientras no se cumpla esta condicin el bucle se sigue
repitiendo hasta que llegue i=10 o a>20; lo que ocurra primero.
SENTENCIA continue
Hace que se pase inmediatamente a la siguiente iteracin del bucle for o while,
saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteracin
actual.
n=2
for i=1:10
i,a=n^i, continue
if a>20
break
end
end
COMANDOS UTILES DE PROGRAMACIN
%

permite insertar comentarios en el programa, a partir de l, la lnea


no se ejecuta)

input

permite visualizar un mensaje en la lnea de comandos de MATLAB


y recuperar como valor de retorno un valor numrico o el resultado
de una expresin tecleada por el usuario.

Despus de mostrar el mensaje, el programa espera que el usuario teclee el valor


numrico o la expresin. Cualquier expresin vlida de MATLAB es aceptada por este
comando. El usuario puede teclear simplemente un vector o una matriz. En cualquier
caso, la expresin introducida es evaluada con los valores actuales de las variables de
MATLAB y el resultado se devuelve como valor de retorno.
>> n = input('Teclee el nmero de ecuaciones')
En este caso el valor ingresado por el usuario se guarda en la variable n.Otra posible
forma de sta funcin es la siguiente (obsrvese el parmetro 's'):
>> nombre = input ('Cmo te llamas?','s')
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo
que se almacena en la cadena nombre. As pues, en este caso, si se teclea una
frmula, se almacena como texto sin evaluarse.
disp

permite visualizar en pantalla un mensaje de texto o el valor de una


matriz, pero sin imprimir su nombre.

En realidad, disp siempre imprime vectores y/o matrices; las cadenas de caracteres son
un caso particular de vectores.

Pgina 44 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Considrense los siguientes ejemplos de cmo se utiliza:
>> disp('El programa ha terminado')
El programa ha terminado
Obsrvese que el texto que queremos que nos muestre Matlab, se encierra entre
apstrofes simples.
Ejectense las dos siguientes sentencias en MATLAB y obsrvese la diferencia entre las
dos formas de imprimir la matriz A.
>> A=rand(4,4)
>> disp(A)
0.9355
0.9169
0.4103
0.8936

0.0579
0.3529
0.8132
0.0099

0.1389
0.2028
0.1987
0.6038

0.2722
0.1988
0.0153
0.7468

permite visualizar en conjunto mensajes de texto y valores.

fprintf

Su forma genrico es:


fprintf('cadena de control',var1,var2,...)
La cadena de control va encerrada entre apstrofos simples, y contiene la cadena de
texto a visualizar y el formato de los resultados de salida a visualizar.
Algunos formatos de salida de los resultados
%s
%d
%f

(para cadenas de caracteres)


(para variables enteras)
(para variables de punto flotante)

Ejemplo
>> R=8.7509
R=
8.7509
>> V=220.589
V=
220.5890

Pgina 45 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
>> fprintf('El valor es R =%6.2f ohm y V = %5.1f Voltios\n',R,V)
El valor es R = 8.75 ohm y la cada V = 220.6 Voltios
Desglosando cada parte tenemos:
(....):

entre apostrofes simples especificamos lo que queremos que se visualice y


el formato de salida del valor

6.2 y 5.1:

sentencias para acotar el espacio del resultado de salida, aqu acotamos


las cantidad de espacios despus del ltimo carcter visible(para nuestro
caso el carcter =) y la cantidad de decimales que se quiere visualizar, en
el ejemplo tenemos un mximo de 6 espacios y 2 decimales para el valor
de R y de 5 espacios y 1 decimal para el valor de V.(cuando se cuentan los
espacios no se considera el espacio que ocupa el punto decimal).

Continuando con el desglose


En el caso de solo colocar este smbolo % luego del = , matlab por defecto hace la
visualizacin de los nmeros sin ningn tipo de restriccin.
>>fprintf('El valor es R =%f ohm y la cada V =%f Voltios\n',R,V)
El valor es R =8.750900 ohm y la cada V =220.589000 Voltios
ohm y Voltios

luego del formato del espacio de salida podemos agregar mas


caracteres dentro de la sentencia fprintf, por lo general
aprovechamos para poner la unidad de medida de la variable
considerada.

\n

sentencia para que luego de la visualizacin el prompt aparezca en


la lnea inferior; de lo contrario aparece en la misma lnea de la
visualizacin.

R,V:

con esta sentencia lo que hacemos es llamar a la variables R y V


para mostrar sus valores con el formato y ordenamiento que le
asignamos en la sentencia entre apstrofes.

Pgina 46 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Ejemplo de programacin
Considerando un caso donde queremos disear un programa para calcular el salario
semanal de un empleado que trabaja por horas, la empresa paga una tasa de 1,5 veces
el valor de la hora normal por todas las horas trabajadas mayores a 40, crearemos el
fichero de comandos (scripts) en Matlab.

Desplegamos la solapa en el men New y elegimos la opcin Script

Pgina 47 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
y se nos abrir el editor de Matlab para comenzar a escribir el programa en el rengln 1.

Continuamos escribiendo en orden secuencial

Una vez escrito el programa debemos guardar el mismo en la carpeta work del
directorio Matlab, dndole un nombre al archivo con extensin .m
Para ejecutar el programa desde el workspace se teclea el nombre del archivo y luego
enter, comenzando de esa manera la ejecucin del programa creado.

Pgina 48 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
FUNCIONES (FUNCTION) EN MATLAB
En general una funcin en los lenguajes de programacin es un conjunto de
instrucciones que se escriben separadamente del programa y que realizan alguna tarea
especificada.
Si un fichero de comandos (SCRIPTS) de Matlab realiza acciones concretas sobre
variables de entrada para generar variables de salida, es mejor convertirlo en una
funcin de Matlab.
De esta forma, el resto de las variables que se utilicen en la funcin sern variables
locales, con lo que no alterarn el contenido de las variables definidas en el entorno de
comandos de Matlab. Por supuesto, las funciones pueden llamarse tambin desde otros
ficheros de comandos o funciones de Matlab.
Los usuarios pueden definir funciones y agregarlas a las funciones propias de MATLAB.
El mecanismo usual para trasmitir datos a las funciones es mediante una lista de
variables que se denominan parmetros.
Sin embargo, a diferencia de los programas, las variables que se usan dentro de una
funcin, no estn disponibles fuera de ella, a menos que se use una declaracin
explcita y que se ver mas adelante.
Declaracin de una funcin
function [variable] = nombre (parmetros)
instrucciones
donde:
variable: contendr el resultado que entrega la funcin
parmetros: son variable que reciben los datos que entran a la funcin
nombre: identifica a la funcin
instrucciones: se incluyen en la funcin segn la tarea especificada
Las funciones se escriben en la ventana de edicin de Matlab y se las almacena en
alguna carpeta. Es conveniente que el nombre asignado sea igual al nombre usado en
la declaracin de la funcin. El uso de una funcin es similar al uso de las funciones
comunes de MATLAB. El nombre debe coincidir con el nombre asignado, aunque los
parmetros pueden tener nombres diferentes, pero su uso debe ser coherente.
Ejemplo. Escriba una funcin para elegir el mayor entre dos nmeros
Abra un documento nuevo en la ventana de edicin y escriba:
function [m] = mayor(a, b)
if a>b
m = a;
else
m = b;
end

Pgina 49 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
donde:
m
mayor
a, b

es la variable que entrega el resultado


es el nombre de la funcin
son los parmetros que ingresan los datos a la funcin

Almacene esta funcin en el disco con el nombre mayor

Suponer que quiere escoger el mayor valor entre e y .


Escriba en la ventana de comandos:
>> a = exp(pi);
>> b = pi^exp(1);
>> m = mayor(a, b)
23.1407
(respuesta que muestra MATLAB)
Los nombres de las variables pueden ser diferentes:
>> x = exp(pi);
>> y = pi^exp(1);
>> t = mayor(x, y)
23.1407
(respuesta que muestra MATLAB)
Ejemplo. Escriba una funcin que reciba un nmero y determine si es un nmero primo.
El resultado que entrega la funcin ser 1 o 0 segn corresponda;
function [p] = primo( x )
c = 0;
for d = 1: x
if mod(x, d) ==0
c = c + 1;
end
end
if c > 2
p = 0;
else
p = 1;
end
Guarde la funcin en el disco con el nombre primo
Pruebe la funcin desde la ventana de comandos
>> x = 25;
>> p = primo(x)
0
(resultado que muestra MATLAB)
>> x = 43;
>> p = primo(x)
1
(resultado que muestra MATLAB)

Pgina 50 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Escriba en una nueva ventana de edicin un programa que use la funcin primo para
encontrar todos los nmeros primos menores a 20:
for x = 1: 20
if primo(x) ==1
disp(x);
end
end
Almacene su programa en el disco con el nombre prueba
En la ventana de comandos pruebe su programa:
>> prueba
1 (resultados mostrados por MATLAB)
2
3
5
7
11
13
17
19
Una funcin puede entregar ms de un resultado
Las variables que entregan los resultados deben definirse entre [ ]
Ej. Escriba una funcin que entregue el rea y el volumen de un cilindro dados su radio
(r) y su altura (h)
function[area, vol] = cilindro(r, h)
area = 2*pi*r*h + 2*pi*r^2;
vol = pi*r^2*h;
Escriba y almacene la funcin con el nombre cilindro. Use la funcin para calcular el
rea y el volumen de una lata cilndrica que tiene un dimetro de 10cm y una altura de
12cm
Escriba en la ventana de comandos:
>> r = 5;
>> h = 12;
>> [a, v] = cilindro(r,h);
>> a
>> v
MATLAB mostrar los resultados almacenados en a y en v

Pgina 51 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Las variables definidas dentro de una funcin son locales, es decir que a
diferencia de los programas, no son visibles fuera de la funcin
Ej. Escriba la funcin:
function [x]=fn(a, b)
c = a + b;
x = 2*c;
Almacene con el nombre fn y sela desde la ventana de comandos:
>> a = 3;
>> b = 5;
>> t = fn(a, b)
t = 16 (resultado que muestra MATLAB)
>> c
(intentamos conocer el valor de c en la funcin)
??? Undefined function or variable 'c'. (mensaje de error de MATLAB)
Compare con lo que ocurre si escribe un programa en vez de la funcin;
a = input(ingrese dato );
b = input(ingrese dato );
c = a + b;
x = 2*c;
disp(x);
Guarde el programa con el nombre prueba y ejectelo:
>> prueba
ingrese dato 3
(interaccin para ingreso de datos)
ingrese dato 5
16
(resultado que muestra MATLAB)
>> c
c=8
(la variable c puede ser utilizada)
Es posible hacer que las variables de una funcin sean visibles fuera de su mbito,
mediante la declaracin global
Ej. Modifique la funcin fn para que la variable c sea visible:
function [x]=fn(a, b)
global c;
c = a + b;
x = 2*c;
Almacene con el nombre fn y use la funcin:
>> a = 3;
>> b = 5;
>> t = fn(a, b)
t = 16
(resultado que muestra MATLAB)
>> c
(intentamos conocer el valor de c en la funcin)
c=8
(la variable c est disponible ahora)

Pgina 52 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Una funcin puede no necesitar parmetros
Ej. Escriba una funcin que lea y valide un entero entre 1 y 5
function [n]=entero
x=0;
while x==0
n=input(ingrese un entero entre 1 y 5 );
if n>0 & n<6
x=1;
end
end
Una funcin puede no entregar resultados ni usar parmetros
Ej. Escriba una funcin que imprima un men
function menu
disp(1) ingresar);
disp(2) borrar);
disp(3) salir);
para usar esta funcin escriba
>> menu
Una funcin puede recibir como parmetros vectores o matrices.
Ej. Escriba una funcin que reciba un vector y entregue el promedio del valor de sus
elementos.
function [p]=prom(x)
n=length(x);
s=0;
for i=1:n
s=s+x(i);
end
p=s/n;
Para usar esta funcin debe definir el vector antes de llamar a la funcin. La funcin
determina la longitud del vector con la funcin length
>> x=[2 7 3 5 4 7 6];
>> t=prom(x)
t = 4.8571

(es el resultado que muestra MATLAB)

Una funcin puede entregar como resultado un vector o una matriz


Ej. Escriba una funcin que entregue un vector de longitud n conteniendo nmeros
aleatorios enteros con valor entre 1 y 6:
function [d]=dados(n)
for i=1:n
d(i)=fix(rand*6+1);
end

Pgina 53 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Para usar esta funcin debe enviar un valor para el parmetro n:
>> t=dados(5)
t=63432
(es el vector resultante que entrega MATLAB)
Una funcin puede recibir y entregar vectores o matrices
Ej. Escriba una funcin que reciba dos vectores A, B y entregue un tercer vector que
contenga los elementos que estn en ambos vectores:
function [C]=interseccion(A,B)
n=length(A);
m=length(B);
k=1;
for i=1:n
for j=1:m
if A(i) == B(j)
C(k) = A(i);
k = k + 1;
end
end
end
Para usar esta funcin debe definir los vectores que entran. Recuerde que pueden tener
nombres diferentes a los que usa la funcin:
>> A=[2 7 5 4 3 8];
>> B=[7 1 3 9 0];
>> C=interseccion(A,B)
C=73
(Es el vector resultante que entrega MATLAB)

Pgina 54 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
INTERACCIN CON EXCEL (para versin Matlab R2007b)
MATLAB puede intercambiar datos con otros programas de Windows.
El siguiente ejercicio muestra la relacin con EXCEL.
Ejemplo. Crear un fichero Excel sencillo como el de la figura siguiente (Libro1.xls) y
guardarlo en el directorio de trabajo de MATLAB, <work>.

1) Importar datos desde la ventana Workspace


Para importar los datos de Libro1.xls basta con abrir el Import Wizard. Para ello hacer
doble clic sobre el nombre Libro1.xls en la ventana Current Directory y en el Import
Wizard que se abre, marcar en ella la opcin Create vectors from each column using
column names, apareciendo la siguiente figura.

Pgina 55 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Donde en la ventana izquierda tenemos la posibilidad de elegir el vector zipi o zape,
creados desde Libro1.xls, haciendo click sobre el nombre del vector.(en la figura se
eligi zipi)

2) Importar datos con ayuda de la funcin xlsread


Para importar tan slo la matriz formada por los datos recuadrados en Libro1.xls y
almacenarla en el workspace con el nombre chorizo teclear:
>> chorizo=xlsread('Libro1','A8:B10')
chorizo =
7 70
8 80
9 90
3) Exportar datos con ayuda de la funcin xlswrite
En primer lugar, crear la siguiente variable de tipo cell array
>> datos={'chorizo','mortadela';1 2;3 4}
datos =
'chorizo'
'mortadela'
[
1]
[
2]
[
3]
[
4]
Luego usar xlswrite para guardar la variable datos en un fichero Libro2.xls en una hoja
(inexistente an) de nombre Embutidos y a partir de la celda B2.
(Usar la ventana de Help de MATLAB para averiguar cul es la sintaxis de uso de la
funcin)

Pgina 56 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Una vez consultada la ayuda, vemos que tenemos que teclear:


>> xlswrite('Libro2',datos,'Embutidos','B2')
Warning: Added specified worksheet.
> In xlswrite>activate_sheet at 254
In xlswrite at 212
Luego en excel abrimos desde el directorio work de Matlab el libro2.xls y obtenemos la
siguiente figura:

Pgina 57 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SIMULINK Y SIMPOWERSYSTEMS
OBJETIVOS.
Conocer una de las aplicaciones informticas que permiten modelar, simular y analizar
sistemas elctricos.

CONCEPTOS ACLARATORIOS
MODELAR
Modelar es una representacin simplificada (modelo) de un Sistema que permite
responder interrogantes sobre este ltimo sin recurrir a la experimentacin sobre dicho
sistema.
Modelos Estticos y Dinmicos: Los modelo estticos no toman en cuenta la variacin
del tiempo en cuanto que los modelos dinmicos si.
Una forma de clasificar modelos es en funcin de la manera en que las variables
evolucionan en el tiempo.
Tiempo Continuo: Las variables evolucionan continuamente en el tiempo. Generalmente
se representan mediante ecuaciones diferenciales.
Tiempo Discreto: Las variables slo pueden cambiar en determinados instantes de
tiempo. Se suelen representar mediante ecuaciones en diferencias.
SIMULAR
Simular es la accin de fingir o imitar el comportamiento de un modelo, generalmente
implementado en una computadora con el objetivo de la reproduccin del
comportamiento real de un sistema para su analisis.
La simulacin de un sistema, adems del modelado, suele requerir la utilizacin de
tcnicas de aproximacin (mtodos numricos de integracin, por ejemplo).

ANALIZAR
Analizar es distinguir y separar las partes de un todo hasta llegar a conocer sus
principios o elementos.

Pgina 58 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SIMULINK (para versin Matlab R2013a)
SIMULINK es una herramienta de MATLAB para modelar, simular y analizar sistemas
dinmicos, basada en el uso de diagramas de bloques. (Un sistema dinmico es un
sistema fsico cuyo estado de funcionamiento evoluciona con el tiempo).
Atributos

Funciona sobre MATLAB, es decir, para iniciar SIMULINK es necesario entrar antes
en MATLAB. Ambos programas estn desarrollados y comercializados por The
MathWorks, Inc.

Es soportado en sistemas Windows, Unix o Macintosh

Tiene dos fases de uso: la definicin del modelo y el anlisis del modelo.
1. La definicin del modelo, donde se construye el modelo a partir de elementos
bsicos construidos previamente, tal como integradores, bloques de ganancia,
etc..
2. El anlisis del modelo, donde se realiza la simulacin, linealizacin y
determinacin del punto de equilibrio de un modelo previamente definido..

Posee

una interfaz de usuario grfica (GUI), con diagramas de bloques para construir los
modelos utilizando operaciones con el ratn del tipo pulsar y arrastrar.

una amplia biblioteca de bloques propios de fuentes, componentes lineales y no


lineales, conectores, etc.

una gran cantidad de Demos y de funciones complementarias.

bloques de visualizacin que permiten ver los resultados de la simulacin mientras


se est ejecutando.

Permite

realizar simulaciones y analizar los resultados de forma grfica.

simular cualquier sistema que pueda ser definido por ecuaciones diferenciales
continuas y ecuaciones diferenciales discretas, lo que permite modelar sistemas
continuos en el tiempo, discretos en el tiempo o sistemas hbridos

personalizar y crear nuevos bloques.

modelar en niveles jerrquicos, de forma que podemos ver un sistema desde un


nivel superior y entrando en los bloques podemos ir descendiendo a travs de los
niveles para ver con ms detalle el modelo.

enviar resultados de la simulacin al espacio de trabajo de MATLAB para su


posterior tratamiento.

Pgina 59 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Arrancar Simulink
Para acceder a SIMULINK podemos simplemente teclear en la lnea de comandos de
MATLAB,
>>simulink
o tambin podemos acceder a travs del icono de acceso directo situado en la barra de
herramientas:

Una vez que hemos accedido a SIMULINK desde MATLAB nos encontramos una
ventana con la librera principal de bloques:

Pgina 60 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Bloques propios de Simulink
Simulink dispone de numerosos bloques ya implementados, que ejecutan las funciones
de modelizacin ms usuales. Los bloques estn agrupados de acuerdo con su
comportamiento: fuentes, sumideros, discreto, continuo, no lineal, matemtica, etc.
Simulink, adems de los bloques propios de la librera simulink, posee un conjunto de
blocksets (juego de bloques) especficos entre los cuales est SimPowerSystems, que
contiene bloques que permiten modelar sistemas de energa elctrica.
Simulink distingue entre las seales de los bloques propios de la librera simulink y las
seales de la librera SimPowerSystems, y no permite conectar un bloque de la librera
simulink a otro de SimPowerSystems a menos que dicho bloque tenga una entrada
apropiada.
Librera Simulink
Todos los componentes bsicos de Simulink, se pueden encontrar en su biblioteca de
componentes.

A continuacin se describen algunos componentes bsicos de la biblioteca de Simulink.


Fuentes (Sources)
In1
Ground
From File
From Workspace
Constant
Signal Generator
Signal Builder
Ramp
Sine Wave
Step
Chirp Signal
Clock
Sumideros (Sinks)
Out1
Terminator
To File
To Workspace

proporciona un puerto de entrada para un subsistema o


modelo.
conecta a tierra un puerto de entrada desconectado.
lee datos de un archivo.
lee datos de una matriz definida en el workspace
genera un valor constante
genera varias forma de onda
construye diferentes forma de onda
genera una seal constantemente creciente o decreciente
genera una onda senoidal
genera una funcin escaln
genera una onda senoidal de frecuencia creciente
proporciona el tiempo de simulacin
proporciona un puerto de salida para un subsistema o
modelo.
termina un puerto de salida desconectado
escribe datos en un archivo
escribe datos a una matriz del workspace

Pgina 61 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Scope
XY Graph
Display
Stop Simulation
Continua (Continuous)
Integrator
Derivative
State-Space
Transfer Fcn
Zero-Pole
Transport Delay

presenta las seales generadas durante una simulacin


muestra un grfico X-Y de las seales
muestra el valor de la entrada
detiene la simulacin cuando la entrada es distinta de cero
integra una seal
genera la derivada temporal de la entrada
implementa un sistema lineal en el espacio de estados
implementa una funcin de transferencia lineal
implementa una funcin de transferencia especificada en
polos y ceros
retrasa la entrada un intervalo de tiempo determinado

Matemticas (Math Operations)


Add
genera la suma o resta de las entradas
Subtract
genera la suma o resta de las entradas
Sum
genera la suma o resta de las entradas
Sum of elements
genera la suma o resta de las entradas
Divide
genera el producto o cociente de las entradas
Product
genera el producto o cociente de las entradas
Abs
genera el valor absoluto de la entrada
Sign
indica el signo de la entrada
MinMax
produce el valor de entrada mnimo o mximo
Slider Gain
vara una entrada usando una barra deslizante
Math Function
realiza una funcin matemtica
Rounding Function
realiza una funcin de redondeo
Trigonometric Function
realiza una funcin trigonomtrica
Polynomial
evala un polinomio en un punto
Magnitude-Angle to Complex
convierte una seal de magnitud y/o desfase en una
seal compleja
Complex to Real-Imag
obtiene las partes real e imaginaria de una seal de
entrada compleja
Real-Imag to Complex
convierte la parte real e imaginaria de una seal en
una seal compleja
Operaciones lgicas (Logic and Bit Operations)
Logical Operator
realiza operaciones lgicas
Relational Operator
compara entradas
Interval Test
determina si una seal est dentro de un intervalo
especificado
Compare To Zero
compara una seal con cero
Compare To Constant
compara una seal con una constante
Bit Operations
trata nmeros binarios
Detect Increase
detecta incrementos en el valor de una seal
Detect Decrease
detecta decrementos en el valor de una seal
Bloques no lineales (Nonlinear).
Dead Zone
incluye una zona muerta en el sistema, centrada en
torno a cero. El sistema no responde ante estos
Pgina 62 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Relay

Saturation

valores. La magnitud de la zona muerta puede ser


modificada, y echa asimtrica por medio de los
parmetros del sistema.
la salida pasa al estado on=1 cuando la entrada
supera un valor umbral, y a estado off=0 cuando cae
por debajo de un umbral distinto. El estado inicial es
off.
La seal de salida no sobrepasa un valor umbral,
configurable con los parmetros del bloque.

Enrutados de las seales (Signal Routing)


Bus Creator
crea un bus con seales separadas
Bus Selectortor
permite seleccionar diferentes canales
Mux
permite transmitir varias seales independientes por el
mismo canal
Demux
permite la descomposicin de una entrada con
mltiples seales en varias seales de salida
Selector
selecciona elementos de entrada
Manual Switch
vara la salida en funcin de dos entradas diferentes
Switch
vara la salida en funcin de un criterio de seleccin
Goto Tag Visibility
acepta la entrada de un bloque Goto
Goto
define el mbito de la etiqueta del bloque Goto
CREACIN DE UN MODELO
Una vez accedido a SIMULINK desde MATLAB para crear un nuevo modelo se hace
del navegador de libreras con lo que aparece
click sobre el icono New model
una ventana con un espacio de trabajo en blanco, donde se aaden los diferentes
bloques que conforman el modelo.
Insercin de bloques
Un modelo en SIMULINK es una coleccin de bloques interconectados que representan
un sistema.
Los bloques sirven para generar, modificar, combinar y visualizar seales.
Las lneas sirven para transmitir las seales entre los bloques en la direccin de la
flecha.
El modelo que vamos a construir es el siguiente:

Pgina 63 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Se trata un sistema en que un bloque proporciona una onda senoidal, que es integrada.
El bloque Mux forma una seal vectorizada (uniendo las dos seales) que
visualizaremos en el bloque Scope.
Para construir el modelo, comenzaremos por situar los bloques que lo forman. Los
bloques del sistema los encontramos en las siguientes libreras:
Bloque
Sine Wave (Onda senoidal)
Integrador
Mux (Multiplexor)
Scope (Osciloscopio)

Librera
Sources
Commonly Used Blocks
Commonly Used Blocks
Sinks

En la librera principal elegimos el bloque Sources,


las seales que podemos elegir como fuentes en nuestro modelo.

donde encontramos

Dentro de Sources elegimos una onda senoidal:


Para situar el bloque en el documento nuevo simplemente pinchamos con el ratn y lo
arrastramos. Al soltarlo queda perfectamente situado, y la librera de fuentes queda
abierta, as que podemos dejarla minimizada o simplemente cerrarla. Para poder ver al
mismo tiempo las libreras de bloques y el modelo que estamos construyendo podemos
ajustar el tamao de las ventanas de forma que queden bien distribuidas en la pantalla y
nos facilite el trabajo.
Una vez que hayamos situado todos los bloques del sistema, el aspecto de la pantalla
ser el siguiente:

En general, las entradas de un bloque se encuentran en el lado izquierdo, con un


smbolo > apuntando al bloque. De la misma forma, las salidas se encuentran
normalmente en el lado derecho, con el smbolo > apuntando hacia fuera del bloque. Si
queremos invertir ese orden, existen varias formas de rotar el bloque (podemos hacerlo
de 90 en 90 grados en sentido contrario a las agujas del reloj o girar 180 grados de una
vez con la opcin en el men Diagram Rotate & Flip.
Parmetros de bloques
Para parametrizar los bloques nos situamos con el ratn sobre el bloque y hacemos
doble click.
Para modificar el nmero de entradas en el bloque multiplexor situamos el ratn sobre el
bloque y hacemos doble click. Nos aparecer el cuadro de dilogo siguiente:

Pgina 64 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Solo tenemos que cambiar el nmero de entradas de 2 al valor que se quiera, y aplicar
los cambios. Este es el mtodo que se usa para cambiar los parmetros de cualquier
bloque.
Adems del multiplexor, debemos definir los valores del bloque onda senoidal. Si
hacemos doble click con el ratn en el bloque Sin Wave, nos aparece el siguiente
cuadro de dilogo:

Vemos que los parmetros que hay que definir son la amplitud, la frecuencia, la fase y el
tiempo de muestreo. El valor de la amplitud de la onda lo fijamos a 1, al igual que su
frecuencia. A la fase y al tiempo de muestreo le damos un valor de cero. Aplicamos los
cambios y cerramos el cuadro de dilogo. Para los dems bloques del modelo, no es
necesario definir ningn parmetro.

Pgina 65 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Conexiones entre bloques
Ahora que ya tenemos los bloques situados, ha llegado el momento de conectarlos.
Vamos a empezar conectando la salida del bloque de Onda Senoidal a la primera
entrada del multiplexor. Si situamos el cursor encima de la salida de la onda senoidal
podemos observar que el cursor del ratn pasa de ser la tpica flecha a convertirse en
una cruz. As es como SIMULINK indica que vamos a realizar una conexin.

Cuando nos aparezca este smbolo presionamos el botn izquierdo del ratn y lo
arrastramos hasta el puerto de entrada del multiplexor. Veremos como va apareciendo
la lnea de conexin, y cuando nos situemos sobre el smbolo de entrada > el puntero
volver a cambiar de aspecto, y ahora aparecer un tringulo slido, para indicar que
podemos terminar la conexin. Si soltamos el botn del ratn observamos que el
extremo de la conexin que acabamos de realizar cambia para convertirse en una
flecha.

Si soltamos la conexin antes del llegar al bloque de destino, la lnea se quedar


flotando sin llegar a ningn sitio, aunque podemos volver a presionar sobre ella y
alargarla hasta donde queramos.
Haremos lo mismo para conectar el bloque multiplexor al bloque Scope.

Podemos hacer lneas que partan de otras lneas y lleven su misma informacin, pero
no podemos insertar el contenido una lnea en otra lnea.
Para hacer que una lnea parta de otra lnea lo hacemos de la misma forma que si una
lnea parte de un bloque, pero mientras picamos con el ratn en la lnea debemos tener
presionada la tecla CTRL. Si nos olvidamos de presionarla, lo que haremos ser mover
la lnea y arrastrarla.

Para completar las conexiones, unimos la salida del integrador a la entrada libre del
multiplexor.

Pgina 66 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Seales Vectoriales
Antes hemos hecho referencia a que la conexin entre el multiplexor y el bloque Scope
era una seal vectorial. Una seal vectorial es la unin de varias seales. La lnea de
conexin entre el multiplexor y el osciloscopio tiene que llevar las dos seales al mismo
tiempo: la onda senoidal de la que partimos, y la integracin de sta. Del multiplexor
slo parte una lnea, pero en el osciloscopio vemos representadas las dos. La mayora
de los bloques de SIMULINK aceptan por igual las seales escalares y vectoriales. La
representacin de las lneas de conexin escalares y vectoriales es idntica. Para saber
si una seal es escalar o vectorial vamos al men Display, Signals & Ports y marcamos
la opcin Wide Nonscalar Lines (mostrar lneas vectoriales):

Vemos como el sistema nos muestra las lneas vectoriales con un trazo ms ancho.
Aadir Etiquetas al sistema
Se pueden escribir anotaciones en cualquier parte del diagrama de bloques. Para
escribir una anotacin slo hay que hacer doble click con el ratn en el lugar donde
queramos que aparezca. Aparecer un pequeo rectngulo y el cursor se transformar
en una barra vertical. Podemos escribir varias lneas presionando la tecla ENTER.
Cada lnea que escribamos es automticamente centrada en el rectngulo de escritura.
Para terminar la anotacin, picamos con el ratn en cualquier otra parte de la ventana.
Podemos, por ejemplo, ponerle un ttulo Primer Ejemplo a nuestro diagrama de
bloques.
Pgina 67 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Las etiquetas podemos moverlas a cualquier parte del dibujo arrastrndolas con el ratn.
Para cambiar el tipo y tamao de la letra, seleccionamos la anotacin y en el men
"Format Font" hacemos los cambio necesarios.
Etiquetas de lnea
Podemos aadir etiquetas a las lneas del diagrama para hacerlo ms comprensible.
Para ello hacemos doble click sobre la lnea que queramos e insertamos el comentario.

Visualizar seales
Simulink dispone de varios bloques distintos para la visualizacin de seales. Entre ellos
en Sinks estn los bloques Scope, XYGraph y Display. Nosotros utilizaremos para este
ejemplo el bloque Scope:

En nuestro ejemplo, las seales de salida que obtendremos son las siguientes:
Pgina 68 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

En color rosa podemos ver la seal que genera el bloque integrador, mientras que en
color amarillo vemos la onda senoidal de la que partimos.
En la barra de botones:

Con el botn
podemos ajustar la escala del visualizador de forma automtica.
Adems, pulsando el botn izquierdo del ratn y moviendolo sobre la grfica podemos
ampliar la zona a estudiar describiendo en su movimiento un rectngulo y soltando nos
amplia dicha zona.
Con los botones
actuaremos igual, pero se modificarn las escalas del eje X
(botn izquierdo) o del eje Y (botn derecho).
Con el botn

accedemos al men

Pgina 69 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
en el que podemos cambiar los parmetros de la grfica como nmero de seales de
entrada (Number of axes), el tiempo de muestra en la grfica (Time range en segundos),
valores en los ejes (Tick labels), como as tambin la muestra de los ltimos puntos
calculados (History) y formato de fondos y lneas de la grfica (Style).
Guardar un modelo
Para guardar un modelo vamos al men File Save , si el modelo ya tiene un nombre
asignado, o File Save As..., cuando es la primera vez que vamos a guardarlo. El
modelo se guardar con extensin .mdl .
Imprimir un modelo
Podemos imprimir un diagrama de bloques seleccionando en el men File Print o
introduciendo la orden print en la lnea de rdenes de MATLAB.
Si elegimos File Print, se imprime el diagrama de bloques del sistema. Entre las
opciones de impresin podemos elegir imprimir slo el sistema o subsistema actual,
imprimir el actual y de nivel superior, el nivel inferior... No se imprime ninguno de los
bloques Scope que est abierto.
No se puede controlar el tamao del sistema cuando el modelo a imprimir se enva
directamente a la impresora. Si el diagrama es mayor que el tamao de pgina,
SIMULINK lo reduce para que entre en la pgina. Para controlar el tamao del modelo
que queremos imprimir, tenemos que hacerlo a travs de un archivo eps, o capturando
pantallas en forma de bitmaps y manipulando posteriormente su tamao mediante un
programa de procesamiento de imgenes.
PARMETROS DE SIMULACIN
Podemos simular un sistema de dos formas: mediante el men de Simulink, o
introduciendo rdenes desde la lnea de comandos de MATLAB. Si lo hacemos de una
u otra forma, encontramos las siguientes diferencias:
Desde Matlab:
- Se pueden modificar las condiciones iniciales de los bloques
- Se genera automticamente una grfica de las salidas o de las trayectorias de estado,
si no indicamos lo contrario.
- Se pueden especificar entradas externas (utilizando el parmetro ut).
- Se puede ejecutar una simulacin desde un fichero-M, permitiendo que los parmetros
en los bloques se cambien iterativamente.
- La simulacin se ejecuta ms rpido
Desde Simulink:
- Mientras se ejecuta la simulacin, se pueden cambiar los parmetros de un bloque o
cualquier parmetro de simulacin, mtodo de simulacin, podemos ver la seal que
transporta cada lnea, etc...
Simulacin de un modelo desde SIMULINK
Si escogemos en el men de Simulation Model Configuration Parameters nos
aparece un cuadro de dilogo.

Pgina 70 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Dentro de este cuadro nos encontramos con varias opciones. En ste tutorial
describiremos la primera opcin Solver, la cual se ocupa de todo lo que se refiere al
mtodo de resolucin y la opcin Diagnostics la cual nos permite seleccionar el nivel
de los mensajes de advertencia mostrados durante la simulacin.

Opcin Solver
La opcin Solver nos permite modificar entre otros los siguientes parmetros: tiempo de
simulacin, mtodo de integracin, tamao de pasos mximo y mnimo, mrgenes de
error (tolerancia relativa y absoluta), etc:
Tiempo de simulacin:
Los parmetros Start time y Stop time especifican los valores de tiempo en los que la
simulacin comienza y termina. Por defecto, el tiempo inicial es de 0 sg y el tiempo final
de 10 sg, El tiempo de simulacin no es tiempo real, es decir, el verdadero tiempo
empleado en una simulacin no es la diferencia entre el tiempo de inicio y de
finalizacin, sino que depender de la complejidad del modelo, de los tamaos de paso
mnimo y mximo, y del ordenador con el que realicemos la simulacin.
Mtodo de integracin (Solver Options):
Es el mtodo matemtico que utiliza SIMULINK para realizar la simulacin de modelos.
Se hace a travs de modificaciones de ecuaciones diferenciales ordinarias (ODEs).
Debido al comportamiento de los distintos sistemas dinmicos, algunos mtodos pueden
ser ms eficientes que otros, segn el sistema de que se trate.
Podemos elegir entre mtodos de paso variable (Variable-step) o de paso fijo (Fixedstep). Los mtodos de paso variable permiten modificar el tamao del paso durante la
simulacin, mientras que los de paso fijo mantienen el mismo paso durante toda la
simulacin.
El paso es el tiempo o perodo cada cuanto se realiza la resolucin matemtica del
modelo.
Entre los mtodos de paso variable podemos usar:
discrete: Es el mtodo que usa SIMULINK cuando detecta que el modelo no tiene
estados continuos.
ode45: Para ecuaciones no demasiado complejas. Es un mtodo de un solo paso, es
decir, para averiguar un punto slo se basa en el calculado anteriormente. En general,
es el mtodo ms apropiado para solucionar la mayora de los problemas. Est basado
en el mtodo de Runge-Kutta.
Pgina 71 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
ode23: Para ecuaciones no demasiado complejas. Es un mtodo de un solo paso.
Est basado en el mtodo de Runge-Kutta. Es ms rpido pero menos preciso que el
ode45.
ode113: Para ecuaciones no demasiado complejas. Es un mtodo multipaso, es decir,
necesita conocer varios puntos anteriores para calcular la solucin. Este es el mtodo
variable de Adams-Bachforth-Moulton.
ode15s: Para ecuaciones complejas. Como el mtodo ode113, es un mtodo de
varios pasos. Se utiliza cuando el mtodo ode45 no es lo suficientemente eficaz.
ode23s: Para ecuaciones complejas. Es un mtodo de un solo paso, basado en la
frmula modificada de Rosenbrock de orden 2, por lo que puede ser ms eficaz que el
mtodo ode15s para tolerancias no muy exigentes.
ode23t: Para ecuaciones de dificultad media, basado en el mtodo de regla
trapezoidal. Es muy buena alternativa para la resolucin de circuitos elctricos.
Entre los mtodos de paso fijo podemos usar:
discrete: Es un mtodo de paso fijo que funciona sin integrar. Esta indicado para
modelos sin estados continuos.
ode5: Es la versin de paso fijo del mtodo ode45 (frmula de Dormand-Prince).
ode4: Es la frmula de Runge-Kutta de orden 4.
ode3: Es la versin de paso fijo del mtodo ode23 (frmula de Bogacki-Shampine).
ode2: Es el mtodo de Heun, tambin conocido como frmula mejorada de Euler.
ode1: Mtodo de Euler.
Tamaos de paso
En los sistemas de paso variable podemos fijar el tamao de paso mximo y sugerir el
tamao de paso mnimo. En los sistemas de paso fijo, podemos fijar el tamao de paso.
Paso mximo (Max Step Size): Es el mayor tiempo de paso que utiliza el mtodo de
resolucin. Por defecto, viene determinado por los tiempos de inicio y de finalizacin
Generalmente, el valor del paso mximo que SIMULINK toma por defecto es suficiente,
salvo que conozcamos con detalle el comportamiento del sistema.
Paso mnimo (Min Step Size): Por defecto, el mtodo de resolucin fija el tamao de
paso inicial en relacin con el tiempo de inicio de la simulacin. Si nosotros fijamos el
tamao de paso mnimo, pero no se cumple el error mnimo, SIMULINK reduce el
tamao de paso mnimo.
Margen de error: Podemos controlar en la simulacin el error en cada estado. Esto de
mide en la tolerancia relativa y absoluta.
Tolerancia relativa (Relative tolerance): Mide el error relativo de cada estado. La
tolerancia relativa representa un porcentaje del valor de cada estado. Por defecto, la
tolerancia relativa est establecida en 1e-3 . Esto significa que el valor tendr una
exactitud del 0.1%.
Tolerancia absoluta (Absolute tolerance): Es el valor del umbral de error. Representa
como error aceptable el valor de la medida del estado ms prximo a cero.

Pgina 72 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Opcin Diagnostics

En la pestaa de diagnsticos podemos especificar la accin que queremos que realice


SIMULINK cuando se encuentre con cualquiera de los eventos especificados, por
ejemplo, si nos encontramos con una lnea sin conexin, queremos que nos de un
mensaje de advertencia:
Para cada tipo de evento, podemos elegir entre que no aparezca ningn mensaje
(none), que aparezca un mensaje de advertencia ( warning ), o que nos aparezca un
mensaje de error (error). La diferencia entre estos dos ltimos tipos de mensaje es que
el de advertencia no finaliza la simulacin, mientras que el de error s lo hace.
MEJORA DE PRECISIN Y VELOCIDAD DE EJECUCIN EN LA SIMULACIN
La ejecucin y precisin de una simulacin puede verse afectada por varios factores,
incluyendo el diseo del modelo y la eleccin de los parmetros de simulacin. Para la
mayora de los modelos, los valores que presentan por defecto los mtodos de
resolucin (solvers) son suficientes para obtener una velocidad y precisin aceptables.
Sin embargo, algunos modelos pueden tener un mayor rendimiento si se ajustan bien
los parmetros de simulacin. Asimismo, si tenemos ms informacin sobre el
comportamiento del modelo, los resultados de la simulacin pueden ser mejores.
Simulacin lenta
Las causas de que la velocidad de simulacin sea demasiado lenta pueden ser:
Que el modelo incluya bloques Fcn de MATLAB. Cuando estos bloques aparecen
en un modelo, el intrprete de MATLAB es llamado en cada paso de tiempo,
haciendo la simulacin mucho ms lenta.
Que el modelo incluya un archivo-M o una funcin-S
Que el modelo incluya un bloque Memory. Estos bloques causan que los mtodos
de resolucin de orden variable (ode15s y ode113) vuelvan al orden 1 en cada paso
de tiempo.
Que el tamao de paso mximo sea demasiado pequeo. Si ocurre esto, prueba a
repetir la simulacin con el valor de paso mximo por defecto.

Pgina 73 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Que la tolerancia absoluta sea demasiado pequea. Normalmente, la tolerancia
por defecto suele ser suficiente.
Que el tiempo de simulacin sea demasiado grande. Prueba a reducirlo.
Que el sistema sea un sistema "stiff" y no estemos usando un mtodo
adecuado. Prueba a usar el mtodo ode15s.
Que el modelo use tiempos de muestreo que no sean mltiplos de los otros.
Esto provoca que se tomen pasos muy pequeos para poder cumplir el tiempo de
muestreo.
Que el modelo contenga lazos algebraicos. Las soluciones a estos lazos son
calculadas iterativamente en cada paso. Por eso, empeora mucho la ejecucin de la
simulacin.
Que el modelo alimente bloques Random Number de un Integrador. Para
sistemas continuos, es mejor usar bloques Band-Limited White Noise block (ruido
blando limitado en banda), de la librera de fuentes.
USO DE MSCARAS PARA PERSONALIZAR BLOQUES
Introduccin
El enmascaramiento es una poderosa herramienta de Simulink que permite personalizar
el cuadro de dilogo y el icono de un subsistema. Con el enmascaramiento
conseguimos:

Simplificar el manejo del modelo, reemplazando el cuadro de dilogo de cada


bloque del subsistema por uno slo. En lugar de abrir cada bloque del modelo para
introducir el valor de los parmetros, stos parmetros se introducen en el cuadro de
dilogo de la mscara y pasan directamente a los bloques del sistema
enmascarado.

Usar una interfaz ms fcil y descriptiva, ya que incluimos nuestra propia definicin
del sistema, texto de ayuda, e incluso podemos usar nuestras propias etiquetas de
campo.

Usar los valores de los parmetros de los bloques para definir nuevas variables.

Crear un icono para el bloque que represente el propsito del subsistema

Evitar modificaciones accidentales del subsistema, al ocultar su contenido bajo la


mscara.
Ejemplo de subsistema enmascarado
Para hacer un ejemplo de cmo enmascarar un subsistema, primero vamos a crear el
subsistema. Para ello, partimos de un modelo sencillo, que representar la ecuacin de
una recta.
La ecuacin de la recta es: r = ax + b. Para representarla, usamos una seal "x", la cual
multiplicamos por una pendiente "a". Esto lo llevamos a cabo con un bloque Gain.
Finalmente, a ese producto "ax" le sumamos una constante "b". El resultado final es
ax+b.

Pgina 74 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Una vez creado el modelo, para crear el subsistema seleccionamos con el ratn todos
los bloques del modelo, y en el men Diagram seleccionamos la opcin Subsystem &
Model Reference y luego Create Subsystem from Selection:

Vemos que el subsistema se representa como un bloque en el que solo vemos las
entradas y las salidas:

Si queremos ver otra vez el contenido del subsistema y acceder a sus bloques, hacemos
doble click con el ratn sobre el bloque Subsystem y vemos lo que hay en su interior:

Pgina 75 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
FUNCIONES S
Qu es una funcin S?
Una Funcin S es una descripcin de un sistema dinmico. Las Funciones S
pueden escribirse en lenguaje MATLAB o C. Las escritas en lenguaje MATLAB son
compiladas como archivos MEX, y al igual que otros archivos MEX son enlazados
dinmicamente dentro de MATLAB cuando se necesita.
La forma de una Funcin S es muy general, y puede ajustarse a sistemas continuos,
discretos o hbridos. De hecho, casi todos los modelos Simulink pueden escribirse como
una Funcin S.
Si existe una Funcin S escrita en forma de archivo MEX (lenguaje C), y otra con el
mismo nombre escrita en forma de archivo M, tiene preferencia el archivo C MEX, y es
el que se ejecuta cuando llamemos a la funcin.
Para insertar una Funcin S en un modelo de Simulink, disponemos del bloque SFunction, que se encuentra en la librera User-Defined Functions

.
El cuadro de dilogo de una Funcin S es el siguiente:

Si usamos el enmascaramiento de bloques, que hemos visto anteriormente, podemos


personalizar el cuadro de dilogo y el icono de la Funcin S.

Pgina 76 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Cuando se usa una Funcin S?
Para lo que ms se usan la Funciones S es para crear bloques de Simulink
personalizados por el usuario. Entre las aplicaciones de las Funciones S se encuentran:

Aadir nuevos bloques de propsito general a Simulink

Aadir cdigo C ya existente a una Simulacin

Describir un sistema como un conjunto de ecuaciones matemticas

Usar animaciones grficas


Una ventaja de usar Funciones S es que se pueden construir bloques de propsito
general que se pueden usar muchas veces en un modelo, modificando parmetros para
cada bloque en especial.
Como funciona una Funcin S?
Cada bloque dentro de un modelo de Simulink tiene las siguientes caractersticas: un
vector de entrada, u, un vector de salida, y, y un vector de estados, x, tal como se
muestra en este esquema:

El vector de estado puede consistir en estados continuos, estados discretos o una


combinacin de ambos. Los estados continuos ocupan la primera parte del vector, y los
estados discretos la segunda parte. Simulink hace repetidas llamadas a cada bloque del
modelo durante fases especficas de la simulacin.
Tambin se hacen llamadas adicionales al comienzo y final de la simulacin para
realizar tareas de inicializacin y finalizacin.
Ejercicio Modelo
a) Montar un esquema SIMULINK que conste de un generador de seales (signal
generator) y un visualizador de seal (scope). Define los parmetros de ambos
elementos, de tal forma que el generador de seal genere una onda senoidal de
amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus
parmetros por defecto. Ejecutar la simulacin indicando un max step size e initial
step size a 0.01 y observar la salida en el visualizador.
b) Aade a ese esquema otro enlace compuesto por una ganancia (gain) y otro
visualizador (este se puede obtener pinchando el ratn con el botn derecho sobre
el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el
esquema dndole diferentes valores (negativos, positivos y nulo) a la ganancia.
Observa los resultados que presentan los visualizadores.
c) Implementa ahora un esquema en el que la salida que proviene directamente del
generador y la proveniente del amplificador salgan por el mismo visualizador. Para
ello aydate de un multiplexador de seal (mux). Obtn tambin la salida en una
variable llamada yout, a travs de un bloque to workspace. Simula el sistema y
observa que la salida del visualizador y la correspondiente a plotear la variable yout
desde el prompt de MATLAB (comando plot(yout)) son idnticas. Comprueba las
caractersticas de la variable yout desde el entorno MATLAB. Haz uso de los
comandos grid y zoom para la visualizacin de la variable ploteada.

Pgina 77 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SIMPOWERSYSTEMS
Introduccin
Como habamos visto Matlab es un entorno de programacin de alto nivel que combina
el clculo numrico y grficos avanzados. Una de las caractersticas que ms ha
contribuido a la difusin de Matlab es la posibilidad de simular casi cualquier sistema en
un entorno grfico. Este entorno completamente integrado en Matlab, se denomina
Simulink. La gran cantidad de libreras de elementos que posee Simulink facilita el
desarrollo y simulacin de sistemas de ndole diversa: mecnicos, elctricos, hidrulicos,
digitales, redes neuronales, aeroespaciales, etc.
Como vimos, para acceder a Simulink es necesario ejecutar en primer lugar Matlab. Una
vez arrancado este aparece una ventana donde pulsando sobre el icono
correspondiente se accede al entorno de Simulink cuya ventana inicial muestra la lista
de libreras disponibles. Entre ellas el Simscape y en su interior el SimPowerSystems.
SimPowerSystems es una herramienta que se utiliza dentro del ambiente de Simulink
para la construccin de modelos y la simulacin de sistemas elctricos de potencia.
En SimPowerSystems se pueden realizar simulaciones con los mtodos convencionales
(en tiempo continuo y en tiempo discreto) o con el mtodo de simulacin fasorial, que es
ms rpido pero se debe utilizar tomando en cuenta sus ventajas y sus limitaciones.

Ventana de libreras Simulink y ubicacin de SimPowerSystems

Pgina 78 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

En la ventana Simulink library browser se encuentran entre otros los siguientes mens:
- Nuevo, permite crear la ventana de edicin del sistema a simular.
- SimPowerSystems>>Electrical Sources, tiene distintos fuentes de tensin y
corriente: 3-phase programmable voltage source, 3-phase source, AC current
source, AC voltage source, controlled current source, controlled voltage source, dc
voltage source
- SimPowerSystems>>Elements, tiene varios elementos pasivos: 3-phase parallel
RLC load, 3-phase series RLC branch, parallel RLC branch", parallel RLC load",
series RLC branch", series RLC load", etc.

CREACIN DE MODELOS EN SIMULINK


Para crear un modelo se hace clic sobre el icono Create new model con lo que
aparecer una nueva ventana donde se encuentra la zona de trabajo (Figura 3).

Figura 3: Creacin de un nuevo modelo


Sobre la zona de trabajo se van disponiendo los distintos elementos que compongan el
circuito a simular y que se extraen desde la librera de Simpowersystem. Para ello basta
con arrastrar con el ratn el elemento deseado desde la ventana de libreras hasta la
zona de trabajo en la ventana de modelo.

Pgina 79 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Una vez dispuestos los elementos, es necesario realizar las conexiones entre ellos. Las
uniones entre dos elementos se realizan pinchando en un terminal de uno de los
elementos. Manteniendo pulsado el botn del ratn y desplazndolo, se iniciar una
lnea que podremos finalizar al soltar el botn del ratn en el terminal del otro elemento.
Un instante de este proceso se muestra en la Figura 4.
Concluido el proceso de conexionado se procede a la asignacin de valores a los
elementos. Haciendo doble clic sobre ellos se despliega una ventana donde aparecen
las caractersticas asociadas a cada elemento. Aunque las propiedades son distintas
para cada tipo, la mayora son bastante intuitivas y su significado se puede deducir
fcilmente.

Figura 4: Insercin y conexin de elementos


El ltimo paso a realizar antes de la simulacin consiste en configurar los parmetros de
dicha simulacin. En el men Simulation de la ventana de modelo se elige Configuration
Parameters, con lo que se abrir la ventana mostrada en la Figura 5.

Pgina 80 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Figura 5: Ventana de configuracin de parmetros


Los parmetros de inters para las simulaciones que se realizarn se limitan a
establecer el tiempo de inicio y finalizacin, as como el tipo de algoritmo a emplear. En
la simulacin de circuitos elctricos se recomienda utilizar el denominado ode23t (Mod.
stiff/Trapezoidal).
DESARROLLO DE ACTIVIDADES
Actividad 1. Anlisis transitorio de un circuito de primer orden.
El circuito a simular es un circuito RL serie cuyos parmetros se muestran en la Figura
6. La fuente ser de distintos tipos como se detallar ms adelante.

Figura 6: Circuito RL Serie


Al construir el circuito en Simulink, debe obtenerse un modelo similar al obtenido en la
Figura 7. Los elementos se encuentran disponibles en las siguientes libreras de
Simulink y Simpowersystems:
Dc Voltaje Source: Librera SimPowerSystems, subgrupo Electrical Sources.

Pgina 81 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Series RLC Branch: Librera SimPowerSystems, subgrupo elements.


Ground: Librera SimPowerSystems, subgrupo elements..
Current Measurement: : Librera SimPowerSystems subgrupo Measurement
Scope: Librera Simulink, subgrupo Sinks.
Continuous Powergui: Este elemento es aadido automticamente por Simulink al
realizar la primera simulacin.

Figura 7: Circuito RL Serie en Simulink


Los nombres de los elementos pueden cambiarse simplemente pulsando una sola vez
sobre ellos.
En el modelo construido slo se ha dispuesto un elemento para medir la corriente de la
rama RL. Si se desea, pueden aadirse otros, ya sean medidores de tensin o
intensidad, simplemente conectndolos al circuito y a un visualizador tipo Scope.
Sobre este circuito realizaremos las simulaciones que se detallan a continuacin:
Circuito sin fuente con condiciones iniciales no nulas.
Asignaremos valor cero a la fuente, R=5, L=0.25H y condicin inicial de la intensidad
de la bobina en 5A (Todo ello haciendo doble clic sobre los elementos). Para que estas
condiciones iniciales sean tenidas en cuenta es necesario hacer doble clic en el bloque
Continuous y en el apartado Inicial Status Setting seleccionar Force initial Status To
Block Setting.
Realizar la simulacin entre 0 y 1 segundos
Medir de forma aproximada el tiempo que tarda en desaparecer la intensidad del
circuito.
Cambiar las condiciones iniciales a 10 A y medir el nuevo tiempo de extincin de
la intensidad.

Circuito con fuente de continua.


Cambiar el valor de la fuente a 10 V y anular las condiciones iniciales. Comparar
el tiempo que tarda el circuito en alcanzar el rgimen permanente con los
obtenidos en el apartado anterior.
Aadir condiciones iniciales a la bobina (5A) y comprobar la nueva evolucin del
circuito.
Circuito con fuente de alterna.
Cambiar la fuente por una de alterna de 100 V, 50 Hz. Observar la respuesta del
circuito sin condiciones iniciales y con ella.
Pgina 82 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Actividad 2. Descarga de un condensador sobre otro.


En este apartado se analizar el transitorio que tiene lugar cuando un condensador
cargado a una cierta tensin se conecta en paralelo con otro descargado o bien cuya
tensin es diferente. Una situacin como la descrita tiene lugar en el circuito de la Figura
8. Donde el interruptor K1 se cierra en t=0 y carga el condensador C1 hasta el instante
t=0.2 seg. Posteriormente este condensador se conecta en paralelo con C2 en t=0.5
seg.

Figura 8: Circuito de descarga de condensador sobre otro


En este circuito se desea visualizar la evolucin de las tensiones de los condensadores
y la intensidad que circula desde uno a otro. Para ello se crear en Simulink un modelo
como el mostrado en la Figura 9.
Para los condensadores y resistencias se utilizarn elementos Series RLC Branch
configurndolos como tales. Los interruptores se encuentran en Librera
SimPowerSystems, subgrupo elements, bajo el nombre de Breaker. En estos
interruptores es posible configurar si el control de apertura y cierre es externo o interno,
la posicin inicial, y los tiempos en los que se quiere que cambien de estado.

Figura 9: Modelo Simulink de descarga de un condensador sobre otro


Una vez construido el modelo se realizarn los siguientes ejercicios:
1. Visualizar la evolucin de las tensiones de los condensadores, comprobando si se
cumple el principio de conservacin de carga.
2. Verificar el carcter impulsional de la intensidad.

Pgina 83 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
3. Cambiar el valor de la capacidad de C2 a 5mF y observar el nuevo reparto de carga
entre los condensadores.
4. Con C2 de nuevo a 1mF, modificar las condiciones iniciales del condensador 2,
asignndole 25 V a su tensin. Tras realizar la simulacin bajo estas condiciones,
comprobar de nuevo el principio de conservacin de carga.
5. Modificar los parmetros del interruptor K1 para que slo se cierre en t=0 y no se
abra en ningn momento. Visualizar la nueva evolucin de las variables del circuito.
Actividad 3. Circuito de segundo orden
Los circuitos de segundo orden presentan diferentes tipos de respuestas segn el
amortiguamiento que posean, como se pondr de manifiesto en este apartado mediante
la simulacin del siguiente circuito.

Figura 10: Circuito RLC serie


La fuente de tensin y la resistencia tomarn distintos valores como se seala a
continuacin.
1. Realizar el modelo Simulink que permita simular el circuito de la Figura 10,
insertando los elementos necesarios para visualizar la intensidad del circuito y la
tensin del condensador. La fuente de tensin ser inicialmente de continua y
valor cero. La resistencia tomar valor 3. Las condiciones iniciales sern:
Intensidad 3A, tensin del condensador 2V.
En estas condiciones observar el tipo de respuesta que presenta el circuito.
2. Modificar el valor de la resistencia a 2,1 y 0 , sucesivamente comprobando
como cambia la forma de las respuestas del circuito.
3. Asignar a la fuente un valor de 5 Vcc y comprobar para los distintos valores de R,
como el tipo de respuesta no depende del valor de la fuente
4. Repetir el apartado anterior con una fuente de alterna de 10 V, 10 Hz.
El presente material es de lectura obligatoria para el desarrollo de los contenidos en el
examen final de acreditacin de la asignatura.

Pgina 84 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SIMULINK (para versin Matlab R2007b)
SIMULINK es una herramienta de MATLAB para modelar, simular y analizar sistemas
dinmicos, basada en el uso de diagramas de bloques. (Un sistema dinmico es un
sistema fsico cuyo estado de funcionamiento evoluciona con el tiempo).
Atributos

Funciona sobre MATLAB, es decir, para iniciar SIMULINK es necesario entrar antes
en MATLAB. Ambos programas estn desarrollados y comercializados por The
MathWorks, Inc.

Es soportado en sistemas Windows, Unix o Macintosh

Tiene dos fases de uso: la definicin del modelo y el anlisis del modelo.
3. La definicin del modelo, donde se construye el modelo a partir de elementos
bsicos construidos previamente, tal como integradores, bloques de ganancia,
etc..
4. El anlisis del modelo, donde se realiza la simulacin, linealizacin y
determinacin del punto de equilibrio de un modelo previamente definido..

Posee

una interfaz de usuario grfica (GUI), con diagramas de bloques para construir los
modelos utilizando operaciones con el ratn del tipo pulsar y arrastrar.

una amplia biblioteca de bloques propios de fuentes, componentes lineales y no


lineales, conectores, etc.

una gran cantidad de Demos y de funciones complementarias.

bloques de visualizacin que permiten ver los resultados de la simulacin mientras


se est ejecutando.

Permite

realizar simulaciones y analizar los resultados de forma grfica.

simular cualquier sistema que pueda ser definido por ecuaciones diferenciales
continuas y ecuaciones diferenciales discretas, lo que permite modelar sistemas
continuos en el tiempo, discretos en el tiempo o sistemas hbridos

personalizar y crear nuevos bloques.

modelar en niveles jerrquicos, de forma que podemos ver un sistema desde un


nivel superior y entrando en los bloques podemos ir descendiendo a travs de los
niveles para ver con ms detalle el modelo.

enviar resultados de la simulacin al espacio de trabajo de MATLAB para su


posterior tratamiento.

Pgina 85 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Arrancar Simulink
Para acceder a SIMULINK podemos simplemente teclear en la lnea de comandos de
MATLAB,
>>simulink
o tambin podemos acceder a travs del icono
barra de herramientas:

de acceso directo situado en la

Una vez que hemos accedido a SIMULINK desde MATLAB nos encontramos una
ventana con la librera principal de bloques:

Bloques propios de Simulink


Simulink dispone de numerosos bloques ya implementados, que ejecutan las funciones
de modelizacin mas usuales. Los bloques estn agrupados de acuerdo con su
comportamiento: fuentes, sumideros, discreto, continuo, no lineal, matemtica, etc.

Pgina 86 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Simulink, adems de los bloques propios de la librera simulink, posee un conjunto de
blocksets (juego de bloques) especficos entre los cuales est SimPowerSystems, que
contiene bloques que permiten modelar sistemas de energa elctrica.
Simulink distingue entre las seales de los bloques propios de la librera simulink y las
seales de la librera SimPowerSystems, y no permite conectar un bloque de la librera
simulink a otro de SimPowerSystems a menos que dicho bloque tenga una entrada
apropiada.
Librera Simulink
Todos los componentes bsicos de Simulink, se pueden encontrar en su biblioteca de
componentes.

A continuacin se describen algunos componentes bsicos de la biblioteca de Simulink.


Fuentes (Sources)
In1
Ground
From File
From Workspace
Constant
Signal Generator
Signal Builder
Ramp
Sine Wave
Step
Chirp Signal
Clock
Sumideros (Sinks)
Out1
Terminator
To File
To Workspace
Scope
XY Graph
Display
Stop Simulation

proporciona un puerto de entrada para un subsistema o


modelo.
conecta a tierra un puerto de entrada desconectado.
lee datos de un archivo.
lee datos de una matriz definida en el workspace
genera un valor constante
genera varias forma de onda
construye diferentes forma de onda
genera una seal constantemente creciente o decreciente
genera una onda senoidal
genera una funcin escaln
genera una onda senoidal de frecuencia creciente
proporciona el tiempo de simulacin
proporciona un puerto de salida para un subsistema o
modelo.
termina un puerto de salida desconectado
escribe datos en un archivo
escribe datos a una matriz del workspace
presenta las seales generadas durante una simulacin
muestra un grfico X-Y de las seales
muestra el valor de la entrada
detiene la simulacin cuando la entrada es distinta de cero

Pgina 87 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Continua (Continuous)
Integrator
Derivative
State-Space
Transfer Fcn
Zero-Pole
Transport Delay

integra una seal


genera la derivada temporal de la entrada
implementa un sistema lineal en el espacio de estados
implementa una funcin de transferencia lineal
implementa una funcin de transferencia especificada en
polos y ceros
retrasa la entrada un intervalo de tiempo determinado

Matemticas (Math Operations)


Add
genera la suma o resta de las entradas
Subtract
genera la suma o resta de las entradas
Sum
genera la suma o resta de las entradas
Sum of elements
genera la suma o resta de las entradas
Divide
genera el producto o cociente de las entradas
Product
genera el producto o cociente de las entradas
Abs
genera el valor absoluto de la entrada
Sign
indica el signo de la entrada
MinMax
produce el valor de entrada mnimo o mximo
Slider Gain
vara una entrada usando una barra deslizante
Math Function
realiza una funcin matemtica
Rounding Function
realiza una funcin de redondeo
Trigonometric Function
realiza una funcin trigonomtrica
Polynomial
evala un polinomio en un punto
Magnitude-Angle to Complex
convierte una seal de magnitud y/o desfase en una
seal compleja
Complex to Real-Imag
obtiene las partes real e imaginaria de una seal de
entrada compleja
Real-Imag to Complex
convierte la parte real e imaginaria de una seal en
una seal compleja
Operaciones lgicas (Logic and Bit Operations)
Logical Operator
realiza operaciones lgicas
Relational Operator
compara entradas
Interval Test
determina si una seal est dentro de un intervalo
especificado
Compare To Zero
compara una seal con cero
Compare To Constant
compara una seal con una constante
Bit Operations
trata nmeros binarios
Detect Increase
detecta incrementos en el valor de una seal
Detect Decrease
detecta decrementos en el valor de una seal
Bloques no lineales (Nonlinear).
Dead Zone
incluye una zona muerta en el sistema, centrada en
torno a cero. El sistema no responde ante estos
valores. La magnitud de la zona muerta puede ser
modificada, y echa asimtrica por medio de los
parmetros del sistema.
Relay
la salida pasa al estado on=1 cuando la entrada
supera un valor umbral, y a estado off=0 cuando cae
Pgina 88 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Saturation

por debajo de un umbral distinto. El estado inicial es


off.
La seal de salida no sobrepasa un valor umbral,
configurable con los parmetros del bloque.

Enrutados de las seales (Signal Routing)


Bus Creator
crea un bus con seales separadas
Bus Selectortor
permite seleccionar diferentes canales
Mux
permite transmitir varias seales independientes por el
mismo canal
Demux
permite la descomposicin de una entrada con
mltiples seales en varias seales de salida
Selector
selecciona elementos de entrada
Manual Switch
vara la salida en funcin de dos entradas diferentes
Switch
vara la salida en funcin de un criterio de seleccin
Goto Tag Visibility
acepta la entrada de un bloque Goto
Goto
define el mbito de la etiqueta del bloque Goto
CREACIN DE UN MODELO
Una vez accedido a SIMULINK desde MATLAB para crear un nuevo modelo se hace
del navegador de libreras con lo que
click sobre el icono Create a new model
aparece una ventana con un espacio de trabajo en blanco, donde se aaden los
diferentes bloques que conforman el modelo.
Insercin de bloques
Un modelo en SIMULINK es una coleccin de bloques interconectados que representan
un sistema.
Los bloques sirven para generar, modificar, combinar y visualizar seales.
Las lneas sirven para transmitir las seales entre los bloques en la direccin de la
flecha.
El modelo que vamos a construir es el siguiente:

Pgina 89 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Se trata un sistema en que un bloque proporciona una onda senoidal, que es integrada.
El bloque Mux forma una seal vectorizada (uniendo las dos seales) que
visualizaremos en el bloque Scope.
Para construir el modelo, comenzaremos por situar los bloques que lo forman. Los
bloques del sistema los encontramos en las siguientes libreras:
Bloque
Sine Wave (Onda senoidal)
Integrador
Mux (Multiplexor)
Scope (Osciloscopio)

Librera
Sources
Commonly Used Blocks
Commonly Used Blocks
Sinks

En la librera principal elegimos el bloque Sources,


las seales que podemos elegir como fuentes en nuestro modelo.

donde encontramos

Dentro de Sources elegimos una onda senoidal:


Para situar el bloque en el documento nuevo simplemente pinchamos con el ratn y lo
arrastramos. Al soltarlo queda perfectamente situado, y la librera de fuentes queda
abierta, as que podemos dejarla minimizada o simplemente cerrarla. Para poder ver al
mismo tiempo las libreras de bloques y el modelo que estamos construyendo podemos
ajustar el tamao de las ventanas de forma que queden bien distribuidas en la pantalla y
nos facilite el trabajo.
Una vez que hayamos situado todos los bloques del sistema, el aspecto de la pantalla
ser el siguiente:

En general, las entradas de un bloque se encuentran en el lado izquierdo, con un


smbolo > apuntando al bloque. De la misma forma, las salidas se encuentran
normalmente en el lado derecho, con el smbolo > apuntando hacia fuera del bloque. Si
queremos invertir ese orden, existen varias formas de rotar el bloque (podemos hacerlo
de 90 en 90 grados en sentido contrario a las agujas del reloj en el men Format
Rotate Block. Tambin podemos girar 180 grados de una vez con la opcin Format
Flip Block).

Pgina 90 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Parmetros de bloques
Para parametrizar los bloques nos situamos con el ratn sobre el bloque y hacemos
doble click.
Para modificar el nmero de entradas en el bloque multiplexor situamos el ratn sobre el
bloque y hacemos doble click. Nos aparecer el cuadro de dilogo siguiente:

Solo tenemos que cambiar el nmero de entradas de 2 al valor que se quiera, y aplicar
los cambios. Este es el mtodo que se usa para cambiar los parmetros de cualquier
bloque.
Adems del multiplexor, debemos definir los valores del bloque onda senoidal. Si
hacemos doble click con el ratn en el bloque Sin Wave, nos aparece el siguiente
cuadro de dilogo:

Vemos que los parmetros que hay que definir son la amplitud, la frecuencia, la fase y el
tiempo de muestreo. El valor de la amplitud de la onda lo fijamos a 1, al igual que su
frecuencia. A la fase y al tiempo de muestreo le damos un valor de cero. Aplicamos los
cambios y cerramos el cuadro de dilogo. Para los dems bloques del modelo, no es
necesario definir ningn parmetro.

Pgina 91 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Conexiones entre bloques
Ahora que ya tenemos los bloques situados, ha llegado el momento de conectarlos.
Vamos a empezar conectando la salida del bloque de Onda Senoidal a la primera
entrada del multiplexor. Si situamos el cursor encima de la salida de la onda senoidal
podemos observar que el cursor del ratn pasa de ser la tpica flecha a convertirse en
una cruz. As es como SIMULINK indica que vamos a realizar una conexin.

Cuando nos aparezca este smbolo presionamos el botn izquierdo del ratn y lo
arrastramos hasta el puerto de entrada del multiplexor. Veremos como va apareciendo
la lnea de conexin, y cuando nos situemos sobre el smbolo de entrada el puntero
volver a cambiar de aspecto, y ahora aparecer como una cruz doble, para indicar que
podemos terminar la conexin. Si soltamos el botn del ratn observamos que el
extremo de la conexin que acabamos de realizar cambia para convertirse en una
flecha.

Si soltamos la conexin antes del llegar al bloque de destino, la lnea se quedar


flotando sin llegar a ningn sitio, aunque podemos volver a presionar sobre ella y
alargarla hasta donde queramos.
Haremos lo mismo para conectar el bloque multiplexor al bloque Scope.

Podemos hacer lneas que partan de otras lneas y lleven su misma informacin, pero
no podemos insertar el contenido una lnea en otra lnea.
Para hacer que una lnea parta de otra lnea lo hacemos de la misma forma que si una
lnea parte de un bloque, pero mientras picamos con el ratn en la lnea debemos tener
presionada la tecla CTRL. Si nos olvidamos de presionarla, lo que haremos ser mover
la lnea y arrastrarla.

Para completar las conexiones, unimos la salida del integrador a la entrada libre del
multiplexor.

Pgina 92 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Seales Vectoriales
Antes hemos hecho referencia a que la conexin entre el multiplexor y el bloque Scope
era una seal vectorial. Una seal vectorial es la unin de varias seales. La lnea de
conexin entre el multiplexor y el osciloscopio tiene que llevar las dos seales al mismo
tiempo: la onda senoidal de la que partimos, y la integracin de sta. Del multiplexor
slo parte una lnea, pero en el osciloscopio vemos representadas las dos. La mayora
de los bloques de SIMULINK aceptan por igual las seales escalares y vectoriales. La
representacin de las lneas de conexin escalares y vectoriales es idntica. Para saber
si una seal es escalar o vectorial vamos al men y marcamos la opcin de "mostrar
lneas vectoriales":

Vemos como el sistema nos muestra las lneas vectoriales con un trazo ms ancho.
Aadir Etiquetas al sistema
Se pueden escribir anotaciones en cualquier parte del diagrama de bloques. Para
escribir una anotacin slo hay que hacer doble click con el ratn en el lugar donde
queramos que aparezca. Aparecer un pequeo rectngulo y el cursor se transformar
en una barra vertical. Podemos escribir varias lneas presionando la tecla ENTER.
Cada lnea que escribamos es automticamente centrada en el rectngulo de escritura.
Para terminar la anotacin, picamos con el ratn en cualquier otra parte de la ventana.

Pgina 93 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Podemos, por ejemplo, ponerle un ttulo Primer Ejemplo a nuestro diagrama de
bloques.

Las etiquetas podemos moverlas a cualquier parte del dibujo arrastrndolas con el ratn.
Para cambiar el tipo y tamao de la letra, seleccionamos la anotacin y en el men
"Format Font" hacemos los cambio necesarios.
Etiquetas de lnea
Podemos aadir etiquetas a las lneas del diagrama para hacerlo ms comprensible.
Para ello hacemos doble click sobre la lnea que queramos e insertamos el comentario.

Visualizar seales
Simulink dispone de varios bloques distintos para la visualizacin de seales. Entre ellos
estn el bloque Scope, el bloque XYGraph y el bloque Display. Nosotros utilizaremos
para este ejemplo el bloque Scope:

Pgina 94 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
En nuestro ejemplo, las seales de salida que obtendremos son las siguientes:

En color rosa podemos ver la seal que genera el bloque integrador, mientras que en
color amarillo vemos la onda senoidal de la que partimos.
Con el botn

podemos ajustar la escala del visualizador de forma automtica.

Adems, mediante el botn


podemos acercar o alejar la escala de la grfica segn
pulsemos con el botn derecho del ratn (acercar), o con el izquierdo (alejar).
y
actuaremos igual, pero se modificarn las escalas del eje X
Con los botones
(primer botn) o del eje Y (segundo botn).
Con el botn
accedemos a un men en el que podemos cambiar la escala de los
ejes de forma exacta, dando un valor para Ymax, Ymin y X:

Finalmente, con el botn


transmitimos el valor de la escala actual, al cuadro de
dilogo que acabamos de ver.

Pgina 95 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Guardar un modelo
Para guardar un modelo vamos al men File Save , si el modelo ya tiene un nombre
asignado, o File Save As..., cuando es la primera vez que vamos a guardarlo. El
modelo se guardar con extensin .mdl .
Imprimir un modelo
Podemos imprimir un diagrama de bloques seleccionando en el men File Print o
introduciendo la orden print en la lnea de rdenes de MATLAB.
Si elegimos File Print, se imprime el diagrama de bloques del sistema. Entre las
opciones de impresin podemos elegir imprimir slo el sistema o subsistema actual,
imprimir el actual y de nivel superior, el nivel inferior... No se imprime ninguno de los
bloques Scope que est abierto.
No se puede controlar el tamao del sistema cuando el modelo a imprimir se enva
directamente a la impresora. Si el diagrama es mayor que el tamao de pgina,
SIMULINK lo reduce para que entre en la pgina. Para controlar el tamao del modelo
que queremos imprimir, tenemos que hacerlo a travs de un archivo eps, o capturando
pantallas en forma de bitmaps y manipulando posteriormente su tamao mediante un
programa de procesamiento de imgenes.

Pgina 96 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
PARMETROS DE SIMULACIN
Podemos simular un sistema de dos formas: mediante el men de Simulink, o
introduciendo rdenes desde la lnea de comandos de MATLAB. Si lo hacemos de una
u otra forma, encontramos las siguientes diferencias:
Desde Matlab:
- Se pueden modificar las condiciones iniciales de los bloques
- Se genera automticamente una grfica de las salidas o de las trayectorias de estado,
si no indicamos lo contrario.
- Se pueden especificar entradas externas (utilizando el parmetro ut).
- Se puede ejecutar una simulacin desde un fichero-M, permitiendo que los parmetros
en los bloques se cambien iterativamente.
- La simulacin se ejecuta ms rpido
Desde Simulink:
- Mientras se ejecuta la simulacin, se pueden cambiar los parmetros de un bloque o
cualquier parmetro de simulacin, mtodo de simulacin, podemos ver la seal que
transporta cada lnea, etc...
Simulacin de un modelo desde SIMULINK
Si escogemos en el men de Simulation Configuration Parameters nos aparece un
cuadro de dilogo.
Dentro de este cuadro nos encontramos con varias opciones. En ste tutorial
describiremos la primera opcin Solver, la cual se ocupa de todo lo que se refiere al
mtodo de resolucin y la opcin Diagnostics la cual nos permite seleccionar el nivel
de los mensajes de advertencia mostrados durante la simulacin.

Opcin Solver
La opcin Solver nos permite modificar entre otros los siguientes parmetros: tiempo de
simulacin, mtodo de integracin, tamao de pasos mximo y mnimo, mrgenes de
error (tolerancia relativa y absoluta), etc:

Pgina 97 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Tiempo de simulacin:
Los parmetros Start time y Stop time especifican los valores de tiempo en los que la
simulacin comienza y termina. Por defecto, el tiempo inicial es de 0 sg y el tiempo final
de 10 sg, El tiempo de simulacin no es tiempo real, es decir, el verdadero tiempo
empleado en una simulacin no es la diferencia entre el tiempo de inicio y de
finalizacin, sino que depender de la complejidad del modelo, de los tamaos de paso
mnimo y mximo, y del ordenador con el que realicemos la simulacin.
Mtodo de integracin (Solver Options):
Es el mtodo matemtico que utiliza SIMULINK para realizar la simulacin de modelos.
Se hace a travs de modificaciones de ecuaciones diferenciales ordinarias (ODEs).
Debido al comportamiento de los distintos sistemas dinmicos, algunos mtodos pueden
ser ms eficientes que otros, segn el sistema de que se trate.
Podemos elegir entre mtodos de paso variable (Variable-step) o de paso fijo (Fixedstep). Los mtodos de paso variable permiten modificar el tamao del paso durante la
simulacin, mientras que los de paso fijo mantienen el mismo paso durante toda la
simulacin.
El paso es el tiempo o perodo cada cuanto se realiza la resolucin matemtica del
modelo.
Entre los mtodos de paso variable podemos usar:
ode45: Para ecuaciones no demasiado complejas. Es un mtodo de un solo paso, es
decir, para averiguar un punto slo se basa en el calculado anteriormente. En general,
es el mtodo ms apropiado para solucionar la mayora de los problemas. Est basado
en el mtodo de Runge-Kutta.
ode23: Para ecuaciones no demasiado complejas. Es un mtodo de un solo paso.
Est basado en el mtodo de Runge-Kutta. Es ms rpido pero menos preciso que el
ode45.
ode113: Para ecuaciones no demasiado complejas. Es un mtodo multipaso, es decir,
necesita conocer varios puntos anteriores para calcular la solucin. Este es el mtodo
variable de Adams-Bachforth-Moulton.
ode15s: Para ecuaciones complejas. Como el mtodo ode113, es un mtodo de
varios pasos. Se utiliza cuando el mtodo ode45 no es lo suficientemente eficaz.
ode23s: Para ecuaciones complejas. Es un mtodo de un solo paso, basado en la
frmula modificada de Rosenbrock de orden 2, por lo que puede ser ms eficaz que el
mtodo ode15s para tolerancias no muy exigentes.
ode23t: Para ecuaciones de dificultad media, basado en el mtodo de regla
trapezoidal. Es una muy buena alternativa para la resolucin de circuitos elctricos.
discrete: Es el mtodo que usa SIMULINK cuando detecta que el modelo no tiene
estados continuos.
Entre los mtodos de paso fijo podemos usar:
ode5: Es la versin de paso fijo del mtodo ode45 (frmula de Dormand-Prince).
ode4: Es la frmula de Runge-Kutta de orden 4.
ode3: Es la versin de paso fijo del mtodo ode23 (frmula de Bogacki-Shampine).
ode2: Es el mtodo de Heun, tambin conocido como frmula mejorada de Euler.
ode1: Mtodo de Euler.
discrete: Es un mtodo de paso fijo que funciona sin integrar. Esta indicado para
modelos sin estados continuos.
Pgina 98 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Tamaos de paso
En los sistemas de paso variable podemos fijar el tamao de paso mximo y sugerir el
tamao de paso mnimo. En los sistemas de paso fijo, podemos fijar el tamao de paso.
Paso mximo (Max Step Size): Es el mayor tiempo de paso que utiliza el mtodo de
resolucin. Por defecto, viene determinado por los tiempos de inicio y de finalizacin
Generalmente, el valor del paso mximo que SIMULINK toma por defecto es suficiente,
salvo que conozcamos con detalle el comportamiento del sistema.
Paso mnimo (Min Step Size): Por defecto, el mtodo de resolucin fija el tamao de
paso inicial en relacin con el tiempo de inicio de la simulacin. Si nosotros fijamos el
tamao de paso mnimo, pero no se cumple el error mnimo, SIMULINK reduce el
tamao de paso mnimo.
Margen de error: Podemos controlar en la simulacin el error en cada estado. Esto de
mide en la tolerancia relativa y absoluta.
Tolerancia relativa (Relative tolerance): Mide el error relativo de cada estado. La
tolerancia relativa representa un porcentaje del valor de cada estado. Por defecto, la
-3
tolerancia relativa est establecida en 1e . Esto significa que el valor tendr una
exactitud del 0.1%.
Tolerancia absoluta (Absolute tolerance): Es el valor del umbral de error. Representa
como error aceptable el valor de la medida del estado ms prximo a cero.
Opcin Diagnostics

En la pestaa de diagnsticos podemos especificar la accin que queremos que realice


SIMULINK cuando se encuentre con cualquiera de los eventos especificados, por
ejemplo, si nos encontramos con una lnea sin conexin, queremos que nos de un
mensaje de advertencia:

Pgina 99 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Para cada tipo de evento, podemos elegir entre que no aparezca ningn mensaje
(none), que aparezca un mensaje de advertencia ( warning ), o que nos aparezca un
mensaje de error (error). La diferencia entre estos dos ltimos tipos de mensaje es que
el de advertencia no finaliza la simulacin, mientras que el de error s lo hace.
MEJORA DE PRECISIN Y VELOCIDAD DE EJECUCIN EN LA SIMULACIN
La ejecucin y precisin de una simulacin puede verse afectada por varios factores,
incluyendo el diseo del modelo y la eleccin de los parmetros de simulacin. Para la
mayora de los modelos, los valores que presentan por defecto los mtodos de
resolucin (solvers) son suficientes para obtener una velocidad y precisin aceptables.
Sin embargo, algunos modelos pueden tener un mayor rendimiento si se ajustan bien
los parmetros de simulacin. Asimismo, si tenemos ms informacin sobre el
comportamiento del modelo, los resultados de la simulacin pueden ser mejores.
Simulacin lenta
Las causas de que la velocidad de simulacin sea demasiado lenta pueden ser:
Que el modelo incluya bloques Fcn de MATLAB. Cuando estos bloques aparecen
en un modelo, el intrprete de MATLAB es llamado en cada paso de tiempo,
haciendo la simulacin mucho ms lenta.
Que el modelo incluya un archivo-M o una funcin-S
Que el modelo incluya un bloque Memory. Estos bloques causan que los mtodos
de resolucin de orden variable (ode15s y ode113) vuelvan al orden 1 en cada paso
de tiempo.
Que el tamao de paso mximo sea demasiado pequeo. Si ocurre esto, prueba a
repetir la simulacin con el valor de paso mximo por defecto.
Que la tolerancia absoluta sea demasiado pequea. Normalmente, la tolerancia
por defecto suele ser suficiente.
Que el tiempo de simulacin sea demasiado grande. Prueba a reducirlo.
Que el sistema sea un sistema "stiff" y no estemos usando un mtodo
adecuado. Prueba a usar el mtodo ode15s.
Que el modelo use tiempos de muestreo que no sean mltiplos de los otros.
Esto provoca que se tomen pasos muy pequeos para poder cumplir el tiempo de
muestreo.
Que el modelo contenga lazos algebraicos. Las soluciones a estos lazos son
calculadas iterativamente en cada paso. Por eso, empeora mucho la ejecucin de la
simulacin.
Que el modelo alimente bloques Random Number de un Integrador. Para
sistemas continuos, es mejor usar bloques Band-Limited White Noise block (ruido
blando limitado en banda), de la librera de fuentes.

Pgina 100 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
USO DE MSCARAS PARA PERSONALIZAR BLOQUES
Introduccin
El enmascaramiento es una poderosa herramienta de Simulink que permite personalizar
el cuadro de dilogo y el icono de un subsistema. Con el enmascaramiento
conseguimos:

Simplificar el manejo del modelo, reemplazando el cuadro de dilogo de cada


bloque del subsistema por uno slo. En lugar de abrir cada bloque del modelo para
introducir el valor de los parmetros, stos parmetros se introducen en el cuadro de
dilogo de la mscara y pasan directamente a los bloques del sistema
enmascarado.

Usar una interfaz ms fcil y descriptiva, ya que incluimos nuestra propia definicin
del sistema, texto de ayuda, e incluso podemos usar nuestras propias etiquetas de
campo.

Usar los valores de los parmetros de los bloques para definir nuevas variables.

Crear un icono para el bloque que represente el propsito del subsistema

Evitar modificaciones accidentales del subsistema, al ocultar su contenido bajo la


mscara.
Ejemplo de subsistema enmascarado
Para hacer un ejemplo de cmo enmascarar un subsistema, primero vamos a crear el
subsistema. Para ello, partimos de un modelo sencillo, que representar la ecuacin de
una recta.
La ecuacin de la recta es: r = ax + b. Para representarla, usamos una seal "x", la cual
multiplicamos por una pendiente "a". Esto lo llevamos a cabo con un bloque Gain.
Finalmente, a ese producto "ax" le sumamos una constante "b". El resultado final es
ax+b.

Una vez creado el modelo, para crear el subsistema seleccionamos con el ratn todos
los bloques del modelo, y en el men Edit seleccionamos la opcin 'Create Subsystem':

Pgina 101 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Vemos que el subsistema se representa como un bloque en el que solo vemos las
entradas y las salidas:

Si queremos ver otra vez el contenido del subsistema y acceder a sus bloques, hacemos
doble click con el ratn sobre el bloque Subsystem y vemos lo que hay en su interior:

Pgina 102 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
FUNCIONES S
Qu es una funcin S?
Una Funcin S es una descripcin de un sistema dinmico. Las Funciones S
pueden escribirse en lenguaje MATLAB o C. Las escritas en lenguaje MATLAB son
compiladas como archivos MEX, y al igual que otros archivos MEX son enlazados
dinmicamente dentro de MATLAB cuando se necesita.
La forma de una Funcin S es muy general, y puede ajustarse a sistemas continuos,
discretos o hbridos. De hecho, casi todos los modelos Simulink pueden escribirse como
una Funcin S.
Si existe una Funcin S escrita en forma de archivo MEX (lenguaje C), y otra con el
mismo nombre escrita en forma de archivo M, tiene preferencia el archivo C MEX, y es
el que se ejecuta cuando llamemos a la funcin.
Para insertar una Funcin S en un modelo de Simulink, disponemos del bloque SFunction, que se encuentra en la librera User-Defined Functions

.
El cuadro de dilogo de una Funcin S es el siguiente:

Si usamos el enmascaramiento de bloques, que hemos visto anteriormente, podemos


personalizar el cuadro de dilogo y el icono de la Funcin S.
Pgina 103 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
Cuando se usa una Funcin S?
Para lo que ms se usan la Funciones S es para crear bloques de Simulink
personalizados por el usuario. Entre las aplicaciones de las Funciones S se encuentran:

Aadir nuevos bloques de propsito general a Simulink

Aadir cdigo C ya existente a una Simulacin

Describir un sistema como un conjunto de ecuaciones matemticas

Usar animaciones grficas


Una ventaja de usar Funciones S es que se pueden construir bloques de propsito
general que se pueden usar muchas veces en un modelo, modificando parmetros para
cada bloque en especial.
Como funciona una Funcin S?
Cada bloque dentro de un modelo de Simulink tiene las siguientes caractersticas: un
vector de entrada, u, un vector de salida, y, y un vector de estados, x, tal como se
muestra en este esquema:

El vector de estado puede consistir en estados continuos, estados discretos o una


combinacin de ambos. Los estados continuos ocupan la primera parte del vector, y los
estados discretos la segunda parte. Simulink hace repetidas llamadas a cada bloque del
modelo durante fases especficas de la simulacin.
Tambin se hacen llamadas adicionales al comienzo y final de la simulacin para
realizar tareas de inicializacin y finalizacin.
Ejercicio Modelo
d) Montar un esquema SIMULINK que conste de un generador de seales (signal
generator) y un visualizador de seal (scope). Define los parmetros de ambos
elementos, de tal forma que el generador de seal genere una onda senoidal de
amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus
parmetros por defecto. Ejecutar la simulacin indicando un max step size e initial
step size a 0.01 y observar la salida en el visualizador.
e) Aade a ese esquema otro enlace compuesto por una ganancia (gain) y otro
visualizador (este se puede obtener pinchando el ratn con el botn derecho sobre
el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el
esquema dndole diferentes valores (negativos, positivos y nulo) a la ganancia.
Observa los resultados que presentan los visualizadores.
f) Implementa ahora un esquema en el que la salida que proviene directamente del
generador y la proveniente del amplificador salgan por el mismo visualizador. Para
ello aydate de un multiplexador de seal (mux). Obtn tambin la salida en una
variable llamada yout, a travs de un bloque to workspace. Simula el sistema y
observa que la salida del visualizador y la correspondiente a plotear la variable yout
desde el prompt de MATLAB (comando plot(yout)) son idnticas. Comprueba las
caractersticas de la variable yout desde el entorno MATLAB. Haz uso de los
comandos grid y zoom para la visualizacin de la variable ploteada.

Pgina 104 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SIMPOWERSYSTEMS
Introduccin
SimPowerSystems es una herramienta que se utiliza dentro del ambiente de Simulink
para la construccin de modelos y la simulacin de sistemas elctricos de potencia.
En SimPowerSystems se pueden realizar simulaciones con los mtodos convencionales
(en tiempo continuo y en tiempo discreto) o con el mtodo de simulacin fasorial, que es
ms rpido pero se debe utilizar tomando en cuenta sus ventajas y sus limitaciones.
Como habamos visto Matlab es un entorno de programacin de alto nivel que combina
el clculo numrico y grficos avanzados. Una de las caractersticas que ms ha
contribuido a la difusin de Matlab es la posibilidad de simular casi cualquier sistema en
un entorno grfico. Este entorno completamente integrado en Matlab, se denomina
Simulink. La gran cantidad de libreras de elementos que posee Simulink facilita el
desarrollo y simulacin de sistemas de ndole diversa: mecnicos, elctricos, hidrulicos,
digitales, redes neuronales, aeroespaciales, etc.
Como vimos, para acceder a Simulink es necesario ejecutar en primer lugar Matlab. Una
vez arrancado este aparece una ventana similar a la mostrada en la Figura 1. En ella
pulsando sobre el icono correspondiente (indicado en dicha figura) se accede al entorno
de Simulink cuya ventana inicial Figura 2 muestra la lista de libreras disponibles.

Figura 1. Pantalla inicial de Matlab

Pgina 105 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Figura 2. Ventana de libreras Simulink


En la ventana Simulink library browser se encuentran entre otros los siguientes mens:
- Nuevo, permite crear la ventana de edicin del sistema a simular.
- Simulink>>Sinks, tiene visualizadores de seales y valores como Display, Scope,
To File, To Workspace, XY Graph.
- SimPowerSystems>>Connectors, tiene elementos como Bus bar y Ground
- SimPowerSystems>>Electrical Sources, tiene distintos fuentes de tensin y
corriente: 3-phase programmable voltage source, 3-phase source, AC current
source, AC voltage source, controlled current source, controlled voltage source, dc
voltage source
- SimPowerSystems>>Elements, tiene varios elementos pasivos: 3-phase parallel
RLC load, 3-phase series RLC branch, parallel RLC branch", parallel RLC load",
series RLC branch", series RLC load", etc.

Pgina 106 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
CREACIN DE MODELOS EN SIMULINK
Para crear un modelo se hace clic sobre el icono Create new model con lo que
aparecer una nueva ventana donde se encuentra la zona de trabajo (Figura 3).

Figura 3: Creacin de un nuevo modelo


Sobre la zona de trabajo se van disponiendo los distintos elementos que compongan el
circuito a simular y que se extraen desde la librera de Simpowersystem. Para ello basta
con arrastrar con el ratn el elemento deseado desde la ventana de libreras hasta la
zona de trabajo en la ventana de modelo.
Una vez dispuestos los elementos, es necesario realizar las conexiones entre ellos. Las
uniones entre dos elementos se realizan pinchando en un terminal de uno de los
elementos. Manteniendo pulsado el botn del ratn y desplazndolo, se iniciar una
lnea que podremos finalizar al soltar el botn del ratn en el terminal del otro elemento.
Un instante de este proceso se muestra en la Figura 4.
Concluido el proceso de conexionado se procede a la asignacin de valores a los
elementos. Haciendo doble clic sobre ellos se despliega una ventana donde aparecen
las caractersticas asociadas a cada elemento. Aunque las propiedades son distintas
para cada tipo, la mayora son bastante intuitivas y su significado se puede deducir
fcilmente.

Pgina 107 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)

Figura 4: Insercin y conexin de elementos


El ltimo paso a realizar antes de la simulacin consiste en configurar los parmetros de
dicha simulacin. En el men Simulation de la ventana de modelo se elige Configuration
Parameters, con lo que se abrir la ventana mostrada en la Figura 5.

Figura 5: Ventana de configuracin de parmetros


Los parmetros de inters para las simulaciones que se realizarn se limitan a
establecer el tiempo de inicio y finalizacin, as como el tipo de algoritmo a emplear. En
la simulacin de circuitos elctricos se recomienda utilizar el denominado ode23t (Mod.
stiff/Trapezoidal).

Pgina 108 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
DESARROLLO DE ACTIVIDADES
Actividad 1. Anlisis transitorio de un circuito de primer orden.
El circuito a simular es un circuito RL serie cuyos parmetros se muestran en la Figura
6. La fuente ser de distintos tipos como se detallar ms adelante.

Figura 6: Circuito RL Serie


Al construir el circuito en Simulink, debe obtenerse un modelo similar al obtenido en la
Figura 7. Los elementos se encuentran disponibles en las siguientes libreras de
Simulink y Simpowersystems:
Dc Voltaje Source: Librera SimPowerSystems, subgrupo Electrical Sources.
Series RLC Branch: Librera SimPowerSystems, subgrupo elements.
Ground: Librera SimPowerSystems, subgrupo elements..
Current Measurement: : Librera SimPowerSystems subgrupo Measurement
Scope: Librera Simulink, subgrupo Sinks.
Continuous Powergui: Este elemento es aadido automticamente por Simulink al
realizar la primera simulacin.

Figura 7: Circuito RL Serie en Simulink


Los nombres de los elementos pueden cambiarse simplemente pulsando una sola vez
sobre ellos.

Pgina 109 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
En el modelo construido slo se ha dispuesto un elemento para medir la corriente de la
rama RL. Si se desea, pueden aadirse otros, ya sean medidores de tensin o
intensidad, simplemente conectndolos al circuito y a un visualizador tipo Scope.
Sobre este circuito realizaremos las simulaciones que se detallan a continuacin:
Circuito sin fuente con condiciones iniciales no nulas.
Asignaremos valor cero a la fuente, R=5, L=0.25H y condicin inicial de la intensidad
de la bobina en 5A (Todo ello haciendo doble clic sobre los elementos). Para que estas
condiciones iniciales sean tenidas en cuenta es necesario hacer doble clic en el bloque
Continuous y en el apartado Inicial Status Setting seleccionar Force initial Status To
Block Setting.
Realizar la simulacin entre 0 y 1 segundos
Medir de forma aproximada el tiempo que tarda en desaparecer la intensidad del
circuito.
Cambiar las condiciones iniciales a 10 A y medir el nuevo tiempo de extincin de
la intensidad.

Circuito con fuente de continua.


Cambiar el valor de la fuente a 10 V y anular las condiciones iniciales. Comparar
el tiempo que tarda el circuito en alcanzar el rgimen permanente con los
obtenidos en el apartado anterior.
Aadir condiciones iniciales a la bobina (5A) y comprobar la nueva evolucin del
circuito.
Circuito con fuente de alterna.
Cambiar la fuente por una de alterna de 100 V, 50 Hz. Observar la respuesta del
circuito sin condiciones iniciales y con ella.

Actividad 2. Descarga de un condensador sobre otro.


En este apartado se analizar el transitorio que tiene lugar cuando un condensador
cargado a una cierta tensin se conecta en paralelo con otro descargado o bien cuya
tensin es diferente. Una situacin como la descrita tiene lugar en el circuito de la Figura
8. Donde el interruptor K1 se cierra en t=0 y carga el condensador C1 hasta el instante
t=0.2 seg. Posteriormente este condensador se conecta en paralelo con C2 en t=0.5
seg.

Figura 8: Circuito de descarga de condensador sobre otro


En este circuito se desea visualizar la evolucin de las tensiones de los condensadores
y la intensidad que circula desde uno a otro. Para ello se crear en Simulink un modelo
como el mostrado en la Figura 9.
Para los condensadores y resistencias se utilizarn elementos Series RLC Branch
configurndolos como tales. Los interruptores se encuentran en Librera
Pgina 110 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
SimPowerSystems, subgrupo elements, bajo el nombre de Breaker. En estos
interruptores es posible configurar si el control de apertura y cierre es externo o interno,
la posicin inicial, y los tiempos en los que se quiere que cambien de estado.

Figura 9: Modelo Simulink de descarga de un condensador sobre otro


Una vez construido el modelo se realizarn los siguientes ejercicios:
6. Visualizar la evolucin de las tensiones de los condensadores, comprobando si se
cumple el principio de conservacin de carga.
7. Verificar el carcter impulsional de la intensidad.
8. Cambiar el valor de la capacidad de C2 a 5mF y observar el nuevo reparto de carga
entre los condensadores.
9. Con C2 de nuevo a 1mF, modificar las condiciones iniciales del condensador 2,
asignndole 25 V a su tensin. Tras realizar la simulacin bajo estas condiciones,
comprobar de nuevo el principio de conservacin de carga.
10. Modificar los parmetros del interruptor K1 para que slo se cierre en t=0 y no se
abra en ningn momento. Visualizar la nueva evolucin de las variables del circuito.
Actividad 3. Circuito de segundo orden
Los circuitos de segundo orden presentan diferentes tipos de respuestas segn el
amortiguamiento que posean, como se pondr de manifiesto en este apartado mediante
la simulacin del siguiente circuito.

Figura 10: Circuito RLC serie

Pgina 111 de 112

Universidad Tecnolgica Nacional-Facultad Regional CrdobaCtedra: Fundamentos de Informtica-Curso 1Q1 ( Ing. Elctrica )Unidad Temtica 5: Software de la Especialidad (ao 2015)
La fuente de tensin y la resistencia tomarn distintos valores como se seala a
continuacin.
5. Realizar el modelo Simulink que permita simular el circuito de la Figura 10,
insertando los elementos necesarios para visualizar la intensidad del circuito y la
tensin del condensador. La fuente de tensin ser inicialmente de continua y
valor cero. La resistencia tomar valor 3. Las condiciones iniciales sern:
Intensidad 3A, tensin del condensador 2V.
En estas condiciones observar el tipo de respuesta que presenta el circuito.
6. Modificar el valor de la resistencia a 2,1 y 0 , sucesivamente comprobando
como cambia la forma de las respuestas del circuito.
7. Asignar a la fuente un valor de 5 Vcc y comprobar para los distintos valores de R,
como el tipo de respuesta no depende del valor de la fuente
8. Repetir el apartado anterior con una fuente de alterna de 10 V, 10 Hz.
El presente material es de lectura obligatoria para el desarrollo de los contenidos en el
examen final de acreditacin de la asignatura.

Pgina 112 de 112

También podría gustarte