Kitabı oku: «Modelamiento y simulación de sistemas con Simulink», sayfa 2

Yazı tipi:

1.3 EL AMBIENTE DEL MATLAB

La figura 1.2 es la presentación por defecto que el usuario encontrará en su primera interacción con Matlab, en la que emergen cuatro ventanas y algunas pestañas con opciones básicas y avanzadas. En esta ocasión solo se nombrarán las ventanas, ya que es básico tener conocimiento de estas. La ventana lateral derecha es la ventana Workspace, la cual permite al usuario visualizar las variables y sus respectivas propiedades, definidas en pasos anteriores. La ventana central es la ventana Command Window, en la cual se ejecutan los cálculos directamente, pudiéndose visualizar los resultados o ser almacenados interiormente. La ventana superior izquierda es la ventana Current Folder, que muestra la ruta de la carpeta actual en la que el usuario está trabajando. La ventana inferior izquierda es la ventana Details; la cual muestra un conjunto de detalles de cualquier archivo en particular, previa selección del archivo en la ventana Current Folder.

Figura 1.2. Ventanas por defecto de Matlab

En la figura 1.3 se muestra el editor de Matlab, utilizado frecuentemente para la creación y ejecución de código fuente.

Figura 1.3. Editor de Matlab

1.4 FUNDAMENTOS DEL MATLAB

El Matlab presenta aspectos fundamentales y el uso de algunas funciones sencillas, que son de gran utilidad para los usuarios en el transcurso de su manejo y aprendizaje.

1.4.1 Formato de impresión de resultados

Con el fin de que los números que aparecen en la ventana de comandos sean más legibles, es conveniente usar los argumentos short y long que acompañan a la función format; ejemplo demostrativo:

1 format short % <enter > Respuesta del sistema en formato corto

2 p = 7.1 % <enter > Asigna el valor de 7.1 a la variable p

3 format long % <enter > Respuesta del sistema en formato largo

4 p = 7.1 % <enter > Asigna el valor de 7.1 a la variable p

1.4.2 Supresión de resultados

Para suprimir la respuesta de cualquier cálculo se debe colocar un punto y coma (;) en el último carácter de la expresión que va a ser evaluada; por ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 p = 7.5 % <enter > Asigna el valor de 7.5 a la variable p

4 x = 4.82; % <enter > Asigna el valor de 4.82 a la variable x

5 p = 7.1 , x = 4.92 % <enter > Ingreso de variables en una sola línea

6 p = 7.1; x = 4.92; % <enter > Ingreso de variables en una sola línea

1.4.3 Precedencia de cálculo

Un aspecto importante para tener en cuenta es el orden de precedencia a la hora de la ejecución de los cálculos (tabla 1.1); dicho orden es el mismo que se utiliza en la mayoría de las calculadoras.

Tabla 1.1 Orden de precedencia en Matlab


PrecedenciaOperación matemática
PrimeroParéntesis
SegundoExponenciación
TerceroMultiplicación, división
CuartoSuma y resta

A continuación se presenta una secuencia de instrucciones para evaluar expresiones matemáticas, previa asignación de valores a las variables en uso:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 a = 4.9; % <enter > Asigna el valor de 4.9 a la variable a

4 b = 3.2; % <enter > Asigna el valor de 3.2 a la variable b

5 c = 3.5; % <enter > Asigna el valor de 3.5 a la variable c

6 d = 3.9; % <enter > Asigna el valor de 3.9 a la variable d

7 e = ((1+2*c) /(1+5*a))^(b+d) % <enter > Realiza el cálculo de e

1.4.4 Excepciones en la asignación de variables

Cabe mencionar que existen variables preestablecidas para un uso en particular, que Matlab reserva internamente y no es conveniente designarlas para representar otro valor en una secuencia de instrucciones. Entre algunas de las excepciones están: Ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 a = 2; % <enter > Asignación de valores a variables

4 b = 3; % <enter > Asignación de valores a variables

5 z = a+1i*b % <enter > Asignación de valores a variables (i= sqrt ( -1))

6 z = a+2j*b % <enter > Asignación de valores a variables (j= sqrt ( -1))

7 s = pi /3; % <enter > Cálculo involucrando (pi =3.141593 ...)

1.4.5 Evaluación de expresiones sin asignación de variables

Se pueden realizar cálculos numéricos y simbólicos mediante funciones matemáticas, a las que no es necesario asignarles variables; por ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 log (2.5) % <enter > Realiza la operación ln (2.5) (logaritmo neperiano)

