Vinícius,
Oi amigo,
descobrir um erro no algoritmo do controlador PD por realimentação de velocidade, pois
o sinal de controle do PD clássico é u(t) = Kp*erro+ Kd*de(t)/dt,
onde derivada = (erro-erro_anterior)/Ts
só que o sinal de controle do PD por realimentação de velocidade é u(t) = Kp*erro - kd*dy(t)/dt
onde y(t) é a saída.
então o algoritmo certo seria:
erro = setPoint - actualPosition(lido do adc);
derivative = (actualPosition - previous_actualPosi tion)/Ts;
control = kp*error - Kd*derivative + control;
previous_actualPosi tion = actualPosition;
correto?
Fiz o teste com o Proteus e com software supervisorio e pude verificar que o software não estar enviando corretamente. Vou tentar consertar.
grato
Inicialmente você mencionou que o seu controlador PID (mestre), usando um PIC18F2480, acionará um outro controlador (escravo), enviando o SP para esse controlador. Aos leitores, essa arquitetura de controle, do tipo cascata, ou mestre - escravo, é frequentemente usada na indústria, e tem suas vantagens, quando adequadamente implementada. Neste caso:
(1) Pela teoria de controle, um controlador de posição é um controle de primeira ordem e o de velocidade de segunda ordem (é a derivada do primeiro). Para obter-se maior estabilidade, num controle em cascata, o usual é a malha de maior ordem ser o controlador mestre. Nesse caso, o controle de velocidade deveria ser o mestre.
(2) Caso o seu controlador escravo seja de velocidade e o seu controlador mestre, de posição, o controlador escravo (a ação proporcional apenas desse controlador) vai "correr atrás" da derivada da posição. E o seu controlador escravo, a ação proporcional apenas, vai acrescentar um zero no controle de posição mestre. Podendo instabilizar a coisa toda!!
(3) É necessário saber se o seu controlador escravo atua (é realimentado) com a velocidade ou a posição do motor.
(4) O seu controlador mestre controlará a posição, correto?
(5) "Agir por partes", .... aconselho a usar
SOMENTE a ação proporcional primeiramente, para verificar se tudo está correto. Somente após o controle proporcional se mostrar funcional, colocar as ações integral e derivativa para funcionar. Isso vale para os controladores mestre e escravo, com isso, a ordem do sistema se reduz. E consequentemente, a análise e a sintonia dos controladores fica +fácil.
(6) Se a coisa ficar complicada, difícil fazer o controle estabilizar... Considere usar o controle de posição como escravo, ou o controlador único.