White paper

Cómo los equipos de ingeniería adoptan el diseño basado en modelos

Independientemente del tamaño de la empresa, el diseño basado en modelos siempre involucra un equipo de ingeniería pequeño, y se adopta para reducir los plazos y costes de desarrollo. Este white paper describe las consideraciones y prácticas recomendadas para que los equipos de ingeniería pequeños logren adoptar esta metodología con éxito.

partición

¿Qué es el diseño basado en modelos?

El diseño basado en modelos ofrece un enfoque matemático y visual para desarrollar sistemas. Se emplea en una amplia variedad de industrias y aplicaciones, tales como aplicaciones de control de trayectorias, procesamiento de señales, equipos industriales, aeroespaciales y automoción. El diseño basado en modelos gira en torno al uso sistemático de modelos a lo largo de todo el proceso de desarrollo, que incluye especificación y validación de requisitos, diseño, simulación, generación automática de código, y verificación y validación.

Diseño basado en modelos

Diseño basado en modelos: uso sistemático de modelos a lo largo de todo el proceso de desarrollo.

El diseño basado en modelos complementa y posibilita las prácticas de desarrollo ágil. Como el desarrollo ágil de software, el diseño basado en modelos permite detectar errores y problemas de diseño en las primeras etapas de un proyecto, dar cabida a cambios en los requisitos, y proporcionar un sistema que satisfaga las necesidades del cliente. Por ejemplo, se pueden realizar iteraciones rápidas conectándose con sistemas de integración continua para probar y verificar modelos y código de manera automática a lo largo de todo el ciclo de desarrollo.

El uso de modelos previamente desarrollados se puede extender a sistemas en funcionamiento, creando gemelos digitales para optimizar el funcionamiento del sistema, supervisar el estado del sistema y proporcionar un mecanismo de feedback al equipo de desarrollo para realizar mejoras continuas. Estas prácticas de DevOps facilitan aplicaciones tales como el mantenimiento predictivo y la detección de fallos en tiempo real.

DevOps

DevOps: conjunto de prácticas para automatizar e integrar procesos entre los equipos de desarrollo (Dev) y operaciones (Ops).

El equipo de ingeniería crea un modelo para especificar el comportamiento de un sistema. El modelo, que consta de diagramas de bloques, otros elementos gráficos y programas textuales, es una especificación ejecutable que permite realizar simulaciones para probar conceptos de diseño alternativos y verificarlos durante todo el proceso de desarrollo.

Algunas de las ventajas de tener un modelo de sistema que actúe como especificación ejecutable son:

  • El diseño se puede probar, ajustar y volver a probar durante todo el proceso de desarrollo.
  • El modelado y la simulación permiten probar muchas ideas rápidamente sin necesidad de desarrollar costosos prototipos.
  • Las pruebas y la validación se realizan en las etapas iniciales y continuamente, en lugar de al final del proceso, de modo que los errores se detectan y corrigen antes de realizar pruebas en hardware.
  • El código se puede generar a partir de los modelos del sistema, lo que reduce el esfuerzo y elimina los errores de codificación manual. Este código se puede emplear para probar simulaciones en tiempo real y realizar despliegues en hardware.
  • Los modelos se pueden adaptar y reutilizar en proyectos posteriores.
partición

Introducción del diseño basado en modelos

Los equipos de desarrollo no pueden permitirse retrasos debido a cambios en la forma en que desarrollan sistemas. A efectos prácticos, esto significa que las nuevas herramientas y los cambios en los procesos se deben introducir con cautela. Probar nuevos enfoques y herramientas de diseño conlleva cierto riesgo. Los equipos de desarrollo que han tenido éxito han mitigado este riesgo introduciendo el diseño basado en modelos gradualmente. Por lo general, comienzan con un solo proyecto, identifican ganancias rápidas que se pueden lograr con el diseño basado en modelos, y comparan con sus prácticas actuales.

Para que la introducción del diseño basado en modelos tenga éxito, se deben dar pasos graduales que ayuden al avance del proyecto, sin ralentizarlo, tales como:

  1. Experimentar con una pequeña parte del proyecto.
  2. Aprovechar modelos anteriores exitosos.
  3. Utilizar modelos para resolver problemas de diseño específicos.
  4. Ceñirse a los conceptos básicos.
  5. Aprovechar la experiencia del personal experto de MathWorks.

Experimentar con una pequeña parte del proyecto

Un enfoque que se recomienda es tomar una nueva área del sistema, crear un modelo del comportamiento del software y generar código a partir de él. Es un cambio pequeño, que puede hacer un integrante del equipo con una inversión en aprendizaje mínima. Esto demostrará que:

  • Se puede simular un modelo para corregir errores en algoritmos de manera más simple y con más información que haciendo pruebas dinámicas de código C en un equipo de escritorio.
  • Se puede crear código de alta calidad sin necesidad de codificación manual.
  • El código coincide con el comportamiento del modelo.

“Con el diseño basado en modelos, dedicamos más tiempo a desarrollar y optimizar el sistema, e invertimos menos tiempo en implementarlo en C o en depurar el código. No hay diferencias de rendimiento entre el modelo de Simulink que se ejecuta en un equipo portátil y el código de producción”.

Aprovechar modelos anteriores exitosos

Otra actividad valiosa de adoptar el diseño basado en modelos es la simulación en el nivel de sistema. Por lo general, una vez que se ha comprobado que un segmento de código funciona bien, se lo incorpora al resto de la aplicación para detectar problemas de integración entre hardware y software. (Son los mismos problemas que se detectarían si se escribiera todo el código manualmente).

