Material sobre PID para controle PWM de dois motores em um robô

Olá, gostaria de saber onde posso encontra material sobre PID explicando como manter a corrente de dois motores constante para que um robô possa andar rápido e seguindo uma direção reta, pois estou tendo problema com meu robô. Eu uso o mesmo pwm para o motor, porém o sensor óptico lm393, que lê rotações dos motores, indica diferentes rpm em cada motor, e o robô fica girando em circulos. Agradeço pela atenção.

A corrente não define a velocidade dum motor... logo tens de ter isso em atenção. Também vais precisar de um encoder para medir a velocidade.

O teu maior problema é teres rodas perfeitamente iguais... e isso não é um PID que consegue.
Já pesquisaste online?

Sim, isto mesmo. Gostaria que as rodas tivessem a mesma velocidade. Para isto, precisaria de um encoder optico, por exemplo, para leitura de um disco acoplado ao eixo do motor. Para isto teria que ler os pulsos que o disco (no caso tenho um disco com 20 furos por volta) e ir incrementando um motor e decrementando outro motor, correto?

Mais ou menos... o encoder mede a velocidade, mas terá sempre um atraso... por outro lado, se os motores forem iguais, os drivers iguais e o controlo for igual, vai ser quase impossível de medir diferença na velocidade com um encoder de 20 furos ou mesmo mais preciso.

O problema maior está que o encoder mede a velocidade angular e a partir daí tu calculas a velocidade linear. No entanto, a velocidade linear está dependente de teres rodas perfeitamente iguais... o que não é tão simples quanto possa parecer para distâncias longas. Daí o meu comentário anterior. Assim sendo, será mais simples e directo controlar a velocidade dos motores sem tentar ajustar um dependente do outro.

OK. Este é mais ou menos o meu problema. Eu coloco o mesmo PWM para o driver L298n e o motor não anda em linha reta. Acredito que terei que ir no passo da escolha do PWM para tentar deixar os motores com a mesma velocidade linear como você disse. Vou testar com um ponte h diferente (L293d) para ver se influencia mais na velocidade. Obrigado pelas informações!

Como te disse, o encoder tem de ser bastante preciso (o que este de 2 pulsos não é), os motores convêm serem iguais e mesmo assim as rodas podem causar a curva que vês.