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

Yazı tipi:

1.9.3 Suma y resta de polinomios

Para sumar o restar polinomios estos deben ser polinomios completos y tener el mismo orden; de lo contrario, se deben completar con valores de cero a los coeficientes de los monomios faltantes; por ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 f1 = [3 25 0 – 10 – 3 20 – 20] % <enter > Creación del polinomio f1

3 f2 = [3 0 – 5 – 8] % <enter > Creación del polinomio f2

4 f = f1 + [0 0 0 f2] % <enter > Suma de polinomios

5 g = f1 – [0 0 0 f2] % <enter > Resta de polinomios

6 h = f + g % <enter > Suma de polinomios

1.9.4 Raíces de un polinomio

Para calcular las raíces de un polinomio se debe emplear la función roots; por ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 f = [1 1 20.60 30.40 12.02 76.85 36.44] % <enter > Representación

3 r1 = roots (f) % <enter > Cálculo de raíces del polinomio f

4 g = [1 1 10 15 20] % <enter > Representación

5 r2 = roots (g) % <enter > Cálculo de raíces del polinomio g

1.9.5 Función poly

La función poly realiza el procedimiento inverso de la función roots, debido a que establece un polinomio a partir de sus raíces; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 r = [3.5 4.5 2.0 3.2 4.8 6.2] % <enter > Raíces del polinomio

3 f = poly (r) % <enter > Uso de la función poly

1.9.6 Multiplicación de polinomios

Si se desea multiplicar polinomios se debe utilizar la función conv; por ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 f1 =[3 15 0 -10 -3 15 -40] % <enter > Polinomio f1

3 f2 =[3 0 -2 -6] % <enter > Polinomio f2

4 f= conv (f1 ,f2) % <enter > Multiplicación de polinomios

1.9.7 División de polinomios

Inversa de la función conv es la función deconv, la cual origina la división entre polinomios; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 f1 = [2 9 7 -6] % <enter > Polinomio f1

3 f2 = [1 3] % <enter > Polinomio f2

4 [a,b] = deconv (u,v) % <enter > División de polinomios

1.10 CÁLCULO SIMBÓLICO

En Matlab es posible trabajar con cálculo simbólico; ya que permite al usuario ejecutar expresiones simbólicas sobre la base de objetos simbólicos.

1.10.1 Función sym

La función sym se puede utilizar para almacenar un objeto simbólico en una variable; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 a = sym( ' a ' ) % <enter > Objeto simbólico almacenado en la variable a

3 b = sym( ' b ' ) % <enter > Objeto simbólico almacenado en la variable b

También se pueden utilizar números como objetos con la función sym; por ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 c = sym( ' 5 ' ) % <enter > Objeto simbólico almacenado en la variable c

3 d = sym( ' 7 ' ) % <enter > Objeto simbólico almacenado en la variable d

1.10.2 Función syms

Es bastante similar a la función sym, con la diferencia de que la función syms crea varios objetos simbólicos al mismo tiempo; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 sym y z d % <enter > Creación de objetos simbólicos y z d

3 y % <enter > Visualización del objeto simbólico y

4 z % <enter > Visualización del objeto simbólico z

5 d % <enter > Visualización del objeto simbólico d

El ejemplo que se presenta a continuación ilustra la creación de expresiones simbólicas:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms a b c x y % <enter > Creación de objetos simbólicos a b c x y

3 f = a*x^2+b*x+c % <enter > Expresión simbólica f

4 g = 2*a/3 +4*a /7 -6.5* x+x /3+4*5/3 -1.5 % <enter > Expresión simbólica g

1.10.3 Función collect

Para obtener los coeficientes de cada uno de los términos de una expresión simbólica se utiliza la función collect; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms x y % <enter > Creación de objetos simbólicos x y

3 S = (x^2+x-exp(x))*(x+3) % <enter > Expresión simbólica

4 F = collect (S) % <enter > Uso de la función collect

5 T = (2* x^2+y^2) *(x+y ^2+3) %<enter > Expresión simbólica

6 G = collect (T) % <enter > Uso de la función collect

7 G = collect (T,y) % <enter > Uso de la función collect

1.10.4 Función expand

La función expand expande una expresión simbólica factorizada, obteniendo los términos del desarrollo de dicha expresión simbólica factorizada; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms a x y % <enter > Creación de objetos simbólicos a x y

3 S = (x+5) *(x-a)*(x+4) % <enter > Expresión simbólica

4 T = expand (S) % <enter > Uso de la función expand

5 expand (sin(x-y)) % <enter > Uso de la función expand

1.10.5 Función factor