En cambio, la simulación en el nivel de sistema permite efectuar la integración del sistema de manera virtual. Para ello, se debe crear un modelo adecuado del hardware en el sistema y los elementos básicos del entorno de dicho sistema. La fidelidad del modelo debe ser lo bastante alta como para garantizar que las señales de conexión tengan las unidades correctas y estén conectadas a los canales correctos, y que se capture el nivel correcto de comportamiento dinámico para probar el algoritmo.

Los resultados ofrecen una visión preliminar del comportamiento del hardware y el software integrado. Esto resulta especialmente valioso si el hardware está en desarrollo y aún no existe, o si es costoso realizar prototipado.

“Normalmente, es necesario hacer modificaciones sustanciales en el prototipo durante el desarrollo. Para este proyecto, el rendimiento del hardware real coincidió con los resultados de la simulación de nuestro modelo de Simulink del sistema maglev, de manera que no tuvimos que modificar nuestro sistema de prueba. Eliminar varios prototipos ahorra tiempo, y cuando el prototipo cuesta entre 20.000 y 30.000 dólares, como era el caso en este proyecto, eso disminuye los costes notablemente”.

Utilizar modelos para resolver problemas de diseño específicos

Los modelos de planta, el entorno y el algoritmo no tienen que ser a gran escala para obtener ciertos beneficios. Por ejemplo, supongamos que debe decidir qué parámetros se requieren para un solenoide utilizado en un accionamiento. Puede desarrollar un modelo sencillo que represente un “volumen de control” conceptual alrededor del solenoide, incluyendo qué lo impulsa y sobre qué actúa. Puede probar diversas condiciones de funcionamiento extremas y deducir los parámetros básicos sin necesidad de formular las ecuaciones. A través de la simulación, el equipo de ingeniería desarrolla las fuerzas necesarias y luego las incorpora en forma de retroalimentación a la actividad de diseño del hardware. Luego, se puede almacenar este modelo y utilizarlo posteriormente para solucionar otros problemas de diseño o emplearlo en el proyecto de desarrollo del siguiente producto.

“Las simulaciones que ejecutamos con Simulink y Simscape nos permiten evaluar diversos conceptos de diseño y valores de parámetros, lo que reduce el riesgo de tener que reelaborar el diseño en etapas posteriores del ciclo de desarrollo. Una vez que identificamos un diseño óptimo a través de la simulación, podemos desarrollarlo. Como resultado, prevemos una reducción en la creación de prototipos de un 30%-50%”.

Ceñirse a los conceptos básicos

Para los equipos de desarrollo pequeños, las ventajas inmediatas del diseño basado en modelos incluyen la capacidad de:

  • Crear modelos de componentes y sistemas
  • Utilizar simulaciones para validar y probar diseños en las etapas iniciales y continuamente durante todo el desarrollo
  • Generar código C automáticamente para realizar prototipado y pruebas

Posteriormente, los equipos pueden considerar el uso de herramientas y prácticas avanzadas, como directrices de modelado, vinculación con requisitos, comprobación de conformidad, y generación de código de producción.

Además, pueden adoptar y cumplir con prácticas de desarrollo ágil conectándose con sistemas de integración continua para probar y verificar modelos y código automáticamente. También pueden extender el uso de modelos del sistema a sistemas en funcionamiento, para permitir aplicaciones como el mantenimiento predictivo y los gemelos digitales.

No obstante, en el caso de equipos de desarrollo pequeños, estas cuestiones se pueden abordar más adelante.

“Un pequeño equipo de ingeniería armó un vehículo autónomo con hardware comercial y algoritmos de control desarrollados e implementados con diseño basado en modelos. Aunque el sistema no está listo para producción, sirve como demostración de conceptos de diseño importantes con un enfoque de diseño pragmático”.

Aprovechar la experiencia del personal experto de MathWorks

El equipo de ingeniería de MathWorks ha trabajado en estrecha colaboración con grupos de trabajo globales de todos los tamaños. Sus integrantes cuentan con años de experiencia ayudando a equipos pequeños a aplicar el diseño basado en modelos para lograr un objetivo final. La estrecha colaboración con MathWorks puede ser un buen primer paso para un equipo pequeño interesado en adoptar el diseño basado en modelos que necesita ponerse al día rápidamente.

“MathWorks Consulting Services nos ayudó a modelar nuestra cadena de procesamiento de señales e imágenes en Simulink, ejecutar simulaciones para verificar que producía imágenes de calidad e implementar el diseño en FPGA; todo mientras se aseguraban de que estábamos adquiriendo los conocimientos para hacerlo sin ayuda la próxima vez”.

partición

Éxito con el diseño basado en modelos

Adoptar gradualmente el diseño basado en modelos ha permitido que pequeños equipos de ingeniería de organizaciones de todos los tamaños obtengan sistemáticamente estos resultados inmediatos y tangibles:

  • Mayor rapidez para realizar la primera demostración
  • Menor plazo de comercialización de un producto de alta calidad
  • Mayor capacidad para desarrollar sistemas complejos

Los equipos pequeños dependen de los esfuerzos de sus integrantes, que dedican muchas horas, muestran gran dedicación y avanzan rápidamente. Con un enfoque gradual, estos equipos pueden adoptar el diseño basado en modelos de manera fluida, y desempeñarse con unos niveles de velocidad, competencia y calidad de diseño aún mayores.