Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

84
Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013

Transcript of Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Page 1: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Robótica

Prof. Reinaldo Bianchi

Centro Universitário da FEI

2013

Page 2: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

7a Aula

Parte A

Page 3: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Objetivos desta aula

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.

Page 4: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Introdução a Controle

Page 5: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Tipos de Sistemas de Controle

Quanto à estrutura, um sistema de controle pode ser:– Malha aberta, ou não-servo:

• Manipuladores Clássicos

– Malha fechada, ou servo-controlados:• Sistemas modernos• Ponto-a-ponto• Caminho Controlado

Complexidade aumenta

Page 6: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle malha aberta (não servo)

É o controle malha aberta.– Não possui sensores ou realimentação.– O manipulador para quando atinge um limite

fixo ou que pode ser variado manualmente. Robôs de seqüência limitada. Usado em:

– Pick and Place– Pontos fixos.– Bang-bang robots.

Page 7: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Exemplo

Uma fonte de alimentação regulada com transistor é, na realidade, um sistema de controle de malha aberta:– se a corrente da carga variar, a tensão na

saída pode variar até algumas dezenas de mV, devido à variação na tensão Vbe.

Page 8: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Diagrama de blocos (Malha Aberta) A entrada é o nível desejado da grandeza

controlada (comando ou programação). O controlador avalia este sinal e envia um

sinal (que pode ser elétrico ou mecânico, conforme o sistema) ao atuador, que é o elemento que age no ambiente de modo a alterar a grandeza.

Sistema de Malha Aberta:– Grandeza não Automático

Page 9: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Diagrama de blocos (Malha Aberta)

Sistema de Malha AbertaGrandeza não Automático

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

Page 10: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Sistema pneumático não servo

Page 11: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Robô de sequência limitada.

Page 12: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

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.

Page 13: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle malha fechada ou Servo controle A entrada controlada depende da saída

do sistema. Controle malha fechada:

– Possui sensores nas juntas e no atuador. Possui capacidades de correção:

– Consegue atingir qualquer ponto em seu envelope de trabalho, não apenas os terminais.

Page 14: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle malha fechada ou Servocontrole O sistema mede automaticamente as

posições das juntas e compara com a posição onde elas deveriam estar:

Se for diferente, usa o sistema realimentado para movê-las para a posição em que elas deveriam estar.

Servo-mecanismo: sistema de controle que detecta e corrige erros.

Page 15: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Malha fechada

Verificam a ocorrência de desvios, pois contém um sensor, que monitora a saída, fornecendo um sinal que retorna à entrada, formando uma malha de realimentação.

A entrada e a realimentação se juntam num comparador, que combina ambos e fornece um sinal de erro:– diferença entre os sinais, que orienta o

controlador.

Page 16: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Exemplo

O operador de um reservatório verifica se o nível máximo foi atingido através de uma régua de nível, que é o sensor.

