Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@4:3663b89a9407, 2016-02-24 (annotated)
- 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?
User | Revision | Line number | New 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 |