Índice:

Ensino de controle PID com robôs Lego: 14 etapas
Ensino de controle PID com robôs Lego: 14 etapas

Vídeo: Ensino de controle PID com robôs Lego: 14 etapas

Vídeo: Ensino de controle PID com robôs Lego: 14 etapas
Vídeo: 5 MANEIRAS DE APRENDER ROBÓTICA SEM KITS - PARTE 1 | KIT DE ROBÓTICA | LEGO EDUCATION | LEGO VIRTUAL 2024, Julho
Anonim
Ensino de controle PID com robôs Lego
Ensino de controle PID com robôs Lego

Muitos jovens entusiastas de robôs estão interessados em tópicos de controle mais avançados, mas podem ser impedidos pelo cálculo frequentemente necessário para analisar sistemas de loop fechado. Existem recursos maravilhosos disponíveis online que simplificam a construção de um "Controlador Diferencial Integral Proporcional" (Controlador PID), e uma ótima descrição está aqui:

No entanto, isso pode ser difícil de acompanhar e pode não ser adequado para uma sala de aula com cerca de 20 alunos.

Este instrutivo passo a passo mostra como ensinar com sucesso uma sala cheia de alunos usando o sistema de robô Lego, um número de robôs (5 a 10 deles), um número igual de estações de trabalho de computador executando NXT 2.0 e uma faixa preta de 2,10 metros fita isolante no chão.

À parte: Obrigado a J. Sluka, que escreveu o link acima, ao Dr. Bruce Linnell, que criou alguns dos primeiros laboratórios de Lego no nível da ECPI University, e ao Dr. Reza Jafari, que forneceu ideias de mapeamento de objetivos de aprendizagem de Controle PID para o EET220 e Cursos Capstone.

Etapa 1: preparação para o laboratório antes da chegada dos alunos

Preparação para o laboratório antes da chegada dos alunos
Preparação para o laboratório antes da chegada dos alunos

Deixe os alunos saberem sobre o seu trabalho árduo;-)

Instrutores e assistentes de ensino têm estado MUITO ocupados se preparando para você fazer este laboratório! O robô foi carregado e montado para este laboratório. Se a montagem for necessária, isso pode levar até 90 minutos para um ou mais robôs. É necessário ainda mais tempo para carregar as baterias ou condicioná-las com ciclos de carga / descarga. Para obter instruções detalhadas sobre como construir o robô que usaremos hoje, consulte o kit educacional NXT 2.0 ou 2.1, o Guia de construção do robô “siga uma linha”. No entanto, usaremos uma programação mais complexa … Fita isolante preta em linóleo de cor clara é uma ótima pista. Este tem 3 'x 7' com curvas semicirculares.

Etapa 2: familiarize-se com o robô

Familiarize-se com o robô
Familiarize-se com o robô

Primeiro, você se familiarizará com o menu do robô, bem como com algumas das partes deste robô em particular. Você também aprenderá sobre a tecnologia de sensor de estilo industrial usada pelo robô, incluindo diodos emissores de luz, sensores de luz, motores de passo e sensores de posição rotacional. Certifique-se de preencher todas as informações solicitadas (geralmente espaços em branco sublinhados _).

1. Desconecte o robô do carregador e / ou da porta USB do seu PC. Use o botão laranja para ligar o robô. Os botões laranja, esquerdo e direito e o botão retângulo cinza “voltar” permitem a navegação no menu. Navegue até o menu “Arquivos de software” e role pelos arquivos de software disponíveis no robô. Liste os nomes de cada arquivo de software, exatamente como está escrito, incluindo letras maiúsculas e espaços:

_

Etapa 3: calibrar o sensor de luz

Calibre o sensor de luz
Calibre o sensor de luz

2 Examine o sensor de luz e as informações de calibração. Volte para o menu principal e selecione "Exibir". Selecione a opção “Reflected Light” e a porta (deveria ser “Port 3”) que faz com que a luz acenda e um número seja exibido na tela. Certifique-se de que tudo está funcionando e registre algumas informações de calibração.

uma. Leitura máxima usando uma folha de papel branca: Número: _ Descreva a distância aproximada do papel: _

b. Leitura máxima quando no piso de linóleo de cor clara: _

c. Leitura mínima ao apontar para o centro da fita isolante preta: _

Etapa 4: teste de calibração do motor

Calibração do motor de teste
Calibração do motor de teste

