jueves, 12 de diciembre de 2013

SIMULACION DE UNA EDO HOMOGENEA 2 ORDEN


ECUACIÓN DIFERENCIAL HOMOGÉNEA DE 2 ORDEN

Y''+3*Y'+6=0





SIMULACION DE UNA ECUACION DIFERENCIAL DE 2 ORDEN


La simulación de una ecuación de segundo orden en Simulink se puede realizar a través de un diagrama 
como el que se muestra a continuación.
Para esto se utilizara una ecuación de la forma y''+m*y'+n*y = f(t)

Como la ecuación diferencial no es Homogénea se utiliza el Block Ramp de simulink para generar la 
función f(t)=4*t






BLOCK RAMP


El block Ramp, nos permite simular funciones de la forma f(t)= a*t+b. Es decir funciones lineales.

En las gráficas siguientes hemos generado primero una función del tipo f(t)=t, luego f(t)=t pero esta comienza en el punto (2,2) y por  ultimo tenemos la función f(t)=4*t



BLOQUE SCOPE

EL BLOQUE SCOPE

El bloque scope viene a representar lo que es un osciloscopio en un Laboratorio. Se puede
ver señales de entrada y salida.

En el ejemplo siguiente se ha utilizado una señal senoidal, una señal de pulso, una señal de paso y una señal tipo sierra.

Para cada tipo de señal se puede variar las características de cada una de ellas; amplitud, fase, paso, etc.



viernes, 16 de agosto de 2013

¿Como cambiar el fondo de una grafica generada por Scope?



¿Como cambiar el fondo de una grafica generada por Scope?

Las gráficas generadas por Scope en Matlab Simulink por defecto tienen un fondo de color negro. Sin embargo, esto puede cambiarse de la forma siguiente:

Para Matlab 7.0

Utilice la herramienta Plot tools y abra la gráfica generada con Scope. Allí podrá realizar los cambios de color del fondo.

Para Matlab inferior a 7.0

Para este caso puede enviar las variables a workspace y graficar allí con plot().


domingo, 7 de julio de 2013

IMPORTAR Y EXPORTAR ARCHIVOS .DAT

Desde matlab se puede guardar un conjunto de parámetros en un archivo .dat

La función SAVE se utiliza para guardar el archivo y LOAD para llamar el archivo al workspace




jueves, 27 de junio de 2013

EJERCICIO 51 Definicion de la funcion STEP

Se define la funcion step1(x)

Posteriormente se define un archivo ustep.m para llamar la funcion step1




EJERCICIO 50. Funciones definidas por el usuario


Definimos una funcion rect(x) en un archivo .m, la cual podra ser usada desde otros archivos. El comportamiento de nuestra funcion sera:

1 para abs(x) <= 0.5 y 0 para el esto.

Posteriormente escribimos un archivo urect1, desde donde llamamos la funcion rect, con los parametros 
que vamos a definir en el problema.








Reglas para crear un archivo .m en Matlab

A continuación resumimos las reglas para escribir funciones de archivo M.

1. La función debe comenzar con una línea que contenga la palabra function, seguida 
del argumento de salida, un signo de igual y el nombre de la función.
Este nombre va seguido por los argumentos de entrada de la función encerrados en paréntesis. 
Esta línea distingue el archivo de función de un archivo de guión.

2. Es recomendable que las primeras líneas sean comentarios porque se exhibirán
si se solicita ayuda para el nombre de la función.

3. La única información que la función devuelve está contenida en los argumentos
de salida que, desde luego, son matrices. Siempre compruebe que la función
incluya una instrucción que asigne un valor al argumento de salida.

4. Se pueden usar los mismos nombres de matriz tanto en una función como en el
programa que hace referencia a ella. No habrá confusión en cuanto a cuál matriz
es a la que se refiere porque la función y el programa son totalmente independientes.
Por otro lado, no es posible acceder desde el programa a ninguno de los
valores que se calculan en la función, como no sean los argumentos de salida.

5. Una función que va a devolver más de un valor debe mostrar todos los valores
que devolverá en forma de vector en la instrucción de función, como en este
ejemplo que devuelve tres valores:
function dist, vel, acell = movimiento(x)

Los tres valores tendrán que calcularse dentro de la función.

6. Una función que tenga múltiples argumentos de entrada deberá listar los argumentos
en la instrucción de función, como se muestra en este ejemplo, que tiene
dos argumentos de entrada: 

function error = mse(w,d)

7. Las variables especiales nargin y nargout pueden servir para determinar el número
de argumentos de entrada y el número de argumentos de salida de una función.

domingo, 23 de junio de 2013

EJERCICIO 49     Motor turbohélice avanzado

Un motor turbohélice avanzado llamado aba-sin ductos (UDF, unducted fan) es una de las prometedoras tecnologías que se están desarrollando para aviones de transporte futuros. Los motores de turbohélice, que han estado en uso desde hace varias décadas, combinan la potencia y la confiabilidad de los motores a reacción con la eficiencia de las hélices. Estos motores representan una mejora significativa respecto a los anteriores motores de hélice impulsados por pistones. No obstante, su aplicación se ha limitado a aviones pequeños para cubrir rutas cortas porque no son tan rápidos ni tan potentes como los motores de aspas a reacción que se emplean en los aviones de pasajeros de mayor tamaño.

Se escribe un archivo .m, en donde se solicite valores de entrada y salida, se define un contador y se utilizan las ecuaciones de diseño:


velocidad = 0.00001 tiempo- 0.00488 tiempo^2 + 0.75795 tiempo + 181.3566 
aceleración = 3 - 0.000062 velocidad^2

Es importante visualizar que la aceleracion se anula para valores mayores a 120 seg estableciendose una velocidad constante en aproximadamente 220 m/seg





EJERCICIO 48. Gráficas en semilog, log log, lineal-lineal

Se escribe un archivo .m, en donde se  define una función y(x) y se define un rango para los valores x.

Se plantean en una sola ventana los cuatro gráficos para compararlos.

Se tiene 4 sistemas de coordenadas:

1) lineal, lineal
2) log, lineal
3) lineal, log
3) log, log




EJERCICIO 47. Graficar puntos básicos y obtener promedio de n-datos

Se escribe unas cortas instrucciones y se guardan en un archivo .m

Posteriormente obtenemos en el wordspace el valor del promedio y en una ventana adicional la gráfica correspondiente.




viernes, 21 de junio de 2013

EJERCICIO 46. SIMULACIÓN DE PROCESO BÁSICO DE TERCER ORDEN




Simulamos un procesos sencillo con un bloque utilizando la transformada de Laplace de tercer orden, un bloque para visualizar la gráfica, un bloque para los valores de salida en el workspace, una función de entrada y  una variable temporal t.

martes, 14 de mayo de 2013

EJERCICIO 45. SISTEMA MASA- RESORTE-DAMPER CON FRICCIÓN DE COULOMB












miércoles, 10 de abril de 2013

EJERCICIO 44 COMANDO COMET(x,y) EN MATLAB

Comando comet(x,y) permite obtener una grafica animada







EJERCICIO 43 GRAFICA DE LISSAJOUS


Curvas de Lissajous. Cosideremos las siguientes ecuaciones paramétricas

x=2*cos(3*t)
y=3*sen(5*t)

El siguiente script genera una gráfica para valores entre 0 y 2pi
t=linspace(0,2*pi,5000); % Genera 5000 valores entre 0 y 2pi


x=2*cos(3*t);
y=3*sin(5*t);
plot(x,y)
title('Gráfica de lissajous')
xlabel('EJE X')
ylabel('EJE Y')




EJERCICIO 42 GRAFICAS SIMULTANEAS


>> x=-2:0.2:5;
>> f=x.^2-2*x-3;
>> g=x.^3-2*x;
>> h=x+2;

>> plot(x,f,x,g,x,h);
>> xlabel('X')
>> ylabel('Y')

>> title('GRAFICAS SIMULTANEAS')
>> plot(x,f,'--',x,g,'o',x,h,'*');

>> xlabel('X')
>> ylabel('Y')

>> title('GRAFICAS SIMULTANEAS')

>> legend('f(x)=x.^2-2*x-3','g(x)=x.^3-2*x','h(x)=x+2')










EJERCICIO 41 Lanzamiento de Proyectil lanzado hacia arriba, archivo .m


Cuando un objeto es lanzado hacia arriba con una velocidad , alcanza una altura en
pies después de segundos de acuerdo a la relación h=-16t^2+vot .

Si un proyectil es lanzado hacia arriba con una velocidad de 800pies/seg responder:

· Al cabo de cuánto tiempo el proyectil toca el suelo
· Cuando alcanzará una altura de 6400 pies
· Si la altura máxima alcanzada es de 10000 pies, al cabo de cuánto tiempo la bala está en su
punto más alto.
· Determine un archivo script, a través del cual se obtenga una grafica de la altura en función
del tiempo.


Para este caso, la altura en cualquier tiempo t, está dada por:
>>h=sym('-16*t^2+800*t')

-Lo que necesitamos conocer inicialmente es para que tiempo h=0. Esto es, se requiere resolver
la ecuación , para esto procedemos así:

>>ttotal=solve('-16*t^2+800*t=0')

ttotal
0             % En t=0 el proyectil estaba a la altura del suelo
50           % El proyectil toca nuevamente el suelo a los 50 seg


-Los valores de t para los cuales h=6400 , se obtienen de la ecuación
>>tparc=solve('-16*t^2+800*t=6400')

tparcial
10             % En t=10 el proyectil estaba a 6400 pies de altura
40                   subiendo. Ahora, de bajada pasa a la misma altura luego de 40 seg.



Para conocer el tiempo en el que alcanza la maxima altura de 10000 pies, se resuelve la ecuación:
>>tmaxh=solve('-16*t^2+800*t=10000')

tmax
25               % En t=25 seg el proyectil alcanza su maxima altura de 10000 pies.



-Una primera aproximación de la gráfica la obtenemos del comando:

>>ezplot(h) % Grafica que require de ajustes para mejor visualizacion
-La gráfica se mejora teniendo en cuenta que la altura se toma sobre el suelo, es decir,
considerando el tiempo t desde 0 hasta 50 que es el tiempo en que el proyectil está en el aire
sobre el suelo.

>>ezplot(h,[0 50]);


Finalmente podemos lograr una grafica mas elaborada a través del script proyectil.m acá
tendremos encuenta, el rango de los ejes de acuerdo a los datos obtenidos. Se resaltaran además
los puntos en que el proyectil alcanza la altura de 6400 pies y la altura maxima.




%script proyectil.m
h=sym('-16*t^2+800*t')
axis([0 50 0 10000])
ezplot(h,[0 50]);
hold on
grid on
plot(10,subs(h,10),'ro')
plot(40,subs(h,40),'ro')
plot(25,subs(h,25),'ro')
title('GRAFICA DE LA POSICION DEL PROYECTIL EN EL TIEMPO')
xlabel('Tiempo t en segundos')
ylabel('Altura h en pies')
NOTA: * Recuerde grabar el script como archivo: proyectil.m
* Para ejecutar el conjunto de instrucciones se digita en la ventana de comandos de
MATLAB
>>proyectil % y dar ENTER










EJERCICIO 40 Si se sabe que los intersectos de un polinomio con el eje x están en los puntos x=1, x=-3, x=5, determinar un polinomio y obtener una grafica en el plano en la que se aprecien las intercepciones con el eje x


-El polinomio tiene la forma (x+3)(x-1)(x-5). Para obtenerlo en MATLAB se procede así:
>>p=sym('(x+3)*(x-1)*(x-5)')
>> pol=expand(p)
>>pretty(pol)

Para obtener la gráfica del polinomio se ejecutan las siguientes instrucciones:
>> ezplot(pol);
-Para ajustar el eje X y considerar el plano cuadriculado se dan los comandos:
>>axis([-3.5 6.5 -30 40])
>>grid on
-Para resaltar los intersectos y etiquetar los ejes:
>>hold on
>>plot(-3,subs(pol,-3),'ro')
>>plot(1,subs(pol,1),'ro')
>>plot(5,subs(pol,5),'ro')
>>title('GRAFICA DEL POLINOMIO')
>>xlabel('EJE X')
>>ylabel('EJE Y')







EJERCICIO 39: Resolver un sistema de ecuaciones y graficar las rectas,

>> [x,y]=solve('2*x+y=4','-x+y=-5','x,y') % Se obtienex = 3, y = -2

Este resultado se puede apreciar visualmente al obtener la grafica sobre un mismo plano de las
ecuaciones vistas como funciones.

-Para implementar la graficas en MATLAB se sigue la siguiente secuencia:

>>y1='-2*x+4';
>>y2='x-5';

>>hold on % Prepara el plano para graficas
simultáneas
>>grid on % Inserta cuadrículas en el plano de
graficado
>>ezplot(y1) % Grafica la recta y1
>>ezplot(y2) % Grafica la recta y1
>>plot(3,subs(y1,3),'ro'); % Resalta el punto de intersección
Para nuestra grafica final hemos añadido una tercera funcion y3=3*x-5


miércoles, 20 de marzo de 2013

EJERCICIO 38. BLOCK LOOK UP

Este componente permite insertar una grafica o tabla en su proyecto.
















lunes, 18 de marzo de 2013

EJERCICIO 37. BLOQUE SATURACION (BLOCK SATURATION)

Aquí tenemos un ejemplo usando un bloque no lineal. Consideramos una onda sinusoidal de amplitud 1 
( la señal varia entre 1 y -1). Un bloque saturacion es usado para limitar la amplitud de salida a 0,5.
La señal saturada  y la no saturada son comparadas.




viernes, 1 de marzo de 2013

EJERCICIO 36 GRAFICAR UNA MATRIZ VERSUS UN VECTOR


>> A=[1 2 ; 3 4]

A =

     1     2
     3     4


X =

     8     9

>> plot(X,A);




EJERCICIO 35 GRAFICA ANGULO DIFUSO

>> t=0:pi/200:2*pi;x=sin(t);y1=sin(t+0.5);y2=sin(t+1.0);
plot(x,y1,'r-',x,y2,'g--'); title('Angulo difuso'); xlabel('x=sin(t)'); 



EJERCICIO 34 CALCULO DE PROMEDIO DE UN VECTOR A, .M


>> A=[1 2 4 3 7 5 6 1 2 0 8 5];


> promedio(A)

ans =

    3.6667

>> A=[1 2 4 3 7 5 6 1 2 0 8 5];
>> promedio(A)

ans =

    3.6667

>> promedio(A);



EJERCICIO 33 CREAR UN VECTOR CON FOR Y ARCHIVO .M

% Ejemplo de un archivo-m
% Creación del vector x usando el comando for
n=5;
for i=1:n
x(i)=i^2;
end
x
% Fin del archivo-m


Este archivo crea un vector de 5 entradas elevados al cuadrado



>> filefor

x =

     1     4     9    16    25

>>

EJERCICIO 32

ARCHIVO .M DE LA SERIE DE FIBONACCI


% Un archivo-M para calcular los elementos de la serie de Fibonacci
f = [1 1]; i = 1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
plot(f)


Si llamamos ¨fibo¨  al archivo .m y lo llamamos en una ventana de MATLAB seguido de "enter" se ve que MATLAB calcula los primeros 16 números de Fibonacci y luego realiza una grafica de los mismos.




sábado, 23 de febrero de 2013

EJERCICIO 31 GRAFICAS 3D EN MATLAB


>> [x,y]=meshgrid(-2:.5:2);
>> z=exp(-x.^2-y.^2);
>> plot3(x,y,z)





>> mesh(x,y,z)



>> surf(x,y,z)


>>[x,y]=meshgrid(linspace(-1,1,50));
>> z=cos((x.*y)./(x.^2+y.^2+1));
>> surf(x,y,z),colorbar






EJERCICIO 30 GRAFICAR CURVAS PARAMETRICAS CON MATLAB


>> t=linspace(-5,5,1000);
>> plot((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1));




>>comet((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1))

El comando COMET realiza la grafica con animación.


GRAFICAR CURVAS EN COORDENADAS POLARES

>> tetha=linspace(-pi,pi,100);
>> r=2-4*cos(tetha);
>> polar(tetha,r)





EJERCICIO 29 GRAFICAR UNA FUNCION DEFINIDA POR PARTE CON MATLAB



>> x=linspace(-2,3,3000);
>> y=(x.^2).*(x<0)+1.*((0<=x)&(x<1))+(-x+2).*(1<=x);
>> plot(x,y,'.'),grid on,title('Funcion definida a trozos');




viernes, 22 de febrero de 2013

EJERCICIO 28 DIVISIÓN DE POLINOMIOS CON MATLAB


Sea P(x)=15x^4+9x^2+8x-2 y  Q(x)=5x^2-2


>> p=[15 0 9 8 -2];
q=[5 0 -2];
[s,r]=deconv(p,q);

Polinomio Residuo
r= [0 0 0 8 4.000000000000001]

Polinomio Cociente
s=[3 0 3]