https://github.com/adrianguel/synergesticcontrol

https://github.com/adrianguel/synergesticcontrol

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.3%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: AdrianGuel
  • Language: Python
  • Default Branch: main
  • Size: 10.7 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 10 months ago · Last pushed 10 months ago
Metadata Files
Readme

README.md

SynergesticControl

Este repositorio forma parte del curso Control Sinérgico disponible en: https://sites.google.com/view/elingedecontrol/cursos-y-talleres/control-sin%C3%A9rgico?authuser=0

La automatización es una de las áreas de la ingeniería moderna con mayor impacto en nuestras vidas, y su avance parece no tener límites. Aunque a primera vista pueda parecer un tema complejo, en este curso te guiaremos paso a paso para que desarrolles un proyecto completo de ingeniería de control, utilizando una metodología que llamamos control sinérgico.

El control sinérgico es una metodología que combina herramientas de análisis geométrico y métodos de cómputo suave para la optimización de modelos y controladores. Así, mientras la teoría de control nos proporciona técnicas para analizar la estabilidad de los sistemas, las metaheurísticas nos permiten refinar los controladores estabilizantes para alcanzar un mejor desempeño.

Para implementar esta metodología, durante el taller exploraremos conceptos fundamentales como la función de transferencia, los controladores PID y los sistemas en lazo cerrado. Posteriormente, abordaremos temas más especializados como la identificación de sistemas, el análisis de estabilidad mediante métodos geométricos, y el diseño de controladores utilizando algoritmos metaheurísticos.

Lo mejor de todo es que las ideas y técnicas que aprenderás aquí tienen aplicación en múltiples áreas de la ingeniería siempre que exista un problema de regulación: motores, convertidores, bioreactores, robots, drones, baterías, entre muchos otros.

A lo largo del taller utilizamos el lenguaje de programación Python para realizar todos nuestros análisis.

Características

Instalación y Configuración

Este proyecto utiliza Poetry para la gestión de dependencias. Asegúrate de tener Poetry instalado en tu sistema.

Prerrequisitos

  • Python 3.11 o superior
  • Poetry (para gestión de dependencias)

Instalación

  1. Clona el repositorio: bash git clone https://github.com/AdrianGuel/SynergesticControl.git cd SynergesticControl

  2. Instala las dependencias usando Poetry: bash poetry install

  3. Activa el entorno virtual: bash poetry shell

Uso

Ejecutando el Ejemplo

Para ver el ajuste por mínimos cuadrados en acción:

bash poetry run python sysIdent/leastsquares.py

Esto: 1. Generará datos lineales sintéticos con ruido 2. Ajustará modelos lineales y polinomiales cúbicos 3. Mostrará visualizaciones interactivas de Plotly que muestran: - Puntos de datos originales vs. curvas ajustadas - Gráficos de residuos para validación del modelo

Usando como Módulo

Puedes importar y usar las funciones en tus propios scripts:

```python from sysIdent.leastsquares import solveleastsquares, linearbasis, polynomialbasis, visualizefitplotly import numpy as np

Tus datos

X = np.array([1, 2, 3, 4, 5]) Y = np.array([2.1, 4.2, 5.8, 8.1, 10.2])

Ajustar un modelo lineal

theta, Yhat, residuals = solveleastsquares(X, Y, linearbasis()) print("Parámetros del ajuste lineal:", theta)

Visualizar los resultados

fig = visualizefitplotly(X, Y, linear_basis(), theta, title="Mi Ajuste Lineal") fig.show() ```

Desarrollo

Agregando Dependencias

Para agregar nuevas dependencias:

bash poetry add nombre_paquete

Para dependencias de desarrollo:

bash poetry add --group dev nombre_paquete

Estructura del Proyecto

SynergesticControl/ ├── pyproject.toml # Configuración de Poetry y dependencias ├── poetry.lock # Versiones de dependencias bloqueadas ├── README.md # Este archivo └── sysIdent/ # Paquete principal └── leastsquares.py # Utilidades de estimación por mínimos cuadrados

Dependencias

  • NumPy (>=2.3.2, <3.0.0): Computación numérica y álgebra lineal
  • Plotly (>=6.3.0, <7.0.0): Visualización interactiva

Autor

AdrianGuel - adrianjguelc@gmail.com


Este repositorio es parte del curso de Control Sinérgico. Para más información sobre el curso, visita: https://sites.google.com/view/elingedecontrol/cursos-y-talleres/control-sin%C3%A9rgico?authuser=0

Owner

  • Name: A.-J. Guel-Cortez
  • Login: AdrianGuel
  • Kind: user
  • Location: UK
  • Company: Coventry University

I am a Mechatronics Engineer with a Master's in Automation and currently a PhD candidate in complex systems.

GitHub Events

Total
  • Push event: 2
  • Create event: 1
Last Year
  • Push event: 2
  • Create event: 1

Dependencies

poetry.lock pypi
  • narwhals 2.1.2
  • numpy 2.3.2
  • packaging 25.0
  • plotly 6.3.0
pyproject.toml pypi
  • numpy (>=2.3.2,<3.0.0)
  • plotly (>=6.3.0,<7.0.0)