miércoles, 5 de enero de 2011

NXT Ballbot Simulation with Microsoft Excel

Simulation tools are widely used in engineering and are very efficient in designing control systems, enabling us to foresee the features to have our system to solve the design challenge, saving time and cost of prototyping .

In our case, talking about TwoWheels or Ballbot it's important to know what power our engines need to maintain your robot, or conversely, from the power output should know the maximum slope that can scale.

Usually this activity takes place through specific design tools for engineering, such as Matlab or Simulink, but in this case I decided to make the simulation using Microsoft Excel, especially the ease of programming and the opportunity this presents, and that in any computer MSOffice is this tool available.


Needless to say, is a tool MsExcel general purpose computing, where its main strength is the ability to update results in real time, providing instant visual outcome. This is one of the reasons why it is also useful for simulation, allowing us to perform real-time optimization by adjusting the settings manually and have the result immediately.

It is noteworthy that this project does not require programming skills, as the resolution of differential equations can be performed on a spreadsheet directly, by implementing a method RungeKutta 4 th (RK4) order (the same as using Matlab or Simulink surreptitiously), but with the advantage of introducing external signals such as noise or pulse during the resolution of the same, since we have access to one row at a resolution of RK4.



Another utility that I used to MsExcel in this project and would like to highlight is the matrix calculation, which show the representation of the home page, which is expressed in a "state space" problem solving with matrices A, B, C and D.

Other Projects: click here.
I leave to your disposal the algorithm used in this example: Download: NXTBallbotSimulacion.xls.

NXT Ballbot Simulation with Microsoft Excel

Las herramientas de simulación son muy eficientes a la hora de diseñar sistemas en ingeniería, ya que nos permiten preveer las características que debe tener nuestro sistema para resolver el reto de diseño, reduciendo costes y tiempo en la construcción de prototipos.

En nuestro caso, hablando de Ballbot o TwoWheels es importante saber qué potencia necesitan nuestros motores para mantener estable el robot, o al contrario, a partir de la potencia de los mismos saber cuál es el la pendiente máxima que puede escalar.

Habitualmente esta actividad se realiza mediante herramientas específicas de diseño para ingeniería, como Matlab o Simulink, pero en este caso he decidido realizar dicha simulación con Microsoft Excel, especialmente por la facilidad de programación y por la oportunidad que ello presenta ya que en cualquier equipo con MSOffice se encuentra dicha herramienta disponible.


Ni qué decir tiene que MsExcel es una herramienta de cálculo de propósito general, donde su principal fuerte es la capacidad de realizar actualización de resultados en tiempo real, ofreciendo un resultado visual instantáneo. Este es uno de los motivos por los que también resulta útil para la simulación, ya que nos permite realizar "optimización en tiempo real" ajustando los parámetros manualmente y disponer del resultado de inmediato.

Es de destacar que en este proyecto no se necesita tener conocimientos de programación, ya que la resolución de las ecuaciones diferenciales se pueden realizar sobre una hoja de cálculo directamente, implementando un método RungeKutta de 4º (RK4) orden (el mismo que utiliza Matlab o Simulink de forma oculta), pero con la ventaja de poder introducir señales externas como ruido o impulsos durante la resolución de las mismas, ya que tenemos acceso fila a fila a la resolución del RK4.

Otra utilidad que he aprovechado de MsExcel en este proyecto y me gustaría destacar es el cálculo matricial, que muestro en la representación de la página principal, donde se expresa en "Espacio de Estados" la resolución del problema con las matrices A,B,C y D.

Dejo a vuestra disposición el algoritmo utilizado en este ejemplo: Descargar NXTBallbotSimulacion.xls.

Otros proyectos: Pulsar aquí.