O sinal de erro (diferença entre o nível máximo, que é a entrada desejada, e a saída, o nível atual, abrindo ou fechando o registro conforme o erro seja para mais (excesso do fluído) ou menos.

O operador é ao mesmo tempo o comparador, o controlador e o atuador neste sistema elementar.

Page 17: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Diagrama blocos (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.

Este sinal é a entrada do controlador, que o avalia e tenta corrigir o desvio captado pelo sensor, através de um novo comando ao atuador.

Page 18: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Diagrama de blocos (Malha Fechada)

Sistema de Malha FechadaGrandeza Automática

Realimentado - Feedback

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

Page 19: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Mais um diagrama malha fechada

Robô ou dispositivo

Sensor

E(t)e(t)s(t) y(t)

Estado desejado

Soma

Sinal de feedback

Sinal de erroEnergia de entrada

Amplificador

Estado medido ou realy´(t)

Page 20: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Servo controle

Page 21: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Servo controle com controle de caminho Um tipo de malha fechada. São robôs guiados por um controlador

servo que memoriza seqüências de posições de juntas e atuador.

Geralmente armazena milhares de pontos de trajetória, com:– posição, – velocidade e – aceleração.

Page 22: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Vantagens dos servo-controlados

Maior acurácia Boa velocidade Maior torque Controle flexível Capaz de realizar tarefas de

manufatura complexas. Multiplos programas.

Page 23: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Desvantagens

Custo inicial Programação sofisticada, exigindo

pessoal especializado. Custo em treinamento do usuário. Manutenção.

Page 24: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Tipos de Controladores

Page 25: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Tipos de Controladores

Liga-Desliga (on-off, bang-bang) Proporcional (P) Integral (I) Derivativo (D) Proporcional + Integral (PI) Proporcional + Derivativo (PD) Proporcional + Integral + Derivativo (PID) outros...

Page 26: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle liga-desliga (bang-bang) Compara sinal de entrada com realimentação

– Se saída supera entrada, desliga o atuador;– se a realimentação for menor, liga o atuador.

Ex.: fornos elétricos e geladeiras:– Calefator ou compressor controlado por um

termostato. Vantagens: simples, baixo custo Desvantagens: contínua oscilação da saída,

histerese, não garante precisão e pode desgastar controlador e atuador.

Page 27: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Exemplo: robô que se aproxima de uma parede

Material: um robô móvel equipado com sensor infra-vermelho

Page 28: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Exemplo alternativo: manipulador unidimensional que se aproxima de um ponto

Material: um robô manipulador equipado com sensor tipo encoder

Page 29: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Algoritmo: aproxima de paredes

void main() { int posit_goal = 100; int encoder_posit; float power = MAX_POWER; while (1) { encoder_posit = distance(WALL); if (posit_goal < encoder_posit) motor(power); else motor(-power); }}

Page 30: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Gráficos (distância x tempo)

D=30

Tempo

Pos

ição

(di

stân

cia

da p

ared

e em

cm

)

Page 31: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Distância x tempo

D=40

Tempo

Pos

ição

(di

stân

cia

da p

ared

e em

cm

)

Page 32: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Proporcional

A variável de controle é proporcional ao erro medido.

É mais complexo que o liga-desliga e mais simples que o PID e outros mais modernos.

Page 33: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Proporcional

Exemplo - dirigir um carro:– Você acelera o máximo no início.– Conforme o carro se aproxima da

velocidade desejada, a pressão sobre o acelerador diminui, a aceleração diminui.

– Quando a velocidade desejada é atingida, você mantém a velocidade mantendo a pressão sobre o pedal constante.

Page 34: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Proporcional simplificado

void main() { int posit_goal = 100; int encoder_posit; float power; while (1) { encoder_posit = distance(WALL); power = (posit_goal-encoder_posit); motor(power); }}

Nota: nunca é atingida uma posição estável (onde power = 0).

Page 35: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 36: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Melhorando o Proporcional

Fator multiplicativo p_gain faz ir mais rápido ao ponto desejado:void main() {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; motor(power); }}

Page 37: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades do Proporcional

Problema com ganhos altos: – over-shoot, – oscilações.

Potência total é desejada se longe do objetivo.

Ganho alto pode causar potência alta mesmo estando próximo.

Page 38: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo Ganho = 10

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 39: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo Ganho = 20

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 40: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo

Ganho = 50

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 41: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades do Proporcional

Erro é estacionário. Aumentando K, aumenta-se:

– Velocidade de resposta / convergência.– Sensibilidade a ruidos.– Overshoot.

Aumentando K, diminui-se:– Estabilidade.

Page 42: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades Proporcional

Page 43: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades Proporcional

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

Page 44: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

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.

Page 45: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Integral = área sob a curva f(x)

Page 46: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Integral = soma de aproximações

Page 47: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades Integral

Integrador torna o sistema lento. Resposta depende da acumulação do erro

na entrada. Leva a um erro de regime nulo (não é

necessário um sinal de entrada para haver saída do controlador).

Acionamento do atuador após o período transitório.

Assim o controle é muito preciso, embora mais lento.

Page 48: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Integral

Introdução do term i_gain:void main() { int posit_goal = 100, error = 0, encoder_posit = 0, integral = 0; float power, i_gain = 0,01; while (1) { encoder_posit = distance(WALL); error = (position_goal – encoder_position): integral = integral + error; power = i_gain * integral; motor(power); }}

Page 49: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Somatória das áreas

http://www.controlguru.com/wp/p69.html

Page 50: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

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.

Page 51: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Problemas do Integral

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

Page 52: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Proporcional 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;

Page 53: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador PI

void main() { int posit_goal = 100, error = 0, encoder_posit = 0, integral = 0; float power, p_gain = 0.01, i_gain = 0.001; while (1) { encoder_posit = distance(WALL); error = (position_goal – encoder_position): integral = integral + error; power = p_gain * error

+ i_gain * integral;

motor(power); } }

Page 54: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 55: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador PI

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

Page 56: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

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:

Page 57: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Derivativo

Adiciona um elemento que realiza uma previsão do comportamento do robô no futuro próximo, tendo como base os valores atuais e do passado próximo.

Page 58: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Calculando a Derivada

A derivada é a taxa de variação da função:

Chamada de velocidade de variação do erro.

Page 59: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Calculando a Derivada

Page 60: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Algoritmo derivativo

Introdução do term d_gain (velocidade):void main() { int posit_goal = 100, error = 0, encoder_posit = 0, velocity = 0; float power, d_gain = 0.1; while (1) { encoder_posit = distance(WALL); error = (position_goal – encoder_position): velocity = error - old_error; power = d_gain * velocity; old_error = error; motor(power); } }

Page 61: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades Derivativo

Controle diferencial é muito poderoso, mas é também o mais problemático dos tipos de controle apresentados.

Os três problemas mais comuns são:– Irregularidades na amostragem, – ruído e– oscilações de alta freqüência.

Na prática industrial, o controlador derivativo é pouco utilizado, pois os sistemas são bastante estáveis.

Page 62: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controlador Proporcional Derivativo (PD) O controlador derivativo por sí só pode

não convergir a um valor apropriado de controle.

Assim, ele é quase sempre usado associado ao controlador Proporcional: power = p_gain * error + d_gain * velocity;

Page 63: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Proporcional derivativovoid main() { int posit_goal = 100, error = 0, encoder_posit = 0, velocity = 0; float power, p_gain = 0.01, d_gain = 0.1; while (1) { encoder_posit = distance(WALL); error = (position_goal – encoder_position): velocity = error - old_error; power = p_gain * error

+ d_gain * velocity;

old_error = error; motor(power); } }

Page 64: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Posição e potência x tempo

0

100

-100Tempo

Pos

ição

e P

otên

cia

Page 65: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades PD

Page 66: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Propriedades PD

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

Page 67: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle P x PD

Page 68: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

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.

Page 69: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controles P, I e D

Controle proporcional: um controlador que multiplica o erro por uma constante:– uk = ek P

Controle integral: um controlador que considera a integral do erro no tempo (usa a história):– uk = (e0 + e1 + … + ek) I

Controle derivativo: um controlador que considera a diferencial do erro no tempo (previsão futura):– uk = (ek – ek–1) D

Page 70: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Intuitivamente

Propocional:– Trata o erro ATUAL.

Integral:– Aplica um controle constante mesmo

quando o erro é zero. Derivativo:

– Antecipa e reage a taxas de mudanças rápidas antes que o erro cresca muito.

Page 71: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle PID

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

Page 72: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle PID

Page 73: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Processo em um controle PID

Page 74: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

O Algoritmo PID

Page 75: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

O Algoritmo PID simples.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); } }

Page 76: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

PID para controle de temperatura

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

Page 77: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Comparação P, PI, PD, PID

P PI

PD PID

Page 78: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Limitações PID

Saturação Problemas com integração:

– Quando o controlador satura, a parte integral continua a crescer.

– Isto causa grandes erros de overshoot. Solução:

– Janela de reset.

Page 79: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.
Page 80: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle PID

Page 81: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle Pêndulo Invertido

Page 82: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Controle P x PID

Page 83: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Conclusão - Controle

SensoresExternos

Planejamentoda Trajetória

Controlador

Motores

Posição

Velocidade

Sensorinterno

Sensorinterno

Page 84: Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2013.

Intervalo