3 Examine os motores das rodas (esquerdo e direito), bem como as informações de calibração. Volte ao menu principal e selecione “Rotações do motor” Selecione a porta (deve ser “Porta B” ou “Porta C” para os dois motores). Veja se você pode verificar a calibração desta leitura girando cada motor um número fixo de rotações enquanto visualiza a leitura. Você fará o mesmo teste de calibração para ambos os motores usando a tela de calibração “Exibir” à “Graus do motor”.

Motor na porta B

  • Número de vezes que você girou a roda _
  • Valor de exibição de “Rotações do motor” _
  • A distância em graus da roda foi girada_
  • Valor de exibição de “Graus do Motor” _

Motor na porta C

  • Número de vezes que você girou a roda _
  • Valor de exibição de “Rotações do motor” _
  • A distância em graus da roda foi girada_
  • Valor de exibição de “Graus do Motor” _

Os valores de exibição estão de acordo com suas expectativas? Por favor explique. _

Etapa 5: execute o controlador liga-desliga fornecido

Execute o controlador liga-desliga fornecido
Execute o controlador liga-desliga fornecido

Um controlador "On-Off" (às vezes chamado de "Bang-Bang") tem apenas duas opções, on e off. É semelhante ao controle do termostato de sua casa. Quando definido para uma temperatura escolhida, o termostato vai aquecer a casa se estiver muito frio e resfriar a casa se estiver muito quente. A temperatura escolhida é chamada de "Set Point" e a diferença entre a temperatura atual da casa e o Set-Point é chamado de "Erro". Então você poderia dizer, se o erro for positivo, ligue o AC, caso contrário ligue o aquecedor.

No nosso caso, o robô irá virar para a esquerda ou direita, dependendo se o Set-Point do sensor de luz tem um erro positivo ou negativo (muito no chão branco ou muito na fita preta).

Você notará que seu robô já pode estar carregado com uma série de programas (ou você pode usar o arquivo "01 line.rbt" anexado embutido aqui) armazenados nele com nomes como “1 linha” e “2 linhas” e ali também pode ser uma letra adicional após o número do programa, como “linha 3b”. Você precisará executar o programa com o número “1” no nome e, em seguida, colocar o robô na faixa de fita, com o senor na linha preta. Tente ficar longe de outros robôs que já estão na pista para que você possa cronometrar seu robô sem interromper o choque com outros robôs.

4 Meça os seguintes testes de tempo:

uma. Hora de completar um lado reto da pista: _

b. Descreva o movimento do robô em linha reta: _

c. Tempo para completar uma curva da pista: _

d. Descreva o movimento do robô de trilha curva: _

e. Hora de dar a volta completa na pista uma vez: _

Etapa 6: Abra o software do controlador On-Off "01 Line"

Abra o
Abra o
Abra o
Abra o
Abra o
Abra o

Você abrirá o software “LEGO MINDSTORMS NXT 2.0” (não o software Edu 2.1) e carregará o programa apropriado chamado "01 line.rbt" e examinará e modificará o software, seguindo as instruções abaixo:

Abra o software “LEGO MINDSTORMS NXT 2.0” (não o software Edu 2.1). Seu instrutor lhe dirá onde os arquivos estão armazenados em seu computador e, a partir desse local, você abrirá o programa “1 linha”. Basta selecionar “Arquivo” e depois “Abrir” e escolher o programa de “1 linha” para abrir.

Uma vez que o programa é aberto, você pode usar o ícone de “mão” para mover a imagem da tela inteira do programa, e você pode usar o ícone de “seta” para clicar em objetos individuais para ver como eles funcionam (e também fazer alterações).

Etapa 7: Compreendendo o software do controlador On-Off "01 Line"

Compreendendo o
Compreendendo o

O programa “1 linha” usa um método de controle “On-Off”. Nesse caso, as opções são “Virar à esquerda” ou “Virar à direita”. O gráfico contém uma descrição dos elementos do programa:

Etapa 8: Editando o Software do Controlador On-Off "01 Line"

Editando o
Editando o

Altere o ponto de ajuste e compare os resultados.

Você descobriu alguns valores do mundo real do medidor de luz na etapa 2 acima. Você registrou os valores nas partes bec, números para os valores mínimo e máximo que o robô veria ao executar a pista.

5 Calcule um valor de ponto de ajuste BOM (a média do mínimo e máximo): _

6 Escolha um valor de configuração RUIM (um número muito próximo do mínimo ou máximo): _

