Buscar

Lab_CP_Pratica2

Prévia do material em texto

Centro Federal de Educação Tecnológica de Minas Gerais
Campus Nepomuceno
Disciplina: Laboratório de Controle de Processos Data:
Professor: Gustavo de Lins e Horta
Aluno(a): Matrícula:
Curso: Engenharia Elétrica Semestre:
Prática de Laboratório - 02
Orientações gerais:
1- Recomenda-se utilizar o Google Colab para programção Python. Acesse o endereço a seguir: https://colab.research.google.com/
2- O relatório da prática deverá ser feito em LATEX, confofme modelo disponibilizado pelo professor.
3- Recomenda-se utilizar o Overleaf para a escrita do relatório. Acesse o endereço a seguir: https://pt.overleaf.com/
1 Controle de Processos com Python
A Python Control Systems Library (python-control) é um pacote Python que implementa operações
básicas para análise e projeto de sistemas de controle de realimentação.
Como principais recursos podemos citar:
• Sistemas lineares de entrada/saída em espaço de estados e domínio de frequência;
• Modelagem, simulação e análise de sistema de entrada/saída não linear;
• Álgebra de diagrama de blocos: interconexões seriais, paralelas e de realimentação;
• Tempo de resposta: inicial, passo, impulso;
• Resposta de frequência: gráficos de Bode e Nyquist;
• Análise de controle: estabilidade, acessibilidade, observabilidade, margens de estabilidade;
• Projeto de controle: posicionamento de autovalor, LQR, H2, Hinf;
• Redução do modelo: realizações balanceadas, valores singulares de Hankel;
• Projeto do estimador: estimador quadrático linear (filtro de Kalman).
1.1 Visão geral da biblioteca
O pacote python-control é um conjunto de classes e funções python que implementam operações
comuns para a análise e projeto de sistemas de controle de feedback. O objetivo inicial é implementar
todas as funcionalidades necessárias para trabalhar com os exemplos do livro Feedback Systems
de Astrom e Murray. Está disponível um módulo de compatibilidade com MATLAB que fornece
muitas das funções comuns correspondentes aos comandos disponíveis no MATLAB Control Systems
Toolbox.
1.2 Diferenças com o MATLAB
O pacote python-control faz uso de NumPy e SciPy. Uma lista de diferenças gerais entre NumPy e
MATLAB pode ser encontrada aqui.
Em termos do pacote python-control mais especificamente, aqui estão algumas coisas a serem
lembradas:
Pag. 1 de 6
https://colab.research.google.com/
https://pt.overleaf.com/
https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html
Laboratório de Controle de Processos Prática de Laboratório - 02
• Você deve incluir vírgulas em vetores. Então [1 2 3] deve ser [1, 2, 3].
• Funções que retornam vários argumentos usam tuplas.
• Você não pode usar chaves para coleções; use tuplas em vez disso.
2 Funções da Biblioteca de Controle
Funções para criação e manipulação de modelos:
• tf() - Cria um sistema de função de transferência;
• ss() - Cria um sistema de espaço de estado;
• c2d() - Retorna um sistema de tempo discreto;
• tf2ss() - Transforma uma função de transferência em um sistema de espaço de estado;
• ss2tf() - Transforma um sistema de espaço de estado em uma função de transferência;
• series() - Retorna a série de 2 ou mais subsistemas;
• parallel() - Retorna o paralelo de 2 ou mais subsistemas;
• feedback() - Retorna o feedback do sistema;
• pade() - Cria uma Aproximação Pade, que é uma representação da função Transfer de um
atraso.
Funções para Simulações de Modelo:
• step_response() - Resposta ao degrau de um sistema linear;
• lsim() - Simula a saída de um sistema linear.
Funções para análise de estabilidade:
• step_response() - Resposta ao degrau de um sistema linear;
• lsim() - Simula a saída de um sistema linear;
• pole() - Computar pólos do sistema;
• zero() - Calcula zeros do sistema;
• pzmap() - Plota um mapa de pólo/zero para um sistema linear;
• margin() - Calcule as margens de ganho e fase e frequências de cruzamento associadas;
• stability_margins() - Calcular margens de estabilidade e frequências de cruzamento associadas.
Funções para resposta de frequência:
• bode_plot() - Cria um gráfico Bode para um sistema;
• mag2db() - Converte uma magnitude em decibéis (dB);
• db2mag() - Converte um ganho em decibéis (dB) para uma magnitude.
Pag. 2 de 6
Laboratório de Controle de Processos Prática de Laboratório - 02
3 Instalação
O pacote python-control pode ser instalado usando pip, conda ou os mecanismos padrão distutils/se-
tuptools. O pacote requer numpy e scipy, e as rotinas de plotagem requerem matplotlib. Além disso,
algumas rotinas requerem a biblioteca slycot para implementar recursos mais avançados (incluindo
algumas funcionalidades MIMO).
3.1 Instalando usando o pip
Para instalar a biblioteca com o pip basta utilizar os seguintes comandos:
pip install slycot # optional
pip install control
3.2 Instalando no Anaconda
Para usuários com a distribuição Anaconda do Python, os seguintes comandos podem ser usados:
conda install numpy scipy matplotlib # if not yet installed
conda install -c conda-forge control slycot
3.3 Instalando no Google Colab
Qualquer instalação de pacote ou biblioteca no Google Colab segue o mesmo princípio do pip, a
única diferença é que deve ser incluído o símbolo ! antes do comando pip.
!pip install slycot # optional
!pip install control
3.4 Iniciando
Existem duas maneiras diferentes de usar o pacote. Para a interface padrão descrita em Referência
de função, basta importar o pacote de controle da seguinte forma:
import control as co
Se você deseja ter um ambiente semelhante ao MATLAB, use o módulo de compatibilidade do
MATLAB:
from control.matlab import *
4 Exemplos
Uma função de transferência geral está na forma:
H(s) =
y(s)
u(s)
(1)
Função de transferência básica em Python. Vamos definir a seguinte função de transferência em
Python:
Pag. 3 de 6
Laboratório de Controle de Processos Prática de Laboratório - 02
H(s) =
3
4s+ 1
(2)
O código Python se torna:
Figura 1: Função de transferência básica em Python.
4.1 Modelos de espaço de estado
Um modelo de espaço de estados é uma forma estruturada ou representação de um conjunto de
equações diferenciais. Modelos de espaço de estado são muito úteis em teoria e projeto de controle.
As equações diferenciais são convertidas em matrizes e vetores.
Um modelo linear geral de espaço de estados pode então ser escrito nesta forma compacta:
ẋ = Ax+Bu (3)
y = Cx+Du (4)
Onde A, B, C e D são matrizes.
Dado o seguinte sistema:
ẋ1 = x2 (5)
2ẋ1 = −2x1 − 6x2 + 4u1 + 8u1 (6)
y = 5x1 + 6x2 + 7u1 (7)
Isso fornece o seguinte modelo de espaço de estado:[
ẋ1
ẋ2
]
=
[
0 1
−1 −3
] [
x1
x2
]
+
[
0 0
2 4
] [
u1
u2
]
(8)
y =
[
5 6
] [x1
x2
] [
7 0
] [u1
u2
]
(9)
Podemos definir este modelo de espaço de estado em Python:
Pag. 4 de 6
Laboratório de Controle de Processos Prática de Laboratório - 02
Figura 2: Espaço de Estados em Python.
Aqui também usamos a função ss2tf(). Esta função pode converter um modelo de espaço de
estado em função(ões) de transferência. Temos também a função tf2ss() que converte uma função
de transferência para um modelo de espaço de estados.
5 Criando uma Função de Transferência em Python
As funções de transferência são uma forma de modelo baseada na transformada de Laplace. As
funções de transferência são muito úteis na análise e projeto de sistemas dinâmicos lineares.
Uma função de transferência geral está na forma:
H(s) =
y(s)
u(s)
(10)
Onde y é a saída e u é a entrada. Uma função de transferência geral pode ser escrita na seguinte
forma geral:
H(s) =
numerador(s)
denominador(s)
(11)
ou para ser mais específico:
H(s) =
bms
m + bm−1s
m−1 + · · ·+ b1s+ b0
ansn + an−1sn−1 + · · ·+ a1s+ a0
(12)
Os numeradores dos modelos de função de transferência descrevem as localizações dos zeros do
sistema, enquanto os denominadores dos modelos de função de transferência descrevem as localiza-
ções dos polos do sistema.
Exemplo: Dada a seguinte função de transferência:
H(s) =
3s+ 3
4s2 + 5s+ 6
(13)
O código Python se torna:
Pag. 5 de 6
Laboratório de Controle de ProcessosPrática de Laboratório - 02
Figura 3: Função de Transferência em Python.
6 Parte Prática
1. Dadas as seguintes funções de transferência escreva o código Python para implementar estas
funções:
(a)
T (s) =
50
s2 + 55s+ 50
(b)
T (s) =
50
s2 + 10s− 15
(c)
T (s) =
1500
s3 + 50s2 + 4500s+ 16000
(d)
Y (s) =
4(s+ 50)
s2 + 30s+ 200
2. Elabore um programa em Python para transformar a função de transferência em um sistema de
espaço de estado.
(a)
Y (s)
R(s)
= T (s) =
5(s+ 10)
s3 + 10s2 + 20s+ 50
(14)
(b)
Y (s)
R(s)
= T (s) =
4(s+ 3)
(s+ 2)(s+ 6)
(15)
(c)
Y (s)
R(s)
= T (s) =
s2 + 2 + 10
s3 + 4s2 + 6s+ 10
(16)
(d)
Y (s)
R(s)
= T (s) =
s+ 50
s4 + 12s3 + 10s2 + 34s+ 50
(17)
(e)
Y (s)
R(s)
= T (s) =
14(s+ 4)
s3 + 10s2 + 31s+ 16
(18)
Pag. 6 de 6
	Controle de Processos com Python
	Visão geral da biblioteca
	Diferenças com o MATLAB
	Funções da Biblioteca de Controle
	Instalação
	Instalando usando o pip
	Instalando no Anaconda
	Instalando no Google Colab
	Iniciando
	Exemplos
	Modelos de espaço de estado
	Criando uma Função de Transferência em Python
	Parte Prática

Continue navegando