Escolar Documentos
Profissional Documentos
Cultura Documentos
Controle
Controle
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.
CONTROLADOR ATUADOR
ENTRADA SAÍDA
SOMADOR CONTROLADOR ATUADOR
SENSOR
REALIMENTAÇÃO
Sensor
y´(t)
Estado medido ou real
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
Sensor
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.
Engrenagens
Sensor
(encoder)
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
-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
-100
Posição e potência x tempo
Ganho = 20
100
-100
Posição e potência x tempo
Ganho = 50
100
-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
-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.)
100
-100
Hierarquia de controle (robô móvel)
Sensores
Externos
Planejamento Posição
da Trajetória
Velocidade
Controlador Sensor
interno
Sensor
interno
Motores
Níveis de controle
3 níveis de controle:
controlador de velocidade
dos motores;
controlador de ângulo e
Alvo
velocidade linear do
robô;
desvio de obstáculos e Obstáculo
busca pelo alvo. Obstáculo
Controlador dos motores
SP1 e1 u1
-
+ PID Motor 1
v1
SP2 e2 u2 v2
+ PID Motor 2
-
Controlador de ângulo e velocidade
linear
SP1
Controlador +
de Velocidade
Linear +
e
- SP2
Controlador +
de
Ângulo
SP1 - e1 u1
+ PID Motor 1
SP e v1 Cinemática do X
+ Controlador Robô
- SP2 u2 v2
e2
+ PID Motor 2
-
Desvio de obstáculos
Obstáculo 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
Alvo
dy
d
e
Sensores
de distância
Posição
(integração dos enconders)
Obstáculo Alvo
Decisão
Velocidade
Angulo e
velocidade linear
Velocidade dos
motores
Motores
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).