Altere o ponto de ajuste para um desses valores usando o ícone de seta para clicar na caixa de cálculo do erro e alterando o número que está sendo subtraído (veja a imagem abaixo). Agora conecte o robô ao PC usando o cabo USB, certifique-se de que o robô está ligado e baixe a nova versão do programa “1 linha” para o robô. Você verá quanto tempo o robô leva para dar a volta na pista no sentido horário, uma vez com o ponto de ajuste BOM e uma vez com o ponto de ajuste RUIM.

7 testes de tempo completos com valores de ponto de ajuste BOM e RUIM

uma. Hora de dar a volta completa na pista uma vez (BOM Set-Point): _

b. Hora de dar a volta completa na pista uma vez (Ponto de ajuste RUIM): _

Suas observações / conclusões? _

Etapa 9: Compreendendo o "02 Line" On-Off com software controlador de zona morta

Compreendendo o
Compreendendo o

Se o AC e o aquecimento em sua casa continuassem ligando e desligando o dia todo, isso definitivamente poderia destruir seu sistema HVAC (ou pelo menos encurtar sua vida). A maioria dos termostatos é feita com uma "zona morta" embutida. Por exemplo, se seu ponto de ajuste é 70 graus Fahrenheit, o termostato pode não ligar o AC até atingir 72 graus, nem ligaria o aquecimento até que a temperatura caísse para 68 graus. Se a zona morta ficar muito larga, a casa pode se tornar desconfortável.

No nosso caso, usaremos o programa da linha 02 para adicionar uma zona morta, durante a qual o robô simplesmente dirigirá em linha reta.

Agora examine o arquivo de software “02 line” conforme descrito no gráfico e conforme contido no arquivo anexado.

Este arquivo de software programa o robô para seguir a linha usando o controle liga-desliga com uma lacuna diferencial. Isso também é conhecido como Deadband e significa que o robô irá virar para a esquerda ou direita dependendo do erro, mas se o erro for pequeno, o robô irá apenas seguir em frente.

O programa “linha 02” calcula o acima primeiro subtraindo o ponto de ajuste da Medição de Luz e, em seguida, fazendo as comparações conforme observado acima. Examine o programa no PC e registre os valores que vê.

Qual é o valor atual (original) dos programas de “2 linhas” do Set-Point? _

Qual é o valor atual (original) dos programas de “2 linhas” Erro Positivo “Grande”? _

Qual é o valor atual (original) dos programas de “2 linhas” Erro negativo “Grande”? _

Qual intervalo de erro de banda morta fará com que o robô vá direto? DE PARA _

Execute três (3) testes de tempo com valores diferentes para o erro “Grande” acima. As configurações atuais de “2 linhas”, bem como duas outras configurações que você irá calcular. Você já escolheu um BOM Set-Point para o seu robô. Agora você vai escolher dois intervalos de banda morta diferentes e registrar o tempo que o robô leva para fazer uma volta no sentido horário:

Configurações originais para 02 linha _

Banda morta de +4 a -4 _

Banda morta de +12 a -12 _

Etapa 10: Compreendendo o Software do Controlador Proporcional "03 Line"

Compreendendo o
Compreendendo o

Com o controle proporcional, não apenas ligamos ou desligamos o aquecimento, podemos ter várias configurações de quanto ligar o forno (como o tamanho das chamas em um fogão). No caso do robô, não temos apenas três configurações de motor (esquerda, direita e reta). Em vez disso, podemos controlar a velocidade das rodas esquerda e direita para obter uma ampla variedade de taxas de viragem. Quanto maior o erro, mais rápido queremos voltar para a linha.

Vejamos o Controle Proporcional com o programa “03 linha”

O programa para a "linha 03" é mais complicado porque não só configura o método de controle "Proporcional", mas também contém todo o software para fazer controles Proporcional-Integral, Proporcional-Diferencial e Proporcional-Integral-Diferencial (PID). Ao carregar o software, provavelmente, ele ficará muito grande para caber na tela de uma só vez, mas na verdade possui três partes, conforme mostrado no gráfico anexo.

A - A matemática para calcular o erro e o “cálculo” para encontrar a integral e a derivada do erro ao longo do tempo.

B - A matemática para calcular a velocidade do motor esquerdo com base nas configurações de controle PID de Kp, Ki e Kd

C - A matemática para testar os limites de velocidade do motor e enviar as velocidades corretas do motor para os motores esquerdo e direito.

Todos os três executam seus próprios loops infinitos (após a inicialização) e você pode navegar usando o ícone de “mão”, mas volte para o ícone de “seta” para examinar o conteúdo da caixa e alterar as configurações.

Etapa 11: Editando o Programa de Linha 03 (Controle Proporcional)

Editando o Programa de Linha 03 (Controle Proporcional)
Editando o Programa de Linha 03 (Controle Proporcional)