Inversa de la función expand es la función factor, la cual convierte una expresión simbólica establecida en varios términos a una expresión simbólica factorizada; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms x y % <enter > Creación del objeto simbólico x e y

3 S1 = x ^3+4* x^2 -11*x -30 % <enter > Expresión simbólica

4 factor (S1) % <enter > Uso de la función factor

5 S2 = x ^3+3* x ^2+3* x+1 % <enter > Expresión simbólica

6 factor (S2) % <enter > Uso de la función factor

7 S3 = x^4 -1 % <enter > Expresión simbólica

8 factor (S3) % <enter > Uso de la función factor

1.10.6 Función simplify

Para mostrar la simplificación de una expresión simbólica se debe utilizar la función simplify; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms x y % <enter > Creación de objetos simbólicos x y

3 S=x*(x*(x -8) +10) -5 % <enter > Expresión simbólica

4 S1= simplify (S) % <enter > Uso de la función simplify

5 simplify ((x+y) /(1/ x+1/y)) % <enter > Uso de la función simplify

1.10.7 Función pretty

La función pretty presenta una expresión simbólica en un formato de texto que se asemeja a la tradicional escritura de las expresiones matemáticas; ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 syms a b c x y % <enter > Creación de objetos simbólicos a b c x y

3 S = sqrt (a*x^2+b*x*c) % <enter > Expresión simbólica

4 pretty (S) % <enter > Uso de la función pretty

1.11 INTERPOLACIÓN

La interpolación es un procedimiento que establece valores de puntos desconocidos dentro de un rango de puntos conocidos.

1.11.1 Función interp1 para interpolación

En el siguiente ejemplo, referido a la interpolación de la función seno, la función interp1 puede realizar una interpolación lineal definiendo un vector, para el caso de este ejemplo el vector xq, que contenga las coordenadas de los puntos secundarios por considerar en el eje X; como también puede realizar una interpolación más elaborada, aumentando el argumento del método spline.

1 Interpolación de la función seno mediante interpolación lineal e interpolación spline.

2 clc , clear all , close all % Funciones de limpieza

3 x = 0: pi /4:2* pi; % <enter > Define el vector x

4 v = sin(x); % <enter > Define el vector v

5 xq = 0: pi /16:2* pi; % <enter > Define el vector xq

6 figure (1) % <enter > Crea una figura

7 set(gcf , ' Color ' , ' w ' ); % <enter > Fondo color blanco

8 vq1 = interp1 (x,v,xq); % <enter > Realiza la interpolación

9 plot (x,v, ' o ' ,xq ,vq1 , ' :. ' ); % <enter > Gráficos

10 xlim ([0 2* pi ]); % <enter > Establece límites en el eje x

11 title ( ' Interpolación Lineal ' ); %<enter > Establece título

12 grid on % <enter > Cuadrículas

13 ax = gca; % <enter >

14 ax. GridAlpha =0.40; % <enter > Oscurecimiento de cuadrículas

15 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo X

16 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo Y

17 figure (2) % <enter > Crea una figura

18 set(gcf , ' Color ' , ' w ' ); % <enter > Fondo color blanco

19 vq2 = interp1 (x,v,xq , ' spline ' ); % <enter > Realiza la interpolación

20 plot (x,v, ' o ' ,xq ,vq2 , ' :. ' ); % <enter > Gráficos

21 xlim ([0 2* pi ]); % <enter > Establece límites en el eje x

22 title ( ' Interpolación Spline ' ); % <enter > Títulos

23 grid on % <enter > Cuadrículas

24 ax = gca; % <enter >

25 ax. GridAlpha =0.40; % <enter > Oscurecimiento de cuadrículas

26 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo X

27 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo Y


Figura 1.28. Interpolación de la función seno mediante la función interp1

De igual manera, a continuación se muestra la opción de usar la función interp1 para obtener una interpolación sin la necesidad de especificar el vector de las coordenadas X de los puntos principales.

1 % Interpolación de la función seno sin especificar puntos en el eje

2 % horizontal.

3 clc , clear all , close all % Funciones de limpieza

4 v = [0 1.41 2 1.41 0 -1.41 -2 -1.41 0]; % <enter > Define el vector v

5 xq = 1.5:8.5; % <enter > Define el vector xq

6 vq = interp1 (v,xq); % <enter > Define el vector vq

7 figure (1) % <enter > Crea una figura

8 title ( ' Interpolación ' ); % <enter > Título

9 plot ((1:9) ,v, ' o ' ,xq ,vq , ' * ' ); % <enter > Gráficos

10 set(gcf , ' Color ' , ' w ' ); % <enter > Fondo color blanco

