controle - DCA

Propaganda
Introdução ao controle de robôs
Luiz Marcos
www.dca.ufrn.br/~lmarcos/courses/robotica
Cinemática x Dinâmica
Dinâmica x Atraso
Contínuo x Discreto
Tipos de Sistemas de Controle
Malha aberta
Malha fechada
Malha aberta
A entrada define o comportamento do
controlador, cérebro do sistema, e este
responde agindo no ambiente, sem
verificar depois se o nível da grandeza
física corresponde de fato à entrada;
Não há sensor para observar algum
eventual desvio, nem realimentação, para
corrigi-lo.
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.
Transistor
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.
Diagrama de blocos (M. Aberta)
CONTROLADOR
ATUADOR
Sistema de Malha Aberta
Grandeza não Automático
Aplicações
Os SC em malha aberta são usados onde
a freqüência ou a conseqüência dos
desvios não justificam a complexidade e o
custo maior dos em malha fechada.
Não são aplicados em robótica (a não ser
em casos onde não é necessário checar o
erro).
Malha fechada
É verificada a ocorrência de desvios
Sensor monitora saída, fornecendo um
sinal que retorna à entrada, formando
uma malha de realimentação.
A entrada e esta realimentação se juntam
num comparador, que combina ambos e
fornece um sinal de erro, diferença entre
os sinais, que orienta o controlador.
Exemplo simples
 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.
 Sinal de erro, a diferença entre o nível máximo
(saída desejada) e o nível atual (saída real), é
analisado para abrir ou fechar o registro.
 Operador é ao mesmo tempo o comparador, o
controlador e o atuador neste sistema
elementar.
Diagrama blocos (Malha Fechada)
Adicionar sensor ao SC de m. aberta;
Enviar sinal de erro ao bloco somador que
fornece um sinal efetivo 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.
Diagrama de blocos (M. Fechada)
ENTRADA
SOMADOR
CONTROLADOR
SENSOR
ATUADOR
REALIMENTAÇÃO
Sistema de Malha Fechada
Grandeza Automática
SAÍDA
Aplicações
SC em malha fechada são mais precisos,
pois detectam e corrigem os desvios.
A maioria dos sistemas atuais, analógicos
ou digitais, é deste tipo.
Sistemas controle para robótica são
necessariamente desta categoria.
Controle
Sistema robótico: mede o seu próprio
estado e age (decisões autônomas)
Feedback Control: originou-se na Grécia
antiga.
Relógios de água: um grande tanque, um
orifício pequeno para medir a vazão, uma
válvula para regular a quantidade de água
no tanque (mantendo o nível, a pressão é
constante).
Redescobrindo os controladores
1600: Controle da temperatura num fogão
 Variação do volume de mercúrio fecha e abre
a entrada de ar
1700: mesmo sistema utilizado para
chocar ovos
 Final do século 16: mecanismo melhorado
com melhor sensibilidade. Primeiro
controlador comercial...
Sistema de Controle
Sinal de erro
Energia de entrada
Estado desejado
Sinal de feedback
Amplificador
Soma
s(t)
e(t)
y´(t)
Estado medido ou real
E(t)
Sensor
Robô ou
dispositivo
y(t)
Exemplo: seguidor de paredes
Material: um robo móvel equipado com
sensor infra-vermelho
 Void calibrate(int goal); /*Calibra o sensor








definindo uma distância da parede*/
void main() {
calibrate(goal); left(100); right(100);
while (1) {
int wall = analog(LEFT_WALL);
if(wall<goal) {left(100); right(0);}
else {right(100); left(0); }
}
}
Gráficos (distância x tempo)
D=40
Distância x tempo
D=30
Virando mais suave
 void main() {






 }
calibrate(goal); left(100); right(100);
while (1) {
int wall = analog(LEFT_WALL);
if(wall<goal) {left(100); right(50);}
else {right(100); left(50); }
}
Distância x tempo
D=40
Sistema de Controle
(t)
Perturbação
s(t)
e(t)
u(t)
Sensor
y´(t)
Robô
y(t)
Motores
Controladores
• Liga-Desliga (on-off)
• Proporcional (P)
• Proporcional + Integral (PI)
• Proporcional + Derivativo (PD)
• Proporcional + Integral + Derivativo (PID)
Controle liga-desliga :
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
(é um controlador liga-desliga).
Vantagens: simples, baixo custo
Desvantagens: contínua oscilação da saída, histerese,
não garante precisão e pode desgastar controlador e
atuador.
Mecanismo (roda)
0
Roda (massa grande)
Sensor
(encoder)
Engrenagens
Motor
Proporcional
Ganho é proporcional ao erro medido
Exemplo: controlar a posição de um motor
 void main() {






 }
int posit_goal=0;
encoder_posit=100; /*Var. compartilhada*/
while (1) {
power = posit_goal - encoder_posit;
motor(power);
}
Posição e potência x tempo
100
0
-100
Melhorando o Proporcional
 Introdução de um fator multiplicativo faz ir mais