Na seção intermediária (seção B na descrição anterior), você notará que no programa de “linha 03”, as configurações de Ki e Kd são ambas 0.

Vamos deixá-los assim. Estaremos apenas alterando o valor de Kp, a parte Proporcional do controlador.

Kp decide quão suavemente o robô muda a velocidade conforme se afasta da linha. Se Kp for muito grande, o movimento será extremamente irregular (semelhante ao controlador On-Off). Se Kp for muito pequeno, o robô fará as correções muito lentamente e se afastará da linha, especialmente nas curvas. Pode até flutuar a ponto de perder totalmente a linha!

13 Qual Set-Point o programa “03 line” está usando? (subtraído após a leitura da configuração da luz no loop A) _

14 Qual é o valor de Kp no programa atual de “03 linhas”? _

Contra-relógio para controlador proporcional (programa de “3 linhas”)

Você usará as configurações originais do programa "03 linhas" salvo na memória do seu robô para fazer um contra-relógio e também usará duas outras modificações no programa "03 linhas" para um total de três medições de contra-relógio. As modificações que você deve fazer incluem

DRIFTY - Encontrar um valor de Kp que faça o robô se desviar muito lentamente e, possivelmente, perder de vista a linha (mas espero que não). Tente um Kp com valores diferentes entre 0,5 e 2,5 (ou outro valor) até obter um em que o robô deriva, mas permanece na linha.

JERKY - Encontrar um valor de Kp que faz o robô balançar para frente e para trás, muito semelhante ao tipo de movimento On-Off. Tente um valor Kp em algum lugar entre 1,5 e 3,5 (ou outro valor) até obter um em que o robô apenas comece a exibir o movimento para frente e para trás, mas não muito dramaticamente. Isso também é conhecido como o valor “crítico” de Kp.

Testes de tempo para uma volta inteira no sentido horário ao redor da pista são necessários apenas com os valores originais de “3 linhas” e os dois novos conjuntos de valores (DRIFTY e JERKY) que você descobre fazendo o robô seguir apenas um pequeno comprimento da pista. Não se esqueça de fazer o download das alterações para o seu robô todas as vezes!

15 Registre os valores de controle proporcional e os contra-tempos para o programa de “3 linhas” (lembre-se de baixar as alterações para o robô!) Para cada um desses três valores de Kp (o valor da linha 03 original e dois valores que você determina por tentativa e erro ser DRIFTY e JERKY).

Etapa 12: Controladores PID avançados

Controladores PID avançados
Controladores PID avançados
Controladores PID avançados
Controladores PID avançados

Antes de iniciar esta etapa, certifique-se de concluir as etapas anteriores, registrando todas as informações solicitadas, com o robô específico que você pretende usar neste laboratório. Cada robô é ligeiramente diferente, no que diz respeito aos aspectos mecânicos, aspectos motores e, especialmente, os resultados do sensor de luz na pista.

Números de que você precisará dos experimentos anteriores

16 Leitura máxima do sensor de luz (da etapa 2) _

17 Leitura mínima do sensor de luz (da etapa 5) _

18 BOA configuração para o ponto de ajuste (média das opções acima) _

19 configuração DRIFTY para Kp (da etapa 15) _

20 configuração JERKY (crítica) para Kp (da etapa 15) _

Compreendendo o controlador PID

Você pode ter aprendido sobre o controlador Proporcional Integral Diferencial (PID) como parte de um curso de Controles Industriais, e uma boa visão geral rápida está online na Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

No caso desta experiência, o valor medido é a quantidade de luz refletida do chão. O ponto de ajuste é a quantidade de luz desejada quando o robô está diretamente acima da borda da fita preta. O erro é a diferença entre a leitura de luz atual e o ponto de ajuste.

Com o controlador Proporcional, a velocidade do motor esquerdo foi proporcional ao erro. Especificamente:

Erro = Leitura de luz - Ponto de ajuste

Neste gráfico, o ponto de ajuste foi definido como 50.

Mais tarde, para encontrar a velocidade do Motor Esquerdo, multiplicamos o erro pela constante de Proporção “Kp” especificamente:

L Motor = (Kp * Erro) + 35

Onde neste gráfico, Kp é definido como 1,5, e a adição de 35 acontece em outra parte do programa. O valor de 35 é adicionado para converter o número que está em algum lugar no intervalo de -40 a +40, para um número que está em algum lugar entre 10 e 60 (velocidades razoáveis do motor).