11 hleg = legend ( ' v ' , ' vq ' , ' Location ' , ' NorthEast ' ); % <enter > Leyenda

12 set(hleg , ' FontAngle ' , ' normal ' , ' FontName ' , ' Century ' , ' FontSize ' ,16)

13 grid on % <enter > Cuadrículas

14 ax = gca; % <enter >

15 ax. GridAlpha = 0.40; % <enter > Oscurecimiento de cuadrículas

16 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo X

17 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótulo Y


Figura 1.29. Interpolación sin especificar valores en el eje de las abscisas

1.12 EXTRAPOLACIÓN

La extrapolación es un procedimiento que establece valores de puntos desconocidos dentro o fuera de un rango de puntos conocidos.

1.12.1 Función interp1 para extrapolación

La función interp1 puede realizar una extrapolación por defecto utilizando el método pchip; como también una extrapolación por el método lineal acompañado del argumento extrap, la cual no es por defecto. Ejemplo:

1 % Extrapolación

2 clc , clear all , close all % Funciones de limpieza

3 x = [1 2 3 4 5]; % <enter > Define el vector x

4 v = [12 16 31 10 6]; % <enter > Define el vector v

5 xq = [0 0.5 1.5 5.5 6]; % <enter > Define el vector xq

6 vq1= interp1 (x,v,xq , ' pchip ' ); % <enter > Realiza la interpolación

7 vq3 = interp1 (x,v,xq , ' linear ' , ' extrap ' ); % Realiza la interpolación

8 figure (1) % <enter > Crea una figura

9 plot (x,v, ' o ' ,xq ,vq1 , ' * ' ); % <enter > Gráfico

10 title ( ' Extrapolación ' ); % <enter > Título

11 set(gcf , ' Color ' , ' w ' ); % <enter > Fondo color blanco

12 hleg = legend ( ' v ' , ' vq1 ' , ' Location ' , ' NorthEast ' ); % <enter > Leyenda

13 set(hleg , ' FontAngle ' , ' normal ' , ' FontName ' , ' Century ' , ' FontSize ' ,16)

14 grid on % <enter > Cuadrículas

15 set(gca , ' GridAlpha ' ,0.40) % <enter > Oscurecimiento de cuadrículas

16 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótula X

17 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rótula Y

18 figure (2) % <enter > Crea una figura

19 plot (x,v, ' o ' ,xq ,vq3 , ' * ' ); % <enter > Gráfico

20 title ( ' Extrapolación ' ); % <enter > Título

21 set(gcf , ' Color ' , ' w ' ); % <enter > Fondo color blanco

22 grid on % <enter > Cuadrículas

23 set(gca , ' GridAlpha ' ,0.40) % <enter > Oscurecimiento de cuadrículas

24 hleg = legend ( ' v ' , ' vq3 ' , ' Location ' , ' NorthEast ' ); % <enter > Leyenda

25 set(hleg , ' FontAngle ' , ' normal ' , ' FontName ' , ' Century ' , ' FontSize ' ,16)

26 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % Rótula X

27 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % Rótula Y


Figura 1.30. Gráficas de extrapolación mediante distintos procedimientos

1.13 CREACIÓN DE FUNCIONES

El usuario tiene la posibilidad de crear funciones personalizadas; dichas funciones se identificarán rápidamente en la ventana Current Folder por la expresión fx en sus iconos.

1.13.1 Archivo de funciones

El archivo de función se crea en el editor de Matlab, a no ser que sea una función anónima, la cual tiene una estructura particular que empezará siempre con la palabra function. Por característica propia, sus variables internas son locales para la función. Ejemplo:

1 function [ Variables de salida ] = Nombre de la función ( Variables de ingreso )

2 % Comentarios

3 Expresiones

4 Variables de salida = ...

Con la finalidad de que no haya problemas de operatividad al utilizar la función personalizada creada, se recomienda que el nombre del archivo de la función y el nombre de la función sean iguales.

A continuación se presenta un ejemplo en el cual se crea una función personalizada sobre la base de las ecuaciones 1.34a y 1.34b:


Ahora, para llamar a la función personalizada creada Calcular XY y poder visualizar la formulación de dicha función se debe hacer lo siguiente:

1 [u,v]= CalcularXY (0: pi /4:pi , 1.4 , 2, 0.75);

2 help CalcularXY

1.13.2 Funciones anónimas

Es una alternativa para elaborar funciones simples sin la necesidad de crear un archivo. Una función anónima se puede establecer en la línea de comandos, dentro de una función o dentro de un script. La sintaxis de una función anónima corresponde a lo siguiente:

