Como você configura um controle PID se as constantes de tempo do sistema controlado são variáveis?

9

A descrição comum para um controlador PID contínua está escrito assim:

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
A melhor O valor das constantes Kp , Ki e Kd para um determinado sistema controlado dependerá de suas constantes de tempo, seja um sistema PT1 ou PT2 , etc. ...

O que você faz se a constante de tempo desse sistema for variável. Digamos que varia entre Ta e Tb ( Ta<Tb ). Como você projeta as constantes PID?

John HK
fonte

Respostas:

8

Uma maneira seria implementar alguma forma de controle adaptativo. Se o seu intervalo de constantes de tempo for pequeno e conhecido, você poderá usar algo chamado "programação de ganhos", onde poderá determinar com antecedência todas as constantes de tempo com as quais estará lidando (espero que seja finito) e usar a lógica if / then para definir o PI e D. Pode ser um desafio garantir que você tenha coberto a variabilidade suficiente para garantir a estabilidade e o desempenho em toda a faixa. Uma boa história de sucesso para a programação de ganhos é o helicóptero Chinook. Pode ser feito.

Se você não tiver uma previsão viável para quais serão as constantes de tempo, poderá usar o MRAC (Model Reference Adaptive Control). Neste esquema de controle, você tem um modelo de referência (seu sistema ideal) com o controlador PID escolhido. O MRAC minimiza o erro entre o que a planta está realmente fazendo e o que o seu modelo de referência está fazendo. Dessa maneira, você força sua planta em transformação a agir como seu modelo de LTI.

Ou você pode tentar usar o MIAC (Model Identification Adaptive Controller). Aqui, o esquema de controle identifica o sistema em tempo real e usa uma lei de atualização para o seu controlador. Este requer a habilidade mais avançada das três idéias.

Como seu sistema está alterando constantes de tempo ao longo do tempo, não é mais LTI. Isso significa que você precisa obter agendamento (bastante fácil se souber o intervalo de constantes de tempo) ou a identificação do sistema com a lei de atualização do seu PID.

willpower2727
fonte
por que não equalizar dinamicamente as etapas de tempo projetando para um passo mais longo e tornando o software quase em tempo real, aguardando durante cada iteração antes de enviar comandos do atuador?
Gürkan
@ GürkanÇetin o que o software está esperando? Você pode me ajudar a entender o que está acontecendo quando o software atrasa deliberadamente uma atualização de controle?
willpower2727
Se eu entendi corretamente, há um atraso de tempo desconhecido em cada loop das iterações de computação (ou seja, devido a comunicações de E / S ou outras tarefas da CPU). Esse é um problema geral em um destino não em tempo real (SO). Portanto, ajustando o controlador para um delta_t predeterminado (longo) (por exemplo, 100 ms) e, a cada iteração, tentando ajustar o tempo total do loop para esse delta_t (suponha que os algoritmos de controle sejam finalizados no 80º ms, aguarde 20 ms) ) para enviar os comandos de controle; pode funcionar, se for sabido que todas as outras tarefas levam menos de 100 ms (menos o tempo de cálculo da lei de controle).
Gürkan
@ GürkanÇetin Se eu entendi a pergunta original corretamente, a questão é sobre como controlar quando os aspectos físicos de uma planta mudam ao longo do tempo (por exemplo, foguetes perdendo massa ao longo do tempo), não como lidar com tempos de execução de loop operacional em tempo não real. Eu acho que sua sugestão pode ser válida, em termos de lidar com sistemas operacionais em tempo não real executando um controlador.
willpower2727
Ai sim. Eu confundi a pergunta. Nesse caso, se a planta estiver mudando com o tempo (abrupta ou gradualmente), eu diria que a reconfiguração é outra possibilidade. Obviamente, funciona apenas se você conhecer a mudança na dinâmica do modelo. Como perder massa, gastar combustível, extrair / retrair trens de pouso, etc.
Gürkan Çetin