De que frequência meu loop de atualização de saída com detecção e cálculo de saída do quadcopter precisa permanecer estável?

20

Com um quadricóptero motor a motor de 600 mm (2 pés), que frequência meu loop de atualização de cálculo de saída com detecção de sentido precisa para permanecer estável?

Estou estimando um peso total de decolagem de cerca de 0,9 kg, que espero ser principalmente motores e baterias.

David Cary
fonte
11
Suspeito que apenas respostas muito aproximadas serão possíveis aqui, pois há muitas variáveis ​​que afetarão a resposta do sistema. Talvez veja: Como eu calculo a frequência de loop necessária para um servo controlador?
Rocketmagnet

Respostas:

17

Como sugere o Rocketmagnet, de que frequência você "precisa" dependerá de muitas coisas. Quanto mais responsivos forem seus rotores, mais sensível será sua embarcação a picos aleatórios nos comandos do motor. Esses picos aleatórios podem ser causados ​​por leituras ruidosas de sensores causadas por imperfeições físicas, o que significa que você precisará diminuir os ganhos do controlador, o que, por sua vez, pode significar que seu quadrotor pode se tornar mais instável. Alguns outros fatores incluem as inércias rotacionais do quadrotor, o passo da pá das hélices, a localização do centro de massa e a distância de motor a motor.

Programei um controlador de vôo do zero para o meu tricóptero de 2 kg rodando em um ATmega1280 e descobri que em:

  • 50 Hz: permanecerá no ar, mas é quase impossível de controlar.
  • 100 Hz: pelo menos evitará inclinar imediatamente para um lado.
  • 200 Hz: eu posso soltá-lo em ambientes fechados com aceleração flutuante e ele fica mais ou menos em um ponto.

Pode ser interessante notar que, quanto maior a frequência de controle, mais eficazes as inércias do rotor tornam-se amortecedores físicos, o que ajuda a anular o ruído da IMU e melhorar a estabilidade do voo.

Mas se eu tivesse que fornecer um número fixo para uma frequência mínima de atualização do controlador de vôo para um quadrotor desse tamanho adequado para navegação interna, com base na experiência pessoal ...

Eu diria 80 Hz.

yoos
fonte
11
Eu não entendo por que você sugeriu 80Hz quando você tinha que usar 200Hz em uma embarcação muito maior; se alguma coisa quando o sistema for menor, você precisará de um tempo de amostragem mais rápido, pois as frequências naturais são mais altas porque há menos inércia.
Goncalo luis
Existem benefícios em rodar acima de 200 Hz? Eu tenho um sistema que roda a 2Khz no momento, mas com o custo de um peso extra.
tuskiomi
(Uau, isso é um tópico antigo, mas) @goncaloluis Eu sugeri 80Hz como um mínimo rígido. Você está totalmente certo sobre a necessidade de uma taxa de amostragem mais rápida para embarcações menores. :)
yoos 7/06
11
@tuskiomi Até certo ponto .. Seu aplicativo e a largura de banda desejada devem direcionar a frequência de loop de controle necessária, mas, como muitos observaram, a inércia se torna o fator limitante eventualmente.
Yoos
2

50-200Hz é bastante normal, como podemos ver nos projetos de código aberto. Você deve considerar que, na maioria dos casos, a inércia dos motores e a comunicação com os ESCs é o fator limitante.

user65
fonte
2
@ Shahbaz: Ser "código aberto" afeta nosso conhecimento da frequência do loop de controle. Se não é de código aberto, geralmente não temos idéia de qual é a frequência do loop de controle.
David Cary #
Não é completamente verdade. Controladores de vôo de código fechado geralmente publicam sua frequência de controle. A maioria deles possui controle de saída em 400hz para torná-los compatíveis com os controladores eletrônicos de velocidade padrão (ESCs). Por exemplo, do popular DJI Wookong-M: dji-innovations.com/tech-spec/wookong-m-sepc
foobarbecue
1

Para ser capaz de obter um número rígido, você precisa ter um modelo matemático e analisá-lo. Existem duas opções para obter um modelo de sistema:

1) Você cria uma representação matemática do quadcopter através de diagramas de corpo livre;

2) Você constrói um show para testar o quadcopter sem nenhum sistema de controle e usa a teoria da identificação para encontrar um modelo;

Então você terá que linearizar seu modelo, um quadcopter é inerentemente não linear. Faça um gráfico do sistema, a frequência que você precisa é aproximadamente o dobro da frequência mais alta do seu sistema.

Essa é a maneira "pro" de fazer isso. Se você não quiser passar por tudo isso, use um valor como o sugerido por user65 e yoos (leia meu comentário na resposta yoos) e repita até obter o que deseja. Você também não quer que o tempo da amostra seja muito alto, porque você começará a ter problemas quando o sistema de controle responder ao ruído.

goncalo luis
fonte
1

Sua pergunta só pode ser respondida especificamente se tivermos os parâmetros de modelo do seu sistema. A abordagem mais baseada em princípios para responder à sua pergunta seria representar a dinâmica altamente não linear do seu sistema em um tempo discreto; então, usando essa representação, é possível determinar um tamanho máximo de etapa para o qual a estabilidade é alcançada - este será o valor máximo que seu sistema pode usar com sucesso. Um tamanho mínimo de etapa será determinado não pela dinâmica do sistema, mas pelo hardware que você está usando - a ultrapassagem é o que me preocuparia neste caso.

JSycamore
fonte