1 functionhandle = @( argumentos ) ( expresión )

donde functionhandle es el nombre de la función anónima, argumentos son las variables que emplea y expresión es el procedimiento que se va a ejecutar sobre la base de los argumentos. Para una mejor comprensión, se muestra la formula-ción de la función anónima de la siguiente expresión:


en la que se propone los valores de las variables son β = π/4 y = x = 4.8.

1 bet=pi /4;

2 cx=@(x) (abs(cos(bet*x)));

3 disp (cx (4.8) )

Es posible considerar varios argumentos en una función anónima, como se muestra en el siguiente ejemplo:

1 cx=@(x, bet) (abs(cos(bet*x)));

2 disp (cx (4.8 , pi /4))


Capítulo2Entorno de desarrollo de interfaz gráfica de usuario Guide

2.1 INTRODUCCIÓN

Guide es un ambiente de desarrollo de aplicaciones, el cual cuenta con una gran variedad de herramientas que simplifican, a través de una manipulación directa de estas, el proceso de generar o programar interfaces de usuario.

Una forma de trabajar en Guide es arrastrando hacia el área de diseño diversos componentes, como ejes, paneles, botones interactivos, textos estáticos, controles deslizantes, menús contextuales, etcétera; para posteriormente, generar la creación de una aplicación de acuerdo al detallado que el usuario especifique. Desde el área de diseño se puede configurar el ambiente de trabajo, establecer diversas configuraciones y ejecutar el avance desarrollado, para verificar el correcto funcionamiento de lo planificado.

También cabe señalar que es posible programar interfaces gráficas de usuario desde un archivo-m o directamente desde la ventana de comandos. En este capítulo se presentan algunos de los procedimientos básicos para la creación de interfaces gráficas de usuario (GUIs) en Matlab.

2.2 Diseño de interfaces gráficas de usuario mediante el empleo de Guide
2.2.1 Plantillas

Guide proporciona plantillas simples que el usuario puede utilizar para crear GUI. A continuación se presenta la secuencia para manipular las plantillas que, por defecto, ofrece Matlab:

1. Tipear en la ventana de comandos: guide <enter >; luego se mostrará la ventana de la figura 2.1, la cual presenta tres tipos de plantillas ubicadas en la pestaña Create New GUI. Como primer ejemplo, elegir la plantilla GUI with Uicontrols y dar clic en el botón OK de la ventana GUIDE Quick Start.

Figura 2.1. Ventana de Inicio rápido de Guide

2. De esta manera aparecerá la ventana de la figura 2.2. Para ejecutar la aplicación que ya se encuentra establecida (Measures-Units), se debe hacer clic en el icono que lleva por mensaje Run Figure (Ctrl+T), mostrado también en la figura 2.2. Luego aparecerá la opción para guardar el GUI, que creará dos archivos y los abrirá al instante: el archivo untitled.m (contiene el código fuente del GUI) y el archivo untitled.fig.

Figura 2.2. Ventana de diseño del GUI

3. Finalmente, se tiene la ventana del aplicativo untitled.fig; mostrada en la figura 2.3.

Figura 2.3. Ventana de aplicación de la Plantilla 1

Mediante procedimientos similares al mostrado anteriormente se pueden usar las plantillas GUI with Axes and Menu y Modal Question Dialog mostradas en la figura 2.4 y figura 2.5, respectivamente.

Figura 2.4. Ventana de aplicación de la Plantilla 2

Figura 2.5. Ventana de aplicación de la Plantilla 3

2.2.2 Ventana Inspector de Guide

Esta ventana, mostrada en la figura 2.6, es propia del área de diseño y de cada uno de los componentes (ejes, paneles, botones interactivos, textos estáticos, controles deslizantes, etcétera) de Guide. La ventana Inspector contiene una amplia variedad de propiedades, lo cual permite modificar hasta la apariencia de las aplicaciones creadas. Una forma rápida de acceder a esta ventana es haciendo doble clic sobre un componente o sobre el área de diseño.

Figura 2.6. Ventana Inspector

También es posible abrir de manera constante la ventana Inspector haciendo clic en la opción View dentro del archivo de extensión .fig y seleccionando la opción Property Inspector. En el caso de que se esté programando el GUI desde un archivo-m o desde la ventana de comandos entonces las propiedades de los componentes de la aplicación se modificarán desde allí mismo.

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
Metin
Ortalama puan 0, 0 oylamaya göre
Metin PDF
Ortalama puan 0, 0 oylamaya göre
Metin PDF
Ortalama puan 3,7, 3 oylamaya göre
How Nancy Drew Saved My Life
Lauren Baratz-Logsted
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre