Arturo Corona / Mbed 2 deprecated Atractor_Lorentz

Dependencies:   mbed

Committer:
arturocoronanieva
Date:
Wed Feb 24 19:12:21 2016 +0000
Revision:
4:3663b89a9407
Parent:
2:b60cb847489c
Simulation of Lorentz Atractor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:005629fe3609 1 #include "mbed.h"
arturocoronanieva 4:3663b89a9407 2 Serial pc(USBTX,USBRX);
screamer 0:005629fe3609 3
arturocoronanieva 4:3663b89a9407 4 //Declaración de salidas analogicas
arturocoronanieva 4:3663b89a9407 5 //AnalogOut outx(PA_4);
arturocoronanieva 4:3663b89a9407 6 //AnalogOut outz(PA_5);
arturocoronanieva 4:3663b89a9407 7
arturocoronanieva 4:3663b89a9407 8 //Declaración de constantes
arturocoronanieva 4:3663b89a9407 9 float p = 10.0;
arturocoronanieva 4:3663b89a9407 10 float b = 8/3;
arturocoronanieva 4:3663b89a9407 11 float r = 28;
arturocoronanieva 4:3663b89a9407 12 float ts = 0.00438; //Periodo de mustreo
screamer 0:005629fe3609 13
arturocoronanieva 4:3663b89a9407 14 int main()
arturocoronanieva 4:3663b89a9407 15 {
arturocoronanieva 4:3663b89a9407 16 //Declaración de condiciones iniciales
arturocoronanieva 4:3663b89a9407 17 float x1 = 0.1;
arturocoronanieva 4:3663b89a9407 18 float y1 = -10;
arturocoronanieva 4:3663b89a9407 19 float z1 = 0.1;
arturocoronanieva 4:3663b89a9407 20 float x, y, z;
screamer 0:005629fe3609 21 while(1) {
arturocoronanieva 4:3663b89a9407 22 //Ecuaciones de Lorentz discretas con Euler
arturocoronanieva 4:3663b89a9407 23 x = x1 + ts*(p*(y1-x1));
arturocoronanieva 4:3663b89a9407 24 y = y1 + ts*(x1*(r-z1)-y1);
arturocoronanieva 4:3663b89a9407 25 z = z1 + ts*(x1*y1-b*z1);
arturocoronanieva 4:3663b89a9407 26 //Imprimir en serial
arturocoronanieva 4:3663b89a9407 27 pc.printf(" %f \n \r ",x);
arturocoronanieva 4:3663b89a9407 28 //Declaracion de salida a puertos
arturocoronanieva 4:3663b89a9407 29 //outx.write(x);
arturocoronanieva 4:3663b89a9407 30 //outz.write(z);
arturocoronanieva 4:3663b89a9407 31 //Reiniciando valores
arturocoronanieva 4:3663b89a9407 32 x1 = x;
arturocoronanieva 4:3663b89a9407 33 y1 = y;
arturocoronanieva 4:3663b89a9407 34 z1 = z;
screamer 0:005629fe3609 35 }
screamer 0:005629fe3609 36 }
arturocoronanieva 4:3663b89a9407 37
arturocoronanieva 4:3663b89a9407 38 //Script Para Matlab 2014a
arturocoronanieva 4:3663b89a9407 39
arturocoronanieva 4:3663b89a9407 40 /*%Borrar conexiones previas
arturocoronanieva 4:3663b89a9407 41 delete(instrfind({'Port'},{'COM3'}));
arturocoronanieva 4:3663b89a9407 42 %Crear una conexion serie
arturocoronanieva 4:3663b89a9407 43 s = serial('COM3','BaudRate',9600);
arturocoronanieva 4:3663b89a9407 44 warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
arturocoronanieva 4:3663b89a9407 45 %Abrir el puerto
arturocoronanieva 4:3663b89a9407 46 fopen(s);
arturocoronanieva 4:3663b89a9407 47 %Inicializar las variables
arturocoronanieva 4:3663b89a9407 48 Nvalores=10000; %Cantidad de valores que queremos a leer
arturocoronanieva 4:3663b89a9407 49 m1=zeros(1,Nvalores);
arturocoronanieva 4:3663b89a9407 50 i=1;
arturocoronanieva 4:3663b89a9407 51 k=0;
arturocoronanieva 4:3663b89a9407 52
arturocoronanieva 4:3663b89a9407 53 while k<Nvalores
arturocoronanieva 4:3663b89a9407 54 %Leer el puerto serie
arturocoronanieva 4:3663b89a9407 55 a = fscanf(s,'%d')';
arturocoronanieva 4:3663b89a9407 56 m1(i)=a(1);
arturocoronanieva 4:3663b89a9407 57 %Dibujar la figura
arturocoronanieva 4:3663b89a9407 58 figure(1);
arturocoronanieva 4:3663b89a9407 59 plot(m1);
arturocoronanieva 4:3663b89a9407 60 %Incrementar el contador
arturocoronanieva 4:3663b89a9407 61 i=i+1;
arturocoronanieva 4:3663b89a9407 62 k=k+1;
arturocoronanieva 4:3663b89a9407 63 end
arturocoronanieva 4:3663b89a9407 64 */
arturocoronanieva 4:3663b89a9407 65