Aprenda un método para analizar datos de un sistema de sensor de precisión personalizado, traduciendo los datos del sensor en información de medición de ruido utilizable.
Recientemente, diseñé un subsistema de inclinómetros de alta precisión que es tan sensible a las fuerzas ambientales que necesitaba una carcasa personalizada en una losa de granito para funcionar correctamente.
A lo largo del proceso de diseño, he presentado la lista de materiales, el esquema, el diseño de la PCB, el diseño de la carcasa y el firmware. También he pasado por una fase de prueba y medición para caracterizar el ruido que genera la placa.
Mi último paso en este proceso es analizar los datos que puedo recopilar de mi subsistema. Este artículo analiza los datos capturados fuera del tablero y muestra cómo elegí visualizar los datos.
Si desea obtener más información sobre el resto del proyecto, consulte los enlaces a continuación:
El LTC2380IDE-24, el El convertidor analógico a digital de registro de aproximación (SAR) sucesivo (ADC) que elegí usar en mi diseño, tiene un promedio de datos integrado que es fácil de implementar. Los resultados de la conversión se guardan en la memoria interna y se combinan con los resultados anteriores hasta que se produce una transacción SPI.
Para promediar dos resultados, alterne el pin CNV a la lógica alta dos veces antes de leer los datos. Para promediar 65,535 resultados, alterne el pin de la CNV 65,535 veces antes de leer los datos.
Los datos que produce el sensor tienen una longitud de 40 bits: 24 bits para la lectura del sensor y 16 bits para indicar cuántas muestras se promediaron (tenga en cuenta que el conteo está indexado a 0, es decir, un valor de 0 indica que se promedió 1 muestra, a el valor de 1 indica que se promediaron 2 muestras, y así sucesivamente). Si observa el archivo de datos adjunto al final de este documento, notará que agregué 16 bits adicionales a los datos para rastrear el número de medición (estos números no se usaron en el análisis).
Transferí los datos desde el PCB como secuencias de ASCII "0" y "1" y los procesé en la computadora con Mathematica. Los primeros 24 bits se convirtieron a notación decimal y se multiplicaron por un factor de escala de $$ frac {15 °} {2 ^ {23}}% 0 $$. Los siguientes 16 bits se convirtieron a un número decimal y aparecen entre paréntesis en el lado izquierdo del pie de página de cada gráfico siguiente como el número de mediciones repetidas. Cada ensayo consistió en 1023 muestras, y cada muestra consistió en n lecturas promedio (1,2,4,8, …, 32768).
Todos los ensayos se realizaron de forma consecutiva en una única ejecución sin una pausa significativa entre las mediciones.
Cada prueba se presenta con el mismo conjunto de gráficos y cálculos. La media y la desviación estándar se calculan para los datos sin procesar y se utilizan para crear una función de densidad de probabilidad. Los datos sin procesar se agrupan en contenedores y también se muestran en un histograma. Un diagrama de dispersión muestra los puntos de datos después del procesamiento a través de un filtro de Promedio Móvil de N-tap (FIR). Finalmente, los triángulos de colores se utilizan para indicar el máximo, la media + la desviación estándar, la media, la media – desviación estándar y los puntos de datos mínimos en tres escalas diferentes (100%, 1%, 0.01%).
Primero echaremos un vistazo a los datos y luego discutiremos la importancia de los resultados.
Como recordará de la clase de estadísticas, la media es el promedio simple de todas las mediciones. La desviación estándar proporciona una indicación de propagación. Para nuestros propósitos, nos gustaría que la desviación estándar sea lo más pequeña posible.
Verá que la media permanece constante durante todo el procesamiento, con cualquier variación fácilmente atribuible al error de redondeo (como se esperaba). La desviación estándar (SD), que indica la dispersión de los datos, disminuye a medida que aumenta el número de tomas FIR. Esto se debe al hecho de que el filtro de promedio móvil está mitigando los efectos de los puntos de datos externos. También muestro la desviación estándar de los datos después de haberlos pasado a través de un filtro de promediado para permitir a los lectores interesados comparar los efectos de promediar dentro del ADC (filtro de promediado digital) con promediar fuera del ADC (filtro de promedio móvil).
La media de este conjunto de datos es de 0.6987 °, sin suavizado ni manipulación de datos, y la desviación estándar es de 0.0025 °. Eso proporciona una desviación estándar que es 3 órdenes de magnitud más baja que la media. El error estándar es aún más pequeño en 0.000078 °. ¿Pero todos estos lugares decimales realmente importan? Eso es una desviación estándar fenomenalmente pequeña. Un rango de desviación estándar de 6 (6σ) es de 0.015 °, lo que me da una probabilidad del 99,9999999% de que un solo valor que leí de mi dispositivo esté dentro de los 0,015 ° del valor real. Es posible que el dispositivo tenga una resolución aún mayor, pero mi configuración experimental o diseño de PCB introduce demasiado ruido.
Ahora – para la siguiente pregunta. ¿Puedo hacerlo mejor? Estadísticamente, puedo recoger más medidas. Sin embargo, si no quiero sentarme y esperar a que el dispositivo recopile miles de puntos de datos y utilice una gran cantidad de memoria y potencia del procesador, ¿cuál sería una configuración de dispositivo aceptable? Para eso, veamos otro experimento, que consiste en los mismos 1023 ensayos de 32768 lecturas promedio. Si almacenara 32768 mediciones de 32 bits dentro del microcontrolador, necesitaría al menos 131 kB de memoria y quién sabe cuántos ciclos de reloj procesa los datos acumulados. Si quiero promediar 32768 mediciones dentro del ADC, simplemente alterno el Pin 32768 veces.
El uso del filtro de promedios digitales dentro del ADC aleja el peso del almacenamiento y el cálculo del microcontrolador, liberándolo para hacer otras cosas.
Aquí, se promedian 32768 pruebas dentro del ADC, lo que proporciona un promedio de 0.701 ° con una desviación estándar de 0.000547 °. Un rango de 6σ es de 0.003 ° y hay un 99.999999% de probabilidad de que una sola medición esté entre 0.688 ° y 0.704 °.
Quizás mi inclinómetro no era tan preciso como quería, pero el hecho es que creé un subsistema que ofrece más precisión de la que nunca necesitaría: puedo medir una inclinación de hasta una centésima de grado y saber que la diferencia entre el valor medido y el valor real es despreciable. En este momento no tengo planes de construir, ajustar o caracterizar nada que necesite más precisión que eso.
¿Tiene algún proyecto o sistema que pueda beneficiarse de un diseño de inclinómetro de alta precisión como este? ¿Hay alguna característica o capacidad que le gustaría ver agregada a este subsistema? Siéntase libre de compartir sus pensamientos en la sección de comentarios a continuación.
Todos los conjuntos de datos se muestran a continuación:
ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'computing,analog,pcb,sensors,engineering-consulting'}); ga('set',{'contentGroup1':'computing,analog,pcb,sensors,engineering-consulting'}); ga('send', 'pageview');
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['computing','analog','pcb','sensors','engineering-consulting'], content_type: 'category'});
_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },
}) }); }
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…