Durante a minha faculdade, fiquei realizando cálculos em sistemas de controle durante 1,5 anos sem nunca ter colocado a mão na massa (e sequer tido algum exemplo prático nas aulas). Hoje, depois de assistir a playlist e tentar replicar a experiência, posso dizer que estou começando de fato aprender a controlar sistemas embarcados com uso de PID. Muito obrigado professor! Vou compartilhar com a turma que estudei rsrs
Como fico feliz em ler isso! Também tive na faculdade experiência semelhante a sua, infelizmente. Que bom que meus vídeos estão te ajudando a entender PID de outra forma
@@prof_brunoraniere Eu estudei junto com o João Paulo e assino embaixo o que ele disse rsrsrs Acredite se quiser na nossa faculdade a única coisa que a gente fez foi fazer transformada de Laplace de números aleatórios, e aplicar fórmulas em números aleatórios (tudo no papel) kkkkkk Não tinha nem hardware imaginário, era só aplicar fórmulas em números aleatórios mesmo kkkkk Como alguém vai aprender Controle assim?? As palavras "controlador PID" não foram nem citadas pra vc ter uma ideia... As aulas de laboratório eram a mesma coisa, só que no computador... Até a gente descobrir que existe "controlador PID", e achar o seu vídeo nós estávamos totalmente perdidos! Totalmente perdidos mesmo! Valeu Bruno Raniere, você é bom demais!! Obrigado mesmo!!
Me salvou, tô tentando implementar um controle PID num código que desenvolvi em linguagem C para microcontrolador PIC .. apesar de criar uma função PID com todos os cálculos certinhos .. meu sistema fica extremamente instável quando altero o valor das constantes, pois não achei a sintonia. Talvez esteja tudo certo e eu só precise seguir esse método para achar a sintonia .. muito bom seu vídeo, parabéns!
Bom-dia, professor Bruno! Parabéns, muito bom o seu método. Desenvolvi um procedimento semelhante, mas com pequenas alterações. Usei o Matlab para gerar as respostas ao degrau unitário na entrada. Inicio com Kp, Ki e Kd nulos, também. Procurei considerar um caso em que existe um automóvel, em velocidade constante e que tenha que chegar a um destino (percurso em linha reta), onde há um muro. Neste caso não pode haver overshoot. Como fazer o automóvel chegar ao destino, apenas encostar no muro e no menor tempo possível? Na realidade desejo fazer um controle de uma bola em uma rampa (balança e bola). Em meu método altero os parâmetros Kp, Ki e Kd seguindo uma sequência diferente. Inicio alterando os valores iniciais de Kp tais que me forneça determinado valor na saída. Depois altero Kd para eliminar o overshoot. Depois o Ki. Comparado ao método Ziegler-Nichols, cheguei a um overshoot menor que 0,2%, porém com o dobro do período Settling Time. Caso deseje, posso colocar o programa aqui. Grato
Muito bom todos os videos acabei de conhecer o canal gostei muito Nao me entenda mal queria tirar uma duvida, na biblioteca arduino tenho uma saida pid rele. Esta saida rele eu poderia controlar uma resistencia 15000W alimentada por um rele de estado solido scr entrada controle de 3 a 5V diretamebte pelo arduino
boa noite acompanhando todos os seus videos. tem me ajudado muito. nao me entenda mal mas o controlador PID saida rele seria tao eficiente como PWM? pergunto pois queria controlar uma resistencia 220V 7000W
Obrigado! Não cheguei a fazer. Comecei a me dedicar a desenvolver projetos para clientes e não ando dedicando mais tempo a criar vídeos aqui para o UA-cam. Pretendo voltar no futuro, mas por enquanto meu foco é outro
Ótima explicação prof Bruno. Seria possível o Sr. fazer um vídeo explicando a sintonia de uma estufa, conforme o início do vídeo 1, usando um relé de estado sólido (SSR) e um sensor tipo K com módulo MAX6675? Muito obrigado.
Obrigado, Gilberto! Já tenho um vídeo sobre o max6675 ua-cam.com/video/XFZou-oBSq0/v-deo.html Assiste lá e aí é só juntar os conhecimentos e implemetar no seu sistema
@@prof_brunoraniere O prof Bruno, eu já conheço e inclusive já usei o MAX6675, porém, eu gostaria de ver funcionando junto com controle PID. E o controle da estufa, é processo bem mais lento do que o brilho de uma lâmpada. Obrigado. Um abraço.
Obrigado, André! Sim, houve um problema na câmera e ela perdeu alguns frames, por isso o sincronismo com o áudio ficou ruim. Espero que apesar disso tenha ficado tudo claro!
Esse é o codigo. nao sei se esta certo. comentem, como eu nao estou conectado no arduino eu coloquei setpoit e inPut para gerar aleatoriamente. #include #define pwmPin 3 #define pinoPulsos 2 double Setpoint, Input, Output; double Kp = 0.9, Ki = 0.5, Kd = 0; // Ajuste esses valores conforme necessário PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); unsigned long ultimoTempo = 0; //**************************************************************************************************************************** void setup() { pinMode(pwmPin, OUTPUT); pinMode(pinoPulsos, INPUT_PULLUP); Serial.begin(9600); myPID.SetMode(AUTOMATIC); // Define o PID para o modo automático myPID.SetOutputLimits(0, 255); // Define os limites de saída do PID para o intervalo correto myPID.SetSampleTime(75); // Define o tempo updateSetpoint(); } //**************************************************************************************************************************** void loop() { //Input = map(pulseIn(pinoPulsos, HIGH), 0, 150, 0, 256); // Leitura do pino calculo do tempo e normalização myPID.Compute(); // Cálculo do PID //Output = map(Output, 0, 255, 0, 255); analogWrite(pwmPin, Output); // Saída do PID controla a velocidade do motor através do PWM Serial.print(Setpoint); Serial.print(" "); //Serial.print(Input); //Serial.print(" "); Serial.print(Output); Serial.println(" "); if (millis() - ultimoTempo >= 3000) // Verifica se é hora de alterar o setpoint { updateSetpoint(); ultimoTempo = millis(); // Reinicia o contador de intervalo } } //**************************************************************************************************************************** void updateSetpoint() { Setpoint = random(0, 600); Input = random(0, 600); } //---------------------------------------------------------------------------
Série sensacional. Sua didática é de fácil entendimento. Adorei a essa série sobre o assunto.
Obrigado por compartilhar.
Bruno. Parabéns. Excelentes vídeos. Direto ao ponto com abordagem teórica e pratica
Parabéns pela aula professor. Agora entendi como funciona PID.
Durante a minha faculdade, fiquei realizando cálculos em sistemas de controle durante 1,5 anos sem nunca ter colocado a mão na massa (e sequer tido algum exemplo prático nas aulas). Hoje, depois de assistir a playlist e tentar replicar a experiência, posso dizer que estou começando de fato aprender a controlar sistemas embarcados com uso de PID. Muito obrigado professor! Vou compartilhar com a turma que estudei rsrs
Como fico feliz em ler isso! Também tive na faculdade experiência semelhante a sua, infelizmente. Que bom que meus vídeos estão te ajudando a entender PID de outra forma
@@prof_brunoraniere Eu estudei junto com o João Paulo e assino embaixo o que ele disse rsrsrs
Acredite se quiser na nossa faculdade a única coisa que a gente fez foi fazer transformada de Laplace de números aleatórios, e aplicar fórmulas em números aleatórios (tudo no papel) kkkkkk
Não tinha nem hardware imaginário, era só aplicar fórmulas em números aleatórios mesmo kkkkk
Como alguém vai aprender Controle assim??
As palavras "controlador PID" não foram nem citadas pra vc ter uma ideia...
As aulas de laboratório eram a mesma coisa, só que no computador...
Até a gente descobrir que existe "controlador PID", e achar o seu vídeo nós estávamos totalmente perdidos! Totalmente perdidos mesmo!
Valeu Bruno Raniere, você é bom demais!! Obrigado mesmo!!
Acredito sim, às vezes acho que as faculdades tem alguma rixa com a prática, só pode! Haha
Bruno aquele video sobre controle de temperatura PID informado no finalo deste video saiu?
parabéns professor, muito boa aula!!!!
Melhor assunto sobre PID que ja vi, sem dúvida, muito bem detalhado, riquíssimo! Tem Like, ta salvo e ta inscrito. Parabéns👏👏👏👏👏
Show de bola, muito legal, execelente exemplo, parabéns!!!
Muito obrigado
Ótima sequência de vídeo. Muito didático! Parabéns Professor.
Parabéns Mestre muito útil e didático, show de bola!
Show!
Ótima série!
Obrigado por compartilhar seus conhecimentos conosco e parabéns!
Obrigado, Diego!
professor tem como encontrar o controlador PID pelo sisotool(matlab)? utilizando a funcao de transferencia aproximada da planta?
Foi bem prático e direto.
Me salvou, tô tentando implementar um controle PID num código que desenvolvi em linguagem C para microcontrolador PIC .. apesar de criar uma função PID com todos os cálculos certinhos .. meu sistema fica extremamente instável quando altero o valor das constantes, pois não achei a sintonia. Talvez esteja tudo certo e eu só precise seguir esse método para achar a sintonia .. muito bom seu vídeo, parabéns!
Obrigado, Wellington! Bom trabalho pra vc
Otima explicação!
Bom-dia, professor Bruno!
Parabéns, muito bom o seu método.
Desenvolvi um procedimento semelhante, mas com pequenas alterações. Usei o Matlab para gerar as respostas ao degrau unitário na entrada.
Inicio com Kp, Ki e Kd nulos, também.
Procurei considerar um caso em que existe um automóvel, em velocidade constante e que tenha que chegar a um destino (percurso em linha reta), onde há um muro. Neste caso não pode haver overshoot. Como fazer o automóvel chegar ao destino, apenas encostar no muro e no menor tempo possível? Na realidade desejo fazer um controle de uma bola em uma rampa (balança e bola).
Em meu método altero os parâmetros Kp, Ki e Kd seguindo uma sequência diferente. Inicio alterando os valores iniciais de Kp tais que me forneça determinado valor na saída.
Depois altero Kd para eliminar o overshoot.
Depois o Ki.
Comparado ao método Ziegler-Nichols, cheguei a um overshoot menor que 0,2%, porém com o dobro do período Settling Time.
Caso deseje, posso colocar o programa aqui.
Grato
Show de bola Profº
me pareceu inicial uma busca binária do valor kp, feita inicialmente. Uso isso de forma intencional?
👏👏👏👏
Excelente material. Parabéns. Recomendo apenas que você reveja o áudio, pois perde o sincronismo da metade para o final.
Muito bom todos os videos acabei de conhecer o canal gostei muito
Nao me entenda mal queria tirar uma duvida, na biblioteca arduino tenho uma saida pid rele.
Esta saida rele eu poderia controlar uma resistencia 15000W alimentada por um rele de estado solido scr entrada controle de 3 a 5V diretamebte pelo arduino
boa noite acompanhando todos os seus videos. tem me ajudado muito. nao me entenda mal mas o controlador PID saida rele seria tao eficiente como PWM? pergunto pois queria controlar uma resistencia 220V 7000W
E como seria com o derivativo?
Parabéns pelo conteúdo! Muito bom! Chegou a fazer o controle de temperatura?
Obrigado!
Não cheguei a fazer. Comecei a me dedicar a desenvolver projetos para clientes e não ando dedicando mais tempo a criar vídeos aqui para o UA-cam. Pretendo voltar no futuro, mas por enquanto meu foco é outro
Boooooooa. :D Show demais.
Ótima explicação prof Bruno.
Seria possível o Sr. fazer um vídeo explicando a sintonia de uma estufa, conforme o início do vídeo 1, usando um relé de estado sólido (SSR) e um sensor tipo K com módulo MAX6675?
Muito obrigado.
Obrigado, Gilberto! Já tenho um vídeo sobre o max6675
ua-cam.com/video/XFZou-oBSq0/v-deo.html
Assiste lá e aí é só juntar os conhecimentos e implemetar no seu sistema
@@prof_brunoraniere O prof Bruno, eu já conheço e inclusive já usei o MAX6675, porém, eu gostaria de ver funcionando junto com controle PID. E o controle da estufa, é processo bem mais lento do que o brilho de uma lâmpada.
Obrigado. Um abraço.
Ficaria interessante transcrever a planta para o scilab, afim de usar a sintonia do Nichols ou Luyben
Ah, isso é assunto pra outro vídeo, nesse foi a sintonia no modo tentativa e erro mesmo!
Pq tentativa e erro? Existem métodos de cálculos específicos para esses ganhos…
se fosse possivel me inscreveria mil vezes
Aí seria show! Haha
Mas se vc compartilhar esse meu conteúdo com seus amigos já vai estar ajudando demais!
Bruno, ótimo exemplo e ótima didática. Não sei se foi impressão minha , lá pela metade do vídeo até o final o áudio não está sincronizado com o vídeo.
Obrigado, André! Sim, houve um problema na câmera e ela perdeu alguns frames, por isso o sincronismo com o áudio ficou ruim. Espero que apesar disso tenha ficado tudo claro!
Esse é o codigo. nao sei se esta certo. comentem,
como eu nao estou conectado no arduino eu coloquei setpoit e inPut para gerar aleatoriamente.
#include
#define pwmPin 3
#define pinoPulsos 2
double Setpoint, Input, Output;
double Kp = 0.9, Ki = 0.5, Kd = 0; // Ajuste esses valores conforme necessário
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
unsigned long ultimoTempo = 0;
//****************************************************************************************************************************
void setup()
{
pinMode(pwmPin, OUTPUT);
pinMode(pinoPulsos, INPUT_PULLUP);
Serial.begin(9600);
myPID.SetMode(AUTOMATIC); // Define o PID para o modo automático
myPID.SetOutputLimits(0, 255); // Define os limites de saída do PID para o intervalo correto
myPID.SetSampleTime(75); // Define o tempo
updateSetpoint();
}
//****************************************************************************************************************************
void loop()
{
//Input = map(pulseIn(pinoPulsos, HIGH), 0, 150, 0, 256); // Leitura do pino calculo do tempo e normalização
myPID.Compute(); // Cálculo do PID
//Output = map(Output, 0, 255, 0, 255);
analogWrite(pwmPin, Output); // Saída do PID controla a velocidade do motor através do PWM
Serial.print(Setpoint);
Serial.print(" ");
//Serial.print(Input);
//Serial.print(" ");
Serial.print(Output);
Serial.println(" ");
if (millis() - ultimoTempo >= 3000) // Verifica se é hora de alterar o setpoint
{
updateSetpoint();
ultimoTempo = millis(); // Reinicia o contador de intervalo
}
}
//****************************************************************************************************************************
void updateSetpoint()
{
Setpoint = random(0, 600);
Input = random(0, 600);
}
//---------------------------------------------------------------------------