O algoritmo de controle PID é um algoritmo de controle amplamente utilizado, o controle PID tem as vantagens de parâmetros ajustáveis, ampla gama de aplicações e alta precisão de controle. Na engenharia prática, o algoritmo PID pode ser aplicado ao controle eletromecânico, automação industrial, controle de robôs, controle de microprocessadores e muitos outros campos.
Os três parâmetros do algoritmo PID são ajustados: constante de proporcionalidade Kp, constante de tempo integral Ti, constante de tempo diferencial Td. Diferentes sistemas precisam definir diferentes parâmetros PID e geralmente é necessário obter os parâmetros ideais por meio de experimentos e depuração. A constante de proporcionalidade Kp ajusta a proporção, ajustando a relação entre saída e erro de feedback no sistema de controle; a constante de tempo integral Ti ajusta a integral, ajustando o acúmulo de erro no sistema de controle; a constante de tempo diferencial Td ajusta o diferencial, ajustando a taxa de variação do erro no sistema de controle.
Qual é a ideia de realizar o algoritmo pid com microcontrolador
Para realizar o algoritmo de controle PID em um microcontrolador, a seguinte é a ideia geral de realização:
1. **Determine os parâmetros PID**:
- De acordo com as características e necessidades do objeto de controle real, selecione o coeficiente de proporcionalidade (Kp), tempo de integração (Ti) e tempo de diferenciação (Td) adequados.
2. **Aquisição de dados do sensor**:
- Utilize sensores apropriados (por exemplo, sensores de temperatura, sensores de posição, etc.) para coletar dados de feedback do objeto de controle em tempo real.
3. **Definir valor e comparação de valor de feedback**:
- Compare o valor ajustado (valor desejado) com o valor de feedback e calcule o valor do erro (Error).
4. **Cálculo PID**:
- A quantidade de controle (saída) é calculada de acordo com a fórmula do algoritmo PID: PID=Kp * Erro + Ki * ∫ Erro dt + Kd * d(Erro)/dt.
- Kp, Ki e Kd são os parâmetros PID, Error é o valor do erro, ∫ Erro dt denota o termo integral e d(Erro)/dt denota o termo diferencial.
5. **Manuseio de Limites** (opcional):
- Para algumas aplicações, pode ser necessário limitar a faixa do valor de saída para evitar exceder a faixa aceitável do objeto de controle.
6. **Sinal de controle de saída**:
- A quantidade de controle calculada é emitida como um sinal de controle para o atuador (por exemplo, motor, válvula, etc.) para realizar a regulação e controle do objeto de controle.
7. **Definir frequência de controle**:
- De acordo com as necessidades de aplicações específicas, defina a frequência de controle adequada para controlar o ciclo de execução do algoritmo.
8. **Ciclo de execução do algoritmo PID**:
- No ciclo em tempo real, as etapas acima são executadas repetidamente para monitorar continuamente o valor de feedback, calcular a quantidade de controle e emitir o sinal de controle para realizar o controle estável do objeto.
Na programação real do microcontrolador, você pode escolher as ferramentas de desenvolvimento e a linguagem de programação apropriadas (como C ou linguagem assembly) de acordo com o modelo específico do microcontrolador e a plataforma de desenvolvimento. Deve-se notar que em aplicações práticas, haverá muitas técnicas para otimizar e melhorar o algoritmo PID, como separação integral, PID adaptativo, etc., que podem ser mais pesquisadas e implementadas de acordo com necessidades específicas.
Princípio e fluxo de trabalho do controlador PID
O controlador PID consiste em três partes: proporcional (P), integral (I) e diferencial (D), e gera a saída de controle processando o erro, desvio e taxa de variação do sistema. Seu fluxo de trabalho inclui as seguintes etapas:
- Obtenção de valores alvo e feedback
- Calcular o erro
- Calcule a saída de controle com base no coeficiente de proporcionalidade, termo integral e termo diferencial.
- Atualizando os parâmetros do controlador
- Saída de sinais de controle
Implementação de código STM32
A seguir está um exemplo de código para projetar e implementar um controlador PID usando um microcontrolador STM32:
```c
#incluir "stm32f4xx.h"
//Define os parâmetros do controlador PID
flutuar Kp=0.5; //fator de escala
flutuar Ki=0.2; // Coeficiente integral
flutuar Kd=0.1; // Coeficiente diferencial
//Definir variáveis de armazenamento
ponto de ajuste flutuante=50.0; // valor alvo
feedback flutuante=0.0; //valor de feedback
erro flutuante=0.0; //erro
flutuar last_error=0.0; //último erro
integral flutuante=0.0; // Termo integral
//Função de cálculo de saída do controlador PID
float pidController(float dt)
float pidController(float dt) {
//Calcula o erro
erro=ponto de ajuste - feedback; // Calcula o termo integral.
//Calcula o termo integral
erro integral += * dt; //calcula o termo diferencial
//Calcula o diferencial
derivada flutuante=(erro - last_error) / dt; // calcula a saída de controle.
//Calcula a saída de controle
saída flutuante=Kp * erro + Ki * integral + Kd * derivada; //Calcula a saída de controle.
//Atualiza o último erro
last_error=erro; // atualiza o último erro.
last_error=erro; saída de retorno; //Calcula a saída de controle.
}
int principal(vazio)
{
enquanto(1)
{
// Obtém o valor do feedback
// Obtém o intervalo de tempo
//Calcula a saída PID
flutuar dt=0.01; // 0,01s como intervalo de tempo no exemplo
float control_output=pidController(dt); // envia o sinal de controle.
// Emite o sinal de controle
// Atrasa o sinal de controle por um determinado período de tempo
para (int eu=0; eu 《 10000;eu++).
}
retornar 0; }
}




