Sie sind auf Seite 1von 14

Robótica 3a Aula

Prof. Reinaldo Bianchi Parte A


Centro Universitário da FEI
2010

Objetivos desta aula

  Introdução a Controle:
Introdução a Controle
–  Tipos de sistemas de controle.
–  Tipos de controladores.
  Arquiteturas de Controle:
–  Hierárquicas.
–  Reativas.
–  Híbridas.
  Referências:
–  Capítulo 3, 4 e 8 do Keramas.
–  Livro Introduction to AI Robotics, Murphy, 2000.

Tipos de Sistemas de Controle Controle malha aberta (não servo)

  Quanto à estrutura, um sistema de   É o controle malha aberta.


controle pode ser: –  Não possui sensores ou realimentação.
–  Malha aberta, ou não-servo: –  O manipulador para quando atinge um limite
•  Manipuladores Clássicos fixo ou que pode ser variado manualmente.
–  Malha fechada, ou   Robôs de seqüência limitada.
servo-controlados:
  Usado em:
•  Sistemas modernos
•  Ponto-a-ponto –  Pick and Place
•  Caminho Controlado –  Pontos fixos.
  Complexidade aumenta –  Bang-bang robots.

1
Diagrama de blocos
Exemplo
(Malha Aberta)
  Uma fonte de alimentação regulada   A entrada é o nível desejado da grandeza
com transistor é, na realidade, um controlada (comando ou programação).
sistema de controle de malha aberta:   O controlador avalia este sinal e envia um
–  se a corrente da carga variar, a tensão na sinal (que pode ser elétrico ou mecânico,
conforme o sistema) ao atuador, que é o
saída pode variar até algumas dezenas de
mV, devido à variação na tensão Vbe. elemento que age no ambiente de modo a
alterar a grandeza.
  Sistema de Malha Aberta:
–  Grandeza não Automático

Diagrama de blocos
Sistema pneumático não servo
(Malha Aberta)

Sistema de Malha Aberta


Grandeza não Automático

http://zone.ni.com/devzone/cda/tut/p/id/9912

Robô de sequência limitada. Controle malha aberta (não servo)

  Vantagens:
–  Simplicidade e baixo custo
–  Facilidade de operação
–  Alta repetibilidade e velocidade
–  Simplicidade de controle
  Desvantagens:
–  Baixa acurácia
–  Necessita posicionamento preciso dos
pontos de parada.

2
Controle malha fechada ou Controle malha fechada ou
Servo controle Servocontrole
  A entrada controlada depende da saída   O sistema mede automaticamente as
do sistema. posições das juntas e compara com a
  Controle malha fechada: posição onde elas deveriam estar:
–  Possui sensores nas juntas e no atuador.   Se for diferente, usa o sistema

  Possui capacidades de correção: realimentado para movê-las para a


–  Consegue atingir qualquer ponto em seu posição em que elas deveriam estar.
envelope de trabalho, não apenas os   Servo-mecanismo: sistema de controle
terminais. que detecta e corrige erros.

Malha fechada Exemplo


  Verificam a ocorrência de desvios,   O operador de um reservatório verifica se o
