Aplicação desktop completa para análise, projeto e simulação de sistemas de controle dinâmicos.
Desenvolvida como Trabalho de Conclusão de Curso em Engenharia de Computação.
Autor: Luís Fernando Alexandre dos Santos
Orientador: Prof. Dr. Cecilio Martins de Sousa Neto
Universidade Federal Rural do Semi-Árido — UFERSA · 2025
O SysControl é uma ferramenta educacional desenvolvida em Python com interface gráfica moderna, destinada a estudantes e profissionais de Engenharia de Controle, Computação, Elétrica e Mecatrônica.
A aplicação reúne em um único ambiente:
- ✅ Análise de estabilidade via Critério de Routh-Hurwitz
- ✅ Extração de parâmetros de sistemas de segunda ordem (ωₙ, ζ, K)
- ✅ Análise completa do Lugar Geométrico das Raízes (LGR)
- ✅ Projeto e simulação de controladores PI, PD e PID com comparativos gráficos
| Módulo | Tela |
|---|---|
| 🏠 Tela Principal | ![]() |
| 📊 Análise de Estabilidade | ![]() |
| ⚙️ Sistema de 2ª Ordem | ![]() |
| 📌 Lugar Geométrico das Raízes | ![]() |
| 🎮 Análise de Controladores | ![]() |
Determina a estabilidade de um sistema a partir de sua equação característica.
- Implementa o Critério de Routh-Hurwitz com geração automática da tabela
- Identifica o número de polos instáveis (semiplano direito)
- Exibe as raízes do polinômio e uma conclusão clara sobre a estabilidade
Entrada: coeficientes do polinômio característico
Saída: tabela de Routh formatada + relatório textual completo
Extrai parâmetros e métricas de desempenho de sistemas de segunda ordem.
| Parâmetro | Descrição |
|---|---|
| ωₙ | Frequência natural |
| ζ | Coeficiente de amortecimento |
| K | Ganho estático |
| Tr | Tempo de subida (10% → 90%) |
| Tp | Tempo de pico |
| Mp (%) | Máximo sobressinal |
| Ts | Tempo de acomodação (±2%) |
Classifica automaticamente o sistema: subamortecido, criticamente amortecido ou superamortecido.
Análise gráfica e textual completa do LGR de um sistema em malha aberta.
Regras de construção calculadas:
- Polos e zeros do sistema
- Segmentos do eixo real pertencentes ao LGR
- Assíntotas — centro e ângulos
- Pontos de entrada/saída (
dK/ds = 0) - Ângulos de partida e chegada (polos/zeros complexos)
- Ganho Crítico (K) e cruzamentos com o eixo jω via Routh-Hurwitz
Saídas: gráfico interativo com polos, zeros, ramos e assíntotas + relatório didático detalhado
Projeta, simula e compara o desempenho do sistema com e sem controlador.
Interface multi-abas com comparativos lado a lado:
| Aba | Conteúdo |
|---|---|
| 📈 Resposta Temporal | y(t) — sistema original vs. controlado |
| 📌 Lugar das Raízes | LGR de G(s) vs. Gc(s)·G(s) |
| 🗺️ Polos e Zeros | Mapa do sistema em malha fechada |
| 📋 Métricas | Tabela comparativa (Tr, Ts, Mp, e_ss...) |
Funcionalidade extra: a aba LGR permite definir polos dominantes desejados a partir de ζ e ωₙ, exibindo a linha de ζ constante no gráfico para auxiliar no projeto.
G(s) = N(s) / D(s) Função de Transferência
K · ωₙ²
G(s) = ────────────────── Forma padrão de 2ª ordem
s² + 2ζωₙs + ωₙ²
| Conceito | Descrição |
|---|---|
| Função de Transferência | Representação no domínio de Laplace |
| Routh-Hurwitz | Método algébrico para análise de estabilidade |
| LGR | Trajetória dos polos de malha fechada em função do ganho K |
| PID | Controlador com ação proporcional, integral e derivativa |
| Erro em Regime (e_ss) | Diferença entre referência e saída em regime permanente |
| Biblioteca | Uso |
|---|---|
CustomTkinter |
Interface gráfica moderna e responsiva |
Matplotlib |
Geração e exibição de gráficos embutidos |
Control |
Núcleo de análise de sistemas de controle |
NumPy |
Cálculos numéricos e manipulação de arrays |
SciPy |
Simulação da resposta à rampa (lsim) |
SymPy |
Cálculos simbólicos do LGR e tabela de Routh |
Pillow |
Carregamento de imagens na interface |
git clone https://github.com/luisFernandoJv/sistema-de-controle---an-lise-de-sistema-de-segunda-ordem-.git
cd sistema-de-controle---an-lise-de-sistema-de-segunda-ordem-python -m venv venv
# Linux / macOS
source venv/bin/activate
# Windows
.\venv\Scripts\activatepip install -r requirements.txtrequirements.txt:
customtkinter
matplotlib
control
numpy
scipy
sympy
Pillow
python tela.py📦 sistema-de-controle/
┣ 📂 image/ # Screenshots da interface
┣ 📜 tela.py # Ponto de entrada — tela principal
┣ 📜 estabilidade.py # Módulo 1: Análise de Estabilidade
┣ 📜 segunda_ordem.py # Módulo 2: Sistema de 2ª Ordem
┣ 📜 lgr.py # Módulo 3: Lugar Geométrico das Raízes
┣ 📜 controladores.py # Módulo 4: Análise de Controladores
┣ 📜 requirements.txt
┗ 📜 README.md
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Desenvolvido com 💙 para a comunidade de Engenharia de Controle
UFERSA · Engenharia de Computação · 2025