4 cos (pi /3) % <enter > Realiza la operación en radianes por defecto

1.4.6 Cálculos involucrando números reales y complejos

Matlab permite trabajar cómodamente con números reales y complejos, sin ninguna operación especial por parte del usuario; ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 z = 4+ sqrt (-4) % <enter > sqrt representa a la función raíz cuadrada

4 y = sqrt (-4) + abs (-2) % <enter > abs representa a la función valor absoluto

1.4.7 Funciones matemáticas

Se encuentra un gran conjunto de funciones de cálculo elemental, así como también funciones matemáticas avanzadas implementadas dentro del software; las cuales son de uso común en diversos campos de la ciencia. Algunos ejemplos:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 x1 = exp (2.5) % <enter > Realiza la operación e ^(2.5)

4 x2 = log (2.5) % <enter > Realiza la operación ln (2.5)

5 x3 = log10 (2.5) % <enter > Realiza la operación log (2.5)

6 x4 = abs ( -2.5) % <enter > Realiza la operación | -2.5|

7 x5 = sqrt (2.5) % <enter > Realiza la operación 2.5^(0.5)

8 x6 = sin (2.5) % <enter > Realiza la operación sen (2.5)

9 x7 = cos (2.5) % <enter > Realiza la operación cos (2.5)

10 x8 = tan (2.5) % <enter > Realiza la operación tan (2.5)

11 x9 = factorial (5) % <enter > Realiza la operación 5!

12 x10 = asin (0.5985) % <enter > Realiza la operación asen (0.5985)

13 x11 = acos ( -0.8011) % <enter > Realiza la operación acos ( -0.8011)

14 x12 = sinh (2.5) % <enter > Realiza la operación senh (2.5)

15 x13 = cosh (2.5) % <enter > Realiza la operación cosh (2.5)

1.4.8 Ejemplo. Expresión con funciones matemáticas

Un simple pero representativo ejemplo de algunas funciones matemáticas que se pueden ejecutar en Matlab se aprecia al realizar la evaluación de la expresión matemática 1.1 considerando las constantes x= 0.8 y a = 0.4


Solución. La secuencia de la declaración de los valores de las variables, en la ventana de comandos, para hallar el valor de p es:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 x = 0.8; % <enter > Asignación de valor a la variable x

4 a = 0.4; % <enter > Asignación de valor a la variable a

5 p = sqrt (abs(exp(-pi*a*x)-sin(x)/cos(x)-log (2*x+a^2))) % <enter > Cálculo

1.4.9 Creación de figuras

En visualización gráfica la función figure es utilizada para crear ventanas de figuras. Para identificar una figura es conveniente ingresar un valor entero positivo entre paréntesis; por ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 figure (1) % <enter > Abre una figura con la rotulación 1

4 figure (5) % <enter > Abre una figura con la rotulación 5

1.4.10 Funciones de limpieza

El uso de las funciones clc, clear all y close all son de gran ayuda para realizar procedimientos de limpieza del área de trabajo. Es recomendable utilizar estas funciones al iniciar una nueva serie de instrucciones. Ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 close all % <enter > Limpieza de figuras abiertas

1.4.11 Uso del editor de Matlab

Otra opción para escribir código fuente es utilizar el editor de Matlab (New Script), donde se pueden crear scripts y archivos de funciones. Ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 a1 = 3; % Asignación de valor a la variable a1

4 b1 = 2; % Asignación de valor a la variable b1

5 c1 = 1; % Asignación de valor a la variable c1

6 d1 = b1^2 -4*a1*c1 % Cálculo de d1

7 r1 = (– b1+ sqrt (d1)) /(2*a1) % Cálculo de r1

8 r2 = (–b1 – sqrt (d1)) /(2*a1) % Cálculo de r2

Una característica de mucha utilidad del editor es la capacidad para definir bloques de código (celdas); por lo tanto, hay la posibilidad de ejecutar independientemente cada celda, como también la de ejecutar todas las celdas en conjunto. Ejemplo:

1 clc % <enter > Limpieza de la ventana de comandos

2 clear all % <enter > Limpieza del espacio de trabajo

3 %% Ejemplo de celdas de editor

4 %% Parte 1

5 a = 1; % Asignación de valor a la variable a

6 b = 2; % Asignación de valor a la variable b

7 cal1 = sinh (a)+ cosh (a)-exp(a) % Evaluación

8 cal2 = tanh (a+b)-tanh (a-b)-sinh (2*b)/( cosh (a*b)* cosh (a-b)) % Evaluación

9 %% Parte 2