pois contém um sensor, que monitora a nível máximo foi atingido através de uma
saída, fornecendo um sinal que retorna régua de nível, que é o sensor.
à entrada, formando uma malha de   O sinal de erro (diferença entre o nível
realimentação. máximo, que é a entrada desejada, e a saída,
o nível atual, abrindo ou fechando o registro
  A entrada e a realimentação se juntam
conforme o erro seja para mais (excesso do
num comparador, que combina ambos fluído) ou menos.
e fornece um sinal de erro:   O operador é ao mesmo tempo o
–  diferença entre os sinais, que orienta o comparador, o controlador e o atuador neste
controlador. sistema elementar.

Diagrama blocos (Malha Diagrama de blocos


Fechada) (Malha Fechada)
  Agora além dos blocos que compunham o
SC de m. aberta, temos um sensor, que
reage à grandeza física enviando um sinal ao
bloco somador, que subtrai este sinal ao de
entrada (observe os sinais + e - nas
entradas), fornecendo um sinal de erro ao
controlador.
Sistema de Malha Fechada
  Este sinal é a entrada do controlador, que o Grandeza Automática
avalia e tenta corrigir o desvio captado pelo Realimentado - Feedback
sensor, através de um novo comando ao http://zone.ni.com/devzone/cda/tut/p/id/9912
atuador.

3
Servo controle
Sinal de erro
Energia de entrada

Estado desejado Sinal de feedback


Amplificador
Soma
s(t) e(t) E(t) Robô ou y(t)
dispositivo

Sensor
y´(t)
Estado medido ou real

Servo controle com controle de


Vantagens dos servo-controlados
caminho
  Um tipo de malha fechada.   Maior acurácia
  São robôs guiados por um controlador   Boa velocidade
servo que memoriza seqüências de
  Maior torque
posições de juntas e atuador.
  Controle flexível
  Geralmente armazena milhares de
pontos de trajetória, com:   Capaz de realizar tarefas de
–  posição, manufatura complexas.
–  velocidade e   Multiplos programas.
–  aceleração.

Desvantagens
Tipos de Controladores
  Custo inicial
  Programação sofisticada, exigindo
pessoal especializado.
  Custo em treinamento do usuário.

  Manutenção.

4
Tipos de Controladores Controle liga-desliga (bang-bang)

  Liga-Desliga (on-off, bang-bang)   Compara sinal de entrada com realimentação


–  Se saída supera entrada, desliga o atuador;
  Proporcional (P)
–  se a realimentação for menor, liga o atuador.
  Integral (I)
  Ex.: fornos elétricos e geladeiras:
  Derivativo (D) –  Calefator ou compressor controlado por um
termostato.
  Proporcional + Integral (PI)
  Vantagens: simples, baixo custo
  Proporcional + Derivativo (PD)
  Desvantagens: contínua oscilação da saída,
  Proporcional + Integral + Derivativo (PID) histerese, não garante precisão e pode
  outros... desgastar controlador e atuador.

Exemplo alternativo:
Exemplo: robô que se aproxima
manipulador unidimensional que
de uma parede
se aproxima de um ponto

Material: um robô móvel equipado Material: um robô manipulador


com sensor infra-vermelho equipado com sensor tipo encoder

Algoritmo: aproxima de paredes Gráficos (distância x tempo)


void main() {
Posição (distância da parede em cm)

int posit_goal = 100;


int encoder_posit;
float power = MAX_POWER;
while (1) {
D=30
encoder_posit = distance(WALL); D=30
if (posit_goal < encoder_posit)
motor(power);
else
motor(-power);
} Tempo

5
Distância x tempo Controlador Proporcional

  A variável de controle é proporcional ao


Posição (distância da parede em cm)

erro medido.
D=40   É mais complexo que o liga-desliga e
mais simples que o PID e outros mais
modernos.

Tempo

Controlador Proporcional Proporcional simplificado

  Exemplo - dirigir um carro: void main() {


int posit_goal = 100;
–  Você acelera o máximo no início.
int encoder_posit;
–  Conforme o carro se aproxima da
float power;
velocidade desejada, a pressão sobre o
while (1) {
acelerador diminui, a aceleração diminui.
encoder_posit = distance(WALL);
–  Quando a velocidade desejada é atingida, power = (posit_goal-encoder_posit);
você mantém a velocidade mantendo a motor(power);
pressão sobre o pedal constante. }
}
Nota: nunca é atingida uma posição estável (onde power = 0).

Posição e potência x tempo Melhorando o Proporcional

100   Fator multiplicativo p_gain faz ir mais


rápido ao ponto desejado:
Posição e Potência

void main() {
0 int posit_goal=100, error, encoder_posit;
float power, p_gain = 0.01;
while (1) {
encoder_posit = distance(WALL);
error = (posit_goal - encoder_posit);
power = p_gain * error;
-100
Tempo motor(power);
}
}

6
Propriedades do Proporcional Posição e potência x tempo
  Ganho = 10
  Problema com ganhos altos: 100
–  over-shoot,

Posição e Potência
–  oscilações. 0
  Potência total é desejada se longe do
objetivo.
  Ganho alto pode causar potência alta
mesmo estando próximo. -100
Tempo

Posição e potência x tempo Posição e potência x tempo


  Ganho = 20   Ganho = 50
100 100
Posição e Potência

Posição e Potência

0 0

-100 -100
Tempo Tempo

Propriedades do Proporcional Propriedades Proporcional

  Erro é estacionário.
  Aumentando K, aumenta-se:
–  Velocidade de resposta / convergência.
–  Sensibilidade a ruidos.
–  Overshoot.
  Aumentando K, diminui-se:
–  Estabilidade.

7
Propriedades Proporcional Controlador Integral

  Usa um integrador como controlador (um


circuito que executa a operação matemática
da integração).
  Soma produtos dos valores instantâneos de
entrada por intervalos de tempo t.
  Desde o instante inicial até o final (período de
integração).
  Isto corresponde à área entre a curva da
grandeza e o eixo do tempo, num gráfico.
https://www.embedded.com/2000/0010/0010feat3.htm

Integral = área sob a curva f(x) Integral = soma de aproximações

Propriedades Integral Controlador Integral

  Integrador torna o sistema lento.   Introdução do term i_gain:


  Resposta depende da acumulação do erro void main() {
int posit_goal = 100, error = 0,
na entrada. encoder_posit = 0, integral = 0;
  Leva a um erro de regime nulo (não é float power, i_gain = 0,01;
necessário um sinal de entrada para haver while (1) {
saída do controlador). encoder_posit = distance(WALL);
error = (position_goal – encoder_position):
  Acionamento do atuador após o período integral = integral + error;
transitório. power = i_gain * integral;
  Assim o controle é muito preciso, embora motor(power);
}
mais lento.
}

8
Somatória das áreas Propriedades do Integral

  Remove erros estacionários.


  Prova:
–  Caso o erro estacionário exista, o valor da
integral do erro cresce.
–  Se a integral cresce, o valor da variavel de
controle (power) cresce;
–  Se power cresce, distância cresce,
–  Se distância cresce, o erro já não é mais
estacionário.
http://www.controlguru.com/wp/p69.html

Controlador Proporcional
Problemas do Integral
Integral (PI)
  O controlador Integral por sí só pode
não convergir a um valor apropriado de
controle (figura anterior).
  Assim, ele é quase sempre usado
associado ao controlador Proporcional:
power = p_gain * error
+
i_gain * integral;
https://www.embedded.com/2000/0010/0010feat3.htm

Controlador PI Posição e potência x tempo


void main() {
100
int posit_goal = 100, error = 0,
encoder_posit = 0, integral = 0;
Posição e Potência

float power, p_gain = 0.01, i_gain = 0.001;


0
while (1) {
encoder_posit = distance(WALL);
error = (position_goal – encoder_position):
integral = integral + error;
power = p_gain * error
+ -100
i_gain * integral; Tempo

motor(power);
} }

9
Controlador PI Controlador Derivativo

  Um controlador Proporcional ou Integral (ou


mesmo o PI) não possui nenhuma predição
sobre o futuro do sistema.
  O mesmo sinal de controle é obtido nos dois
casos abaixo:

https://www.embedded.com/2000/0010/0010feat3.htm

Controlador Derivativo Calculando a Derivada

  Adiciona um elemento que realiza uma   A derivada é a taxa de variação da


previsão do comportamento do robô no função:
futuro próximo, tendo como base os
de(t) e(t) − e(t −1) e(t) − e(t −1)
valores atuais e do passado próximo. dt
=
dt
=
1
de(t)
= e(t) − e(t −1)
dt

  Chamada de velocidade de variação do


€ erro.

Calculando a Derivada Algoritmo derivativo

  Introdução do term d_gain (velocidade):


e(t) void main() {
int posit_goal = 100, error = 0,
de(t) encoder_posit = 0, velocity = 0;
float power, d_gain = 0.1;
€ while (1) {
e(t −1) encoder_posit = distance(WALL);
€ error = (position_goal – encoder_position):
velocity = error - old_error;
t −1 power = d_gain * velocity;
€ t
old_error = error;
motor(power);
dt = 1
} }
€ €

10
Controlador Proporcional
Propriedades Derivativo
Derivativo (PD)
  Controle diferencial é muito poderoso, mas é   O controlador derivativo por sí só pode
também o mais problemático dos tipos de não convergir a um valor apropriado de
controle apresentados.
controle.
  Os três problemas mais comuns são:
  Assim, ele é quase sempre usado
–  Irregularidades na amostragem,
–  ruído e
associado ao controlador Proporcional:
–  oscilações de alta freqüência. power = p_gain * error
  Na prática industrial, o controlador derivativo +
é pouco utilizado, pois os sistemas são d_gain * velocity;
bastante estáveis.

Proporcional derivativo Posição e potência x tempo


void main() {
int posit_goal = 100, error = 0,
100
encoder_posit = 0, velocity = 0;
float power, p_gain = 0.01, d_gain = 0.1;
Posição e Potência

while (1) {
0
encoder_posit = distance(WALL);
error = (position_goal – encoder_position):
velocity = error - old_error;
power = p_gain * error
+
d_gain * velocity; -100
old_error = error; Tempo

motor(power);
} }

Propriedades PD Propriedades PD

https://www.embedded.com/2000/0010/0010feat3.htm

11
Controle P x PD
Controle PID

  O sistema de controle mais utilizado em


sistemas de processos contínuos:
–  Papel = 86%
–  Aço = 93%
–  Refinarias = 93%
  Essencialmente, o PID possui um loop de
retroalimentação que é:
–  Proporcional,
–  Integral e
–  Derivativo.

Controles P, I e D Intuitivamente
  Controle proporcional: um controlador que   Propocional:
multiplica o erro por uma constante: –  Trata o erro ATUAL.
–  uk = ek × P
  Controle integral: um controlador que
  Integral:
considera a integral do erro no tempo (usa a –  Aplica um controle constante mesmo
história): quando o erro é zero.
–  uk = (e0 + e1 + … + ek) × I   Derivativo:
  Controle derivativo: um controlador que –  Antecipa e reage a taxas de mudanças
considera a diferencial do erro no tempo rápidas antes que o erro cresca muito.
(previsão futura):
–  uk = (ek – ek–1) × D

Controle PID Controle PID

http://en.wikipedia.org/wiki/PID_controller

12
Processo em um controle PID O Algoritmo PID

O Algoritmo PID simples. PID para controle de temperatura


void main() {
int posit_goal = 100, error = 0,
encoder_posit = 0, integral = 0,velocity = 0;
float p_gain=0.01, i_gain=0.001, d_gain=0.1;
while (1) {
encoder_posit = distance(WALL);
error = (position_goal – encoder_position);
integral = integral + error;
velocity = error - old_error;
power = p_gain * error
+ i_gain * integral
+ d_gain * velocity;
old_error = error;
motor(power); https://www.embedded.com/2000/0010/0010feat3.htm
} }

Comparação P, PI, PD, PID Limitações PID

  Saturação
P PI
  Problemas com integração:
–  Quando o controlador satura, a parte
integral continua a crescer.
–  Isto causa grandes erros de overshoot.
  Solução:
PD PID –  Janela de reset.

13
Controle PID

Controle Pêndulo Invertido Controle P x PID

Conclusão - Controle
Sensores Intervalo
Externos

Planejamento Posição
da Trajetória

Velocidade
Controlador Sensor
interno
Sensor
interno
Motores

14

Das könnte Ihnen auch gefallen