MATLAB tiempo inexacto

#1
Que tal compañeros tengo una duda respecto a la exactitud del tiempo en Matlab, ya que necesito que mi código se ejecute en un total de 1 segundo lo mas exacto posible ya que también muestro en consola el tiempo que lleva ejecutándose mi programa, utilizo " tic toc " para que cada segundo comience nuevamente a ejecutarse mi programa, mi código no demora mas de 300ms en ejecutarse así que utilizo while toc<1 para que se cicle hasta que se cumpla 1 segundo, y parece que funciona solo que lo he dejado trabajar casi hora y media, con lo cual note que se ha atrasado 10 seg, lo que calcule fue que cada segundo se atrasa MATLAB 1.776ms. Mi código consta de adquirir datos por puerto serial mostrarlo en pantalla junto con el tiempo que lleva trabajando el programa, algo como:

while(1)
tic
" codigo de adquisición, imprime en pantalla los datos adquirido y el tiempo de ejecución, realiza una gráfica con los datos "

pause(0.1);

while toc < 1
end

end

¿Que puedo hacer para obtener mayor exactitud de tiempo en MATLAB?

Espero me puedan ayudar, gracias. ...
 
Última edición:
#2
Windows en general no es bueno para hacer tiempos exactos. En su día había una versión con un arranque específico o algo así.
 
#4
Que tal compañeros tengo una duda respecto a la exactitud del tiemp.....¿Que puedo hacer para obtener mayor exactitud de tiempo en MATLAB?

Espero me puedan ayudar, gracias. ...
Amigo HIRONAKAMURA, saludos

Mira este enlace en [Mathwotks.com], ahí está la documentación sobre las funciones de tiempo y fecha. Yo alguna vez usé el reloj del sistema y si se puede lograr cierto grado de precisión (la información está en inglés, pero tu ya sabes programar en inglés...entonces no debería ser un inconveniente el idioma :cool:)

Salu2
 
#5
Amigo HIRONAKAMURA, saludos

Mira este enlace en [Mathwotks.com], ahí está la documentación sobre las funciones de tiempo y fecha. Yo alguna vez usé el reloj del sistema y si se puede lograr cierto grado de precisión (la información está en inglés, pero tu ya sabes programar en inglés...entonces no debería ser un inconveniente el idioma :cool:)

Salu2
Gracias por responder, y bueno me pareció mas extenso lo del link aunque igual funciona muy bien habria que probarlo, y de mi ingles :LOL:...



Y bueno he conseguido una gran mejora y supongo la solución a mi problema, faltaría dejar mas tiempo el programa para observar los resultados, gracias a @secpre de Taringa que me aclaro el panorama,quedando el programa asi:

tic
wait_toc=0

while(1)

" codigo de adquisición, imprime en pantalla los datos adquirido y el tiempo de ejecución, realiza una gráfica con los datos "


wait_toc = wait_toc + 1;

pause(wait_toc - toc)
end

end



Solo se debe utilizar TIC al inicio del programa para que no se este reiniciando el conteo y meta tiempo innecesario. Después de 7 hr 37 min que marcaba MATLAB mi cronometro marcaba 7:36:59.0, con lo cual ahora se adelanto 1 segundo el programa en un lapso casi de 8 hrs, habría que dejarlo mas tiempo para ver si aumenta o se queda ahí.
 
Última edición:
Arriba