Introducción a MATLAB R2007b
Introducción a MATLAB R2007b
Contenido:
5.3 INTERACCIÓN CON EXCEL: Importar y exportar datos. Función xlsread y xlswrite
Página 1 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
ATENCION
• El presente trabajo, que trata sobre los contenidos según programa analítico de la
cátedra, es solamente a fines de LECTURA BÁSICA INTRODUCTORIA.
Matlab7.0_como_si_estuviera_en_primero
OBJETIVOS
REFLEXION
Página 2 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Descripción
Matlab es un entorno de computación y desarrollo de aplicaciones
totalmente integrado, orientado para llevar a cabo proyectos en donde se encuentren
implicados un gran número de cálculos matemáticos y se requiera la visualización
gráfica de los mismos, Matlab integra un análisis numérico, cálculo matricial, proceso de
señales y visualización gráfica.
El nombre de Matlab proviene de la abreviación inglesa Matrix Laboratory, (Laboratorio
de Matrices) y su código en principio fue escrito para proporcionar un fácil acceso al
software de matrices desarrollado en los años 70’s, dentro de los proyectos Linpack y
Eispack, que fueron librerías desarrolladas en Fortran.
Lo podemos considerar como un lenguaje de programación interpretado. Éstos
lenguajes interpretados o “scripting“no deben ser compilados. Un script es una serie de
órdenes que se pasan a un intérprete para que las ejecute. Estas órdenes están escritas
en un lenguaje de programación propio del intérprete que ejecuta lo pedido en una línea
y no ejecuta la siguiente hasta que haya terminado la anterior, siempre que esta sea
correcta.
Difiere de un archivo de código fuente por él hecho que no tiene que ser compilado, es
decir es ejecutable por sí mismo siempre que se llame con él intérprete adecuado.
De este modo podemos diferenciar los lenguajes basados en código fuente de los
lenguajes de scripting.
Los primeros son, por ejemplo, C++, Fortran, Cobol, Pascal...
En ellos se genera un código 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 código fuente sabiendo que la máquina a la que migramos él código dispone de
tal compilador.
Entre los lenguajes de scripting más conocidos tenemos por ejemplo los lenguajes de
uso general, como Java.
Existe una gran variedad en los lenguajes de scripting orientado a fines matemáticos.
Como son Matlab, Maple, Mathematica, Scilab, etc.
De éstos los más conocidos son Matlab y Mathematica, en parte debido a que son
programas comérciales. No debemos considerar a Matlab como único lenguaje sujeto a
un fin. El scripting científico es una gran herramienta que nos puede ser de mucha
ayuda en la solución de problemas científicos y la visualización de resultados. Una vez
que hayamos aprendido a usar él entorno de Matlab nos será más fácil aprender a
utilizar Scilab por la similitud en su ejecución de órdenes.
La sintaxis de Matlab es muy simple y cuenta con una gran biblioteca de funciones
matemáticas. Es un lenguaje muy cómodo si deseamos escribir pequeños programas no
muy complejos o para guardar instrucciones y después ejecutarlas en secuencia con el
fin de mostrar los resultados sobre algún problema complejo. Matlab es ante todo un
lenguaje, más 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 renovándose. Producto del interés 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 más adelante.
Contiene muchas herramientas y utilidades que permiten además diversas
funcionalidades, como la representación gráfica en 2 y 3 dimensiones.
Estas características hacen de Matlab una herramienta de trabajo muy extendida entre
los estudiantes universitarios como entre técnicos e investigadores.
Página 3 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Resumiendo
Página 4 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Como esta configuración puede ser cambiada fácilmente 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.
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 métodos de navegación de directorios propios de Windows.
La ventana Workspace contiene información sobre todas las variables que se hayan
definido en esta sesión y permite ver y modificar las matrices con las que se esté
trabajando.
Página 5 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
>> A=rand(6),B=inv(A),B*A
Página 6 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Como consecuencia, la respuesta del programa tiene tres partes también, cada una de
ellas correspondiente a cada una de las instrucciones.
Con la primera instrucción A=rand(6) se define una matriz cuadrada (6×6) llamada A,
cuyos elementos son números aleatorios entre cero y uno (aunque aparezcan sólo 4
cifras, han sido calculados con 16 cifras de precisión).
Otro de los puntos fuertes de MATLAB son los gráficos, que se verán con más detalle
en una sección posterior.
Página 7 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En la Figura se puede observar que se abre una nueva ventana en la que aparece
representada la función sin(x).
En la primera se crea un vector x con 801 valores reales entre -4 y 4, separados por una
centésima.
Página 8 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
AYUDA EN MATLAB
Ayuda en línea
Como mencionáramos, éste documento es tan sólo una introducción -muy resumida- del
lenguaje y del manejo de Matlab, por lo que antes de seguir, es conveniente indicar
cómo puede obtenerse ayuda sobre cualquier detalle referente a Matlab.
Desde Matlab pueden obtenerse explicaciones sobre un tema particular. Hay varios
métodos.
También puede obtenerse información sobre uno de los temas de esa lista, por
ejemplo:
>>help elfun (proporciona información sobre funciones matemáticas elementales)
Página 9 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Nº 3) Finalmente, para solicitar una información más completa sobre el uso y sintaxis
de una función o un comando, es preciso teclear:
>>help nombre_función (Ejemplo >> help sqrt)
>>help nombre_comando (Ejemplo >> help input)
Página 10 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Eligiendo la opción Documentation se abre una ventana general donde También puede
escribirse directamente en la zona superior izquierda el nombre del comando deseado:
por ejemplo, para buscar información sobre sqrt (raiz cuadrada)
Página 11 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 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 ejecución de los mismos.
>>demo
Nos abre una ventana de ayuda de como empezar con Demos
Página 12 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Reglas básicas.
• El punto decimal es . (no una coma).
• En Matlab, las mayúsculas y las minúsculas son distintas. Es decir, A es una
variable diferente de a.
Matlab distingue entre mayúsculas y minúsculas por lo que casi siempre los comandos e
instrucciones se escriben con minúsculas.
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.
El formato con el que deseamos visualizar los valores, puede ser modificado por los
siguientes 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 expresión, 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 línea de comando, puede recuperarse la instrucción
pulsando la tecla "flecha hacia arriba", desplazarse hasta el error (en nuestro ejemplo
falta un paréntesis) con la flecha hacia a la izquierda, y arreglarlo:
» d2_f=(y2-2*y1+y3)/(deltax^2)
Página 13 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Manejo de variables
Asignación
Para asignar un valor a una variable, por ejemplo x, usamos el signo “=”.
» x=2+3 (en este caso estamos asignando al identificador x el valor de la suma 2+3)
x=
5
Para saber cuál 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)
Página 14 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Borrar variables
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 más detallada sobre las características de cada variable
utilizamos whos además de la lista proporcionara información acerca del tipo de datos
en cada variable y el tamaño que ocupa en memoria
Operadores aritméticos
^ potenciación
* multiplicación
/ división
+ suma
- resta
» 2/2+1
ans =
2
(en efecto: primero se calcula 2/2 y luego se suma 1).
Página 15 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Operadores relacionales
Se utilizan para establecer una relación entre dos valores creándose una expresión
relacional. Esta expresión compara los valores entre si y produce un resultado de
certeza o falsedad (verdadero o falso) denominado valor lógico.
Los operadores relacionales comparan valores del mismo tipo (numéricos o carácter).
Dos observaciones:
Nº 1) El operador relacional igual que, se construye con dos símbolos ==.
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 tomaría el valor 3, independientemente de lo que valiera antes.
En cambio, x==3 es el análogo en lenguaje informático 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 número 126. En algunos sistemas operativos,
también sirve apretar AltGr y, sin soltarla, apretar la tecla 4.
Operadores lógicos
Estos operadores se utilizan para establecer relaciones entre valores lógicos,
creándose una expresión lógica. Estos valores pueden ser resultado de una expresión
relacional.
Tipos de operadores Lógicos
Expresiones simbólicas
>> 2/3
ans =
0.6667
Página 16 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En cambio, si queremos que 2 y 3 se consideren como símbolos (de forma que sólo se
opere de forma exacta con ellos), deberemos escribir:
>>sym(2/3)
ans =
2/3
>>sym(2/3)+sym(1/4)
ans =
11/12
o también
>> sym((2/3)+(1/4))
ans =
11/12
>>x= sym('x')
Una vez definida la variable x, podremos realizar operaciones simbólicas con ella:
>>x+3*x
ans =
4*x
Esta instrucción va seguida de los símbolos a definir, separados por espacios; Ej.:
>>syms t s x y
Funciones elementales.
Las funciones, en Matlab, se escriben introduciendo el argumento entre paréntesis a
continuación del nombre de la función, sin dejar espacios. Por ejemplo:
» y=exp(0)
y=
1
La función exp es el número natural e elevado a la potencia indicada entre paréntesis
(en este caso cero).
sin seno
cos coseno
tan tangente
sec secante
Página 17 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
csc cosecante
cot cotangente
exp exponencial
log logaritmo natural
sqrt raíz cuadrada
abs valor absoluto
Para obtener las funciones trigonométricas inversas, basta añadir una a delante del
nombre de la función. Y para las funciones hiperbólicas, una h al final.
Por ejemplo, atanh(x) es el arcotangente hiperbólico de x:
>> z=atanh(2)
z=
0.5493 + 1.5708i (dónde z es un número complejo).
>> y=sqrt(4);
>> (El resultado no aparece, pero sin embargo el cálculo se ha realizado)
ya que si hacemos:
>> y
y=
2 (Vemos que y=2)
Página 18 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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
Suma:
» v+w'
ans =
2.7321 0 -1.6667
Producto:
» v*w
ans =
1.0654
Página 19 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 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).
>>t = linspace(n1,n2,n)
Ej:
>> t = linspace(4,10,4)
t=
4 6 8 10
Por su parte, logspace produce también un vector de n componentes, pero sus valores
están espaciados logarítmicamente desde 10 n1 a 10n2.
>>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
Página 20 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
o también
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
>> v2=M(2,:)
v2 =
>> v1=M(:,2)
v1 =
2
5
8 (v1 es la segunda columna de M)
>> diag(M)
ans =
1
5
9
Página 21 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Funciones y operaciones elementales
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes
del operador.
Página 22 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Tipos de matrices predefinidas
Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de
tipos particulares. Algunas de estas funciones son las siguientes:
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
>>help elmat)
POLINOMIOS
» p=[1 -3 2]
p=
Página 23 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
1 -3 2
» roots(p)
ans =
2
1
Valuación: para hallar el valor de P(x) para un determinado valor de x.(por ejemplo,
para x=0)
» polyval(p,0)
ans =
2
>> pol1=[1 -2 4]
pol1 =
1 -2 4
>> pol3=conv(pol1,pol2)
pol3 =
1 -2 7 -10 20 -16
Comandos principales: Los principales comandos para trabajar con polinomios son los
siguientes:
Página 24 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
residue(p1,p2) descompone él cociente entre p1 y p2 en suma de fracciones
simples
REPRESENTACIONES GRÁFICAS
Plot: las gráficas son producidas por él comando plot, aunque se pueden generar
gráficas de otras maneras, en este caso mostraremos el uso del mismo.
Axis: entre los muchos comandos que se pueden utilizar para modificar los gráficos, 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 límites inferior y superior del eje x, e y1 e y2 los del eje y.
Para representar los puntos o datos con símbolos de colores, se añade la especificación
entre apóstrofes al comando plot.
Vamos a crear una variable con dos filas que contenga los números del 1 al 10 en la
primera fila, y el doble de esos números en la segunda, y dibujarlos con puntos rojos:
Página 25 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
>> x1=0:10
x1 =
0 1 2 3 4 5 6 7 8 9 10
>> x2=2*x1
x2 =
0 2 4 6 8 10 12 14 16 18 20
>> x=[x1;x2]
x=
0 1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10 12 14 16 18 20>> plot ( x (1, :) , x (2 , : ) , 'ro‘ )
Para imprimir una figura, basta seleccionar print del menú de la figura.
Página 26 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Los tipos de color los obtenemos introduciendo la letra de cada color:
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 logarítmicas para ambos ejes.
El comando “semilogx” crea un dibujo usando una escala logarítmica para él eje x, y una
escala lineal para el eje y.
El comando “semilogy” crea un dibujo usando una escala logarítmica para el eje y, y una
escala lineal para él eje x.
Ej:
>>x=logspace(-1,3); %Crea un eje x de 10^-1 a 10^3
>>loglog(x,exp(x)); %Grafica la función e^x
El comando “fplot” nos permite dibujar la gráfica de una función con la siguiente sintaxis:
>>fplot(`función',[inicio,final])
El comando “clf” nos borra la gráfica creada.
Para que la gráfica tenga una leyenda ubicada en el 3º cuadrante para distinguir las
series graficadas,
legend('seno',3)
Ejemplo: dibujar la gráfica de la función seno entre cero y 2*pi, con un título y con una
leyenda que aparezca en el 3º cuadrante.
Además la grafica aparecerá con una grilla y en el Command Windows los valores
extremos de los ejes.
Página 27 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Un comando muy útil también es “[ejes]=ginput(#)” con él que podemos señalar varios
puntos de la gráfica 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 código, se nos abre el gráfico y una cruz móvil con el ratón,
para indicarle un punto de la gráfica haciendo click y el código nos devuelve las
coordenadas de tantos puntos como sea el argumento de ginput.
Página 28 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En muchos cálculos matriciales los datos y/o los resultados no son reales sino
complejos, con parte real y parte imaginaria.
MATLAB trabaja sin ninguna dificultad con números complejos.
>> a=sqrt(-4)
a=
0 + 2.0000i
>> 3 + 4j
ans =
3.0000 + 4.0000i
Representación
>> 3 + 4j
ans =
3.0000 + 4.0000i
En la entrada de datos de MATLAB se pueden utilizar indistintamente la i y la j para
Página 29 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
representar el número imaginario unidad (en la salida, sin embargo, puede verse que
siempre aparece la i).
>> 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 también la función sqrt(-1), o una variable a la que se haya asignado el
resultado de esta función.
>> 2+3*sqrt(-1)
ans =
2.0000 + 3.0000i
Asignación a vectores y matrices
La asignación 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 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 (*), según se muestra en el ejemplo
anterior.
Página 30 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Funciones elementales con complejos
>> Z=complex(3,4)
Z=
3.0000 + 4.0000i
>> Mod_Z=abs(Z)
Mod_Z =
>> arg_Z=angle(Z)
arg_Z =
>> conjugado_Z=conj(Z)
conjugado_Z =
3.0000 - 4.0000i
Página 31 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Casos Prácticos Resueltos
I. Graficar la función y = sin(x4), para x de 0 a 2pi, usando 200 puntos y usando 500
puntos
>>x=linspace(0,2*pi,500);plot(x,sin(x.^4)),grid on,legend('y=sin(x^4)')
Página 32 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
II. Graficar el círculo 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 gráfica la solución del sistema
de ecuaciones dada por estas dos rectas
2x + 3y = 13
2x – y = 1
Página 33 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 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
Página 34 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
VI. Hacer la codificación en matlab para hallar la suma de los n primeros números
naturales
VII. Hacer la codificación en matlab para hallar la suma de los cuadrados de los n
primeros números naturales.
Página 35 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
X. Hacer la codificación en matlab para graficar y calcular el área de un rectángulo
dado la base y altura.
fprintf('\t\tárea 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)])
Página 36 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
PROGRAMACIÓN CON MATLAB
Introducción
Estos desarrollos pretenden servir de guía para dar los primeros pasos en la
programación con Matlab. Para aprender a programar, el lenguaje que se emplee es
(hasta cierto punto) irrelevante, lo más importante son los conceptos de lógica de
programación. Una vez conocido un lenguaje, pasar a otro no suele resultar difícil.
Como Matlab es un lenguaje simple, resulta idóneo para los comienzos.
Un programa consiste en una serie de instrucciones escritas en un lenguaje de
programación que se ejecutarán secuencialmente (una detrás de otra). Por lo tanto, es
requisito previo conocer cómo escribirlas correctamente (sintaxis).
Creando Un Programa
En Matlab existen dos tipos de ficheros *.m, los ficheros de comandos (llamados
scripts en inglés) y las funciones.
Página 37 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
A ese recorrido a través 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 código) 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
Empecemos diciendo que, en general, para realizar una tarea particular se pueden
emplear muchos programas diferentes que den el mismo resultado correcto. ¿Cuál es el
más eficiente?
Repasar un programa una y otra vez, modificando poco a poco el código para depurarlo,
exige una cierta disciplina.
Aunque cada uno tenga sus preferencias, es conveniente desarrollar algunos hábitos.
Hábitos De Programación
• El programa debe resultar de fácil lectura. Así, pasado el tiempo, es más sencillo
revisarlo.
• Suele ser bueno definir las variables al comienzo. Ello evita tener que buscarlas a
lo largo del código para cambiar su valor cuando sea necesario.
• Para ver dónde empiezan y dónde acaban los bucles y ramificaciones, es costumbre
indentar (introducir una sangría) en las líneas contenidas en ellos. Eso resulta de
especial ayuda para interpretar las estructuras repetitivas y selectivas.
Página 38 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Estructuras Condicionales (Selectivas)
Para implementar el control del flujo, son muy útiles las expresiones relacionales y
lógicas, las cuales arrojan como resultado falso o verdadero.
o bien: caso de que la variable x sea menor que cero, hacer tal cosa.
Una condición, como se ha indicado, sólo 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, sólo caben dos respuestas posibles:
o bien,
Las mismas permiten realizar una u otra operación según se cumpla o no una
determinada condición. La Figura muestra tres posibles formas de bifurcación.
SENTENCIA if
Página 39 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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
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 número es mayor que 5')
end
Página 40 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Estructuras repetitivas (Bucles)
• Sentencia Para
Los bucles permiten repetir las mismas o análogas operaciones sobre datos distintos.
Las figuras muestran dos posibles formas de bucle, con el control situado al principio o
al final del mismo.
Página 41 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
La estructura repetitiva Mientras (while para Matlab) se emplea cuando el número de
repeticiones no se conoce por anticipado y el cuerpo del bucle se repite mientras la
condición sea cierta. Por esta razón a estos bucles se les denomina bucles
[Link] la sentencia while se ejecuta, el primer paso es la evaluación de
la condición. Si se evalúa a falso, ninguna sentencia se realiza y el programa prosigue
en la siguiente sentencia después del bucle. Si la condición se evalúa a verdadera,
entonces se ejecutan las sentencias contenidas dentro del cuerpo del bucle y se evalúa
de nuevo la condición.
Seudocódigo
Mientras Condición
sentencias
fin mientras
Matlab
while Condición
sentencias
end
Regla: en ésta estructura se debe controlar una variable en la condición y que varíe en
cada iteración. Esa variación se debe producir en alguna sentencia dentro del bucle.
SENTENCIA for
En numerosas ocasiones se desea un bucle que se ejecute un número deseado de
veces, y cuyo número 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 número 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 continuación 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.
Seudocódigo
Para V=1:1:Vf
sentencias
fin Para
Matlab
for V=1:1:Vf
sentencias
end
Página 42 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Regla: es ilegal intentar modificar el valor de la variable de control, en su valor inicial y
su valor final dentro del bucle.
Bucles anidados
La variable j es la que varía más rápidamente (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 ejecución del bucle for y/o while y se continúe con el programa
fuera del ciclo.
n=2
for i=1:10
i,a=n^i
if a>20
break
end
end
Página 43 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
SENTENCIA continue
Hace que se pase inmediatamente a la siguiente iteración del bucle for o while,
saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteración
actual.
n=2
for i=1:10
i,a=n^i, continue
if a>20
break
end
end
En este caso el valor ingresado por el usuario se guarda en la variable [Link] posible
forma de ésta función es la siguiente (obsérvese el parámetro '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
fórmula, se almacena como texto sin evaluarse.
Página 44 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En realidad, disp siempre imprime vectores y/o matrices; las cadenas de caracteres son
un caso particular de vectores.
Considérense los siguientes ejemplos de cómo se utiliza:
Obsérvese que el texto que queremos que nos muestre Matlab, se encierra entre
apóstrofes simples.
>> A=rand(4,4)
>> disp(A)
0.9355 0.0579 0.1389 0.2722
0.9169 0.3529 0.2028 0.1988
0.4103 0.8132 0.1987 0.0153
0.8936 0.0099 0.6038 0.7468
fprintf('cadena de control',var1,var2,...)
Ejemplo
>> R=8.7509
R=
8.7509
>> V=220.589
V=
220.5890
Página 45 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
6.2 y 5.1: sentencias para acotar el espacio del resultado de salida, aquí acotamos
las cantidad de espacios después del último carácter visible(para nuestro
caso el carácter =) y la cantidad de decimales que se quiere visualizar, en
el ejemplo tenemos un máximo 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).
En el caso de solo colocar este símbolo % luego del = , matlab por defecto hace la
visualización de los números sin ningún tipo de restricción.
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.
Página 46 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Ejemplo de programación
Página 47 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
y se nos abrirá el editor de Matlab para comenzar a escribir el programa en el renglón 1.
Una vez escrito el programa debemos guardar el mismo en la carpeta work del
directorio Matlab, dándole un nombre al archivo con extensión .m
Para ejecutar el programa desde el workspace se teclea el nombre del archivo y luego
enter, comenzando de esa manera la ejecución del programa creado.
Página 48 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
FUNCIONES (FUNCTION) EN MATLAB
donde:
variable: contendrá el resultado que entrega la función
parámetros: son variable que reciben los datos que entran a la función
nombre: identifica a la función
instrucciones: se incluyen en la función según la tarea especificada
Ejemplo. Escriba una función para elegir el mayor entre dos números
Abra un documento nuevo en la ventana de edición y escriba:
Página 49 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
donde:
m es la variable que entrega el resultado
mayor es el nombre de la función
a, b son los parámetros que ingresan los datos a la función
Ejemplo. Escriba una función que reciba un número y determine si es un número primo.
El resultado que entrega la función será 1 o 0 según corresponda;
>> x = 25;
>> p = primo(x)
0 (resultado que muestra MATLAB)
>> x = 43;
>> p = primo(x)
1 (resultado que muestra MATLAB)
Página 50 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Escriba en una nueva ventana de edición un programa que use la función primo para
encontrar todos los números primos menores a 20:
for x = 1: 20
if primo(x) ==1
disp(x);
end
end
>> prueba
1 (resultados mostrados por MATLAB)
2
3
5
7
11
13
17
19
Escriba y almacene la función con el nombre cilindro. Use la función para calcular el
área y el volumen de una lata cilíndrica que tiene un diámetro 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
Página 51 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Las variables definidas dentro de una función son locales, es decir que a
diferencia de los programas, no son visibles fuera de la función
Es posible hacer que las variables de una función sean visibles fuera de su ámbito,
mediante la declaración global
Ej. Modifique la función fn para que la variable c sea visible:
function [x]=fn(a, b)
global c;
c = a + b;
x = 2*c;
Página 52 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Una función puede no necesitar parámetros
Ej. Escriba una función 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
function menu
disp(‘1) ingresar’);
disp(‘2) borrar’);
disp(‘3) salir’);
function [p]=prom(x)
n=length(x);
s=0;
for i=1:n
s=s+x(i);
end
p=s/n;
Para usar esta función debe definir el vector antes de llamar a la función. La función
determina la longitud del vector con la función length
Página 53 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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 función debe definir los vectores que entran. Recuerde que pueden tener
nombres diferentes a los que usa la función:
>> 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)
Página 54 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
INTERACCIÓN CON EXCEL (para versión Matlab R2007b)
Página 55 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
creados desde [Link], haciendo click sobre el nombre del vector.(en la figura se
eligió zipi)
Para importar tan sólo la matriz formada por los datos recuadrados en [Link] y
almacenarla en el workspace con el nombre “chorizo” teclear:
>> chorizo=xlsread('Libro1','A8:B10')
chorizo =
7 70
8 80
9 90
Luego usar xlswrite para guardar la variable datos en un fichero [Link] en una hoja
(inexistente aún) de nombre Embutidos y a partir de la celda B2.
(Usar la ventana de Help de MATLAB para averiguar cuál es la sintaxis de uso de la
función)
Página 56 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
>> xlswrite('Libro2',datos,'Embutidos','B2')
Warning: Added specified worksheet.
> In xlswrite>activate_sheet at 254
In xlswrite at 212
Página 57 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
SIMULINK Y SIMPOWERSYSTEMS
. (Desde la versión Matlab R2018 SIMPOWERSYSTEM se denomina SPECIALIZED POWER
SYSTEMS)
(Para ingresar a SPECIALIZED POWER SYSTEMS leer al final de éste apunte desde pág. 113)
OBJETIVOS.
Conocer una de las aplicaciones informáticas que permiten modelar, simular y analizar
sistemas eléctricos.
CONCEPTOS ACLARATORIOS
MODELAR
SIMULAR
ANALIZAR
Analizar es distinguir y separar las partes de un todo hasta llegar a conocer sus
principios o elementos.
Página 58 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Página 59 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Arrancar Simulink
Una vez que hemos accedido a SIMULINK desde MATLAB nos encontramos una
ventana con la librería principal de bloques:
Página 60 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Bloques propios de Simulink
Simulink dispone de numerosos bloques ya implementados, que ejecutan las funciones
de modelización más usuales. Los bloques están agrupados de acuerdo con su
comportamiento: fuentes, sumideros, discreto, continuo, no lineal, matemática, etc.
Simulink, además de los bloques propios de la librería simulink, posee un conjunto de
blocksets (juego de bloques) específicos entre los cuales está SimPowerSystems, que
contiene bloques que permiten modelar sistemas de energía eléctrica.
Simulink distingue entre las señales de los bloques propios de la librería simulink y las
señales de la librería SimPowerSystems, y no permite conectar un bloque de la librería
simulink a otro de SimPowerSystems a menos que dicho bloque tenga una entrada
apropiada.
Librería Simulink
Fuentes (Sources)
In1 proporciona un puerto de entrada para un subsistema o
modelo.
Ground conecta a tierra un puerto de entrada desconectado.
From File lee datos de un archivo.
From Workspace lee datos de una matriz definida en el workspace
Constant genera un valor constante
Signal Generator genera varias forma de onda
Signal Builder construye diferentes forma de onda
Ramp genera una señal constantemente creciente o decreciente
Sine Wave genera una onda senoidal
Step genera una función escalón
Chirp Signal genera una onda senoidal de frecuencia creciente
Clock proporciona el tiempo de simulación
Sumideros (Sinks)
Out1 proporciona un puerto de salida para un subsistema o
modelo.
Terminator termina un puerto de salida desconectado
To File escribe datos en un archivo
To Workspace escribe datos a una matriz del workspace
Página 61 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Scope presenta las señales generadas durante una simulación
XY Graph muestra un gráfico X-Y de las señales
Display muestra el valor de la entrada
Stop Simulation detiene la simulación cuando la entrada es distinta de cero
Continua (Continuous)
Integrator integra una señal
Derivative genera la derivada temporal de la entrada
State-Space implementa un sistema lineal en el espacio de estados
Transfer Fcn implementa una función de transferencia lineal
Zero-Pole implementa una función de transferencia especificada en
polos y ceros
Transport Delay retrasa la entrada un intervalo de tiempo determinado
Página 62 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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 asimétrica por medio de los
parámetros del sistema.
Relay 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.
Saturation La señal de salida no sobrepasa un valor umbral,
configurable con los parámetros del bloque.
CREACIÓN DE UN MODELO
Una vez accedido a SIMULINK desde MATLAB para crear un nuevo modelo se hace
click sobre el icono New model del navegador de librerías con lo que aparece
una ventana con un espacio de trabajo en blanco, donde se añaden los diferentes
bloques que conforman el modelo.
Inserción de bloques
Un modelo en SIMULINK es una colección de bloques interconectados que representan
un sistema.
Los bloques sirven para generar, modificar, combinar y visualizar señales.
Las líneas sirven para transmitir las señales entre los bloques en la dirección de la
flecha.
El modelo que vamos a construir es el siguiente:
Página 63 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Se trata un sistema en que un bloque proporciona una onda senoidal, que es integrada.
El bloque Mux forma una señal vectorizada (uniendo las dos señales) 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 librerías:
Bloque Librería
Sine Wave (Onda senoidal) Sources
Integrador Commonly Used Blocks
Mux (Multiplexor) Commonly Used Blocks
Scope (Osciloscopio) Sinks
Parámetros de bloques
Para parametrizar los bloques nos situamos con el ratón sobre el bloque y hacemos
doble click.
Para modificar el número de entradas en el bloque multiplexor situamos el ratón sobre el
bloque y hacemos doble click. Nos aparecerá el cuadro de diálogo siguiente:
Página 64 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Solo tenemos que cambiar el número de entradas de 2 al valor que se quiera, y aplicar
los cambios. Este es el método que se usa para cambiar los parámetros de cualquier
bloque.
Además del multiplexor, debemos definir los valores del bloque onda senoidal. Si
hacemos doble click con el ratón en el bloque Sin Wave, nos aparece el siguiente
cuadro de diálogo:
Vemos que los parámetros 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 diálogo. Para los demás bloques del modelo, no es
necesario definir ningún parámetro.
Página 65 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 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 ratón pasa de ser la típica flecha a convertirse en
una cruz. Así es como SIMULINK indica que vamos a realizar una conexión.
Cuando nos aparezca este símbolo presionamos el botón izquierdo del ratón y lo
arrastramos hasta el puerto de entrada del multiplexor. Veremos como va apareciendo
la línea de conexión, y cuando nos situemos sobre el símbolo de entrada > el puntero
volverá a cambiar de aspecto, y ahora aparecerá un triángulo sólido, para indicar que
podemos terminar la conexión. Si soltamos el botón del ratón observamos que el
extremo de la conexión que acabamos de realizar cambia para convertirse en una
flecha.
Podemos hacer líneas que partan de otras líneas y lleven su misma información, pero
no podemos insertar el contenido una línea en otra línea.
Para hacer que una línea parta de otra línea lo hacemos de la misma forma que si una
línea parte de un bloque, pero mientras picamos con el ratón en la línea debemos tener
presionada la tecla ‘CTRL’. Si nos olvidamos de presionarla, lo que haremos será mover
la línea y arrastrarla.
Para completar las conexiones, unimos la salida del integrador a la entrada libre del
multiplexor.
Página 66 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Señales Vectoriales
Antes hemos hecho referencia a que la conexión entre el multiplexor y el bloque Scope
era una señal vectorial. Una señal vectorial es la unión de varias señales. La línea de
conexión entre el multiplexor y el osciloscopio tiene que llevar las dos señales al mismo
tiempo: la onda senoidal de la que partimos, y la integración de ésta. Del multiplexor
sólo parte una línea, pero en el osciloscopio vemos representadas las dos. La mayoría
de los bloques de SIMULINK aceptan por igual las señales escalares y vectoriales. La
representación de las líneas de conexión escalares y vectoriales es idéntica. Para saber
si una señal es escalar o vectorial vamos al menú Display, Signals & Ports y marcamos
la opción Wide Nonscalar Lines (mostrar líneas vectoriales):
Vemos como el sistema nos muestra las líneas vectoriales con un trazo más ancho.
Página 67 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Las etiquetas podemos moverlas a cualquier parte del dibujo arrastrándolas con el
ratón. Para cambiar el tipo y tamaño de la letra, seleccionamos la anotación y en el
menú "Format − Font" hacemos los cambio necesarios.
Etiquetas de línea
Podemos añadir etiquetas a las líneas del diagrama para hacerlo más comprensible.
Para ello hacemos doble click sobre la línea que queramos e insertamos el comentario.
Visualizar señales
En nuestro ejemplo, las señales de salida que obtendremos son las siguientes:
Página 68 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En color rosa podemos ver la señal que genera el bloque integrador, mientras que en
color amarillo vemos la onda senoidal de la que partimos.
En la barra de botones:
Con los botones actuaremos igual, pero se modificarán las escalas del eje X
(botón izquierdo) o del eje Y (botón derecho).
Con el botón accedemos al menú
Página 69 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
en el que podemos cambiar los parámetros de la gráfica como número de señales de
entrada (Number of axes), el tiempo de muestra en la gráfica (Time range en segundos),
valores en los ejes (Tick labels), como así también la muestra de los últimos puntos
calculados (History) y formato de fondos y líneas de la gráfica (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 extensión .mdl .
Imprimir un modelo
PARÁMETROS DE SIMULACIÓN
Podemos simular un sistema de dos formas: mediante el menú de Simulink, o
introduciendo órdenes desde la línea 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 automáticamente una gráfica de las salidas o de las trayectorias de estado,
si no indicamos lo contrario.
- Se pueden especificar entradas externas (utilizando el parámetro ut).
- Se puede ejecutar una simulación desde un fichero-M, permitiendo que los parámetros
en los bloques se cambien iterativamente.
- La simulación se ejecuta más rápido
Desde Simulink:
- Mientras se ejecuta la simulación, se pueden cambiar los parámetros de un bloque o
cualquier parámetro de simulación, método de simulación, podemos ver la señal que
transporta cada línea, etc...
Página 70 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Dentro de este cuadro nos encontramos con varias opciones. En éste tutorial
describiremos la primera opción ‘Solver’, la cual se ocupa de todo lo que se refiere al
método de resolución y la opción ‘Diagnostics’ la cual nos permite seleccionar el nivel
de los mensajes de advertencia mostrados durante la simulación.
Opción Solver
La opción Solver nos permite modificar entre otros los siguientes parámetros: tiempo de
simulación, método de integración, tamaño de pasos máximo y mínimo, márgenes de
error (tolerancia relativa y absoluta), etc:
Tiempo de simulación:
Los parámetros Start time y Stop time especifican los valores de tiempo en los que la
simulación comienza y termina. Por defecto, el tiempo inicial es de 0 sg y el tiempo final
de 10 sg, El tiempo de simulación no es tiempo real, es decir, el verdadero tiempo
empleado en una simulación no es la diferencia entre el tiempo de inicio y de
finalización, sino que dependerá de la complejidad del modelo, de los tamaños de paso
mínimo y máximo, y del ordenador con el que realicemos la simulación.
Página 71 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
• ode23: Para ecuaciones no demasiado complejas. Es un método de un solo paso.
Está basado en el método de Runge-Kutta. Es más rápido pero menos preciso que el
ode45.
• ode113: Para ecuaciones no demasiado complejas. Es un método multipaso, es decir,
necesita conocer varios puntos anteriores para calcular la solución. Este es el método
variable de Adams-Bachforth-Moulton.
• ode15s: Para ecuaciones complejas. Como el método ode113, es un método de
varios pasos. Se utiliza cuando el método ode45 no es lo suficientemente eficaz.
• ode23s: Para ecuaciones complejas. Es un método de un solo paso, basado en la
fórmula modificada de Rosenbrock de orden 2, por lo que puede ser más eficaz que el
método ode15s para tolerancias no muy exigentes.
• ode23t: Para ecuaciones de dificultad media, basado en el método de regla
trapezoidal. Es muy buena alternativa para la resolución de circuitos eléctricos.
Tamaños de paso
En los sistemas de paso variable podemos fijar el tamaño de paso máximo y sugerir el
tamaño de paso mínimo. En los sistemas de paso fijo, podemos fijar el tamaño de paso.
Paso máximo (Max Step Size): Es el mayor tiempo de paso que utiliza el método de
resolución. Por defecto, viene determinado por los tiempos de inicio y de finalización
Generalmente, el valor del paso máximo que SIMULINK toma por defecto es suficiente,
salvo que conozcamos con detalle el comportamiento del sistema.
Paso mínimo (Min Step Size): Por defecto, el método de resolución fija el tamaño de
paso inicial en relación con el tiempo de inicio de la simulación. Si nosotros fijamos el
tamaño de paso mínimo, pero no se cumple el error mínimo, SIMULINK reduce el
tamaño de paso mínimo.
Página 72 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Opción Diagnostics
La ejecución y precisión de una simulación puede verse afectada por varios factores,
incluyendo el diseño del modelo y la elección de los parámetros de simulación. Para la
mayoría de los modelos, los valores que presentan por defecto los métodos de
resolución (solvers) son suficientes para obtener una velocidad y precisión aceptables.
Sin embargo, algunos modelos pueden tener un mayor rendimiento si se ajustan bien
los parámetros de simulación. Asimismo, si tenemos más información sobre el
comportamiento del modelo, los resultados de la simulación pueden ser mejores.
Simulación lenta
Las causas de que la velocidad de simulación sea demasiado lenta pueden ser:
• Que el modelo incluya bloques Fcn de MATLAB. Cuando estos bloques aparecen
en un modelo, el intérprete de MATLAB es llamado en cada paso de tiempo,
haciendo la simulación mucho más lenta.
• Que el modelo incluya un archivo-M o una función-S
• Que el modelo incluya un bloque Memory. Estos bloques causan que los métodos
de resolución de orden variable (ode15s y ode113) vuelvan al orden 1 en cada paso
de tiempo.
• Que el tamaño de paso máximo sea demasiado pequeño. Si ocurre esto, prueba a
Página 73 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
repetir la simulación con el valor de paso máximo por defecto.
• Que la tolerancia absoluta sea demasiado pequeña. Normalmente, la tolerancia
por defecto suele ser suficiente.
• Que el tiempo de simulación sea demasiado grande. Prueba a reducirlo.
• Que el sistema sea un sistema "stiff" y no estemos usando un método
adecuado. Prueba a usar el método ode15s.
• Que el modelo use tiempos de muestreo que no sean múltiplos de los otros.
Esto provoca que se tomen pasos muy pequeños 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 ejecución de la
simulación.
• 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 librería de fuentes.
Página 74 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Una vez creado el modelo, para crear el subsistema seleccionamos con el ratón todos
los bloques del modelo, y en el menú Diagram seleccionamos la opción 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 ratón sobre el bloque Subsystem y vemos lo que hay en su
interior:
Página 75 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
FUNCIONES S
¿Qué es una función S?
Una Función S es una descripción de un sistema dinámico. 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
dinámicamente dentro de MATLAB cuando se necesita.
La forma de una Función S es muy general, y puede ajustarse a sistemas continuos,
discretos o híbridos. De hecho, casi todos los modelos Simulink pueden escribirse como
una Función S.
Si existe una Función 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 función.
Para insertar una Función S en un modelo de Simulink, disponemos del bloque S-
Function, que se encuentra en la librería User-Defined Functions
.
El cuadro de diálogo de una Función S es el siguiente:
Página 76 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
personalizados por el usuario. Entre las aplicaciones de las Funciones S se encuentran:
• Añadir nuevos bloques de propósito general a Simulink
• Añadir código C ya existente a una Simulación
• Describir un sistema como un conjunto de ecuaciones matemáticas
• Usar animaciones gráficas
Una ventaja de usar Funciones S es que se pueden construir bloques de propósito
general que se pueden usar muchas veces en un modelo, modificando parámetros para
cada bloque en especial.
Ejercicio Modelo
a) Montar un esquema SIMULINK que conste de un generador de señales (signal
generator) y un visualizador de señal (scope). Define los parámetros de ambos
elementos, de tal forma que el generador de señal genere una onda senoidal de
amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus
parámetros por defecto. Ejecutar la simulación indicando un max step size e initial
step size a 0.01 y observar la salida en el visualizador.
b) Añade a ese esquema otro enlace compuesto por una ganancia (gain) y otro
visualizador (este se puede obtener pinchando el ratón con el botón derecho sobre
el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el
esquema dándole 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 ayúdate de un multiplexador de señal (mux). Obtén también la salida en una
variable llamada yout, a través 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 idénticas. Comprueba las
características de la variable yout desde el entorno MATLAB. Haz uso de los
comandos grid y zoom para la visualización de la variable ploteada.
Página 77 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
SIMPOWERSYSTEMS
(Desde la versión Matlab R2018 SIMPOWERSYSTEM se denomina SPECIALIZED POWER
SYSTEMS)
(Para ingresar a SPECIALIZED POWER SYSTEMS leer al final de éste apunte desde pág. 113)
Introducción
Como habíamos visto Matlab es un entorno de programación de alto nivel que combina
el cálculo numérico y gráficos avanzados. Una de las características que más ha
contribuido a la difusión de Matlab es la posibilidad de simular casi cualquier sistema en
un entorno gráfico. Este entorno completamente integrado en Matlab, se denomina
Simulink. La gran cantidad de librerías de elementos que posee Simulink facilita el
desarrollo y simulación de sistemas de índole diversa: mecánicos, eléctricos,
hidráulicos, 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 librerías disponibles. Entre ellas el Simscape y en su interior el SimPowerSystems.
Página 78 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En la ventana “Simulink library browser” se encuentran entre otros los siguientes menús:
- “Nuevo”, permite crear la ventana de edición del sistema a simular.
- “SimPowerSystems>>Electrical Sources”, tiene distintos fuentes de tensión 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.
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).
Sobre la zona de trabajo se van disponiendo los distintos elementos que compongan el
circuito a simular y que se extraen desde la librería de Simpowersystem. Para ello basta
con arrastrar con el ratón el elemento deseado desde la ventana de librerías hasta la
zona de trabajo en la ventana de modelo.
Página 79 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 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 botón del ratón y desplazándolo, se iniciará una
línea que podremos finalizar al soltar el botón del ratón en el terminal del otro elemento.
Un instante de este proceso se muestra en la Figura 4.
Página 80 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
DESARROLLO DE ACTIVIDADES
Página 81 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
• Ground: Librería SimPowerSystems, subgrupo elements..
• Current Measurement: : Librería SimPowerSystems subgrupo Measurement
• Scope: Librería Simulink, subgrupo Sinks.
• Continuous Powergui: Este elemento es añadido automáticamente por Simulink al
realizar la primera simulación.
Página 82 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Página 83 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
4. Con C2 de nuevo a 1mF, modificar las condiciones iniciales del condensador 2,
asignándole 25 V a su tensión. Tras realizar la simulación bajo estas condiciones,
comprobar de nuevo el principio de conservación de carga.
5. Modificar los parámetros del interruptor K1 para que sólo se cierre en t=0 y no se
abra en ningún momento. Visualizar la nueva evolución de las variables del circuito.
Página 84 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
SIMULINK (para versión Matlab R2007b)
SIMULINK es una herramienta de MATLAB para modelar, simular y analizar sistemas
dinámicos, basada en el uso de diagramas de bloques. (Un sistema dinámico es un
sistema físico 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 están desarrollados y comercializados por The
MathWorks, Inc.
• Es soportado en sistemas Windows, Unix o Macintosh
• Tiene dos fases de uso: la definición del modelo y el análisis del modelo.
3. La definición del modelo, donde se construye el modelo a partir de elementos
básicos construidos previamente, tal como integradores, bloques de ganancia,
etc..
4. El análisis del modelo, donde se realiza la simulación, linealización y
determinación del punto de equilibrio de un modelo previamente definido..
Posee
• una interfaz de usuario gráfica (GUI), con diagramas de bloques para construir los
modelos utilizando operaciones con el ratón 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 visualización que permiten ver los resultados de la simulación mientras
se está ejecutando.
Permite
• realizar simulaciones y analizar los resultados de forma gráfica.
• 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 híbridos
• personalizar y crear nuevos bloques.
• modelar en niveles jerárquicos, de forma que podemos ver un sistema desde un
nivel superior y entrando en los bloques podemos ir descendiendo a través de los
niveles para ver con más detalle el modelo.
• enviar resultados de la simulación al espacio de trabajo de MATLAB para su
posterior tratamiento.
Página 85 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Arrancar Simulink
Una vez que hemos accedido a SIMULINK desde MATLAB nos encontramos una
ventana con la librería principal de bloques:
Página 86 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Simulink, además de los bloques propios de la librería simulink, posee un conjunto de
blocksets (juego de bloques) específicos entre los cuales está SimPowerSystems, que
contiene bloques que permiten modelar sistemas de energía eléctrica.
Simulink distingue entre las señales de los bloques propios de la librería simulink y las
señales de la librería SimPowerSystems, y no permite conectar un bloque de la librería
simulink a otro de SimPowerSystems a menos que dicho bloque tenga una entrada
apropiada.
Librería Simulink
Fuentes (Sources)
In1 proporciona un puerto de entrada para un subsistema o
modelo.
Ground conecta a tierra un puerto de entrada desconectado.
From File lee datos de un archivo.
From Workspace lee datos de una matriz definida en el workspace
Constant genera un valor constante
Signal Generator genera varias forma de onda
Signal Builder construye diferentes forma de onda
Ramp genera una señal constantemente creciente o decreciente
Sine Wave genera una onda senoidal
Step genera una función escalón
Chirp Signal genera una onda senoidal de frecuencia creciente
Clock proporciona el tiempo de simulación
Sumideros (Sinks)
Out1 proporciona un puerto de salida para un subsistema o
modelo.
Terminator termina un puerto de salida desconectado
To File escribe datos en un archivo
To Workspace escribe datos a una matriz del workspace
Scope presenta las señales generadas durante una simulación
XY Graph muestra un gráfico X-Y de las señales
Display muestra el valor de la entrada
Stop Simulation detiene la simulación cuando la entrada es distinta de cero
Página 87 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Continua (Continuous)
Integrator integra una señal
Derivative genera la derivada temporal de la entrada
State-Space implementa un sistema lineal en el espacio de estados
Transfer Fcn implementa una función de transferencia lineal
Zero-Pole implementa una función de transferencia especificada en
polos y ceros
Transport Delay retrasa la entrada un intervalo de tiempo determinado
Página 88 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Relay 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.
Saturation La señal de salida no sobrepasa un valor umbral,
configurable con los parámetros del bloque.
CREACIÓN DE UN MODELO
Una vez accedido a SIMULINK desde MATLAB para crear un nuevo modelo se hace
click sobre el icono Create a new model del navegador de librerías con lo que
aparece una ventana con un espacio de trabajo en blanco, donde se añaden los
diferentes bloques que conforman el modelo.
Inserción de bloques
Un modelo en SIMULINK es una colección de bloques interconectados que representan
un sistema.
Los bloques sirven para generar, modificar, combinar y visualizar señales.
Las líneas sirven para transmitir las señales entre los bloques en la dirección de la
flecha.
El modelo que vamos a construir es el siguiente:
Página 89 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Se trata un sistema en que un bloque proporciona una onda senoidal, que es integrada.
El bloque Mux forma una señal vectorizada (uniendo las dos señales) 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 librerías:
Bloque Librería
Sine Wave (Onda senoidal) Sources
Integrador Commonly Used Blocks
Mux (Multiplexor) Commonly Used Blocks
Scope (Osciloscopio) Sinks
Página 90 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Parámetros de bloques
Para parametrizar los bloques nos situamos con el ratón sobre el bloque y hacemos
doble click.
Para modificar el número de entradas en el bloque multiplexor situamos el ratón sobre el
bloque y hacemos doble click. Nos aparecerá el cuadro de diálogo siguiente:
Solo tenemos que cambiar el número de entradas de 2 al valor que se quiera, y aplicar
los cambios. Este es el método que se usa para cambiar los parámetros de cualquier
bloque.
Además del multiplexor, debemos definir los valores del bloque onda senoidal. Si
hacemos doble click con el ratón en el bloque Sin Wave, nos aparece el siguiente
cuadro de diálogo:
Vemos que los parámetros 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 diálogo. Para los demás bloques del modelo, no es
necesario definir ningún parámetro.
Conexiones entre bloques
Página 91 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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 ratón pasa de ser la típica flecha a convertirse en
una cruz. Así es como SIMULINK indica que vamos a realizar una conexión.
Cuando nos aparezca este símbolo presionamos el botón izquierdo del ratón y lo
arrastramos hasta el puerto de entrada del multiplexor. Veremos como va apareciendo
la línea de conexión, y cuando nos situemos sobre el símbolo de entrada el puntero
volverá a cambiar de aspecto, y ahora aparecerá como una cruz doble, para indicar que
podemos terminar la conexión. Si soltamos el botón del ratón observamos que el
extremo de la conexión que acabamos de realizar cambia para convertirse en una
flecha.
Podemos hacer líneas que partan de otras líneas y lleven su misma información, pero
no podemos insertar el contenido una línea en otra línea.
Para hacer que una línea parta de otra línea lo hacemos de la misma forma que si una
línea parte de un bloque, pero mientras picamos con el ratón en la línea debemos tener
presionada la tecla ‘CTRL’. Si nos olvidamos de presionarla, lo que haremos será mover
la línea y arrastrarla.
Para completar las conexiones, unimos la salida del integrador a la entrada libre del
multiplexor.
Página 92 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Señales Vectoriales
Antes hemos hecho referencia a que la conexión entre el multiplexor y el bloque Scope
era una señal vectorial. Una señal vectorial es la unión de varias señales. La línea de
conexión entre el multiplexor y el osciloscopio tiene que llevar las dos señales al mismo
tiempo: la onda senoidal de la que partimos, y la integración de ésta. Del multiplexor
sólo parte una línea, pero en el osciloscopio vemos representadas las dos. La mayoría
de los bloques de SIMULINK aceptan por igual las señales escalares y vectoriales. La
representación de las líneas de conexión escalares y vectoriales es idéntica. Para saber
si una señal es escalar o vectorial vamos al menú y marcamos la opción de "mostrar
líneas vectoriales":
Vemos como el sistema nos muestra las líneas vectoriales con un trazo más ancho.
Página 93 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Podemos, por ejemplo, ponerle un título “Primer Ejemplo” a nuestro diagrama de
bloques.
Las etiquetas podemos moverlas a cualquier parte del dibujo arrastrándolas con el
ratón. Para cambiar el tipo y tamaño de la letra, seleccionamos la anotación y en el
menú "Format − Font" hacemos los cambio necesarios.
Etiquetas de línea
Podemos añadir etiquetas a las líneas del diagrama para hacerlo más comprensible.
Para ello hacemos doble click sobre la línea que queramos e insertamos el comentario.
Visualizar señales
Página 94 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
En nuestro ejemplo, las señales de salida que obtendremos son las siguientes:
En color rosa podemos ver la señal que genera el bloque integrador, mientras que en
color amarillo vemos la onda senoidal de la que partimos.
Con el botón podemos ajustar la escala del visualizador de forma automática.
Además, mediante el botón podemos acercar o alejar la escala de la gráfica según
pulsemos con el botón derecho del ratón (acercar), o con el izquierdo (alejar).
Con los botones y actuaremos igual, pero se modificarán las escalas del eje X
(primer botón) o del eje Y (segundo botón).
Con el botón 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:
Guardar un modelo
Página 95 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
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 extensión .mdl .
Imprimir un modelo
Página 96 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
PARÁMETROS DE SIMULACIÓN
Podemos simular un sistema de dos formas: mediante el menú de Simulink, o
introduciendo órdenes desde la línea 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 automáticamente una gráfica de las salidas o de las trayectorias de estado,
si no indicamos lo contrario.
- Se pueden especificar entradas externas (utilizando el parámetro ut).
- Se puede ejecutar una simulación desde un fichero-M, permitiendo que los parámetros
en los bloques se cambien iterativamente.
- La simulación se ejecuta más rápido
Desde Simulink:
- Mientras se ejecuta la simulación, se pueden cambiar los parámetros de un bloque o
cualquier parámetro de simulación, método de simulación, podemos ver la señal que
transporta cada línea, etc...
Opción Solver
La opción Solver nos permite modificar entre otros los siguientes parámetros: tiempo de
simulación, método de integración, tamaño de pasos máximo y mínimo, márgenes de
error (tolerancia relativa y absoluta), etc:
Página 97 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Tiempo de simulación:
Los parámetros Start time y Stop time especifican los valores de tiempo en los que la
simulación comienza y termina. Por defecto, el tiempo inicial es de 0 sg y el tiempo final
de 10 sg, El tiempo de simulación no es tiempo real, es decir, el verdadero tiempo
empleado en una simulación no es la diferencia entre el tiempo de inicio y de
finalización, sino que dependerá de la complejidad del modelo, de los tamaños de paso
mínimo y máximo, y del ordenador con el que realicemos la simulación.
Página 98 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Tamaños de paso
En los sistemas de paso variable podemos fijar el tamaño de paso máximo y sugerir el
tamaño de paso mínimo. En los sistemas de paso fijo, podemos fijar el tamaño de paso.
Paso máximo (Max Step Size): Es el mayor tiempo de paso que utiliza el método de
resolución. Por defecto, viene determinado por los tiempos de inicio y de finalización
Generalmente, el valor del paso máximo que SIMULINK toma por defecto es suficiente,
salvo que conozcamos con detalle el comportamiento del sistema.
Paso mínimo (Min Step Size): Por defecto, el método de resolución fija el tamaño de
paso inicial en relación con el tiempo de inicio de la simulación. Si nosotros fijamos el
tamaño de paso mínimo, pero no se cumple el error mínimo, SIMULINK reduce el
tamaño de paso mínimo.
Opción Diagnostics
Página 99 de 117
Universidad Tecnológica Nacional-Facultad Regional Córdoba-
Cátedra: Fundamentos de Informática-Curso 1Q1 ( Ing. Eléctrica )-
Unidad Temática 5: Software de la Especialidad (año 2015)
Para cada tipo de evento, podemos elegir entre que no aparezca ningún 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 simulación, mientras que el de error sí lo hace.
La ejecución y precisión de una simulación puede verse afectada por varios factores,
incluyendo el diseño del modelo y la elección de los parámetros de simulación. Para la
mayoría de los modelos, los valores que presentan por defecto los métodos de
resolución (solvers) son suficientes para obtener una velocidad y precisión aceptables.
Sin embargo, algunos modelos pueden tener un mayor rendimiento si se ajustan bien
los parámetros de simulación. Asimismo, si tenemos más información sobre el
comportamiento del modelo, los resultados de la simulación pueden ser mejores.
Simulación lenta
Las causas de que la velocidad de simulación sea demasiado lenta pueden ser:
• Que el modelo incluya bloques Fcn de MATLAB. Cuando estos bloques aparecen
en un modelo, el intérprete de MATLAB es llamado en cada paso de tiempo,
haciendo la simulación mucho más lenta.
• Que el modelo incluya un archivo-M o una función-S
• Que el modelo incluya un bloque Memory. Estos bloques causan que los métodos
de resolución de orden variable (ode15s y ode113) vuelvan al orden 1 en cada paso
de tiempo.
• Que el tamaño de paso máximo sea demasiado pequeño. Si ocurre esto, prueba a
repetir la simulación con el valor de paso máximo por defecto.
• Que la tolerancia absoluta sea demasiado pequeña. Normalmente, la tolerancia
por defecto suele ser suficiente.
• Que el tiempo de simulación sea demasiado grande. Prueba a reducirlo.
• Que el sistema sea un sistema "stiff" y no estemos usando un método
adecuado. Prueba a usar el método ode15s.
• Que el modelo use tiempos de muestreo que no sean múltiplos de los otros.
Esto provoca que se tomen pasos muy pequeños 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 ejecución de la
simulación.
• 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 librería de fuentes.
Una vez creado el modelo, para crear el subsistema seleccionamos con el ratón todos
los bloques del modelo, y en el menú Edit seleccionamos la opción 'Create Subsystem':
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 ratón sobre el bloque Subsystem y vemos lo que hay en su
interior:
Ejercicio Modelo
d) Montar un esquema SIMULINK que conste de un generador de señales (signal
generator) y un visualizador de señal (scope). Define los parámetros de ambos
elementos, de tal forma que el generador de señal genere una onda senoidal de
amplitud la unidad y de frecuencia 2 Hertz, y el visualizador mantenga sus
parámetros por defecto. Ejecutar la simulación indicando un max step size e initial
step size a 0.01 y observar la salida en el visualizador.
e) Añade a ese esquema otro enlace compuesto por una ganancia (gain) y otro
visualizador (este se puede obtener pinchando el ratón con el botón derecho sobre
el scope que ya tenemos y, tras ello, arrastrar al lugar que queramos). Simula el
esquema dándole 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 ayúdate de un multiplexador de señal (mux). Obtén también la salida en una
variable llamada yout, a través 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 idénticas. Comprueba las
características de la variable yout desde el entorno MATLAB. Haz uso de los
comandos grid y zoom para la visualización de la variable ploteada.
Introducción
En la ventana “Simulink library browser” se encuentran entre otros los siguientes menús:
- “Nuevo”, permite crear la ventana de edición del sistema a simular.
- “Simulink>>Sinks”, tiene visualizadores de señales 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 tensión 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.
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).
Sobre la zona de trabajo se van disponiendo los distintos elementos que compongan el
circuito a simular y que se extraen desde la librería de Simpowersystem. Para ello basta
con arrastrar con el ratón el elemento deseado desde la ventana de librerías 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 botón del ratón y desplazándolo, se iniciará una
línea que podremos finalizar al soltar el botón del ratón en el terminal del otro elemento.
Un instante de este proceso se muestra en la Figura 4.
1. Una vez ingresado a Matlab en la pestaña HOME clickear sobre el ícono de Simulink u otra
alternativa es la de escribir simulink a continuación del prompt en el Comand Window y dar
enter.
2. Esperar que se cargue el toolbox y aparecerá una pantalla donde se debe elegir la opción
Blank Model.
6. Para trabajar con bloques para modelar y simular circuitos eléctricos desplegar el menú de
Simscape, luego el menú Electrical y a continuación desplegar el menú Specialized Power
System donde se desplegará las siguientes opciones de menús:
Fundamental blocks
Control & Measurements
Electric drivers
FACTS
Renewables
8. Sobre la hoja de trabajo comenzar a diseñar el modelo arrastrando bloques desde las
librerías de Simulink o Specialized Power System.
9. Se hace notar que para no producir inconsistencia entre distintos bloques provenientes de
distintos toolboxes se aconseja no tomar bloques que no sean de la librería de simulink o de
Specialized Power System.
The construction method, such as correct parameter setting and component connection, directly influences the accuracy and evolution of circuit simulations. For example, in Source 3, construction involves using Series RLC Branch elements and configuring capacitors and resistors properly to observe transient states and charge distribution. Additionally, modifying initial conditions or component values, as shown in activities detailed in Source 3, significantly affects dynamic responses and time taken to reach steady state .
S-Functions are particularly beneficial for creating user-defined blocks, integrating existing C code into simulations, representing systems with mathematical equations, and incorporating graphical animations. They allow flexible custom modeling and provide performance benefits by compiling into efficient MEX files. These features make S-Functions ideal for complex simulations requiring high customizability and integration of external code .
The charge conservation principle is validated by observing if the total charge in a system remains constant during simulations, such as a capacitor discharge scenario. By visualizing capacitor voltage transitions and measuring current flows, simulations reveal the maintenance of system charge, demonstrating conservation laws. Adjusting parameters like capacitance and initial conditions allows observing consistency in charge distribution, thus validating the principle .
The continuous Powergui element, added automatically in Simulink's power systems simulations, facilitates real-time computation of circuit properties and provides tools for initializing and visualizing electrical systems. It supports simulation of diverse power electronics systems with efficiency and offers utilities for analyzing steady-state and dynamic performance, enhancing model functionality and offering comprehensive analysis tools .
Manipulating the state vector, comprising continuous and discrete states, allows precise control over simulation behaviors and initial conditions. It enables setting and altering dynamic responses by configuring initial states or responding to feedback from simulation phases. This capability enhances model accuracy, supporting complex state-dependent simulation scenarios . The partitioning into continuous and discrete sections optimizes state handling efficiency .
Block parametrization in Simulink is handled through dialog boxes accessible by double-clicking on blocks. Users can modify parameters, such as adding inputs to a Mux, altering sine wave properties, or setting integration limits. This allows for dynamic model tweaking, enhancing the flexibility to alter simulation behavior without reconstructing models . It streamlines model customization and accommodates iterative design adjustments .
When simulating a system using MATLAB commands, you can automatically generate plots of outputs or state trajectories if not specified otherwise, change initial conditions of blocks, specify external inputs, and execute simulations faster through an M-file, allowing parameters to be changed iteratively . In Simulink, while a simulation is ongoing, you have the flexibility to change block parameters, and observe signals carried by each line .
The Solver option determines simulation parameters like start and stop times, integration methods, and error tolerances, affecting how accurately and efficiently simulations run. Diagnostics settings control warning message levels during simulations, helping identify issues by adjusting log levels . These configurations ensure the robustness of model simulation and enable fine-tuning performance and debugging .
Changing the resistance in an RLC circuit affects its damping characteristics. As shown in simulations, reducing resistance from 3Ω to 0Ω changes the circuit from underdamped to critically or overdamped, affecting current flow and capacitor voltage dynamics . Varying resistance modifies response forms, showing critical dependence of circuit behavior on resistance values .
In a Simulink model, the Sine Wave block generates sinusoidal signals, which are integrated using the Integrator block. These signals are combined into a vector using the Mux block before visualization on a Scope. The signal flow involves output from Sine Wave to Integrator, then both outputs to Mux, whose output goes to the Scope for visualization .