Unidad 10 / 11

Automatización de cálculos de ingeniería con Python

Ganancias:

  • Capacidad para automatizar cálculos de ingeniería, gestión de unidades y procesamiento de datos con código Python impulsado por IA
  • Capacidad para validar código de IA con verificación de unidades, pruebas de resultados conocidos y casos extremos
  • Capacidad para adquirir el hábito de producir documentos de cuentas repetibles, rastreables y con versión controlada.

En ingeniería mecánica, el mismo cálculo se realiza una y otra vez: tensiones de una familia de piezas, potencia de bomba para una variedad de puntos de funcionamiento, tablas de propiedades a diferentes temperaturas. Hacer esto manualmente es lento y propenso a errores. Python (un lenguaje de programación fácil de aprender con ricas bibliotecas para ingeniería) automatiza estas iteraciones; Hace que la cuenta sea repetible, rastreable y controlada por versiones. La inteligencia artificial (IA) Python es increíblemente rápida a la hora de generar código: convertir una fórmula en una función, agregar gestión de unidades, leer datos y trazar gráficos. Pero aquí hay un error peligroso: el hecho de que el código funcione sin errores no significa que se calcule correctamente. El código AI puede devolver silenciosamente resultados incorrectos debido a una conversión de unidades incorrecta, una fórmula incorrecta o en casos extremos, y el programa continuará ejecutándose sin errores. Es por eso que cada código de ingeniería producido con IA; Las entradas de prueba con resultados conocidos no son confiables sin verificación mediante verificación de unidades (tamaño) y pruebas de casos extremos. En esta unidad, aprenderá cómo configurar de forma segura la automatización de cuentas de Python con IA.

¿Por qué una cuenta de código? Trazabilidad y Reproducibilidad

Un cálculo manual es único; Cuando una entrada cambia, se hace desde cero y se pierden los pasos intermedios. El cálculo realizado en código es como un documento: las entradas, fórmulas y salidas están claramente escritas; cambia una entrada y obtiene un nuevo resultado en segundos; Con el control de versiones (como git), se puede rastrear "lo que calculé con qué valor y en qué fecha". Esto es invaluable en términos de control y rendición de cuentas. Pero este poder depende de la exactitud del código; Un código incorrecto produce un resultado incorrecto, además de reproducible y rápido.

Consejo: escriba una prueba para cada función de cálculo con un resultado verdadero conocido al lado (afirmar en Python). Por ejemplo, su función de tensión debería dar 28,1 MPa en una muestra conocida. Esta prueba le advierte inmediatamente si rompe algo cuando cambia el código en el futuro. El código de ingeniería que no se prueba es una cuenta no verificada.

Gestión de volúmenes: fuente de error más común

En el código de ingeniería, la mayoría de los errores provienen de unidades: N con kN, m con mm, Pa con MPa, que pueden confundirse con un factor de 1.000 o 1.000.000. Hay dos defensas. La primera es la disciplina: elegir un sistema de una sola unidad desde el principio (por ejemplo, N, mm, MPa) y convertir todas las entradas a él y agregar unidades a los nombres de las variables (longitud_mm, fuerza_N). La segunda es la herramienta: una biblioteca como pinta lleva las unidades dentro del código y detecta la operación inconsistente como un error.

Enfoque

¿Cómo funciona?

ventaja

Nombrar disciplina

como fuerza_N, longitud_mm

Sencillo, sin dependencias

sistema de unidad única

Todo convertido a N-mm-MPa

Simplicidad, rapidez

biblioteca de pinta

Mueve unidad por variable

Detecta automáticamente la inconsistencia

Prueba de resultado conocido

referencia con afirmar

Detecta errores de fórmula/unidad

Precaución: Es posible que falte una conversión de unidad o que sea incorrecta en el código generado por IA y el código seguirá "funcionando". Por ejemplo, si el diámetro es mm y se espera que el área sea m², el resultado se desviará 1.000.000 de veces, pero el programa no dará error. Antes de ejecutar el código, comente las unidades de las entradas y salidas; luego proporcione el resultado con un ejemplo conocido.

Paso a paso: Código de cuenta verificable por IA

  1. Aclarar el problema y el sistema de la unidad. Entradas, salidas, unidades.
  2. Genera la función. Único responsable, interpretativo, unido.
  3. Agregue la prueba de resultados conocidos. Afirmar con ejemplo de referencia.
  4. Pruebe los casos extremos. Entrada cero, negativa, muy grande/pequeña.
  5. Haga una verificación de la unidad. ¿La unidad de producción coincide con lo esperado?
  6. Documento y versión. Supuestos, fuente, fecha; trazabilidad con git.

Prompt que genera funciones y pruebas.

Rol: Desarrollador experimentado de Python que escribe cálculos de ingeniería. Tarea: Escriba una función que calcule el esfuerzo de flexión máximo en una viga en voladizo de sección transversal rectangular. Entrada: F (N), L (mm), b (mm), h (mm). Salida: sigma (MPa).Convención: Sistema de unidades N-mm-MPa; comente la unidad de cada entrada.Regla: use I = b*h^3/12 y sigma = M*c/I; comente los pasos.Regla: Agregue una prueba con RESULTADO CONOCIDO: sigma ~28.1 MPa para F=500,L=300,b=20,h=40; Verifique con afirmar (tolerancia pequeña).

Aviso de estado de borde

Agregue comprobaciones de casos extremos a la función anterior: - Si b, h o L son cero o negativos, proporcione un error significativo (aumente ValueError). - Comente si hay un problema de desbordamiento/precisión con entradas muy grandes/pequeñas. También agregue 3 entradas de prueba diferentes más y escriba el resultado esperado; Explicar los resultados de manera que pueda verificarlos manualmente.

Aviso de seguridad de la unidad (pinta)

Protege la unidad de la misma cuenta con la biblioteca 'pint'. Deje que las entradas se definan en unidades (por ejemplo, 500 * ureg.newton). Convierta la salida a MPa e imprímala. Agregue un pequeño ejemplo que muestre cómo falla la pinta cuando se le da una entrada con la unidad incorrecta.

Mensaje de verificación de código

Critique mi código de cálculo de ingeniería a continuación desde una perspectiva de revisión de código, no esté de acuerdo conmigo. En particular: ¿es correcta la conversión de unidades, es correcta la fórmula, se han considerado los casos extremos (cero, negativo), son las pruebas realmente confirmatorias? Para cada hallazgo, escriba cómo solucionarlo.[código]

Aviso débil / Aviso fuerte

Aviso débil:

Escriba código Python para el cálculo del estrés.

No hay elección de unidades, fórmulas, definiciones de entrada y pruebas; La IA genera código que funciona pero no está verificado y cuya unidad se desconoce.

Potente mensaje:

Escriba la función de tensión de flexión en la viga en voladizo. Entrada F(N), L(mm), b(mm),h(mm); sigma de salida (MPa). Sistema N-mm-MPa, especificar cada unidad en el comentario. Agregue una prueba con resultados conocidos (F=500, L=300, b=20, h=40 → ~28,1 MPa, afirmar). Da un error en la entrada cero/negativa. Interpretar casos extremos.

El segundo mensaje requiere el sistema unitario, la fórmula, las entradas, la prueba y los casos extremos; Hace que el código sea verificable.

Tres minicasos (en números)

Caso 1: error de volumen silencioso. El cálculo del área producido por AI toma el diámetro en mm y da mm² con pi*d**2/4, pero la siguiente línea lo coloca en una fórmula que espera m²; El código funciona sin errores y proporciona un estrés 1.000.000 de veces menor. Cuando el ingeniero ejecuta la prueba con un resultado conocido (afirmar abs(sigma-28.1)<0.5), la prueba explota y se detecta el error. Si no hubiera ninguna prueba, el resultado incorrecto habría entrado desapercibido en el informe. Lección: código de trabajo ≠ código correcto.

Caso 2: Fallo del estado de borde. En el código que se repite para una familia de piezas, el espesor h=0 se ingresa en una línea; Cuando I = b*h**3/12 = 0, sigma = M*c/I da un error de división por cero. Gracias al control if h<=0: rise ValueError agregado por AI, el código se detiene con un mensaje significativo y no produce inf silenciosamente. Lección: manejar los casos extremos de antemano.

Caso 3: Ganancia de repetibilidad. Un ingeniero tardó medio día en calcular manualmente la potencia de la bomba para 40 puntos de funcionamiento diferentes. Escrito en IA, el script lee el CSV, calcula la potencia de cada línea y verifica un punto conocido con afirmar, reduciendo el trabajo a ~2 minutos y escribiendo los resultados en un archivo rastreable. Cuando cambia una entrada, la tabla completa se actualiza cada segundo. Lección: la automatización verificada es rápida y confiable.

Errores comunes

  • Falacia "funcionó = correcto": pensar que el código que funciona sin errores es correcto.
  • No escribir pruebas: confiar en código sin una prueba de referencia con un resultado conocido.
  • Ambigüedad de unidades: dejar las unidades de entrada/salida sin interpretar y omitir la conversión.
  • Ignorar casos extremos: error silencioso o bloqueo en entrada cero/negativa.
  • No documentar la fuente/supuesto: No anotar la fuente y el supuesto de la fórmula utilizada.
  • No versionar: dejar la cuenta como un archivo único sin hacerla rastreable (git).

En resumen

  • Python hace que los cálculos de ingeniería sean repetibles, rastreables y controlados por versiones.
  • La IA es muy rápida a la hora de generar código; Pero el hecho de que el código funcione sin errores no significa que calcule correctamente.
  • Cada código debe validarse mediante pruebas de resultados conocidos, verificación de unidades y casos extremos.
  • Los errores unitarios son la fuente de error más frecuente e insidiosa; Defender por sistema unitario, nomenclatura o pinta.
  • La automatización validada ahorra tiempo y da confianza; El código no verificado es peligroso.

Tarea de aplicación

Elija un cálculo de ingeniería recurrente (como tensión, potencia de la bomba, carga de calor). Escriba una función de Python para la IA que realiza este cálculo; Comente la unidad de cada entrada y salida y agregue una prueba de afirmación con un resultado conocido. Ejecute la prueba y vea si pasa. Luego haga dos verificaciones más: pruebe un caso extremo (entrada cero o negativa) para verificar que el código devuelve un error significativo y proporcione manualmente la unidad de salida en un ejemplo. Si es posible, también haga producir una versión segura para la unidad en pinta. Finalmente, agregue las suposiciones del cálculo, la fuente de la fórmula y la fecha al código como un título breve y escriba por qué este código aún requiere la aprobación del ingeniero.

lista de verificación

  • [] Las unidades de entrada y salida están claramente documentadas en el código; Se eligió el sistema de una sola unidad.
  • [] Se agregó y pasó una prueba (afirmación) con un resultado conocido.
  • [] Se intentó al menos un caso extremo (cero/negativo); El código dio un error significativo.
  • [] La unidad de salida se proporcionó mediante un ejemplo manual (sin asumir "funcionó = correcto").
  • [] Fuente de la fórmula, supuestos y fecha anotados en el código.
  • [ ] Cuenta mantenida rastreable/seguida; La aprobación final quedó en manos del ingeniero.