10 c = 60* pi /180; % Asignación de valor a la variable c

11 d = 35* pi /180; % Asignación de valor a la variable d

12 n = 4/3; % Asignación de valor a la variable n

13 cal3 = c-d+ asin (n*sin(d- asin (sin(c)/n))) % Evaluación

14 %% Parte 3

15 e = 12; % Asignación de valor a la variable e

16 f = 7; % Asignación de valor a la variable f

17 cal4 = factorial (e)/ factorial (f)/ factorial (e-f) % Evaluación

1.4.11.1 Ejemplo. Reacciones en una viga empotrada con carga puntual

Se requiere calcular las fuerzas de reacción en una viga empotrada (figura 1.4), de acuerdo a las ecuaciones 1.2a, 1.2b, 1.2c y 1.2d.





Figura 1.4. Viga empotrada con carga puntual aplicada

Solución. Para el desarrollo de este ejemplo se consideran los siguientes valores: = L1 = 2m, L2 = 2m = 2m y P = 5KN(↓), siendo la secuencia de instrucciones en un fichero script:

1 % Reacciones en los extremos de una viga empotrada

2 clc; % Limpieza de la ventana de comandos

3 clear all; % Limpieza del espacio de trabajo

4 close all; % Limpieza de las figuras abiertas

5 L1 = 2; % Longitud desde el inicio hasta la ubicación de la carga

6 L2 = 2; % Longitud desde la ubicación de la carga hasta el final

7 P = 5; % Magnitud de la carga aplicada

8 L = L1 + L2; % Longitud total de la viga

9 Ri = ((P*L2^2) /(L^3)) *(3*L1+L2); % Fuerza de reacción parte izquierda

10 Mi = (P*L1*L2^2)/L^2; % Momento de reacción parte izquierda

11 Rj = ((P*L1^2) /(L^3))*(L1 +3*L2); % Fuerza de reacción parte derecha

12 Mj = –(P*L1^2*L2)/L^2; % Momento de reacción parte derecha

1.5 VECTORES Y MATRICES

El contenido de esta sección presenta las funciones que aparecen normalmente en el código fuente de los programas desarrollados pertenecientes a los capítulos que involucran el análisis de sistemas de un grado y varios grados de libertad.

1.5.1 Representación de un vector

Un vector se representa como un arreglo unidimensional, cuyas componentes se escriben dejando un espacio, como se muestra en la expresión 1.3:


1.5.2 Operador

El operador colon permite generar las componentes de un vector a partir de un valor referencial; dichas componentes resultantes son producto de una progresión aritmética que tiene por diferencia común sucesiva al valor referencial asignado. Se puede considerar el valor referencial para originar incrementos o decrementos. Las opciones para representar un vector en función del operador colon se muestran en las expresiones 1.4a, 1.4b y 1.4c:


donde

a1 = valor inicial de la progresión aritmética

d = valor referencial o diferencia común sucesiva

a2 = valor final de la progresión aritmética

El siguiente ejemplo presenta la creación de un vector fila que va de 0.2 a 1.0, con una razón de incremento de 0.1:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = 0.2:0.1:1 % <enter > Creación de un vector

4 n = length (x) % <enter > Cálculo mediante length (número de elementos)

y en el caso de considerar la razón de 0.1 como decremento:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = 1.0:-0.1:0.2 % <enter > Creación del vector x

Si el objetivo es crear un vector fila que va de 0.2 a 1.0 con una razón de incremento de 0.12, entonces:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = 0.2:0.12:1 % <enter > Creación del vector x

4 n = length (x) % <enter > Cálculo mediante length (número de elementos)

Con el operador colon también se puede generar un vector fila que va de 1 a 15 con una razón de incremento de 1, de la siguiente manera:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = 1:15 % <enter > Creación del vector x

4 n = length (x) % <enter > Cálculo mediante length (número de elementos)

1.5.3 Vector columna

Se hace posible crear un vector columna, de forma conveniente, al tomar la transpuesta de un vector fila:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x1 = (0.1:0.1:1.0) ' % <enter > Con el apóstrofe se crea un vector columna

4 x2 = (1.0:-0.1:0.1) ' % <enter > Con el apóstrofe se crea un vector columna

5 n = length (x) % <enter > Cálculo mediante length (número de elementos)

1.5.4 Función linspace

Al utilizar la función linspace se declara la cantidad de componentes n que tendrá un vector; y sin ser necesario especificar la diferencia común sucesiva entre estos, habrá un mismo intervalo de separación entre los componentes de dicho vector. En la expresión 1.5, la cual también muestra la sintaxis de la función lins-pace, se identifica a a1 como el valor inicial, a2 como el valor final y n como la cantidad de componentes del vector.