rápido ao ponto desejado
 void main() {
 int posit_goal=100;
 encoder_posit=0;
while (1) {

power=p_gain*(posit_goal- encoder_posit);

motor(power);
 }
 }

 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.
Posição e potência x tempo
Ganho = 10
100
0
-100
Posição e potência x tempo
Ganho = 20
100
0
-100
Posição e potência x tempo
Ganho = 50
100
0
-100
Proporcional derivativo
 Problema: momento faz ir além do ponto,
mesmo desligando o motor
 Momento = massa x velocidade (diretamente
proporcional a velocidade)
 Dobra velocidade => dobra momento).
 Termo derivativo resolve overshooting e
oscilações
Proporcional derivativo
 Introdução do term d_gain (velocidade)
 void main() {







 }
int posit_goal=0;
encoder_posit=100;
while (1) {
power=p_gain*(posit_goal- encoder_posit) +
d_gain*encoder_velocity;
motor(power);
}
Posição e potência x tempo
100
0
-100
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.
Integral (cont.)
Ex.: Se grandeza = G (const), integral
entre t1 = 0 e t2=j será igual a G t2 (ou
Gj) = área, no gráfico da grandeza, de um
retângulo naquele intervalo de tempo.
Um gráfico da integral de t1 a t2 é uma
reta desde 0 até Gj, pois a área (ou o
somatório) aumenta à medida que o
tempo passa.
Integral (cont)
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.
Posição e potência x tempo
100
0
-100
Hierarquia de controle (robô móvel)
Sensores
Externos
Planejamento
da Trajetória
Posição
Velocidade
Controlador
Sensor
interno
Motores
Sensor
interno
Níveis de controle
Obstáculo
 3 níveis de controle:
 controlador de velocidade
dos motores;
 controlador de ângulo e
velocidade linear do robô;
 desvio de obstáculos e
busca pelo alvo.
Alvo
Obstáculo
Controlador dos motores
SP1
-
u1
e1
PID
+
Motor 1
v1
SP2
+
-
v2
u2
e2
PID
Motor 2
Controlador de ângulo e velocidade
linear
SP1
+
Controlador
de Velocidade
Linear
+
e
+
Controlador
de
Ângulo
SP1
-
e1
+
SP
e
+
-
SP2
u1
PID
Motor 1
v1
Controlador
SP2
e2
+
-
PID
u2
Motor 2
v2
Cinemática do
Robô
X
Obstáculo
Desvio de obstáculos
Obstáculo
teta=180/pi*atan((S1*sin(pi/4)-S3*sin(pi/4))/(S2+S1*cos(pi/4)+S3*cos(pi/4)));
Busca do alvo
dx
dy
Alvo
e
d
Sensores
de distância
Obstáculo
Alvo
Decisão
Velocidade
Angulo e
velocidade linear
Velocidade dos
motores
Motores
Posição
(integração dos enconders)
Controle de alto nível
(Comportamento)
O relacionamento funcional dos
estímulos sensoriais com as
ações efetuadas sobre os
atuadores do robô
Ações devem ser executadas a
partir de um plano de ação e de
um modelo interno do ambiente
Tipos de controle
1) Reactive control
2) Deliberative control
3) Hybrid control
4) Behavior based control (sub-sumption)
Controle reativo
Não pense, reaja!
 Ambiente imprevisível cheio de
obstáculos estáticos e dinâmicos
 Restrição de tempo de execução da
tarefa
 Desenvolvimento de sistemas onde as
ações dos robôs móveis são
determinadas pelas situações
imediatas do ambiente, detectadas
por
seus sensores.
Controle reativo (cont.)
 Facilmente implementável
 Não requer intermédio do cérebro
 Apenas um mapeamento de sensores a
ações:





Construir um conjunto de regras
Exige pouco processamento on-line
Alta velocidade
Similar a reflexos em seres humanos
Muito usado em seres inferiores (siris)
Exemplo visto
 Robô com emissores/sensores IR na
frente e duas rodas laterais:
 Nenhum sensor satura: em frente
 Satura direito: vire à esquerda
 Satura esquerdo: vire à direita
 Satura os dois: vire
aleatoriamente para um dos lados
Controle deliberativo
Planeje e pense bastante, então execute
ação!
 Certas tarefas permitem uma melhor
análise do ambiente e planejamento
baseado em informações adquiridas
via sensores e dados conhecidos
 Pode levar o robô a encontrar uma
boa solução para sua tarefa, mesmo
perdendo tempo de processamento
para tomar a decisão
Controle híbrido
Seja eficiente! Pense se der tempo!
Comportamento deliberativo pode
comprometer o tempo de resposta
de um robô
Idéia: unir os comportamentos
 Caso seja necessário (e dê tempo
para) pensar, faça, caso contrário,
execute uma ação de forma reativa.
Arquitetura subsumption (MIT)
Baseado em comportamentos básicos
Comportamentos de mais alto nível são
definidos por vários de mais baixo nível
Processo markoviano (definir ação de alto
nível em função do estado perceptual
atual de um robô).
Uso de aprendizado ou de heurísticas para
definir políticas (Q-Learning, NN).
Download