Full text
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión Equation Chapter 1 Section 1 i Trabajo Fin de Grado en Ingeniería de las Tecnologías Industriales Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión Autor: Pablo Sánchez-Ros Domínguez Tutora: Aida Estévez Urra Dpto. Ingeniería mecánica y fabricación Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2025
Trabajo Fin de Grado en Ingeniería de las Tecnologías Industriales Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión Autor: Pablo Sánchez-Ros Domínguez Tutora: Aida Estévez Urra Profesora Permanente Laboral Dpto. de Ingeniería mecánica y fabricación Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2025
Agradecimientos Quiero expresar mi más sincero agradecimiento a todas las personas que me han acompañado durante todos estos años haciendo la carrera. En primer lugar, agradezco a mi tutora, Aida Estévez, por darme la oportunidad de realizar este trabajo junto a ella. Su implicación ha sido fundamental para que este trabajo saliera adelante, a pesar de haberlo llevado a cabo en la distancia. A todos mis amigos, por los momentos compartidos, por las risas, el apoyo mutuo y por hacer de esta etapa una experiencia inolvidable. En especial, a Miguel y Gonzalo, mis verdaderos compañeros de sufrimiento y gloria, por estar siempre ahí en cada caída y en cada victoria. A mi familia, por su confianza, su ánimo incondicional y por estar siempre a mi lado. Especialmente a mi madre, que después de tantos años ya puede decir con orgullo que tiene un hijo ingeniero. En memoria de mi abuelo Joaquín Sánchez Ros, ingeniero de ICAI, por seguir contribuyendo a la formación de nuevas generaciones de ingenieros. A mi primo Javi, ingeniero como mi abuelo, por siempre saber marcarme el camino y por ser un referente en mi vida. Ojalá algún día pueda parecerme a él. A mi padre, Pablo, por su apoyo desde el primer suspenso, porque siempre creyó en mí y en que iba a conseguirlo. Nada le hace más feliz que ver que su hijo sigue los pasos de su padre y se convierte en ingeniero. Y, por supuesto, gracias a todos aquellos que, de una forma u otra, han contribuido a que esta etapa llegue a su fin.
Resumen Este Trabajo de Fin de Grado tiene como objetivo principal el cálculo, análisis y predicción de la rugosidad superficial en procesos de mecanizado, centrándose específicamente en las operaciones de torneado y fresado. La rugosidad superficial es un parámetro fundamental en la caracterización de la calidad final de las superficies mecanizadas, ya que afecta directamente al rendimiento funcional de las piezas, su vida útil, su comportamiento frente al desgaste y la fricción. Para abordar este estudio, se ha hecho uso de técnicas avanzadas de inteligencia artificial, con el fin de desarrollar un modelo predictivo capaz de estimar con precisión el valor de la rugosidad superficial a partir de diversos parámetros de corte. Entre las variables consideradas se incluyen la velocidad de corte, el avance y la profundidad de corte, factores que influyen significativamente en el acabado superficial obtenido tras el proceso de mecanizado. El enfoque predictivo basado en IA representa una alternativa eficiente y flexible frente a los métodos tradicionales de evaluación, que requieren ensayos físicos costosos y tiempo de máquina. El estudio se ha estructurado en dos grandes bloques experimentales, correspondientes a los procesos de torneado y fresado. En cada uno de ellos se ha trabajado con cuatro materiales distintos, lo que ha permitido analizar cómo influye la naturaleza del material sobre los resultados de rugosidad. Esta comparativa ha sido clave para determinar la capacidad de generalización del modelo y su utilidad práctica en contextos reales de fabricación. Los datos obtenidos a partir de los ensayos experimentales han servido tanto para entrenar el modelo como para validar su precisión. Las predicciones generadas se han contrastado con los valores reales de rugosidad medidos en laboratorio mediante instrumentos de medición especializados, lo que ha permitido cuantificar el grado de exactitud alcanzado por el modelo. Los resultados obtenidos han demostrado que el uso de inteligencia artificial en este contexto no solo permite predecir la rugosidad con una notable fiabilidad, sino que además contribuye a optimizar los procesos de mecanizado mediante la anticipación de resultados y la toma de decisiones basada en datos. En definitiva, este trabajo muestra el potencial de aplicar tecnologías emergentes como la inteligencia artificial en entornos industriales tradicionales, favoreciendo una producción más eficiente, controlada y orientada a la calidad.
Abstract This Final Degree Project focuses on the calculation, analysis, and prediction of surface roughness in machining processes, specifically in turning and milling operations. Surface roughness is a key parameter for evaluating the final quality of machined parts, as it directly affects their functional performance, durability, and resistance to wear and friction. To carry out this study, advanced artificial intelligence (AI) techniques have been used to develop a predictive model capable of accurately estimating surface roughness values based on various cutting parameters. These include cutting speed, feed rate, and depth of cut all of which significantly influence the surface finish achieved during machining. The AI-based predictive approach offers a more efficient and flexible alternative to traditional evaluation methods, which usually require costly physical tests and machine time. The study is divided into two main experimental sections: one for turning and one for milling. In each section, four different materials have been tested, allowing the influence of the material type on the surface quality to be analyzed. This comparison has been essential for evaluating the model’s ability to generalize and for assessing its practical usefulness in real manufacturing environments. The data obtained from the experiments have been used both to train and validate the model. The predictions made by the AI system have been compared with real surface roughness measurements taken in the lab using specialized equipment. This has allowed the model’s accuracy to be quantified. The results show that AI can reliably predict surface roughness and can help optimize machining processes by anticipating outcomes and supporting data-driven decision-making. In conclusion, this project highlights the potential of using emerging technologies like artificial intelligence in traditional industrial settings, promoting more efficient, controlled, and quality-oriented production.
Figura 32. Regresión lineal entre la rugosidad experimental y la estimada en Python del 52 aluminio A96351. Figura 33. Error cuadrático en el aluminio A96351. 53 Figura 34. Comparación de rugosidades del aluminio A92017. 56 Figura 35. Regresión lineal entre la rugosidad experimental y la estimada en Python del 57 aluminio A92017. Figura 36. Error cuadrático en el aluminio A92017. 58 Figura 37. Comparación de rugosidades del Ti-6Al-4V. 60 Figura 38. Regresión lineal entre la rugosidad experimental y la estimada en Python del 61 aluminio A92017. Figura 39. Error cuadrático en el aluminio A92017. 61
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 1 1. Introducción. 1.1. Antecedentes. La rugosidad superficial es una propiedad clave en la industria manufacturera, ya que describe las imperfecciones en la superficie de un material. Estas imperfecciones se generan durante los procesos de mecanizado, como el torneado, fresado y rectificado. La rugosidad se compone de dos texturas: la textura primaria (rugosidad), compuesta por los surcos generados durante el proceso de mecanizado, y la textura secundaria (ondulación), que incluye irregularidades de mayor longitud de onda causadas por factores como las tensiones residuales o vibraciones de la máquina [1], [2]. Desde los años 60, investigaciones como las de Sata y Dickinson han explorado cómo los parámetros de mecanizado, como el avance de la herramienta, el radio de punta y el ángulo del filo de corte, influyen en la rugosidad superficial. Estos trabajos introdujeron el concepto de "rugosidad ideal," entendida como el nivel mínimo de rugosidad alcanzable en una operación de torneado [3]. Boothroyd y Knight desarrollaron una relación entre estos parámetros y la rugosidad ideal, que ha sido ampliamente utilizada para estimar el acabado superficial esperado [4]. Boothroyd y Knight realizan contribuciones importantes al estudio del mecanizado de metales y las herramientas de máquina. Sus investigaciones destacan descubrimientos clave que han influido significativamente en este campo como la optimización de los procesos de mecanizado, el impacto de las vibraciones en el mecanizado, la economía en la elección de parámetros o la automatización y diseño para la manufacturabilidad [4]. Con el avance de las tecnologías, el MACHINE LEARNING ha ganado relevancia como una herramienta para predecir y optimizar la rugosidad superficial en los procesos de mecanizado. El MACHINE LEARNING es una rama de la inteligencia artificial que permite que las máquinas aprendan y mejoren su rendimiento a partir de datos, sin necesidad de ser programadas explícitamente para cada tarea específica. La aplicación de esta tecnología a la rugosidad superficial se ha convertido en una herramienta para predecir y optimizar los resultados en procesos de mecanizado. Este proceso facilita el análisis de grandes volúmenes de datos en tiempo real, lo que permite tomar decisiones automatizada y precisas que optimizan la eficiencia de los procesos industriales. Uno de los principales objetivos es la optimización de procesos de producción, ya que se utiliza para ajustar parámetros de producción, como la velocidad de corte, profundidad de corte o el avance, con el fin de lograr un mejor acabado superficial. También cabe destacar el mantenimiento predictivo, esto consiste en la identificación y la prevención de fallos en las máquinas o herramientas antes de que ocurran. Los errores geométricos, como el retroceso en los centros de mecanizado, surgen por la holgura entre componentes mecánicos, lo que genera movimientos imprecisos. Estos errores aumentan con el desgaste de los componentes y afectan la precisión y calidad del producto. La detección temprana y la predicción son esenciales para mantener la fiabilidad y eficiencia del proceso de mecanizado. Con la llegada de la Industria 4.0 y el uso creciente de BIG DATA, el análisis de datos se ha vuelto esencial en la fabricación. Los sensores inteligentes en los centros de mecanizado recogen datos de variables como temperatura, velocidad de corte y condiciones de la máquina, o que permite un seguimiento en tiempo real de las condiciones del sistema. Este análisis no solo facilita la identificación de patrones y la relación entre los parámetros de corte y los errores geométricos, sino que también utiliza técnicas de BIG DATA para procesar grandes cantidades de datos y mejorar la eficiencia de los procesos.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 2 El MACHINE LEARNING, especialmente las Redes Neuronales Profundas (DBN), son herramientas efectivas para analizar datos y predecir comportamientos complejos. A diferencia de los métodos tradicionales, que requieren una ingeniería manual, los modelos de DEEP LEARNING permiten que el sistema identifique automáticamente patrones y relaciones complejas mediante múltiples capas de procesamiento. Este método es especialmente útil para abordar la complejidad del mecanizado, donde las relaciones entre los parámetros de corte y otros factores sean complicadas. Las Redes Neuronales Profundas (DBN) se construyen apilando Máquinas de Boltzmann Restringidas (RBM). Las RBM analizan cómo se relacionan las variables del sistema, como los parámetros de corte, y tienen la capacidad de anticipar errores. Esta habilidad de predecir errores futuros permite un mantenimiento predictivo más efectivo, reduciendo intervenciones costosas y optimizando la disponibilidad de las máquinas al evitar fallos antes de que ocurran. En resumen, el análisis de datos en los procesos de mecanizado, respaldado por tecnologías como BIG DATA, MACHINE LEARNING y DEEP LEARNING, ha transformado la gestión de los centros de mecanizado. Las Redes Neuronales Profundas (DBN) permiten predecir y modelar errores geométricos con gran precisión, mejorando la fiabilidad y calidad del mecanizado. Al combinar estos enfoques con mantenimiento predictivo, optimización de parámetros de corte y ajustes automáticos, las empresas logran una producción más eficiente, reducen costos y mejoran la calidad del producto final [5], [6], [7]. 1.2. Objetivos. Este trabajo tiene como objetivo analizar la relación entre los parámetros de corte y la rugosidad superficial en los procesos de mecanizado, desarrollando modelos predictivos con el fin de identificar los parámetros que influyen significativamente en el resultado final. Se evaluará específicamente cómo la velocidad de corte y el avance afectan la rugosidad superficial, manteniendo constante la profundidad de corte. El análisis incluirá la relación de estos parámetros con el acabado superficial y el material que se mecaniza, dado que se trabajará con cuatro materiales diferentes. Este enfoque permitirá obtener una visión más completa de cómo los distintos materiales responden a los parámetros de corte y cómo estos afectan la calidad de la superficie mecanizada. Para realizar este estudio, se utilizarán los datos experimentales del trabajo de Eugenia Clemente Rodrigálvarez en un ensayo de torneado [4], [8], [9]. Estos datos servirán como base para desarrollar modelos predictivos que estimen la rugosidad superficial en condiciones específicas de torneado. Además, se utilizarán los datos proporcionados por la Universidad Politécnica de Cataluña (UPC) para llevar a cabo un ensayo de fresado. Estos datos han sido facilitados por la tutora del trabajo de fin de grado, quien proporcionó la información necesaria para llevar a cabo este análisis. Los datos de la UPC permitirán comparar los resultados de ambos procesos, analizando cómo los parámetros de corte afectan la rugosidad superficial en el fresado. A partir de estos conjuntos de datos, se desarrollarán modelos predictivos basados en técnicas de análisis de datos, como MACHINE LEARNING, para estimar la rugosidad superficial de las piezas mecanizadas, tanto en procesos de torneado como fresado. Estos modelos tendrán en cuenta las características específicas de los parámetros de corte en cada proceso y los materiales utilizados, lo que permitirá obtener estimaciones más precisas y confiables. El objetivo final es proporcionar una herramienta predictiva que facilite la optimización de los parámetros de corte, mejorando la calidad del mecanizado y reduciendo el margen de error en las estimaciones de rugosidad.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 3 1.3. Tareas a desarrollar. Las tareas del proyecto han sido definidas en función de los parámetros que influyen en la rugosidad superficial. La elección de los parámetros de corte para el torneado ha sido determinada conforme a la norma UNE 16148:1985, que establece los ensayos de duración de herramientas en torno de corte único. Para el fresado, se utilizarán los datos proporcionados por la Universidad Politécnica de Cataluña (UPC). Para cumplir con los objetivos establecidos, se construirá un modelo de regresión lineal que permita predecir la rugosidad superficial a partir de los parámetros de corte. Este modelo matemático se desarrollará utilizando el software Python. La regresión lineal es una técnica sencilla y eficaz para este tipo de modelado, ya que permite establecer una relación entre las variables conocidas y la rugosidad superficial. Se implementarán diferentes modelos predictivos en Python debido a que se mecanizarán piezas de distintos materiales: acero al carbono 210HB, acero al carbono 231HB, acero inoxidable y hierro fundido. El análisis se basará en los datos obtenidos de los ensayos previos de fresado y torneado, en los cuales se variaron la velocidad de corte y el avance, manteniendo constante la profundidad de corte. Utilizando estos datos, se calculará la rugosidad superficial de las piezas mecanizadas para diversas combinaciones de parámetros de corte, manteniendo constante el material. Una vez calculados los valores de rugosidad superficial para cada conjunto de parámetros, se procederá a comparar estos resultados con los valores teóricos de rugosidad, utilizando métricas de error como el error cuadrático medio (MSE). Este análisis permitirá evaluar la precisión de los modelos predictivos y comprender mejor las relaciones entre los parámetros de corte y la rugosidad superficial. Además, el uso de métricas de error facilitará la identificación de posibles discrepancias entre los resultados experimentales y teóricos, con el fin de realizar un análisis más profundo de los resultados obtenidos a partir de los datos recopilados.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 5 2. Rugosidad superficial. 2.1. Definición y parámetros. La rugosidad superficial es la diferencia que existe entre la superficie ideal y la superficie real. Entre estas superficies existen picos que pueden formar un patrón o una textura concreta. Las superficies reales, por más perfectas que sean, presentan particularidades que son una marca del método empleado para su obtención, por ejemplo: torneado, fresado, rectificado o bruñido. Las superficies mecanizadas con distintos métodos se presentan con un conjunto de irregularidades, espaciado regular o irregular, y que tienden a formar un patrón o textura característica en su extensión o longitud. Antes de describir los parámetros de rugosidad, es importante entender dos conceptos fundamentales: la línea media y la longitud básica (Figura 1), que son la base para realizar las mediciones y cálculos de rugosidad superficial [10]. • Línea media: Es una línea imaginaria que divide la superficie en dos partes iguales. En ella, los picos (partes más altas) y los valles (partes más bajas) tienen áreas equilibradas. Esta línea se usa como punto de referencia para medir las desviaciones de la superficie y calcular valores como Ra y Rq. • Longitud básica: Es la parte de la superficie que se analiza para medir la rugosidad. Debe representar bien la textura de la superficie, ya que, si es demasiado corta, no mostrará suficientes detalles. Figura 1. Perfil de rugosidad y parámetros de análisis. Con estos conceptos explicados, los parámetros de rugosidad se utilizan para medir y describir la textura de una superficie. A continuación, se detallan los más importantes: • Ra: Rugosidad: Es el parámetro más común, calcula el promedio absoluto de las desviaciones de los picos y valles con respecto a la línea media de la superficie analizada. Dicho de otra forma, mide cuánto se alejan, en promedio, los puntos de la superficie de esa línea. Matemáticamente, se representa como la ecuación (1): 𝑅𝑎= 1 𝐿 ∫| 𝑦(𝑥) | 𝑑𝑥 𝐿 0 (1) Donde: y(x): Son las desviaciones con respecto a la línea media. L(x): Es la longitud básica utilizada para la evaluación. La norma DIN 4769 clasifica los distintos valores de Ra en micrómetros en diferentes clases de rugosidad, como se detalla en la tabla 1.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 6 Tabla 1. Clasificación en grados de la rugosidad. Ra (μm) Nº de grado de rugosidad 50 N12 25 N11 12,5 N10 6,3 N9 3,2 N8 1,6 N7 0,8 N6 0,4 N5 0,2 N4 0,1 N3 0,05 N2 0,025 N1 • Rmáx : Rugosidad máxima: Calcula la diferencia entre el punto más alto y el más bajo de la superficie dentro de una longitud básica. A diferencia de Ra, se centra en las irregularidades más grandes de la superficie. • Rt : Altura total de rugosidad: Es similar a Rmáx, pero evalúa la distancia entre el pico más alto y el valle más bajo a lo largo de la longitud básica. Es útil para obtener una perspectiva general de las irregularidades más notables en la superficie. • Rq : Rugosidad cuadrática media: Este parámetro también toma la línea media como referencia, pero en vez de calcular el promedio de las desviaciones, usa la raíz cuadrada del promedio de esas desviaciones al cuadrado. Matemáticamente es expresa como la ecuación (2): 𝑅𝑎=√1 𝐿 ∫𝑦2(𝑥) 𝑑𝑥 𝐿 0 (2) 2.2. Medición del acabado superficial. La capacidad de medir la rugosidad de forma precisa garantiza que las piezas fabricadas cumplan con los requisitos técnicos y funcionen correctamente. Existen dos formas principales de medir la rugosidad superficial: los métodos de contacto y los métodos sin contacto. Cada uno tiene sus ventajas y desventajas según el tipo de superficie que se mida, el nivel de precisión necesario y las condiciones del proceso. • Métodos de contacto: Los métodos de contacto son una técnica tradicional para medir la rugosidad superficial. Utilizan un rugosímetro que recorre la superficie con un palpador, generalmente de diamante, detectando las desviaciones y generando un perfil de la textura. Este método ofrece alta precisión y permite medir parámetros como Ra, Rmáx y Rt. Además, es más económico en comparación con métodos sin contacto, como los ópticos o basados en láser. Sin embargo, presenta limitaciones, ya que puede dañar superficies delicadas y requiere que estén limpias para evitar errores en la medición. También, no es ideal para superficies grandes o con geometrías complejas, dado que el palpador puede tener dificultades para seguir contornos muy irregulares [4, 11].
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 7 • Métodos sin contacto: Los métodos sin contacto utilizan tecnologías como la óptica y el láser para medir la rugosidad sin necesidad de tocar la superficie, lo que los hace ideales para materiales delicados o con formas complejas. La interferometría óptica emplea ondas de luz para crear un mapa detallado de la superficie con una precisión muy alta. Este método no daña la superficie y es adecuado para acabados complejos, aunque su alto costo y su sensibilidad a factores externos como la luz o el polvo son desventajas importantes. Por otro lado, el escaneo láser utiliza un rayo que recorre la superficie y mide las desviaciones mediante la reflexión del haz [4, 12, 13]. La medición de la rugosidad superficial sigue reglas que aseguran que los métodos y resultados sean uniformes. Entre las más importantes están: ISO 21920-2:2021: "Geometrical product specifications (GPS) — Surface texture: Profile — Part 2: Terms, definitions and surface texture parameters". Explica cómo medir la rugosidad usando perfiles y define los términos y parámetros básicos [14]. ISO 1302:2002: "Geometrical Product Specifications (GPS) — Indication of surface texture in technical product documentation". Indica cómo mostrar la textura de una superficie en los dibujos técnicos [15]. 2.3. Rugosidad superficial en procesos de mecanizado. La rugosidad superficial está formada por pequeñas irregularidades que ocurren como resultado del contacto entre la herramienta de corte y el material. Estas irregularidades, que se pueden identificar como picos y valles, tienen un impacto importante en las propiedades de las piezas, como su resistencia al desgaste, la fricción, la adherencia y su aspecto final. Está influenciada por factores como la velocidad de corte, el avance y la profundidad de corte. Estos parámetros trabajan junto a otras variables del proceso para determinar el acabado final de la superficie. Es fundamental ajustar adecuadamente estos parámetros para asegurar un mecanizado de calidad y prevenir problemas como las marcas o vibraciones que puedan afectar a la funcionalidad de las piezas [16]. 2.3.1. Velocidad de corte (Vc) La velocidad de corte se refiere a qué tan rápido la herramienta corta el material, y tiene una gran influencia en la rugosidad superficial debido a su efecto directo sobre el contacto entre la herramienta y el material. Una velocidad alta ayuda a reducir las fuerzas de corte y a minimizar las marcas en la superficie, pero si es demasiado alta, puede provocar sobrecalentamiento, desgaste rápido de la herramienta y un acabado de menor calidad. Por otro lado, una velocidad baja puede aumentar la rugosidad porque permite que las vibraciones y la fricción actúen durante más tiempo, dejando marcas más visibles en la superficie [2,3]. La ecuación (3) representa como se va a calcular la velocidad de corte: 𝑉𝑐= П ∙𝐷∙𝑁 (3) En la Figura 2 se muestra una relación experimental que permite estimar la rugosidad superficial real a partir de la rugosidad ideal, considerando la influencia de la velocidad de corte en distintos materiales, como metales dúctiles, hierro fundido y aleaciones de fácil mecanizado.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 8 Figura 2. Relación entre rugosidad real y rugosidad ideal para distintas clases de materiales según la velocidad de corte. Del gráfico se deduce que los metales dúctiles experimentan mayores variaciones en la rugosidad cuando se mecanizan a bajas velocidades de corte, lo que implica una diferencia significativa entre la rugosidad ideal y la real. En contraste, las aleaciones de fácil mecanizado logran una rugosidad final muy cercana a la ideal. 2.3.2. Avance (f) El avance determina cuánto se desplaza la herramienta por revolución y es un factor clave en la rugosidad superficial, ya que influye en la separación entre las huellas que deja en la superficie mecanizada. Un avance alto genera huellas más profundas y visibles, resultando en un acabado rugoso debido a la mayor pronunciación de las crestas formadas por el corte. En cambio, un avance bajo suaviza la superficie y reduce la rugosidad, aunque puede prolongar el tiempo de mecanizado, aumentando costos y desgaste de la herramienta. Cuanto mayor es el avance, peor es el acabado, ya que la herramienta se desplaza más rápido y deja marcas más grandes. Este efecto se ilustra en la Figura 2, donde un avance menor produce una superficie más lisa. Figura 3. Efecto del avance en la determinación del acabado superficial. La relación entre el avance y la rugosidad se puede representar matemáticamente para entender cómo influye en el acabado superficial. Boothroyd y Knight plantearon que el avance (f) y el radio de la herramienta (r) afectan la rugosidad promedio (Ra) de acuerdo con la ecuación (4): 𝑅𝑎= 𝑓2 32 𝑟 (4)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 9 La ecuación (4) se usará para el torneado, y para el fresado se calculará como en la ecuación (5): 𝑅𝑎= 0,0642 𝐷 (𝑓𝑟 𝑁)2 (5) Donde 𝑓 r es igual al avance por diente (mm/diente) multiplicado por el número de dientes de la herramienta y N se refiere a la velocidad de giro, que la podemos calcular de la ecuación de la velocidad de corte (3). 2.3.3 Profundidad de corte La profundidad de corte indica cuánto material se remueve en cada pasada de la herramienta. Incrementarla aumenta las fuerzas de corte, lo que puede generar vibraciones, mayor rugosidad y pérdida de precisión en la pieza. Además, profundidades excesivas aceleran el desgaste de la herramienta, afectando su durabilidad y el acabado. Por otro lado, profundidades reducidas mejoran la estabilidad y el acabado superficial, pero alargan el tiempo de mecanizado, incrementando los costos. Es crucial equilibrar este parámetro según las propiedades del material y los requisitos de la pieza. En materiales duros, profundidades grandes pueden causar imperfecciones, mientras que, en materiales blandos, profundidades pequeñas mantienen la calidad sin afectar la estabilidad. La profundidad de corte debe combinarse adecuadamente con velocidad y avance para garantizar uniformidad.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 16 Gracias a estas capacidades, el Machine Learning permite predecir la rugosidad superficial de una pieza a partir de los parámetros de corte, y como consecuencia de ello el sistema puede ajustar dichos parámetros en tiempo real para obtener el mejor acabado posible. Esto mejora el acabado de las piezas, reduce la necesidad de correcciones durante o después de la producción y el proceso se vuelve más eficiente, ya que minimiza los errores [26]. 3.3. Pasos para construir un modelo de Machine Learning. El desarrollo de un modelo de Machine Learning no se restringe simplemente al uso de un algoritmo o una biblioteca; es un proceso que generalmente requiere seguir al menos seis pasos, como se muestra en la figura 9 [27, 28]. Figura 9. Proceso de construcción de un modelo de Machine Learning. Fuente: Recraft. 1. Colección de datos: Los datos se pueden recolectar de fuentes como sitios web, APIs o base de datos. Este paso es uno de los más complicados y requiere un tiempo considerable. 2. Preprocesamiento de los datos: Una vez que se tienen los datos, se debe asegurar que todos tengan un formato correcto para que el algoritmo los pueda procesar. 3. Exploración de datos: Se realiza un análisis para corregir los datos faltantes o identificar patrones que puedan ayudar a construir el modelo. 4. Se entrena el algoritmo: El algoritmo se alimentan con los datos que se procesaron en las etapas anteriores. La idea es que los algoritmos pueden extraer información útil de los datos iniciales y luego hacer predicciones. 5. Evaluación de los algoritmos: Se realizan pruebas para comprobar cómo está funcionando el algoritmo. 6. Uso del modelo: Si finalmente las predicciones que genera son correctas, se llevará a cabo el uso del modelo
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 17 3.4. Técnicas de Machine Learning aplicadas en fabricación. Los problemas que resuelve el aprendizaje automático pueden organizarse en distintas categorías, dependiendo de la técnica utilizada para solucionarlos. A continuación, se analizarán las distintas técnicas dentro del aprendizaje automático, así como su clasificación. 3.4.1 Aprendizaje supervisado. El aprendizaje supervisado es una técnica importante dentro del Machine Learning, se caracteriza por su capacidad para aprender datos etiquetados. Se utilizan conjuntos de datos donde tanto las entradas como los resultados esperados ya son conocidos, lo que permite entrenar algoritmos que pueden predecir resultados con precisión, en este caso la rugosidad superficial. El proceso de aprendizaje en Machine Learning supervisado funciona mediante repeticiones entre el modelo y el operador humano, el modelo hace predicciones basadas en los datos de entrada (parámetros de corte), y esas predicciones se comparan con los resultados reales. En el caso de que haya alguna diferencia, el algoritmo ajusta sus parámetros internos para mejorar su rendimiento. Esto es útil para automatizar tareas de clasificación y predicción que serían complejas de realizar manualmente, en la industria esta técnica ayuda a mejorar la eficiencia y reducir errores humanos [26, 27, 28]. Hay una gran cantidad de algoritmos que se pueden utilizar en el aprendizaje supervisado, pero los más comunes son: • Regresión lineal: Es uno de los algoritmos más simples, se utiliza para predecir valores continuos. Es el algoritmo que se utilizará para realizar este proyecto, ya que busca una relación lineal entre las variables de entrada y de salida. • Árboles de decisión: Este algoritmo crea un “árbol” de decisiones donde cada nodo representa una pregunta sobre los datos y las ramas muestran las posibles respuestas. • Máquina de vectores de soporte (SVM): SVM busca un hiperplano que separe los datos en diferentes clases. Se utiliza en problemas de clasificación como la separación de piezas defectuosas y no defectuosas. • Redes neuronales: Las redes neuronales son efectivas para aprender patrones complejos y realizar tareas de clasificación y regresión con grandes cantidades de datos. • K-Vecinos más cercanos (KNN): Este algoritmo clasifica un dato nuevo según las clases de sus K vecinos más cercanos en el conjunto de datos. 3.4.2. Aprendizaje no supervisado. El aprendizaje no supervisado es una técnica que no necesita que se le diga la respuesta correcta, sino que el algoritmo busca patrones o relaciones en los datos por sí mismo. Este tipo de aprendizaje es útil cuando se tienen muchos datos y no se sabe exactamente cómo clasificarlos o qué buscar. El proceso que sigue el aprendizaje no supervisado se muestra en la figura 10. Las técnicas más comunes en el aprendizaje no supervisado son las siguientes: • Clustering: Consiste en identificar subgrupos dentro de un conjunto de datos con el objetivo de dividir los datos en categorías que sean lo más similares posibles, pero que se diferencien lo máximo posible entre sí. Es decir, los elementos dentro de un mismo grupo deben ser similares, mientras que los diferentes grupos deben ser lo más distintos posibles. Dentro de esta técnica destaca el algoritmo K-means que agrupa los datos en K grupos dependiendo de cuántos grupos se necesiten.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 18 • Reducción de dimensionalidad: Consiste en reducir la cantidad de variables de un conjunto de datos seleccionando solo las más importantes. Esto se consigue analizando cómo se distribuyen los valores de las variables en el conjunto de datos, para identificar cuáles ofrecen más información o cuáles sonsimilares entre sí. Este método es efectivo si se tienen datos con muchas características (por ejemplo, varios parámetros de corte) ya que ayuda a simplificar los datos evitando que se pierda mucha información. Destacan los algoritmos PCA y t-SNE. El algoritmo PCA reduce el número de características manteniendo la mayor parte de la información importante, mientras que t-SNE aporta una representación 2D o 3D. Figura 10. Proceso – Aprendizaje no supervisado. Fuente: Recraft. Como resumen, el aprendizaje no supervisado en fabricación tiene muchas aplicaciones como agrupar productos, controlar la calidad, optimizar procesos y aplicar un mantenimiento predictivo [26, 29]. 3.4.3. Aprendizaje reforzado. El objetivo de este tipo de aprendizaje es crear un algoritmo que mejore su rendimiento mediante interacciones con el entorno. Este algoritmo basándose en la información que recibe realiza acciones que le permiten aprender, durante este proceso se utiliza una señal de recompensa que indica si lo que se ha hecho fue correcto o no. A diferencia del aprendizaje supervisado donde el algoritmo recibe etiquetas correctas, en el aprendizaje reforzado el algoritmo recibe feedback, esto no es una etiqueta que diga si la acción realizada fue correcta, sino una recompensa que refleja el valor de lo que se hizo. Esto puede ser positivo (cuando se hace bien), o negativo (cuando se hace mal). Mediante estos feedbacks el algoritmo aprende a elegir las mejores acciones para obtener un mayor rendimiento [28]. Existen diferentes tipos de aprendizaje reforzado pero el principio siempre es el mismo, que el algoritmo intente maximizar la recompensa a lo largo del tiempo. Cada vez que se realiza una acción, el algoritmo recibe una recompensa que le indica si está más cerca o más lejos de su objetivo. Este tipo de aprendizaje es útil en muchos caos en los que un algoritmo no tiene una respuesta clara desde el principio, sino que debe probar diferentes acciones y aprender de los resultados.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 19 3.5. Uso de Python en Machine Learning. Python es un lenguaje de programación que se destaca por ser fácil de aprender y tener una sintaxis clara. Fue creado por Guido van Rossum en los años 90 y, con el tiempo, se ha convertido en uno de los lenguajes más populares. Esto se debe a su claridad y facilidad de uso, lo que lo convierte en una excelente opción para principiantes, ya que se puede aprender Python a través de cursos online en plataformas como YouTube. Una de las principales razones por las que Python es tan útil en áreas como Machine Learning es su versatilidad. Esto significa que se puede utilizar en una gran variedad de aplicaciones, como ciencia de datos, desarrollo web, automatización de tareas y procesamiento de imágenes. Además, Python es muy popular debido a su sintaxis sencilla, que facilita tanto la lectura como la escritura de código, acercándose mucho al lenguaje humano. A diferencia de otros lenguajes de programación más complejos, donde es necesario escribir más código para realizar una misma tarea, en Python se puede hacer lo mismo con menos líneas de código, lo que acelera el proceso de desarrollo [30, 31]. Este lenguaje ofrece una gran cantidad de bibliotecas y herramientas que facilitan la realización de tareas complejas, permitiendo trabajar de manera eficiente con modelos predictivos. Además, Python tiene una comunidad activa de usuarios, lo que significa que siempre hay ayuda disponible. Si surgen problemas al programar, se pueden encontrar soluciones rápidamente en foros y documentación en línea. 3.5.1. Principales bibliotecas de Python para Machine Learning. En Machine Learning, Python ofrece una amplia variedad de bibliotecas que facilitan el trabajo con modelos predictivos, el análisis de datos y la visualización de resultados. A continuación, se describen las principales bibliotecas de Python que se han utilizado y aprendido a lo largo del proceso de creación del modelo de entrenamiento [30, 31]: • NumPy: es una herramienta de Python que se utiliza para trabajar con datos numéricos de manera rápida y eficiente. Esta biblioteca introduce los arreglos multidimensionales, que son estructuras de datos mucho más eficaces para almacenar y procesar grandes volúmenes de datos. Estos arreglos permiten realizar cálculos matemáticos y estadísticos de forma eficiente, lo que es esencial cuando se tiene mucha información para analizar. En este trabajo, el objetivo es predecir la rugosidad superficial de una pieza usando varios parámetros de corte. Los datos que se usan para entrenar el modelo de regresión lineal son grandes y contienen muchas columnas que representan parámetros como la velocidad de corte, la profundidad de corte y el avance. Con NumPy, estos datos se organizan en arreglos de forma eficiente, lo que facilita su análisis. • Matplotlib: es una de las bibliotecas más utilizadas en Python para crear gráficos y visualizar datos. A través de matplotlib.pyplot, es posible generar gráficos de líneas, barras o dispersión (puntos), lo que facilita la comprensión de los resultados obtenidos en modelos como la regresión lineal. Esta herramienta es útil para mostrar cómo los parámetros de corte afectan a la rugosidad superficial de las piezas. Por ejemplo, con un gráfico de dispersión, se puede observar la variación de la rugosidad de las piezas al cambiar los parámetros de corte, lo que ayuda a comprender mejor las relaciones entre las variables. Además, matplotlib.pyplot permite comparar los valores predichos por el modelo con los valores reales, lo que es fundamental para evaluar la precisión del modelo. Los gráficos generados son fáciles de personalizar con títulos, etiquetas en los ejes y leyendas y también se pueden guardar en formatos como PNG o PDF que serán representados en el apartado de análisis de resultados.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 20 • Scikit-learn: esta biblioteca es útil para construir y entrenar modelos predictivos, proporcionando una amplia variedad de algoritmos de aprendizaje supervisado y no supervisado, que incluyen modelos de regresión, clasificación y agrupamientos (clustering). Skicit-learn tiene un papel importante en la creación del modelo de regresión lineal, ya que es un algoritmo de aprendizaje supervisado, donde los parámetros de corte son las variables independientes y la rugosidad superficial la variable dependiente que se quiere predecir. La implementación de este modelo se realiza mediante la clase LinearRegression, que ajusta una línea recta a los datos, con el objetivo de minimizar el error cuadrático entre las predicciones y los valores reales de la rugosidad. Además, para evaluar el rendimiento del modelo se va a usar el mean_squared_error (MSE), que calcula la diferencia entre las predicciones del modelo de los valores reales, y el r2_score, para ver cómo el modelo explica la variabilidad de los datos.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 21 4. Creación del modelo de regresión lineal. La regresión lineal es una técnica estadística que se usa para predecir el valor de una variable dependiente (lo que se quiere predecir) en función de una o más variables independientes (los parámetros que se van a usar para realizar la predicción). La relación mediante estas variables se representa mediante una línea recta y en el caso de tener solamente una variable dependiente, la regresión lineal se representa mediante la ecuación (6): 𝑦= 𝛽0+𝛽1𝑋1+ Є (6) Donde 𝑦 representa la variable dependiente; 𝛽0 es el intercepto de la línea, es decir, el valor de 𝑦 cuando 𝑋1 es igual a 0; 𝛽1 es el coeficiente de la variable 𝑋1, que indica cuánto cambia 𝑦 cuándo 𝑋1 cambia; 𝑋1 es la variable independiente y Є es el error residual, es decir, la diferencia entre la predicción y el valor real. En la figura 11 se puede observar un ejemplo de regresión lineal a partir de solo una variable independiente, en este caso es la velocidad de corte. Figura 11. Ejemplo de regresión lineal con una variable independiente. Cuando se tiene más de una variable independiente, como es el caso de este análisis donde se van a usar diferentes parámetros de corte, se utiliza la regresión lineal múltiple. La fórmula sería según la ecuación (7): 𝑦= 𝛽0+𝛽1𝑋1+𝛽1𝑋1+⋯+𝛽𝑛𝑋𝑛+ Є (7) Donde: 𝑦 representa la rugosidad. 𝛽0 es el intercepto de la línea, es decir, el valor de 𝑦 cuando 𝑋1 es igual a 0. 𝑋1, 𝑋2, … , 𝑋n son las diferentes variables independientes, como la velocidad de corte, la profundidad de corte y la velocidad de avance. 𝛽1, 𝛽2, … , 𝛽n son los coeficientes que indican la influencia de cada variable independiente en la rugosidad superficial.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 22 En la figura 12 se puede observar un ejemplo de regresión lineal a partir de tres variables independientes, en este caso es la velocidad de corte, la longitud del voladizo y el avance. Figura 12. Ejemplo de regresión lineal múltiple con tres variables independientes. La regresión lineal múltiple es una extensión de la regresión lineal simple en la que, en lugar de usar solo una variable independiente, se emplean varias para predecir un valor dependiente. En este caso, la rugosidad superficial será la magnitud a predecir, mientras que los parámetros de corte actuarán como factores que influyen en dicho resultado. El proceso de ajuste en la regresión lineal múltiple busca encontrar los valores de los coeficientes 𝛽1, 𝛽2, … , 𝛽n que mejor se adapten a los datos con que se cuenta. El objetivo para hacerlo es minimizar el error, o lo que es lo mismo, hacer que la diferencia entre lo que el modelo predice y lo que realmente ocurrió sea lo más pequeña posible. Este método es útil cuando se tiene más de una variable independiente que influye en la variable dependiente, en este caso, si solo se utilizará una variable como en el ejemplo de la figura 4.1, el modelo sería menos preciso, ya que no tendría en cuentas todos los demás factores que también afectan a la rugosidad.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 23 4.1. Procesamiento de datos. A continuación, se presentan los estudios realizados en procesos de torneado y fresado. 4.1.1. Torneado. En el caso del torneado, los datos de los parámetros de corte utilizados en este trabajo provienen del estudio de Eugenia Clemente Rodríguez-Álvarez (2015), titulado "Influencias de los parámetros de corte y vibraciones en la rugosidad superficial en procesos de torneado" [8], realizado como Trabajo de Fin de Grado en la Escuela Técnica Superior de Ingenieros de la Universidad de Sevilla. Para el mecanizado previo de las probetas, se ha seguido la norma ISO 3685, cuya versión española es la UNE 16148:1985. Estas normas, que tratan sobre los ensayos de duración de herramientas en torno, sirven como referencia para definir los parámetros de corte y los materiales de las probetas, en las cuales luego se ha medido la rugosidad superficial. En cuanto a los materiales de ensayo, la norma recomienda el uso el acero al carbono y hierro fundido, con una dureza entre 180 y 220 HB, cuanto mayor es la dureza, mejor es el acabado superficial. Cuando se eligieron los aceros al carbono con los que se realizaron los ensayos, se mecanizaron previamente algunas probetas para verificar que estos materiales cumplían con los valores de rugosidad esperados. Dentro de los materiales disponibles para el estudio, se eligieron dos aceros con durezas diferentes: acero 1 (210 HB) y acero 2 (231 HB). Además, se consideraron el acero inoxidable de 197 HB y el hierro fundido de 129 HB. Las plaquitas se fijaron mecánicamente en el portaherramientas con dos montajes diferentes considerandos un voladizo de la herramienta de 35 mm y 60 mm, aunque no en todos los ensayos. La longitud de 60 mm solo se probó en las probetas de acero al carbono. El rugosímetro utilizado fue el modelo Perthometer M1 de Mahr, este dispositivo cuenta con un palpador de diamante que registra la rugosidad de la superficie mediante un desplazamiento lineal sobre ella. Los parámetros de corte fueron elegidos siguiendo la norma UNE 16148:1985. Las plaquitas seleccionadas para el corte eran recomendadas para los tres materiales de ensayo y los parámetros de corte se seleccionaron según las recomendaciones del fabricante. La tabla 2 muestra los valores de avance y velocidad de giro con los que se realizaron los ensayos. Tabla 2. Parámetros de corte. Avance f (mm/rev) Velocidad de giro N (rpm) Velocidad de corte Vc (m/min) Profundidad de corte p (mm) Radio de la punta r (mm) 0,165 860 75,65 1 0,8 0,21 1400 123,15 0,28 2000 175,93 Considerando que el diámetro inicial de las probetas Do era de 28 mm, en dicha tabla se reflejan también los valores de la velocidad de corte calculada mediante la ecuación (8), así como la profundidad de corte empleada y el radio de la punta de la herramienta. 𝑉𝑐= 𝜋 𝑁 𝐷𝑜 (8)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 24 Una vez que se han definido los materiales a ensayar, se llevaron a cabo un total de 54 ensayos distribuidos en los 4 materiales diferentes: • 18 ensayos para el acero 1. • 18 ensayos para el acero 2. • 9 ensayos para hierro fundido. • 9 ensayos para el acero inoxidable. En la tabla 3 se recogen los ensayos realizados en el acero 1 y en la 4 los realizados en el acero 2. A cada ensayo se le ha hecho corresponder un código que será el empleado posteriormente en el tratamiento de los datos con Python. Tabla 3. Ensayos realizados en el acero 1. No. de ensayo Código Python Velocidad de corte (m/min) Avance (mm/rev) 1 1 75,65 0,165 2 2 0,21 3 3 0,28 4 4 0,165 5 5 0,21 6 6 0,28 7 7 123,15 0,165 8 8 0,21 9 9 0,28 10 1A 0,165 11 2A 0,21 12 3A 0,28 13 4A 175,93 0,165 14 5A 0,21 15 6A 0,28 16 7A 0,165 17 8A 0,21 18 9A 0,28 Tabla 4. Ensayos realizados en el acero 2. No. de ensayo Código Python Velocidad de corte ( m/min) Avance (mm/rev) 1 1B 75,65 0,165 2 2B 0,21 3 3B 0,28 4 4B 0,165 5 5B 0,21 6 6B 0,28 7 7B 123,15 0,165 8 8B 0,21 9 9B 0,28 10 1C 0,165 11 2C 0,21 12 3C 0,28
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 25 Tabla 4. Ensayos realizados en el acero 2 (continuación) No. de ensayo Código Python Velocidad de corte ( m/min) Avance (mm/rev) 13 4C 175,93 0,165 14 5C 0,21 15 6C 0,28 16 7C 0,165 17 8C 0,21 18 9C 0,28 En las tablas 5 y 6 se recogen los ensayos para el hierro fundido y para el acero inoxidable, respectivamente. Tabla 5. Ensayos realizados en el hierro fundido. No. de ensayo Código Python Velocidad de corte (m/min) Avance (mm/rev) 1 1D 75,65 0,165 2 2D 0,21 3 3D 0,28 4 4D 123,15 0,165 5 5D 0,21 6 6D 0,28 7 7D 175,93 0,165 8 8D 0,21 9 9D 0,28 Tabla 6. Ensayos realizados en el acero inoxidable. No. de ensayo Código Python Velocidad de corte (m/min) Avance (mm/rev) 1 1E 75,65 0,165 2 2E 0,21 3 3E 0,28 4 4E 123,15 0,165 5 5E 0,21 6 6E 0,28 7 7E 175,93 0,165 8 8E 0,21 9 9E 0,28 4.1.2. Fresado. Los datos utilizados en este estudio fueron proporcionados por la Universidad Politécnica de Cataluña (UPC) y fueron obtenidos a partir de ensayos de fresado realizados sobre cuatro materiales distintos: acero AISI 1038, aluminio A96351, aluminio A92017 y titanio Ti-6Al-4V. En la tabla 7 se muestran los resultados de las medidas de Ra para los 146 ensayos realizados en el acero. para el acero.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 32 Una vez cargados los datos, se procedió a organizar la tabla y asegurar que el índice de las filas fuera continuo. Este paso es importante para evitar problemas a la hora de analizar las filas de los ensayos, especialmente cuando se trabaja con un gran número de datos. De todas las columnas proporcionadas en el archivo, se seleccionaron aquellas que servirían como variables independientes y la variable dependiente. Los parámetros de corte seleccionados para este modelo fueron: • Velocidad de avance (fr) [mm/min] • Número de revoluciones (N) [rpm] • Diámetro (mm) La variable dependiente a predecir fue la rugosidad (Ra) de la superficie mecanizada. Para crear el modelo de regresión lineal, se utilizó la clase LinearRegression de la biblioteca scikit-learn. Este modelo fue entrenado utilizando los parámetros de corte como las entradas (variables independientes) y la rugosidad como la salida (variable dependiente). Una vez que el modelo fue entrenado, se utilizó para predecir la rugosidad de cada uno de los ensayos. Para hacer esto, se implementó un bucle que recorrió todas las combinaciones de los parámetros de corte y predijo la rugosidad para cada conjunto de valores. En el código, el bucle fue estructurado con el comando enumerate(), que permitió recorrer cada fila del conjunto de parámetros de corte. En cada iteración, se extrajeron los valores de los parámetros de corte correspondientes (velocidad de avance (mm/min), velocidad de giro (rpm) y diámetro (mm)) y se realizó la predicción de la rugosidad para esos parámetros. Para cada ensayo, el código imprimió lo siguiente: • El número de ensayo. • Los parámetros de corte utilizados (velocidad de avance (mm/min), velocidad de giro (rpm) y diámetro (mm)). • La rugosidad estimada generada por el modelo para esos parámetros. • Los coeficientes del modelo, que indican la influencia de cada parámetro en la rugosidad. • El intercepto del modelo, que muestra el valor de la rugosidad cuando todos los parámetros de corte son cero. Este proceso se repitió para todos los ensayos, obteniendo así las predicciones de rugosidad para cada conjunto de parámetros de corte. Debido al gran número de ensayos realizados, se decidió exportar las rugosidades predichas a un archivo Excel. Esto evitó tener que realizar el proceso manualmente, facilitando la consulta y análisis posterior de los resultados. El archivo generado contiene una columna con las rugosidades estimadas para cada ensayo, lo que permite revisar los resultados sin necesidad de imprimir cada uno de los ensayos individualmente. Este mismo procedimiento de análisis de regresión lineal y predicción de rugosidad fue utilizado de la misma manera para los cuatro materiales ensayados: acero AISI 1038, aluminio A96351, aluminio A92017 y titanio Ti-6Al-4V. En la figura 14 se representa este modelo de regresión lineal.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 33 Figura 14. Diagrama de bloques representativo del modelo de regresión lineal para el fresado.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 35 5. Análisis de resultados. En este capítulo se comparan los resultados experimentales obtenidos en los ensayos con los valores predichos por el modelo de regresión lineal en Python. Además, se analizarán las diferencias entre los resultados teóricos y los experimentales, evaluando el desempeño del modelo en términos de precisión y fiabilidad. 5.1. Torneado. A continuación, se presenta los análisis de resultados en el torneado. 5.1.1. Acero 1. Se realizaron 18 ensayos en el acero 1, midiendo la rugosidad superficial experimentalmente con un rugosímetro y comparándola con los valores calculados en Python y los teóricos. La tabla 11 recoge estos valores junto con los parámetros de corte empleados. Tabla 11. Parámetros de corte y valores de rugosidad para el Acero 1. Ensayo Velocidad de corte (m/min) Avance (mm/rev) Voladizo (mm) Rugosidad experimental (µm) Rugosidad calculada en Python (µm) Rugosidad teórica (µm) 1 75,65 0,165 35 1,821 1,629 1,063 2 75,65 0,21 35 2,493 2,763 1,723 3 75,65 0,28 35 4,746 4,143 3,063 4 75,65 0,165 60 1,544 1,584 1,063 5 75,65 0,21 60 2,188 2,705 1,723 6 75,65 0,28 60 3,976 4,303 3,063 7 123,15 0,165 35 1,764 1,437 1,063 8 123,15 0,21 35 2,078 2,585 1,723 9 123,15 0,28 35 4,043 4,155 3,063 1A 123,15 0,165 60 1,872 1,283 1,063 2A 123,15 0,21 60 2,012 2,474 1,723 3A 123,15 0,28 60 4,847 3,813 3,063 4A 175,93 0,165 35 1,605 1,178 1,063 5A 175,93 0,21 35 1,956 2,415 1,723 6A 175,93 0,28 35 3,902 3,495 3,063 7A 175,93 0,165 60 1,463 1,085 1,063 8A 175,93 0,21 60 1,7 2,346 1,723 9A 175,93 0,28 60 3,851 3,81 3,063 Los valores de la rugosidad (µm) obtenidos en los ensayos y los calculados con Python siguen un patrón parecido, aunque en algunos casos hay diferencias, en cambio, la rugosidad teórica suele ser más baja. En cuanto a la velocidad de corte, cuando es más alta (175,93 m/min), la rugosidad medida es menor que con valores más bajos (75,65 m/min), el modelo en Python también refleja esta tendencia, aunque con algunas variaciones en valores concretos. El avance es el factor que más influye en la rugosidad, ya que al aumentar de 0,165 mm/rev a 0,28 mm/rev, la rugosidad también crece notablemente. El modelo en Python representa bien esta relación, aunque en algunos casos con avances altos, los valores predichos son menores que los medidos. Además, los ensayos
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 36 Comparación de rugosidades del acero 1 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Probeta Rugosidad experimental (μm) Rugosidad teórica (μm) Rugosidad calculada en Python (μm) con un voladizo de 60 mm presentan mayores variaciones en la rugosidad, lo que sugiere que las vibraciones pueden influir en el acabado de la superficie. La figura 15 muestra la comparación de rugosidades obtenidas en los ensayos del Acero 1, diferenciando entre la rugosidad experimental, la calculada en Python y la teórica. En general, la rugosidad experimental es mayor que las otras dos, aunque los valores calculados en Python se acercan bastante a los medidos experimentalmente, con algunas diferencias en ciertos casos. En cambio, la rugosidad teórica es más baja en casi todas las pruebas, probablemente porque no tiene en cuenta factores como vibraciones, desgaste de la herramienta o imperfecciones en el material. Se identifican picos de rugosidad en los ensayos 3, 6, 9, 12, 15 y 18, donde los valores más altos podrían deberse a un mayor avance o una menor velocidad de corte, condiciones que suelen generar un acabado más rugoso. Por otro lado, los ensayos 4, 7, 10, 13 y 16 presentan los valores más bajos de rugosidad. Figura 15. Comparación de rugosidades del acero 1. La figura 16 muestra la comparación entre la rugosidad experimental y la rugosidad calculada en Python para el Acero 1. En el eje X están los valores medidos en los experimentos, y en el eje Y los valores estimados por el modelo en Python. R2 = 0,8431 es el coeficiente de determinación, que indica qué tan bien el modelo de Python se ajusta a los datos reales. Un valor de R2 cercano a 1 significa que la predicción es bastante precisa, aunque no perfecta. Si todos los puntos estuvieran sobre la línea azul, el modelo en Python sería totalmente exacto. Sin embargo, algunos puntos están un poco desviados, lo que muestra que en ciertos casos la predicción no es completamente precisa. A pesar de esto, la gráfica indica que el modelo sigue una tendencia fiable, por lo que puede utilizarse para estimar la rugosidad (µm) con buena precisión. Rugosidad (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 37 Regresión lineal entre rugosidad experimental y Python para el acero 1 5 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0 0 1 2 3 4 5 6 Rugosidad experimental (µm) Datos (Experimentales vs Python) Regresión lineal R² = 0,8431 R ² = 0,8431 Figura 16. Regresión lineal entre la rugosidad experimental y la estimada en Python del acero 1. La figura 17 muestra el error cuadrático por probeta en los ensayos del Acero 1, que mide la diferencia entre los valores de rugosidad experimental y los valores calculados en Python. En el eje X se encuentran las distintas probetas analizadas, y en el eje Y se representa el valor del error cuadrático correspondiente a cada una. El error cuadrático para cada probeta se obtiene con la siguiente ecuación (10): 𝐸𝑟𝑟𝑜𝑟 𝐶𝑢𝑎𝑑𝑟á𝑡𝑖𝑐𝑜 = (𝑅𝑢𝑔𝑜𝑠𝑖𝑑𝑎𝑑 𝐸𝑥𝑝𝑒𝑟𝑖𝑚𝑒𝑛𝑡𝑎𝑙−𝑅𝑢𝑔𝑜𝑠𝑖𝑑𝑎𝑑 𝑒𝑛 𝑃𝑦𝑡ℎ𝑜𝑛)2 (10) El Error Cuadrático Medio (MSE - Mean Squared Error) es el promedio de todos los errores cuadráticos calculados en las 18 probetas. Se calcula mediante la ecuación (11): MSE= 1 n∑(Rugosidad experimental−Rugosidad en Python)2n i=1 (11) Donde n es el número total de probetas. En este caso, el MSE promedio es 0,21175, lo que indica que, en promedio, el modelo tiene un error bajo en la mayoría de las mediciones. Cada barra azul representa el error cuadrático individual de cada probeta. Se observa que, en la mayoría de los casos, los errores son bajos, pero hay algunas excepciones donde el error es significativamente mayor, como en la probeta 3A, que presenta el mayor error cuadrático. La línea naranja representa el MSE promedio (0,21175), que sirve como referencia para evaluar qué probetas tienen errores por encima o por debajo del valor medio. La mayoría de los errores están por debajo de esta
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 38 Error cuadrático por probeta en el acero 1 1,2 1 0,8 0,6 0,4 0,2 0 1 2 3 4 5 6 7 8 9 1A 2A 3A 4A 5A 6A Probeta 7A 8A 9A Error cuadrático por probeta MSE Promedio = 0,21175 línea, lo que indica que el modelo de Python hace una buena estimación en la mayoría de los casos, aunque existen algunas excepciones con desviaciones más altas. Figura 17. Error cuadrático en el acero 1. 5.1.2. Acero 2. Para el acero 2 también se realizaron 18 ensayos, en la tabla 12 se recogen todos los valores de la rugosidad y los distintos parámetros de cada ensayo. Tabla 12. Parámetros de corte y valores de rugosidad para el Acero 2. Ensayo Velocidad de corte (m/min) Avance (mm/rev) Voladizo (mm) Rugosidad experimental (µm) Rugosidad calculada en Python (µm) Rugosidad teórica (µm) 1B 75,65 0,165 35 1,293 1,272 1,063 2B 75,65 0,21 35 2,007 2,192 1,723 3B 75,65 0,28 35 3,705 3,452 3,063 4B 75,65 0,165 60 1,317 1,264 1,063 5B 75,65 0,21 60 2,218 2,218 1,723 6B 75,65 0,28 60 3,97 3,504 3,063 7B 123,15 0,165 35 1,439 1,226 1,063 Error cuadrático
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 39 Tabla 12. Parámetros de corte y valores de rugosidad para el Acero 2 (continuación) Ensayo Velocidad de corte (m/min) Avance (mm/rev) Voladizo (mm) Rugosidad experimental (µm) Rugosidad calculada en Python (µm) Rugosidad teórica (µm) 8B 123,15 0,21 35 1,936 2,017 1,723 9B 123,15 0,28 35 3,587 3,492 3,063 1C 123,15 0,165 60 1,614 1,278 1,063 2C 123,15 0,21 60 1,68 2,204 1,723 3C 123,15 0,28 60 3,814 3,344 3,063 4C 175,93 0,165 35 1,594 1,125 1,063 5C 175,93 0,21 35 1,687 2,234 1,723 6C 175,93 0,28 35 3,492 3,492 3,063 7C 175,93 0,165 60 1,563 1,137 1,063 8C 175,93 0,21 60 1,629 2,25 1,723 9C 175,93 0,28 60 3,669 3,427 3,063 A medida que el avance aumenta, la rugosidad también se incrementa en los tres métodos de medición: experimental, calculada en Python y teórica. Por ejemplo, en el ensayo 1B (f=0,165 mm/rev), la rugosidad experimental es 1,293 µm, mientras que en el ensayo 3B (f=0,28 mm/rev), este valor sube hasta 3,705 µm. La velocidad de corte tiene un efecto inverso en la rugosidad: a mayor velocidad, menor rugosidad. Por ejemplo, en el ensayo 3B (Vc=75,65, f=0,28 mm/rev), la rugosidad calculada en Python es 3,452 µm. Al aumentar la velocidad en el ensayo 3C (Vc=123,15 m/min, f=0,28 mm/rev), la rugosidad baja a 3,344 µm., confirmando que una mayor velocidad de corte tiende a mejorar el acabado superficial. También se observa que los ensayos con un voladizo mayor (60 mm) tienden a presentar una rugosidad más elevada. La figura 18. muestra la comparación de rugosidades obtenidas en los ensayos del Acero 2, diferenciando entre rugosidad experimental, rugosidad calculada en Python y rugosidad teórica. Los valores más altos de rugosidad se presentan en probetas con mayor avance (f=0,28 mm/rev), mientras que los valores más bajos corresponden a probetas con menor avance (f=0,165 mm/rev). La rugosidad calculada en Python se ajusta bastante bien a la experimental, aunque en algunos ensayos presenta pequeñas diferencias. La figura 19 muestra la relación entre la rugosidad experimental y la rugosidad calculada en Python para el acero 2 mediante una regresión lineal. El coeficiente de determinación R2=0,8771 mide el ajuste del modelo y muestra qué tan bien la predicción de Python se alinea con los valores reales. Un valor cercano a 1 significa que el modelo predice con alta precisión, y en este caso, el valor de 0,8771 indica un buen ajuste. La figura 20 muestra el error cuadrático por probeta en los ensayos del Acero 2, indicando la diferencia entre los valores de rugosidad experimental y los calculados en Python. Se observa que la mayoría de los errores son bajos, pero algunas probetas presentan valores más altos, lo que indica que en ciertos ensayos la diferencia entre la predicción y la medición real es mayor. El error cuadrático medio MSE tiene un valor de 0,114861 y se puede apreciar que algunas probetas, como la 2C, 3C, 4C, 5C, 7C y 9C, presentan errores por encima del MSE, lo que indica que en estos casos el modelo de Python tuvo una menor precisión en la estimación de la rugosidad.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 40 Regresión lineal entre rugosidad experimental y Python para el acero 2 4 3,5 3 2,5 2 1,5 1 0,5 0 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 Rugosidad experimental (µm) Datos (Experimentales vs Python) Regresión lineal R² = 0,8771 Figura 18. Comparación de rugosidades del acero 2. R ² = 0,8771 Figura 19. Regresión lineal entre la rugosidad experimental y la estimada en Python del acero 2. Comparación de rugosidades del acero 2 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Probeta Rugosidad experimental (μm) Rugosidad teórica (μm) Rugosidad calculada en Python (μm) Rugosidad Python (µm) Rugosidad (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 41 Error cuadrático por probeta en el acero 2 0,45 0,4 0,35 0,3 0,25 0,2 0,15 0,1 0,05 0 1B 2B 3B 4B 5B 6B 7B 8B 9B 1C 2C 3C 4C 5C 6C 7C 8C 9C Probeta Error cuadrático por probeta MSE Promedio = 0,114861 Figura 20. Error cuadrático en el acero 2. 5.1.3. Hierro fundido. En este estudio se han realizado 9 ensayos en el hierro fundido en vez de 18 como en los Aceros 1 y 2. Otra diferencia con respecto a los dos ensayos anteriores es que en este caso solamente se realizan ensayos con una longitud de voladizo de 35 mm. Los resultados obtenidos se recogen en la tabla 13, donde se detallan los distintos valores de la rugosidad, y se pueden ver reflejados en la figura 21. Tabla 13. Parámetros de corte y valores de rugosidad para el hierro fundido. Ensayo Velocidad de corte (m/min) Avance (mm/rev) Voladizo (mm) Rugosidad experimental (µm) Rugosidad calculada en Python (µm) Rugosidad teórica (µm) 1D 75,65 0,165 35 3,9997 5,037 1,063 2D 75,65 0,21 35 5,1047 5,38 1,723 3D 75,65 0,28 35 6,047 6,677 3,063 4D 123,15 0,165 35 4,2233 3,657 1,063 5D 123,15 0,21 35 5,6267 4,429 1,723 6D 123,15 0,28 35 6,3037 5,353 3,063 7D 175,93 0,165 35 3,348 2,285 1,063 8D 175,93 0,21 35 2,5 4,088 1,723 9D 175,93 0,28 35 4,497 5,171 3,063 La figura 22 representa la regresión lineal entre los valores de rugosidad experimental y rugosidad calculada en Python para el hierro fundido. Se observa que los puntos presentan una dispersión en relación con la línea de regresión, lo que indica que el modelo no predice con alta precisión en comparación con los análisis anteriores de los aceros. El coeficiente de determinación R2=0,4516 solo logra explicar aproximadamente el 45% de las variaciones en la rugosidad experimental, lo que significa que su precisión en este caso es baja. Error cuadrático
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 48 Comparación de rugosidades del Acero AISI 1038 4,0 3,5 3,0 2,5 2,0 1,5 1,0 0,5 0,0 1 2 3 Tramos 4 5 Rugosidad experimental (μm) Rugosidad teórica (μm) Rugosidad calculada en Python (μm) Dado el elevado número de ensayos que se presentan en la figura 27 y la complejidad que supone su interpretación debido a la forma en que están representados, se ha optado por calcular los valores medios para facilitar su comprensión. Estos valores medios se han obtenido a partir de cinco tramos específicos, correspondientes a los intervalos donde se producen cambios bruscos en los datos, y se representan en la figura 28. Figura 28. Comparación de rugosidades del acero AISI 1038. La figura 29 muestra la relación lineal entre la rugosidad medida y la calculada por el modelo Python para el material Acero AISI 1038. El valor de R² = 0,7784 indica una respuesta adecuada entre los datos experimentales y los valores predichos por el modelo, aunque con algunas diferencias. La línea de regresión muestra que a medida que aumenta la rugosidad medida, también lo hace la rugosidad calculada. Sin embargo, el R² = 0,7784 implica que hay algunas desviaciones entre los dos conjuntos de datos. Con un MSE de 0,475795, la figura 30 muestra que, aunque la mayoría de los errores cuadráticos son bajos, hay algunos ensayos, como el 3, 7, 11, entre otros, que presentan grandes picos. Esto implica que en esos casos el modelo de Python tiene desviaciones considerables respecto a los valores experimentales. Rugosidad (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 49 Regresión lineal entre rugosidad experimental y Python para el acero AISI 1038. 4 4 3 3 2 2 1 1 0 0 1 1 2 2 3 3 4 4 5 Rugosidad experimental (μm) Datos (Experimentales vs Python) Regresión lineal R² = 0,7784 Error cuadrático por probeta en el acero AISI 1038 3 3 2 2 1 1 0 Ensayo Error cuadrático por ensayo MSE promedio R² = 0, 7784 Figura 29. Regresión lineal entre la rugosidad experimental y la estimada en Python del acero AISI 1038. Figura 30. Error cuadrático en el acero AISI 1038. Rugosidad Python (μm) Error cuadrático 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 121 125 129 133 137 141 145
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 50 5.2.2. Aluminio A96351. En este estudio se realizaron 30 ensayos con Aluminio A96351 para evaluar su rugosidad superficial bajo distintas condiciones de corte. Los resultados se recogen en la tabla 16. Tabla 16. Parámetros de corte y valores de rugosidad para el aluminio A96351. Ensayo fr (mm/min) N (rpm) Vc (m/min) Ra experimental (µm) Rugosidad calculada en Python (μm) Rugosidad teórica (μm) 1 100 64 13 2,5125 2,38154 0,006386976 2 100 64 13 2,5125 2,38154 0,006386976 3 100 64 13 2,5125 2,38154 0,006386976 4 100 64 13 2,5125 2,38154 0,006386976 5 200 127 25 2,5125 2,58832 0,025547905 6 200 127 25 2,5125 2,58832 0,025547905 7 200 127 25 2,5125 2,58832 0,025547905 8 200 127 25 2,5125 2,58832 0,025547905 9 100 64 13 2,5125 2,38154 0,006386976 10 100 64 13 2,5125 2,38154 0,006386976 11 100 64 13 2,5125 2,38154 0,006386976 12 100 64 13 2,5125 2,38154 0,006386976 13 200 127 25 2,5125 2,58832 0,025547905 14 200 127 25 2,5125 2,58832 0,025547905 15 200 127 25 2,5125 2,58832 0,025547905 16 200 127 25 2,5125 2,58832 0,025547905 17 150 96 19 2,5125 2,48493 0,014370697 18 150 96 19 2,5125 2,48493 0,014370697 19 150 96 19 2,5125 2,48493 0,014370697 20 150 96 19 2,5125 2,48493 0,014370697 21 300 300 59 1,01685 1,34769 0,057482787 22 500 501 99 1,01685 0,79629 0,159674408 23 300 300 59 1,01685 1,34769 0,057482787 24 500 501 99 1,01685 0,79629 0,159674408 25 300 300 59 1,01685 1,34769 0,057482787 26 500 501 99 1,01685 0,79629 0,159674408 27 300 300 59 1,01685 1,34769 0,057482787 28 500 501 99 1,01685 0,79629 0,159674408 29 400 400 79 1,01685 1,07199 0,102191621 30 400 400 79 1,01685 1,07199 0,102191621 En los ensayos con aluminio A96351, la rugosidad medida se mantuvo bastante constante al principio (alrededor de 2,5125 µm) y solo cambió un poco cuando aumentaron los parámetros de corte, como la velocidad de avance y la velocidad de corte. El modelo de Python predijo bien la rugosidad, aunque a veces con pequeñas diferencias respecto a los valores experimentales, especialmente en condiciones de corte extremas. La rugosidad teórica fue mucho más baja (alrededor de 0,006 µm), lo que muestra que este modelo no tiene en cuenta factores como el desgaste de la herramienta o las vibraciones. Al aumentar la velocidad de corte, la rugosidad disminuyó ligeramente, y al aumentar el avance, la rugosidad aumentó.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 51 1,0 1,5 2,0 2,5 3,0 Comparación de rugosidades del Aluminio A96351 Rugosidad calculada en Python (μm) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Ensayo Rugosidad experimental UPC (μm) Rugosidad teórica (μm) 0,0 0,5 La figura 31 refleja una comparativa de las rugosidades para el aluminio A96351, donde la rugosidad experimental (línea azul) se mantiene bastante estable en los primeros ensayos, pero después muestra una caída. La rugosidad calculada en Python (línea naranja) sigue una tendencia similar, pero con más variabilidad, esto indica que el modelo de Python responde bien a los cambios, aunque con algunos desajustes. La rugosidad teórica (línea verde), al ser mucho más baja y constante, muestra que el modelo no refleja la realidad del proceso de mecanizado, al no considerar factores como el desgaste de la herramienta. Figura 31. Comparación de rugosidades del aluminio A96351. La figura 32 muestra la relación entre la rugosidad experimental y la calculada en Python para el aluminio A96351. El valor de R² = 0,9447 indica que el modelo de Python ajusta bastante bien a los datos experimentales, con una alta precisión. Esto significa que el modelo predice bien la rugosidad, ya que los dos valores siguen una tendencia similar. Aunque hay algunas pequeñas diferencias, el modelo es bastante confiable para predecir la rugosidad en este caso. Rugosidad (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 52 Regresión lineal entre rugosidad experimental y Python para el Aluminio A96351 3,0 2,5 2,0 1,5 1,0 0,5 0,0 0,0 0,5 1,0 1,5 2,0 2,5 3,0 Rugosidad experimental (μm) Datos (Experimental vs Python) Regresión lineal R² = 0,9447 R ² = 0,9447 Figura 32. Regresión lineal entre la rugosidad experimental y la estimada en Python del aluminio A96351. La figura 33 muestra el error cuadrático por probeta en los ensayos realizados con el aluminio A96351. En la mayoría de los ensayos, el error cuadrático es bajo, sin embargo, del ensayo 20 al 30, se observan picos significativos en el error cuadrático, lo que sugiere grandes diferencias entre los valores experimentales y los calculados por el modelo. El MSE promedio, que tiene un valor de 0,02749, refleja que, en general, el modelo tiene un error relativamente bajo. Rugosidad Python (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 53 Figura 33. Error cuadrático en el aluminio A96351. 5.2.3. Aluminio A92017. Para el aluminio A92017 se realizaron 92 ensayos que se recogen en la tabla 17. Tabla 17. Parámetros de corte y valores de rugosidad para el aluminio A92017. Ensayo fr (mm/min) N (rpm) Vc (m/min) Rugosidad experimental UPC (μm) Rugosidad calculada en Python (μm) Rugosidad teórica (μm) 1 300 388 77 0,6095 0,9376 0,0575 2 300 235 46 1,6623 1,5572 0,0575 3 1000 1293 256 0,6095 0,1127 0,6387 4 1000 783 155 1,6623 2,1779 0,6387 5 300 388 77 0,6095 0,9376 0,0575 6 300 235 46 1,6623 1,5572 0,0575 7 1000 1293 256 0,6095 0,1127 0,6387 8 1000 783 155 1,6623 2,1779 0,6387 9 300 388 77 0,6095 0,9376 0,0575 10 300 235 46 1,6623 1,5572 0,0575 11 1000 1293 256 0,6095 0,1127 0,6387 12 1000 783 155 1,6623 2,1779 0,6387 13 300 388 77 0,6095 0,9376 0,0575 14 300 235 46 1,6623 1,5572 0,0575 15 1000 1293 256 0,6095 0,1127 0,6387 16 1000 783 155 1,6623 2,1779 0,6387 17 650 582 115 1,2716 1,5722 0,2698 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Ensayo 0,00 0,02 0,04 0,06 0,08 0,10 0,12 Error cuadrático por probeta en el Aluminio A96351 MSE promedio Error cuadrático por ensayo Error cuadrático
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión Tabla 17. Parámetros de corte y valores de rugosidad para el aluminio A92017 (continuación). 54 Ensayo fr (mm/min) N (rpm) Vc (m/min) Rugosidad experimental UPC (μm) Rugosidad calculada en Python (μm) Rugosidad teórica (μm) 18 650 582 115 1,2716 1,5722 0,2698 19 650 582 115 1,2716 1,5722 0,2698 20 650 582 115 1,2716 1,5722 0,2698 21 200 223 44 0,8215 1,2006 0,0255 22 200 223 44 0,8215 1,2006 0,0255 23 500 557 110 0,8215 1,0649 0,1597 24 500 557 110 0,8215 1,0649 0,1597 25 200 223 44 0,8215 1,2006 0,0255 26 200 223 44 0,8215 1,2006 0,0255 27 500 557 110 0,8215 1,0649 0,1597 28 500 557 110 0,8215 1,0649 0,1597 29 200 223 44 0,8215 1,2006 0,0255 30 200 223 44 0,8215 1,2006 0,0255 31 500 557 110 0,8215 1,0649 0,1597 32 500 557 110 0,8215 1,0649 0,1597 33 200 223 44 0,8215 1,2006 0,0255 34 200 223 44 0,8215 1,2006 0,0255 35 500 557 110 0,8215 1,0649 0,1597 36 500 557 110 0,8215 1,0649 0,1597 37 200 156 31 1,6741 1,4708 0,0255 38 200 156 31 1,6741 1,4708 0,0255 39 500 390 77 1,6741 1,7401 0,1597 40 500 390 77 1,6741 1,7401 0,1597 41 200 156 31 1,6741 1,4708 0,0255 42 200 156 31 1,6741 1,4708 0,0255 43 500 390 77 1,6741 1,7401 0,1597 44 500 390 77 1,6741 1,7401 0,1597 45 200 156 31 1,6741 1,4708 0,0255 46 200 156 31 1,6741 1,4708 0,0255 47 500 390 77 1,6741 1,7401 0,1597 48 500 390 77 1,6741 1,7401 0,1597 49 200 156 31 1,6741 1,4708 0,0255 50 200 156 31 1,6741 1,4708 0,0255 51 500 390 77 1,6741 1,7401 0,1597 52 500 390 77 1,6741 1,7401 0,1597 53 600 426 84 2,0200 1,9998 0,2299 54 600 426 84 2,0200 1,9998 0,2299
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión Tabla 17. Parámetros de corte y valores de rugosidad para el aluminio A92017 (continuación). 55 Ensayo fr (mm/min) N (rpm) Vc (m/min) Rugosidad experimental UPC (μm) Rugosidad calculada en Python (μm) Rugosidad teórica (μm) 55 400 284 56 2,0200 1,7636 0,1022 56 500 355 70 2,0200 1,8817 0,1597 57 500 355 70 2,0200 1,8817 0,1597 58 500 355 70 2,0200 1,8817 0,1597 59 600 426 84 2,0200 1,9998 0,2299 60 400 284 56 2,0200 1,7636 0,1022 61 400 284 56 2,0200 1,7636 0,1022 62 500 355 70 2,0200 1,8817 0,1597 63 600 426 84 2,0200 1,9998 0,2299 64 600 426 84 2,0200 1,9998 0,2299 65 600 426 84 2,0200 1,9998 0,2299 66 400 284 56 2,0200 1,7636 0,1022 67 400 284 56 2,0200 1,7636 0,1022 68 600 426 84 2,0200 1,9998 0,2299 69 400 284 56 2,0200 1,7636 0,1022 70 400 284 56 2,0200 1,7636 0,1022 71 600 426 84 2,0200 1,9998 0,2299 72 400 284 56 2,0200 1,7636 0,1022 73 600 422 84 2,0600 2,0166 0,2299 74 600 422 84 2,0600 2,0166 0,2299 75 400 281 56 2,0600 1,7748 0,1022 76 500 352 70 2,0600 1,8957 0,1597 77 500 352 70 2,0600 1,8957 0,1597 78 500 352 70 2,0600 1,8957 0,1597 79 600 422 84 2,0600 2,0166 0,2299 80 400 281 56 2,0600 1,7748 0,1022 81 400 281 56 2,0600 1,7748 0,1022 82 500 352 70 2,0600 1,8957 0,1597 83 600 422 84 2,0600 2,0166 0,2299 84 600 422 84 2,0600 2,0166 0,2299 85 600 422 84 2,0600 2,0166 0,2299 86 400 281 56 2,0600 1,7748 0,1022 87 400 281 56 2,0600 1,7748 0,1022 88 600 422 84 2,0600 2,0166 0,2299 89 400 281 56 2,0600 1,7748 0,1022 90 400 281 56 2,0600 1,7748 0,1022 91 600 422 84 2,0600 2,0166 0,2299 92 400 281 56 2,0600 1,7748 0,1022 La figura 34 muestra la comparación de la rugosidad del Aluminio A92017 medida experimentalmente, calculada mediante Python y predicha teóricamente. La rugosidad experimental tiene grandes desviaciones, mientras que la rugosidad calculada en Python es más suave, aunque también presenta algunas variaciones. La rugosidad teórica es constantemente más baja, destacando la diferencia con los datos reales.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 56 Figura 34. Comparación de rugosidades del aluminio A92017. La figura 35 muestra la correlación lineal entre la rugosidad medida y la calculada por Python para el Aluminio A92017. Con un R² de 0,7575, se observa que el modelo de Python sigue la tendencia principal de los datos experimentales, pero no ajusta completamente en todos los casos. A medida que la rugosidad medida aumenta, también lo hace la rugosidad calculada en Python. 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 Ensayo 0,0 0,5 1,0 1,5 2,0 2,5 Rugosidad calculada en Python (μm) Comparación de rugosidades del Aluminio A92017 Rugosidad experimental UPC (μm) Rugosidad teórica (μm) Rugosidad (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 57 Regresión lineal entre rugosidad experimental y Python para el Aluminio A92017 2,5 2,0 1,5 1,0 0,5 0,0 0,0 0,5 1,0 1,5 2,0 2,5 Rugosidad experimental (μm) Datos (Experimentales vs Python) Regresión lineal R² = 0,7575 R² = 0,7575 Figura 35. Regresión lineal entre la rugosidad experimental y la estimada en Python del aluminio A92017. La figura 36 muestra que, con un MSE de 0,06799, la mayoría de los errores cuadráticos se mantienen bajos, pero se observan algunos picos elevados en ensayos como los 1, 4, 7, 12, 16, lo que indica que en esos puntos el modelo presenta desviaciones más grandes con respecto a los datos experimentales. Rugosidad Python (μm)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 64 factores reales como el desgaste de la herramienta y las vibraciones, que no se incluyen en los cálculos teóricos. Para el Aluminio A96351, el modelo de Python muestra un valor promedio de 2,01 µm, muy superior al valor teórico de 0,046 µm. La diferencia es considerable, lo que indica que la superficie del aluminio es mucho más rugosa en la práctica que lo que predice la teoría, posiblemente debido a que el material es más susceptible a deformaciones o a imperfecciones en el proceso de corte. En el caso del Aluminio 92017, el modelo de Python predice una rugosidad promedio de 1,57 µm, mientras que la teoría marca 0,18 µm. Aunque también existe una diferencia, es menos pronunciada que en el aluminio anterior, lo que podría indicar que el modelo es más preciso en este caso. Por último, el Titanio Ti-6Al-4V muestra los valores más altos. El modelo de Python predice un valor promedio de 5,08 µm, mientras que el valor teórico es de 2,69 µm. Este comportamiento confirma que el titanio es el material que genera la rugosidad más alta, tanto en la práctica como en la teoría. En resumen, el modelo de Python tiende a predecir valores de rugosidad superiores a los teóricos en todos los casos, lo que se debe probablemente a la inclusión de efectos reales del proceso que la teoría no contempla. Además, el titanio se confirma como el material que deja la superficie más rugosa. Para mejorar la precisión de los resultados, se podría haber obtenido una mayor similitud entre los valores experimentales y teóricos si los ensayos se hubieran realizado con una mayor velocidad de avance, lo que habría permitido obtener valores teóricos más altos y, por tanto, acercar más los resultados estimados.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 65 7. Trabajos futuros. En este capítulo se presentan las posibles mejoras y ampliaciones que podrían aplicarse a este estudio sobre la predicción de la rugosidad superficial en procesos de mecanizado mediante parámetros de corte e inteligencia artificial. El modelo desarrollado puede mejorarse con técnicas más avanzadas, aplicarse a otros materiales y procesos como el bruñido, integrarse en sistemas de control en tiempo real para optimizar su funcionamiento y analizar su repercusión en los costos de producción y en el impacto ambiental. Estas mejoras permitirían un mecanizado más preciso y facilitarían su aplicación en la industria. 7.1. Mejora del modelo predictivo y uso de algoritmos avanzados. El modelo desarrollado en este trabajo podría perfeccionarse mediante técnicas que permitan capturar con mayor precisión la relación entre los parámetros de corte y la rugosidad superficial obtenida tras el mecanizado. Una posible mejora sería la incorporación de redes neuronales convolucionales (CNN), diseñadas para analizar imágenes. En este contexto, permitirían examinar imágenes de las superficies mecanizadas para detectar patrones en la textura, complementando así los datos numéricos de los parámetros de corte. Esto ayudaría al modelo a aprender de la apariencia real de las superficies y mejorar la calidad de sus predicciones. Además, se podrían aplicar técnicas de reducción de datos innecesarios para optimizar el procesamiento del modelo sin comprometer la precisión de los resultados. Una opción sería el análisis de componentes principales (PCA), que identifica las variables más relevantes y descarta las menos significativas. Otra alternativa son los autoencoders, modelos diseñados para comprimir la información en una versión más compacta y luego reconstruirla, conservando únicamente los datos esenciales. En este caso, los autoencoders permitirían filtrar los parámetros de corte, eliminando información redundante y centrándose en los valores que realmente afectan la rugosidad superficial. Estas mejoras harían que el modelo se adapte mejor a distintos procesos de mecanizado y pueda aplicarse en entornos industriales con mejores resultados. 7.2. Aplicación del modelo al bruñido y otros procesos de acabado. El modelo desarrollado en este trabajo también podría ampliarse a otros procesos de mecanizado, como el bruñido, donde la rugosidad superficial no solo depende de los parámetros de corte, sino también de factores como la presión de contacto, la velocidad de avance y el tipo de abrasivo utilizado. Los datos sobre estos parámetros han sido proporcionados por la Universitat Politècnica de Catalunya (UPC) con el objetivo de adaptar el modelo a este proceso. Sin embargo, el ensayo no se ha llevado a cabo en este trabajo, por lo que su aplicación al bruñido queda como una posible línea de investigación futura. Además, una vez adaptado al bruñido, el modelo podría extenderse a otros procesos de acabado, como el rectificado o el pulido, en los que el control de la rugosidad superficial también es fundamental. Estas mejoras permitirían que el modelo tuviera un uso más amplio en la industria, contribuyendo a mejorar la calidad superficial de las piezas mecanizadas.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 66 7.3. Integración en sistemas de control en tiempo real. Otra posible mejora sería la integración del modelo en sistemas de control en tiempo real, lo que permitiría ajustar automáticamente los parámetros de corte durante el mecanizado. En lugar de trabajar con valores fijos, el sistema podría adaptarse a las condiciones del proceso en cada momento, sin necesidad de intervención manual. Para ello, se podrían utilizar sensores de vibración, temperatura y desgaste de la herramienta, que proporcionarían datos en tiempo real sobre el estado del mecanizado. Estos datos serían analizados por el modelo, permitiéndole detectar cambios en la rugosidad superficial y modificar los parámetros de corte de inmediato para mejorar el resultado. Este enfoque se alinea con el concepto de Industria 4.0, donde las máquinas pueden ajustarse solas para reducir defectos y mejorar la calidad del mecanizado. Además, ayudaría a aprovechar mejor el material y prolongar la vida útil de las herramientas de corte, optimizando el proceso de fabricación. 7.4. Análisis del impacto económico y ambiental. El uso de inteligencia artificial en la predicción de la rugosidad no solo puede mejorar la calidad del mecanizado, sino que también podría influir en los costos y en el impacto ambiental de la producción. Aunque este trabajo se ha centrado en desarrollar el modelo, es importante analizar si su aplicación en la industria ayuda a ahorrar dinero y a reducir el impacto ambiental en los procesos de mecanizado. Desde el punto de vista económico, predecir con precisión la rugosidad podría evitar defectos en las piezas, reducir el desperdicio de material y disminuir el desgaste de las herramientas de corte, lo que permitiría reducir costos de producción y minimizar el tiempo perdido en correcciones. Comparar los métodos tradicionales con el uso de inteligencia artificial serviría para determinar si este modelo realmente contribuye a hacer el proceso más rentable. Desde el lado ambiental, mejorar la selección de los parámetros de corte ayudaría a reducir el consumo de material y energía, además de disminuir el uso de lubricantes y refrigerantes industriales. Un estudio futuro podría analizar si estos cambios favorecen una producción más sostenible y cumplen con las normas ambientales actuales.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 67 Bibliografía [1]. Grupo Tecnología Mecánica. Rugosidad superficial. [2]. Reyes Carreño, J. L., & López Alzate, J. H. (2010). Factores que influyen en la rugosidad superficial en un proceso de mecanizado para el acero AISI 4140: Cilindrado. Universidad del Magdalena, Facultad de Ingeniería, Ingeniería Industrial. [3]. Pereira F., J. C., & Ruiz, R. G. (2007). Influencia de los parámetros de corte y geometría de la herramienta en la rugosidad superficial obtenida en operaciones de torneado del bronce SAE 40. Revista INGENIERÍA UC, 14(3), 77-85. Universidad de Carabobo. [4]. Boothroyd, G., & Knight, W. A. (1989). Fundamentals of Metal Machining and Machine Tools (2nd ed.). Marcel Dekker, Inc. [5]. Liang, Y. C., Lu, X., Li, W. D., & Wang, S. (2018). Cyber physical system and big data enabled energy efficient machining optimisation. Journal of Cleaner Production, 187, 46-62. [6]. Ji, W., Yin, S., & Wang, L. (2019). A big data analytics based machining optimisation approach. Journal of Intelligent Manufacturing, 30(4), 1483-1495. [7]. Li, X., Xu, J., & Zhang, C. (2017). A Data-Driven Approach Based on Deep Belief Networks for Predicting Backlash Error in Machining Centers. [8]. Clemente Rodrigálvarez, E. (2015). Influencia de parámetros de corte y vibraciones en la rugosidad superficial en procesos de torneado (Trabajo de fin de grado). Escuela Técnica Superior de Ingenieros, Universidad de Sevilla. [9]. Gonzalo Erviti Lara, A. (2015). Influencia de parámetros de corte en la rugosidad superficial en procesos de fresado (Trabajo de fin de grado). Escuela Técnica Superior de Ingenieros, Universidad de Sevilla. [10]. IES Nuestra Señora de los Remedios. (s.f.). Metrología y ensayos: Rugosidad superficial. [11]. P.C. Pandey & H.S. Shan. Modern Machining Processes. Tata McGraw-Hill. [12]. https://www.capablemachining.com/es/blog/m%C3%A9todo-de-medici%C3%B3n-de-la-rugosidadsuperficial/ [13]. García Moreno, R. (2006). Desarrollo de una metodología para la medición de la rugosidad superficial del suelo (Tesis doctoral). Universidad Politécnica de Madrid, Escuela Técnica Superior de Ingenieros Agrónomos. [14]. ISO. (2021). Geometrical product specifications (GPS) — Surface texture: Profile — Part 2: Terms, definitions and surface texture parameters (ISO 21920-2:2021). International Organization for Standardization. [15]. AENOR. (2002). Especificación geométrica de productos (GPS). Indicación de la calidad superficial en la documentación técnica de productos (UNE-EN ISO 1302:2002). Asociación Española de Normalización y Certificación. [16]. Correa, M., Ramírez, M. de J., Alique, J. R., & Rodríguez, C. A. (s.f.). Factores que afectan el acabado superficial en los procesos de mecanizado: Técnicas de análisis y modelos. Instituto de Automática Industrial (CSIC) e Instituto Tecnológico y de Estudios Superiores de Monterrey. [17]. Hebb, D. O. (1949). The organization of behavior A neuropsychological theory. Wiley. [18]. https://www.startechup.com/es/blog/machine-learning-history/
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión 68 [19]. Barón Birchenall, L. F. (2008). El juego de imitación de Turing y el pensamiento humano. [20]. Samuel, A. L. (1959). Some studies in machine learning using the game of checkers. IBM Journal of Research and Development. [21]. Samuel, A. L. (1967). Some studies in machine learning using the game of checkers. IBM Journal of Research and Development. [22]. Rosenblatt, F. (1958). The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain. Psychological Review, 65(6), 386–408. [23]. Matich, D. J. (2001). Redes neuronales: Conceptos básicos y aplicaciones. Universidad Tecnológica Nacional, Facultad Regional Rosario. [24]. https://www.ibm.com/es-es/topics/industry-4-0 [25]. https://www.sap.com/latinamerica/products/scm/industry-4-0/what-is-industry-4-0.html [26]. Gómez-Escudero, G., Fernández-De-Lucio, P., González-Barrio, H., Calleja-Ochoa, A., AyestaRementería, I., & López-de-Lacalle, L.-N. (2021). Machine Learning en el campo de la fabricación. Dyna, 96. [27]. Herrera, G., & Castillo, Y. (2021). Revisión de las aplicaciones de aprendizaje de máquinas supervisadas en la industria manufacturera. Qualitas, 21, 044-056. [28]. Manrique Rojas, E. (2020). Machine learning Análisis de lenguajes de programación y herramientas para desarrollo. Revista Ibérica de Sistemas e Tecnologías de Información, E28, 586–599. [29]. Calle García, A. J., Cevallos Basurto, N. A., Zambrano Cevillano, A. N., & Morales Ponce, V. L. (2024). Técnicas de machine learning aplicadas a la interpretación de datos de mercado. Ciencia y Desarrollo, 27(2), 218–226. [30]. González Duque, R. (2009). Python para todos. [31]. Duchesnay, E., Lofstedt, T., & Younes, F. (2021). Statistics and Machine Learning in Python [32]. https://insights.encora.com/es/blog/machile-learning-applied-to-medial-diagnosis
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 1 Anexo A. Códigos Python para torneado A.1 Acero 1. 9. import numpy as np 10. import matplotlib.pyplot as plt 11. import mplcursors 12. from sklearn.linear_model import LinearRegression 13. from sklearn.metrics import mean_squared_error, r2_score 14. from mpl_toolkits.mplot3d import Axes3D 15. 16. print(f"ENSAYO 1") 17. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 18. # Velocidad de corte, avance y Lvol 19. parametros_de_corte = np.array([[75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 20. rugosidad = np.array([2.493, 4.746, 1.544, 2.188, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 21. 22. # Paso 2: Crear el modelo de regresión lineal 23. modelo = LinearRegression() 24. modelo.fit(parametros_de_corte, rugosidad) 25. 26. # Paso 3: Realizar predicciones con los nuevos datos 27. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 28. nuevos_datos = np.array([[75.65, 0.165, 35]]) 29. rugosidad_estimada = modelo.predict(nuevos_datos) 30. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.165 y lvol 35, (deberia de dar 1.821): {rugosidad_estimada[0]}") 31. 32. # Paso 4: Ver coeficientes e intercepto 33. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 34. print(f"Intercepto: {modelo.intercept_}") 35. 36. print(f"ENSAYO 2") 37. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 38. # Velocidad de corte, avance y Lvol 39. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60],
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 2 [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 40. rugosidad = np.array([1.821, 4.746, 1.544, 2.188, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 41. 42. # Paso 2: Crear el modelo de regresión lineal 43. modelo = LinearRegression() 44. modelo.fit(parametros_de_corte, rugosidad) 45. 46. # Paso 3: Realizar predicciones con los nuevos datos 47. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 48. nuevos_datos = np.array([[75.65, 0.21, 35]]) 49. rugosidad_estimada = modelo.predict(nuevos_datos) 50. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.21 y lvol 35, (deberia de dar 2.493): {rugosidad_estimada[0]}") 51. 52. # Paso 4: Ver coeficientes e intercepto 53. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 54. print(f"Intercepto: {modelo.intercept_}") 55. 56. print(f"ENSAYO 3") 57. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 58. # Velocidad de corte, avance y Lvol 59. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 60. rugosidad = np.array([1.821, 2.493, 1.544, 2.188, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 61. 62. # Paso 2: Crear el modelo de regresión lineal 63. modelo = LinearRegression() 64. modelo.fit(parametros_de_corte, rugosidad) 65. 66. # Paso 3: Realizar predicciones con los nuevos datos 67. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 68. nuevos_datos = np.array([[75.65, 0.28, 35]]) 69. rugosidad_estimada = modelo.predict(nuevos_datos) 70. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.28 y lvol 35, (deberia de dar 4.746): {rugosidad_estimada[0]}")
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 3 71. 72. # Paso 4: Ver coeficientes e intercepto 73. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 74. print(f"Intercepto: {modelo.intercept_}") 75. 76. print(f"ENSAYO 4") 77. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 78. # Velocidad de corte, avance y Lvol 79. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 80. rugosidad = np.array([1.821, 2.493, 4.746, 2.188, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 81. 82. # Paso 2: Crear el modelo de regresión lineal 83. modelo = LinearRegression() 84. modelo.fit(parametros_de_corte, rugosidad) 85. 86. # Paso 3: Realizar predicciones con los nuevos datos 87. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 88. nuevos_datos = np.array([[75.65, 0.165, 60]]) 89. rugosidad_estimada = modelo.predict(nuevos_datos) 90. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.165 y lvol 60, (deberia de dar 1.544): {rugosidad_estimada[0]}") 91. 92. # Paso 4: Ver coeficientes e intercepto 93. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 94. print(f"Intercepto: {modelo.intercept_}") 95. 96. print(f"ENSAYO 5") 97. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 98. # Velocidad de corte, avance y Lvol 99. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 4 100. rugosidad = np.array([1.821, 2.493, 4.746, 1.544, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 101. 102. # Paso 2: Crear el modelo de regresión lineal 103. modelo = LinearRegression() 104. modelo.fit(parametros_de_corte, rugosidad) 105. 106. # Paso 3: Realizar predicciones con los nuevos datos 107. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 108. nuevos_datos = np.array([[75.65, 0.21, 60]]) 109. rugosidad_estimada = modelo.predict(nuevos_datos) 110. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.21 y lvol 60, (deberia de dar 2.188): {rugosidad_estimada[0]}") 111. 112. # Paso 4: Ver coeficientes e intercepto 113. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 114. print(f"Intercepto: {modelo.intercept_}") 115. 116. print(f"ENSAYO 6") 117. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 118. # Velocidad de corte, avance y Lvol 119. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 120. rugosidad = np.array([1.821, 2.493, 4.746, 1.544, 2.188, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 121. 122. # Paso 2: Crear el modelo de regresión lineal 123. modelo = LinearRegression() 124. modelo.fit(parametros_de_corte, rugosidad) 125. 126. # Paso 3: Realizar predicciones con los nuevos datos 127. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 128. nuevos_datos = np.array([[75.65, 0.28, 60]]) 129. rugosidad_estimada = modelo.predict(nuevos_datos) 130. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.28 y lvol 60, (deberia de dar 3.976): {rugosidad_estimada[0]}") 131. 132. # Paso 4: Ver coeficientes e intercepto 133. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 5 134. print(f"Intercepto: {modelo.intercept_}") 135. 136. print(f"ENSAYO 7") 137. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 138. # Velocidad de corte, avance y Lvol 139. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 140. rugosidad = np.array([1.821, 2.493, 4.746, 1.544, 2.188, 3.976, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 141. 142. # Paso 2: Crear el modelo de regresión lineal 143. modelo = LinearRegression() 144. modelo.fit(parametros_de_corte, rugosidad) 145. 146. # Paso 3: Realizar predicciones con los nuevos datos 147. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 148. nuevos_datos = np.array([[123.15, 0.165, 35]]) 149. rugosidad_estimada = modelo.predict(nuevos_datos) 150. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.165 y lvol 35, (deberia de dar 1.764): {rugosidad_estimada[0]}") 151. 152. # Paso 4: Ver coeficientes e intercepto 153. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 154. print(f"Intercepto: {modelo.intercept_}") 155. 156. print(f"ENSAYO 8") 157. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 158. # Velocidad de corte, avance y Lvol 159. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 160. rugosidad = np.array([1.821, 2.493, 4.746, 1.544, 2.188, 3.976, 1.764, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700, 3.851]) # Variable dependiente (rugosidad) 161.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 12 349. rugosidad_estimada = modelo.predict(nuevos_datos) 350. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.21 y lvol 60, (deberia de dar 1.700): {rugosidad_estimada[0]}") 351. 352. # Paso 4: Ver coeficientes e intercepto 353. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 354. print(f"Intercepto: {modelo.intercept_}") 355. 356. print(f"ENSAYO 9A") 357. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 358. # Velocidad de corte, avance y Lvol 359. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60]]) # Vc, avance, Lvoladizo 360. rugosidad = np.array([1.821, 2.493, 4.746, 1.544, 2.188, 3.976, 1.764, 2.078, 4.043, 1.872, 2.012, 4.847, 1.605, 1.956, 3.902, 1.463, 1.700]) # Variable dependiente (rugosidad) 361. 362. # Paso 2: Crear el modelo de regresión lineal 363. modelo = LinearRegression() 364. modelo.fit(parametros_de_corte, rugosidad) 365. 366. # Paso 3: Realizar predicciones con los nuevos datos 367. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 368. nuevos_datos = np.array([[175.93, 0.28, 60]]) 369. rugosidad_estimada = modelo.predict(nuevos_datos) 370. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.28 y lvol 60, (deberia de dar 3.851): {rugosidad_estimada[0]}") 371. 372. # Paso 4: Ver coeficientes e intercepto 373. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 374. print(f"Intercepto: {modelo.intercept_}") 375.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 13 A.2 Acero 2. 9. import numpy as np 10. import matplotlib.pyplot as plt 11. import mplcursors 12. from sklearn.linear_model import LinearRegression 13. from sklearn.metrics import mean_squared_error, r2_score 14. from mpl_toolkits.mplot3d import Axes3D 15. 16. print(f"ENSAYO 1B") 17. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 18. # Velocidad de corte, avance y Lvol 19. parametros_de_corte = np.array([[75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 20. rugosidad = np.array([2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 21. 22. # Paso 2: Crear el modelo de regresión lineal 23. modelo = LinearRegression() 24. modelo.fit(parametros_de_corte, rugosidad) 25. 26. # Paso 3: Realizar predicciones con los nuevos datos 27. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 28. nuevos_datos = np.array([[75.65, 0.165, 35]]) 29. rugosidad_estimada = modelo.predict(nuevos_datos) 30. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.165 y lvol 35, (deberia de dar 1.293): {rugosidad_estimada[0]}") 31. 32. # Paso 4: Ver coeficientes e intercepto 33. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 34. print(f"Intercepto: {modelo.intercept_}") 35. 36. print(f"ENSAYO 2B") 37. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 38. # Velocidad de corte, avance y Lvol 39. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 14 40. rugosidad = np.array([1.293, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 41. 42. # Paso 2: Crear el modelo de regresión lineal 43. modelo = LinearRegression() 44. modelo.fit(parametros_de_corte, rugosidad) 45. 46. # Paso 3: Realizar predicciones con los nuevos datos 47. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 48. nuevos_datos = np.array([[75.65, 0.21, 35]]) 49. rugosidad_estimada = modelo.predict(nuevos_datos) 50. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.21 y lvol 35, (deberia de dar 2.007): {rugosidad_estimada[0]}") 51. 52. # Paso 4: Ver coeficientes e intercepto 53. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 54. print(f"Intercepto: {modelo.intercept_}") 55. 56. print(f"ENSAYO 3B") 57. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 58. # Velocidad de corte, avance y Lvol 59. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 60. rugosidad = np.array([1.293, 2.007, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 61. 62. # Paso 2: Crear el modelo de regresión lineal 63. modelo = LinearRegression() 64. modelo.fit(parametros_de_corte, rugosidad) 65. 66. # Paso 3: Realizar predicciones con los nuevos datos 67. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 68. nuevos_datos = np.array([[75.65, 0.28, 35]]) 69. rugosidad_estimada = modelo.predict(nuevos_datos) 70. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.28 y lvol 35, (deberia de dar 3.705): {rugosidad_estimada[0]}") 71. 72. # Paso 4: Ver coeficientes e intercepto
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 15 73. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 74. print(f"Intercepto: {modelo.intercept_}") 75. 76. print(f"ENSAYO 4B") 77. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 78. # Velocidad de corte, avance y Lvol 79. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 80. rugosidad = np.array([1.293, 2.007, 3.705, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 81. 82. # Paso 2: Crear el modelo de regresión lineal 83. modelo = LinearRegression() 84. modelo.fit(parametros_de_corte, rugosidad) 85. 86. # Paso 3: Realizar predicciones con los nuevos datos 87. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 88. nuevos_datos = np.array([[75.65, 0.165, 60]]) 89. rugosidad_estimada = modelo.predict(nuevos_datos) 90. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.165 y lvol 60, (deberia de dar 1.317): {rugosidad_estimada[0]}") 91. 92. # Paso 4: Ver coeficientes e intercepto 93. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 94. print(f"Intercepto: {modelo.intercept_}") 95. 96. print(f"ENSAYO 5B") 97. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 98. # Velocidad de corte, avance y Lvol 99. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 100. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 101. 102. # Paso 2: Crear el modelo de regresión lineal
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 16 103. modelo = LinearRegression() 104. modelo.fit(parametros_de_corte, rugosidad) 105. 106. # Paso 3: Realizar predicciones con los nuevos datos 107. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 108. nuevos_datos = np.array([[75.65, 0.21, 60]]) 109. rugosidad_estimada = modelo.predict(nuevos_datos) 110. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.21 y lvol 60, (deberia de dar 1.902): {rugosidad_estimada[0]}") 111. 112. # Paso 4: Ver coeficientes e intercepto 113. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 114. print(f"Intercepto: {modelo.intercept_}") 115. 116. print(f"ENSAYO 6B") 117. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 118. # Velocidad de corte, avance y Lvol 119. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 120. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 121. 122. # Paso 2: Crear el modelo de regresión lineal 123. modelo = LinearRegression() 124. modelo.fit(parametros_de_corte, rugosidad) 125. 126. # Paso 3: Realizar predicciones con los nuevos datos 127. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 128. nuevos_datos = np.array([[75.65, 0.28, 60]]) 129. rugosidad_estimada = modelo.predict(nuevos_datos) 130. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.28 y lvol 60, (deberia de dar 3.576): {rugosidad_estimada[0]}") 131. 132. # Paso 4: Ver coeficientes e intercepto 133. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 134. print(f"Intercepto: {modelo.intercept_}") 135. 136. print(f"ENSAYO 7B")
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 17 137. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 138. # Velocidad de corte, avance y Lvol 139. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 140. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 141. 142. # Paso 2: Crear el modelo de regresión lineal 143. modelo = LinearRegression() 144. modelo.fit(parametros_de_corte, rugosidad) 145. 146. # Paso 3: Realizar predicciones con los nuevos datos 147. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 148. nuevos_datos = np.array([[123.15, 0.165, 35]]) 149. rugosidad_estimada = modelo.predict(nuevos_datos) 150. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.165 y lvol 35, (deberia de dar 1.439): {rugosidad_estimada[0]}") 151. 152. # Paso 4: Ver coeficientes e intercepto 153. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 154. print(f"Intercepto: {modelo.intercept_}") 155. 156. print(f"ENSAYO 8B") 157. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 158. # Velocidad de corte, avance y Lvol 159. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 160. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 3.587, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 161. 162. # Paso 2: Crear el modelo de regresión lineal 163. modelo = LinearRegression() 164. modelo.fit(parametros_de_corte, rugosidad) 165. 166. # Paso 3: Realizar predicciones con los nuevos datos
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 18 167. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 168. nuevos_datos = np.array([[123.15, 0.21, 35]]) 169. rugosidad_estimada = modelo.predict(nuevos_datos) 170. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.21 y lvol 35, (deberia de dar 1.936): {rugosidad_estimada[0]}") 171. 172. # Paso 4: Ver coeficientes e intercepto 173. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 174. print(f"Intercepto: {modelo.intercept_}") 175. 176. print(f"ENSAYO 9B") 177. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 178. # Velocidad de corte, avance y Lvol 179. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 180. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 1.614, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 181. 182. # Paso 2: Crear el modelo de regresión lineal 183. modelo = LinearRegression() 184. modelo.fit(parametros_de_corte, rugosidad) 185. 186. # Paso 3: Realizar predicciones con los nuevos datos 187. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 188. nuevos_datos = np.array([[123.15, 0.28, 35]]) 189. rugosidad_estimada = modelo.predict(nuevos_datos) 190. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.28 y lvol 35, (deberia de dar 3.587): {rugosidad_estimada[0]}") 191. 192. # Paso 4: Ver coeficientes e intercepto 193. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 194. print(f"Intercepto: {modelo.intercept_}") 195. 196. print(f"ENSAYO 1C") 197. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 198. # Velocidad de corte, avance y Lvol 199. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60],
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 19 [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 200. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.680, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 201. 202. # Paso 2: Crear el modelo de regresión lineal 203. modelo = LinearRegression() 204. modelo.fit(parametros_de_corte, rugosidad) 205. 206. # Paso 3: Realizar predicciones con los nuevos datos 207. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 208. nuevos_datos = np.array([[123.15, 0.165, 60]]) 209. rugosidad_estimada = modelo.predict(nuevos_datos) 210. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.165 y lvol 60, (deberia de dar 1.614): {rugosidad_estimada[0]}") 211. 212. # Paso 4: Ver coeficientes e intercepto 213. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 214. print(f"Intercepto: {modelo.intercept_}") 215. 216. print(f"ENSAYO 2C") 217. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 218. # Velocidad de corte, avance y Lvol 219. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 220. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 3.814, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 221. 222. # Paso 2: Crear el modelo de regresión lineal 223. modelo = LinearRegression() 224. modelo.fit(parametros_de_corte, rugosidad) 225. 226. # Paso 3: Realizar predicciones con los nuevos datos 227. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 228. nuevos_datos = np.array([[123.15, 0.21, 60]]) 229. rugosidad_estimada = modelo.predict(nuevos_datos)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 20 230. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.21 y lvol 60, (deberia de dar 1.680): {rugosidad_estimada[0]}") 231. 232. # Paso 4: Ver coeficientes e intercepto 233. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 234. print(f"Intercepto: {modelo.intercept_}") 235. 236. print(f"ENSAYO 3C") 237. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 238. # Velocidad de corte, avance y Lvol 239. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 240. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 1.594, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 241. 242. # Paso 2: Crear el modelo de regresión lineal 243. modelo = LinearRegression() 244. modelo.fit(parametros_de_corte, rugosidad) 245. 246. # Paso 3: Realizar predicciones con los nuevos datos 247. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 248. nuevos_datos = np.array([[123.15, 0.28, 60]]) 249. rugosidad_estimada = modelo.predict(nuevos_datos) 250. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.28 y lvol 60, (deberia de dar 3.814): {rugosidad_estimada[0]}") 251. 252. # Paso 4: Ver coeficientes e intercepto 253. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 254. print(f"Intercepto: {modelo.intercept_}") 255. 256. print(f"ENSAYO 4C") 257. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 258. # Velocidad de corte, avance y Lvol 259. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.21, 35], [175.93, 0.28,
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 21 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 260. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.687, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 261. 262. # Paso 2: Crear el modelo de regresión lineal 263. modelo = LinearRegression() 264. modelo.fit(parametros_de_corte, rugosidad) 265. 266. # Paso 3: Realizar predicciones con los nuevos datos 267. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 268. nuevos_datos = np.array([[175.93, 0.165, 35]]) 269. rugosidad_estimada = modelo.predict(nuevos_datos) 270. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.165 y lvol 35, (deberia de dar 1.594): {rugosidad_estimada[0]}") 271. 272. # Paso 4: Ver coeficientes e intercepto 273. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 274. print(f"Intercepto: {modelo.intercept_}") 275. 276. print(f"ENSAYO 5C") 277. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 278. # Velocidad de corte, avance y Lvol 279. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [75.65, 0.165, 60], [75.65, 0.21, 60], [75.65, 0.28, 60], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [123.15, 0.165, 60], [123.15, 0.21, 60], [123.15, 0.28, 60], [175.93, 0.165, 35], [175.93, 0.28, 35], [175.93, 0.165, 60], [175.93, 0.21, 60], [175.93, 0.28, 60]]) # Vc, avance, Lvoladizo 280. rugosidad = np.array([1.293, 2.007, 3.705, 1.317, 1.902, 3.576, 1.439, 1.936, 3.587, 1.614, 1.680, 3.814, 1.594, 3.509, 1.563, 1.629, 3.669]) # Variable dependiente (rugosidad) 281. 282. # Paso 2: Crear el modelo de regresión lineal 283. modelo = LinearRegression() 284. modelo.fit(parametros_de_corte, rugosidad) 285. 286. # Paso 3: Realizar predicciones con los nuevos datos 287. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 288. nuevos_datos = np.array([[175.93, 0.21, 35]]) 289. rugosidad_estimada = modelo.predict(nuevos_datos) 290. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.21 y lvol 35, (deberia de dar 1.687): {rugosidad_estimada[0]}") 291.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 28 124. modelo.fit(parametros_de_corte, rugosidad) 125. 126. # Paso 3: Realizar predicciones con los nuevos datos 127. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 128. nuevos_datos = np.array([[123.15, 0.28, 35]]) 129. rugosidad_estimada = modelo.predict(nuevos_datos) 130. print(f"Rugosidad estimada para velocidad de corte 123.14, avance 0.28 y lvol 35, (deberia de dar 6.3037): {rugosidad_estimada[0]}") 131. 132. # Paso 4: Ver coeficientes e intercepto 133. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 134. print(f"Intercepto: {modelo.intercept_}") 135. 136. print(f"ENSAYO 7D") 137. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 138. # Velocidad de corte, avance y Lvol 139. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 0.35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 140. rugosidad = np.array([3.9997, 5.1047, 6.0470, 4.2233, 5.6267, 6.3037, 2.5000, 4.4970]) # Variable dependiente (rugosidad) 141. 142. # Paso 2: Crear el modelo de regresión lineal 143. modelo = LinearRegression() 144. modelo.fit(parametros_de_corte, rugosidad) 145. 146. # Paso 3: Realizar predicciones con los nuevos datos 147. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 148. nuevos_datos = np.array([[175.93, 0.165, 35]]) 149. rugosidad_estimada = modelo.predict(nuevos_datos) 150. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.165 y lvol 35, (deberia de dar 3.3480): {rugosidad_estimada[0]}") 151. 152. # Paso 4: Ver coeficientes e intercepto 153. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 154. print(f"Intercepto: {modelo.intercept_}") 155. 156. print(f"ENSAYO 8D") 157. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 158. # Velocidad de corte, avance y Lvol 159. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 0.35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 160. rugosidad = np.array([3.9997, 5.1047, 6.0470, 4.2233, 5.6267, 6.3037, 3.3480, 4.4970]) # Variable dependiente (rugosidad)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 29 161. 162. # Paso 2: Crear el modelo de regresión lineal 163. modelo = LinearRegression() 164. modelo.fit(parametros_de_corte, rugosidad) 165. 166. # Paso 3: Realizar predicciones con los nuevos datos 167. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 168. nuevos_datos = np.array([[175.93, 0.21, 35]]) 169. rugosidad_estimada = modelo.predict(nuevos_datos) 170. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.21 y lvol 35, (deberia de dar 2.5000): {rugosidad_estimada[0]}") 171. 172. # Paso 4: Ver coeficientes e intercepto 173. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 174. print(f"Intercepto: {modelo.intercept_}") 175. 176. print(f"ENSAYO 9D") 177. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 178. # Velocidad de corte, avance y Lvol 179. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 0.35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35]]) # Vc, avance, Lvoladizo 180. rugosidad = np.array([3.9997, 5.1047, 6.0470, 4.2233, 5.6267, 6.3037, 3.3480, 2.5000]) # Variable dependiente (rugosidad) 181. 182. # Paso 2: Crear el modelo de regresión lineal 183. modelo = LinearRegression() 184. modelo.fit(parametros_de_corte, rugosidad) 185. 186. # Paso 3: Realizar predicciones con los nuevos datos 187. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 188. nuevos_datos = np.array([[175.93, 0.28, 35]]) 189. rugosidad_estimada = modelo.predict(nuevos_datos) 190. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.28 y lvol 35, (deberia de dar 4.4970): {rugosidad_estimada[0]}") 191. 192. # Paso 4: Ver coeficientes e intercepto 193. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 194. print(f"Intercepto: {modelo.intercept_}") 195.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 30 A-4 Acero Inoxidable. 10. import numpy as np 11. import matplotlib.pyplot as plt 12. import mplcursors 13. from sklearn.linear_model import LinearRegression 14. from sklearn.metrics import mean_squared_error, r2_score 15. from mpl_toolkits.mplot3d import Axes3D 16. 17. print(f"ENSAYO 1E") 18. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 19. # Velocidad de corte, avance y Lvol 20. parametros_de_corte = np.array([[75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 21. rugosidad = np.array([2.7137, 5.3550, 2.6053, 3.8073, 5.5610, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 22. 23. # Paso 2: Crear el modelo de regresión lineal 24. modelo = LinearRegression() 25. modelo.fit(parametros_de_corte, rugosidad) 26. 27. # Paso 3: Realizar predicciones con los nuevos datos 28. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 29. nuevos_datos = np.array([[75.65, 0.165, 35]]) 30. rugosidad_estimada = modelo.predict(nuevos_datos) 31. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.165 y lvol 35, (deberia de dar 2.7753): {rugosidad_estimada[0]}") 32. 33. # Paso 4: Ver coeficientes e intercepto 34. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 35. print(f"Intercepto: {modelo.intercept_}") 36. 37. print(f"ENSAYO 2E") 38. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 39. # Velocidad de corte, avance y Lvol 40. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 41. rugosidad = np.array([2.7753, 5.3550, 2.6053, 3.8073, 5.5610, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 42. 43. # Paso 2: Crear el modelo de regresión lineal 44. modelo = LinearRegression() 45. modelo.fit(parametros_de_corte, rugosidad) 46. 47. # Paso 3: Realizar predicciones con los nuevos datos
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 31 48. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 49. nuevos_datos = np.array([[75.65, 0.21, 35]]) 50. rugosidad_estimada = modelo.predict(nuevos_datos) 51. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.21 y lvol 35, (deberia de dar 2.7137): {rugosidad_estimada[0]}") 52. 53. # Paso 4: Ver coeficientes e intercepto 54. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 55. print(f"Intercepto: {modelo.intercept_}") 56. 57. print(f"ENSAYO 3E") 58. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 59. # Velocidad de corte, avance y Lvol 60. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 61. rugosidad = np.array([2.7753, 2.7137, 2.6053, 3.8073, 5.5610, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 62. 63. # Paso 2: Crear el modelo de regresión lineal 64. modelo = LinearRegression() 65. modelo.fit(parametros_de_corte, rugosidad) 66. 67. # Paso 3: Realizar predicciones con los nuevos datos 68. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 69. nuevos_datos = np.array([[75.65, 0.28, 35]]) 70. rugosidad_estimada = modelo.predict(nuevos_datos) 71. print(f"Rugosidad estimada para velocidad de corte 75.65, avance 0.28 y lvol 35, (deberia de dar 5.3550): {rugosidad_estimada[0]}") 72. 73. # Paso 4: Ver coeficientes e intercepto 74. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 75. print(f"Intercepto: {modelo.intercept_}") 76. 77. print(f"ENSAYO 4E") 78. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 79. # Velocidad de corte, avance y Lvol 80. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 81. rugosidad = np.array([2.7753, 2.7137, 5.3550, 3.8073, 5.5610, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 82. 83. # Paso 2: Crear el modelo de regresión lineal 84. modelo = LinearRegression() 85. modelo.fit(parametros_de_corte, rugosidad) 86.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 32 87. # Paso 3: Realizar predicciones con los nuevos datos 88. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 89. nuevos_datos = np.array([[123.15, 0.165, 35]]) 90. rugosidad_estimada = modelo.predict(nuevos_datos) 91. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.165 y lvol 35, (deberia de dar 2.6053): {rugosidad_estimada[0]}") 92. 93. # Paso 4: Ver coeficientes e intercepto 94. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 95. print(f"Intercepto: {modelo.intercept_}") 96. 97. print(f"ENSAYO 5E") 98. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 99. # Velocidad de corte, avance y Lvol 100. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 101. rugosidad = np.array([2.7753, 2.7137, 5.3550, 2.6053, 5.5610, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 102. 103. # Paso 2: Crear el modelo de regresión lineal 104. modelo = LinearRegression() 105. modelo.fit(parametros_de_corte, rugosidad) 106. 107. # Paso 3: Realizar predicciones con los nuevos datos 108. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 109. nuevos_datos = np.array([[123.15, 0.21, 35]]) 110. rugosidad_estimada = modelo.predict(nuevos_datos) 111. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.21 y lvol 35, (deberia de dar 3.8073): {rugosidad_estimada[0]}") 112. 113. # Paso 4: Ver coeficientes e intercepto 114. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 115. print(f"Intercepto: {modelo.intercept_}") 116. 117. print(f"ENSAYO 6E") 118. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 119. # Velocidad de corte, avance y Lvol 120. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [175.93, 0.165, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 121. rugosidad = np.array([2.7753, 2.7137, 5.3550, 2.6053, 3.8073, 1.9773, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 122. 123. # Paso 2: Crear el modelo de regresión lineal 124. modelo = LinearRegression()
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 33 125. modelo.fit(parametros_de_corte, rugosidad) 126. 127. # Paso 3: Realizar predicciones con los nuevos datos 128. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 129. nuevos_datos = np.array([[123.15, 0.28, 35]]) 130. rugosidad_estimada = modelo.predict(nuevos_datos) 131. print(f"Rugosidad estimada para velocidad de corte 123.15, avance 0.28 y lvol 35, (deberia de dar 5.5610): {rugosidad_estimada[0]}") 132. 133. # Paso 4: Ver coeficientes e intercepto 134. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 135. print(f"Intercepto: {modelo.intercept_}") 136. 137. print(f"ENSAYO 7E") 138. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 139. # Velocidad de corte, avance y Lvol 140. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.21, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 141. rugosidad = np.array([2.7753, 2.7137, 5.3550, 2.6053, 3.8073, 5.5610, 3.3280, 5.6200]) # Variable dependiente (rugosidad) 142. 143. # Paso 2: Crear el modelo de regresión lineal 144. modelo = LinearRegression() 145. modelo.fit(parametros_de_corte, rugosidad) 146. 147. # Paso 3: Realizar predicciones con los nuevos datos 148. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 149. nuevos_datos = np.array([[175.93, 0.165, 35]]) 150. rugosidad_estimada = modelo.predict(nuevos_datos) 151. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.165 y lvol 35, (deberia de dar 1.9773): {rugosidad_estimada[0]}") 152. 153. # Paso 4: Ver coeficientes e intercepto 154. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 155. print(f"Intercepto: {modelo.intercept_}") 156. 157. print(f"ENSAYO 8E") 158. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 159. # Velocidad de corte, avance y Lvol 160. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.28, 35]]) # Vc, avance, Lvoladizo 161. rugosidad = np.array([2.7753, 2.7137, 5.3550, 2.6053, 3.8073, 5.5610, 1.9773, 5.6200]) # Variable dependiente (rugosidad)
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión A - 34 162. 163. # Paso 2: Crear el modelo de regresión lineal 164. modelo = LinearRegression() 165. modelo.fit(parametros_de_corte, rugosidad) 166. 167. # Paso 3: Realizar predicciones con los nuevos datos 168. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 169. nuevos_datos = np.array([[175.93, 0.21, 35]]) 170. rugosidad_estimada = modelo.predict(nuevos_datos) 171. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.21 y lvol 35, (deberia de dar 3.3280): {rugosidad_estimada[0]}") 172. 173. # Paso 4: Ver coeficientes e intercepto 174. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 175. print(f"Intercepto: {modelo.intercept_}") 176. 177. print(f"ENSAYO 9E") 178. # Paso 1: Definir los datos con la tercera variable (profundidad de corte) 179. # Velocidad de corte, avance y Lvol 180. parametros_de_corte = np.array([[75.65, 0.165, 35], [75.65, 0.21, 35], [75.65, 0.28, 35], [123.15, 0.165, 35], [123.15, 0.21, 35], [123.15, 0.28, 35], [175.93, 0.165, 35], [175.93, 0.21, 35]]) # Vc, avance, Lvoladizo 181. rugosidad = np.array([2.7753, 2.7137, 5.3550, 2.6053, 3.8073, 5.5610, 1.9773, 3.3280]) # Variable dependiente (rugosidad) 182. 183. # Paso 2: Crear el modelo de regresión lineal 184. modelo = LinearRegression() 185. modelo.fit(parametros_de_corte, rugosidad) 186. 187. # Paso 3: Realizar predicciones con los nuevos datos 188. # Nuevos datos para la predicción: velocidad de corte, avance y profundidad de corte 189. nuevos_datos = np.array([[175.93, 0.28, 35]]) 190. rugosidad_estimada = modelo.predict(nuevos_datos) 191. print(f"Rugosidad estimada para velocidad de corte 175.93, avance 0.28 y lvol 35, (deberia de dar 5.6200): {rugosidad_estimada[0]}") 192. 193. # Paso 4: Ver coeficientes e intercepto 194. print(f"Coeficientes: {modelo.coef_}") # Pendientes para cada variable 195. print(f"Intercepto: {modelo.intercept_}") 196.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión B - 1 Anexo B. Códigos Python para fresado B.1 Acero AISI 1031. 9. import numpy as np 10. import pandas as pd 11. from sklearn.linear_model import LinearRegression 12. 13. # Cargar los datos desde el archivo Excel 14. df = pd.read_excel('C:/Users/Tester/Desktop/TFG-AIDA/Fresado/Acero AISI 1038.xlsx', s h ee t _ n a m e = ' H o j a 1 ' ) 15. 16. # Restablecer el índice del DataFrame para asegurar que la numeración comience desde 0 17. df.reset_index(drop=True, inplace=True) 18. 19. # Definir los parámetros de corte (fr, N rpm, Diámetro mm) para todos los ensayos 20. parametros_de_corte = df[['fr ( mm / m i n ) ' , 'N r p m ' , ' D i á m e t r o mm ' ]]. va l u es # Convertimos a numpy array 21. 22. # Definir la variable dependiente (Ra en mm) para todos los ensayos 23. rugosidad = df['Ra ( mm ) ' ] # Incluyendo todos los ensayos 24. 25. # Crear el modelo de regresión lineal 26. modelo = LinearRegression() 27. modelo.fit(parametros_de_corte, rugosidad) 28. 29. # Lista para almacenar las rugosidades estimadas 30. rugosidades_estimadas = [] 31. 32. # Realizar la predicción para todos los ensayos y guardar los resultados 33. for i, params in enumerate(parametros_de_corte): 34. rugosidad_estimada = modelo.predict([params]) 35. rugosidades_estimadas.append(rugosidad_estimada[0]) # Guardamos la predicción 36. 37. # Imprimir los resultados para cada ensayo 38. print(f"ENSAYO {i+1}") 39. print(f"Parámetros de corte: Velocidad de avance: {params[0]}, N rpm: {params[1]}, Diámetro: {params[2]}") 40. print(f"Rugosidad estimada para Ensayo {i+1}: {rugosidad_estimada[0]}") 41. print() 42. 43. # Crear un DataFrame con los resultados de las rugosidades estimadas 44. df_resultados = pd.DataFrame(rugosidades_estimadas, c o l u m n s = [ ' Rugo s i d a d Estimada ( mm ) ' ]) 45.
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión B - 2 9. import numpy as np 10. import pandas as pd 11. from sklearn.linear_model import LinearRegression 12. 13. # Cargar los datos desde el archivo Excel 14. df = pd.read_excel('C:/Users/Tester/Desktop/TFG-AIDA/Fresado/Al A96351.xlsx', s h ee t _ n a m e = ' H o j a 1 ' ) 15. 16. # Restablecer el índice del DataFrame para asegurar que la numeración comience desde 0 17. df.reset_index(drop=True, inplace=True) 18. 19. # Definir los parámetros de corte (fr, N rpm, Diámetro mm) para todos los ensayos 20. parametros_de_corte = df[['fr ( mm / m i n ) ' , 'N r p m ' , ' D i á m e t r o mm ' ]]. va l u es # Convertimos a numpy array 21. 22. # Definir la variable dependiente (Ra en mm) para todos los ensayos 23. rugosidad = df['Ra ( mm ) ' ] # Incluyendo todos los ensayos 24. 25. # Crear el modelo de regresión lineal 26. modelo = LinearRegression() 27. modelo.fit(parametros_de_corte, rugosidad) 28. 29. # Lista para almacenar las rugosidades estimadas 30. rugosidades_estimadas = [] 31. 32. # Realizar la predicción para todos los ensayos y guardar los resultados 33. for i, params in enumerate(parametros_de_corte): 34. rugosidad_estimada = modelo.predict([params]) 35. rugosidades_estimadas.append(rugosidad_estimada[0]) # Guardamos la predicción 36. 37. # Imprimir los resultados para cada ensayo 38. print(f"ENSAYO {i+1}") 39. print(f"Parámetros de corte: Velocidad de avance: {params[0]}, N rpm: {params[1]}, Diámetro: {params[2]}") 40. print(f"Rugosidad estimada para Ensayo {i+1}: {rugosidad_estimada[0]}") B.2 Aluminio A96351. AIDA/Fresado/Rugosidades_Estimadas_Acero.xlsx' print(f"Archivo con las rugosidades estimadas guardado como: {output_file}")
Determinación de la rugosidad superficial en procesos de torneado y fresado mediante modelos de regresión B - 3 9. import numpy as np 10. import pandas as pd 11. from sklearn.linear_model import LinearRegression 12. 13. # Cargar los datos desde el archivo Excel 14. df = pd.read_excel('C:/Users/Tester/Desktop/TFG-AIDA/Fresado/Al A92017.xlsx', s h ee t _ n a m e = ' H o j a 1 ' ) 15. 16. # Definir los parámetros de corte (fr, N rpm, Diámetro mm) para todos los ensayos 17. parametros_de_corte = df[['fr ( mm / m i n ) ' , 'N r p m ' , ' D i á m e t r o mm ' ]] # Incluyendo todos los ensayos 18. 19. # Definir la variable dependiente (Ra en mm) para todos los ensayos 20. rugosidad = df['Ra ( mm ) ' ] # Incluyendo todos los ensayos 21. 22. # Crear el modelo de regresión lineal 23. modelo = LinearRegression() 24. modelo.fit(parametros_de_corte, rugosidad) 25. 26. # Realizar la predicción para todos los ensayos 27. for i, params in enumerate(parametros_de_corte.values): 28. rugosidad_estimada = modelo.predict([params]) 29. print(f"ENSAYO {i+1}") 30. print(f"Parámetros de corte: Velocidad de avance: {params[0]}, N rpm: {params[1]}, Diámetro: {params[2]}") 31. print(f"Rugosidad estimada para Ensayo {i+1}: {rugosidad_estimada[0]}") 32. print(f"Coeficientes: {modelo.coef_}") 33. print(f"Intercepto: {modelo.intercept_}") 34. print() 35. B.3 Aluminio A92017. ss s s s s s s