A continuación, se presentan ejemplos de la función linspace:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = linspace (–2, 6.5, 8) % <enter > Creación de vector mediante linspace

4 y = linspace (2, 10, 10) % <enter > Creación de vector mediante linspace

5 z = linspace (–2, 22, 5) % <enter > Creación de vector mediante linspace

6 w = linspace (–12, –2, 10) % <enter > Creación de vector mediante linspace

1.5.5 Manipulación de vectores

Hay varias formas de manipular las componentes de un vector cualquiera, como el de la expresión 1.6.


En el siguiente ejemplo, se muestra como obtener una serie de posibles vectores con respecto a un vector base; dicho vector base es el vector b.

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 b = [1 2 3 4 5 6 7 8 9 10 11 12] % <enter > Creación del vector b

4 cal1 = b (3:7) % <enter > Extracción de elementos en el vector cal1

5 cal2 = b(2: end) % <enter > Extracción de elementos en el vector cal2

6 cal3 = b([1 3 5 7 9]) % <enter > Extracción de elementos en el vector cal3

7 cal4 = b (1:2:9) % <enter > Extracción de elementos en el vector cal4

8 cal5 = b (1:12) % <enter > Extracción de elementos en el vector cal5

9 cal6 = b([2 4 6 8 10]) % <enter > Extracción de elementos en el vector cal6

10 cal7 = b(1 ,:) % <enter > Extracción de elementos en el vector cal7

Para modificar un vector se utilizan escalares, los cuales realizan las modificaciones elemento por elemento. Ejemplo:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = [ –2 1 3 5 7 9 10]; % <enter > Creación del vector x

4 z1 = x –1 % <enter > Cálculo del vector z1

5 z2 = x + 2 % <enter > Cálculo del vector z2

Si por algún motivo se desea modificar algún componente de un vector solo se debe hacer referencia a la posición numérica de dicha componente entre paréntesis (), en la variable que representa al vector y, seguidamente, declarar el tipo de operación; por ejemplo:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 z = [ –2 1 3 5 7 9 10]; % <enter > Creación del vector z

4 z(2) = z(2) /2; % <enter > Cambio del segundo elemento del vector z

5 z(3) = z(3) /3; % <enter > Cambio del tercer elemento del vector z

6 z % <enter > Muestreo del vector z en la ventana de comandos

1.5.6 Función sort

Si se requiere ordenar las componentes de un vector de forma ascendente o descendente con la finalidad de establecer un orden se utiliza la función sort. La cual, por defecto, ordena las componentes en forma ascendente; y para obtener un orden descendente solo habrá que colocar el argumento descend entre apóstrofes como argumento de ingreso de la función sort; por ejemplo:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 q = [ –1 6 15 –7 31 2 –4 –5 –8 –2]; % <enter > Creación del vector q

4 qn = sort (q) % <enter > Forma ascendente por defecto

5 qn = sort (q, 'descend' ) % <enter > Forma descendente

1.5.7 Mínimos y máximos de un vector

Hay la posibilidad de encontrar dentro de un vector x su máximo y mínimo valor, además de la ubicación de dichos valores. Para obtener la componente más pequeña del vector y su ubicación se utiliza la función min; cuya sintaxis se muestra en la expresión 1.7:


De manera similar, para obtener la componente más grande y su ubicación se utiliza la función max; cuya sintaxis se indica en la expresión 1.8:


A continuación, se muestra cómo obtener para los vectores x y y sus valores extremos y sus respectivas ubicaciones:

1 clc; % <enter > Limpieza de la ventana de comandos

2 clear all; % <enter > Limpieza del espacio de trabajo

3 x = linspace (pi, pi, 10) % <enter > Creación del vector x

4 y = sin(x) % <enter > Creación del vector y

5 [ymax , locmax ] = max(y) % <enter > Posición y máximo de un vector

6 [ymin , locmin ] = min(y) % <enter > Posición y mínimo de un vector

Türler ve etiketler

Yaş sınırı:
0+
Hacim:
599 s. 649 illüstrasyon
ISBN:
9789972455339
Telif hakkı:
Bookwire
İndirme biçimi:
Metin
Ortalama puan 0, 0 oylamaya göre
The Blind
A.F. Brady
Metin
Ortalama puan 0, 0 oylamaya göre
Ses
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Hired by Her Husband
Anne McAllister
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 4, 1 oylamaya göre