O Integral é uma espécie de memória do passado. Se o erro estiver ruim há mais tempo, o robô deve acelerar em direção ao ponto de ajuste. Ki é usado para multiplicar pelo Integral (o integral é a soma dos erros - neste caso, reduzido em 1,5 a cada iteração para que o robô tenha uma “memória de desvanecimento” dos erros anteriores).

O derivado é uma espécie de previsão do futuro. Prevemos um erro futuro comparando o último erro com o erro atual e assumimos que a taxa de variação do erro será um tanto linear. Quanto maior a previsão do erro futuro, mais rápido precisamos nos mover para o ponto de ajuste. Kd é usado para multiplicar pela Derivada (a derivada é a diferença entre o erro atual e o erro anterior).

L Motor = (Kp * Erro) + (Ki * Integral) + (Kd * Derivativo) + 35

Etapa 13: Encontrando os melhores parâmetros PID

Encontrando os melhores parâmetros PID
Encontrando os melhores parâmetros PID
Encontrando os melhores parâmetros PID
Encontrando os melhores parâmetros PID
Encontrando os melhores parâmetros PID
Encontrando os melhores parâmetros PID

Existem várias maneiras que podem ser usadas para encontrar os parâmetros PID, mas nossa situação tem aspectos únicos que nos permitem usar uma forma experimental mais “manual” de encontrar os parâmetros. Os aspectos únicos que temos são:

  • Os experimentadores (você) têm uma boa compreensão da maneira como a máquina opera
  • Não há perigo de ferimentos pessoais se o controlador enlouquecer e também não há perigo de danificar o robô por causa de configurações incorretas do controlador
  • O sensor de luz é um dispositivo de detecção desleixado e há apenas um sensor de luz, então só podemos esperar obter um resultado final marginalmente bom. Portanto, um "melhor esforço" é bom para nossos experimentos

Primeiro, já usamos a “linha 03” para decidir o melhor Kp (o BOM Set-point e os valores JERKY Kp, etapas 18 e 20 acima). Consulte o primeiro gráfico para obter instruções sobre como encontramos o valor JERKY para Kp.

Use o software “04 line” para determinar Ki. Primeiro modificaremos a “linha 4” para ter os valores que registramos nos itens 18 e 20 acima. Em seguida, aumentaremos lentamente o Ki até obtermos um valor que realmente nos mova para o ponto de ajuste muito rapidamente. Consulte o segundo gráfico para obter instruções sobre como selecionar o valor do Ki.

21 MAIS RÁPIDO Valor de Ki que se estabelece no ponto de ajuste o mais rápido (mesmo com algum excesso) _

Use o software “05 line” para determinar Kd. Primeiro modifique a “linha 5” com os valores das etapas 18, 20 e 21 e, em seguida, aumente Kd até obter o robô de trabalho final que atinge o ponto de ajuste rapidamente e com muito pouco overshoot, se houver. O terceiro gráfico mostra instruções sobre como selecionar Kd.

22 Valor ÓTIMO de Kd _

23 QUANTO TEMPO DEVE SER SEU ROBÔ PARA CIRCULAR A PISTA AGORA ??? _

Etapa 14: Conclusão

O experimento de laboratório correu muito bem. Com cerca de 20 alunos, usando as 10 (dez) configurações de estação de trabalho + robô mostradas no primeiro gráfico, nunca houve um congestionamento de recursos. No máximo três robôs circulavam a pista de cada vez para os contra-relógio.

Eu recomendo quebrar a parte de controle PID (no mínimo, programas "linha 04" e "linha 05") para um dia separado, por causa dos conceitos envolvidos.

Aqui está uma sequência de vídeos mostrando a progressão dos controles (de "01 linha" para "05 linha") usando valores que eu selecionei - mas cada aluno apresentou valores ligeiramente diferentes, o que era de se esperar!

LEMBRE-SE: Uma das principais razões pelas quais equipes de robôs muito bem preparadas se saem mal em eventos de competição é o fato de que eles não realizam a calibração no local exato em que o evento acontecerá. A iluminação e pequenas mudanças de posição dos sensores devido a empurrões podem afetar muito os valores dos parâmetros!

  • Controle PID de 01 linha (On-Off) com Lego Robots -
  • Linha 02 (On-Off com Zona Morta) Controle PID com Lego Robots -
  • Controle PID de 03 linhas (Proporcional) com Lego Robots -
  • Controle PID de linha 04 (Proporcional-Integral) com Lego Robots -
  • Linha 05 (Proporcional-Integral-Derivativo) Controle PID com Lego Robots -

Recomendado: