Controle PID Arduino - vídeo 3

Поділитися
Вставка
  • Опубліковано 3 лют 2025

КОМЕНТАРІ • 43

  • @AmiltonJr
    @AmiltonJr Рік тому

    Série sensacional. Sua didática é de fácil entendimento. Adorei a essa série sobre o assunto.
    Obrigado por compartilhar.

  • @Roger-e4t
    @Roger-e4t 7 місяців тому

    Bruno. Parabéns. Excelentes vídeos. Direto ao ponto com abordagem teórica e pratica

  • @edmarsousa1399
    @edmarsousa1399 Рік тому

    Parabéns pela aula professor. Agora entendi como funciona PID.

  • @joaopauloferreira1708
    @joaopauloferreira1708 3 роки тому +3

    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

    • @prof_brunoraniere
      @prof_brunoraniere  3 роки тому +2

      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

    • @cidowilson
      @cidowilson 3 роки тому +1

      @@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!!

    • @prof_brunoraniere
      @prof_brunoraniere  3 роки тому +1

      Acredito sim, às vezes acho que as faculdades tem alguma rixa com a prática, só pode! Haha

  • @nunesf1327
    @nunesf1327 2 місяці тому

    Bruno aquele video sobre controle de temperatura PID informado no finalo deste video saiu?

  • @JosemarCC
    @JosemarCC 9 місяців тому

    parabéns professor, muito boa aula!!!!

  • @wallersonabreu4608
    @wallersonabreu4608 2 роки тому +1

    Melhor assunto sobre PID que ja vi, sem dúvida, muito bem detalhado, riquíssimo! Tem Like, ta salvo e ta inscrito. Parabéns👏👏👏👏👏

  • @edsonferraz1
    @edsonferraz1 Рік тому

    Show de bola, muito legal, execelente exemplo, parabéns!!!

  • @reginaldonunesdasilva400
    @reginaldonunesdasilva400 2 роки тому

    Ótima sequência de vídeo. Muito didático! Parabéns Professor.

  • @edsonhilario5806
    @edsonhilario5806 2 роки тому

    Parabéns Mestre muito útil e didático, show de bola!

  • @DiegoTorresLima
    @DiegoTorresLima 2 роки тому

    Show!
    Ótima série!
    Obrigado por compartilhar seus conhecimentos conosco e parabéns!

  • @mikesantos9240
    @mikesantos9240 6 місяців тому

    professor tem como encontrar o controlador PID pelo sisotool(matlab)? utilizando a funcao de transferencia aproximada da planta?

  • @marcelocerchiareto800
    @marcelocerchiareto800 Рік тому

    Foi bem prático e direto.

  • @weltksp
    @weltksp 2 роки тому

    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!

  • @danielfiel25
    @danielfiel25 3 роки тому

    Otima explicação!

  • @MORAL1952
    @MORAL1952 Рік тому

    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

  • @deathnote7943
    @deathnote7943 3 роки тому

    Show de bola Profº

  • @chicodorea
    @chicodorea 11 місяців тому

    me pareceu inicial uma busca binária do valor kp, feita inicialmente. Uso isso de forma intencional?

  • @andrefeliciano3813
    @andrefeliciano3813 3 роки тому

    👏👏👏👏

  • @ProfMarcoCamara
    @ProfMarcoCamara 7 місяців тому +1

    Excelente material. Parabéns. Recomendo apenas que você reveja o áudio, pois perde o sincronismo da metade para o final.

  • @joaocamps
    @joaocamps 2 роки тому

    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

  • @joaocamps
    @joaocamps 2 роки тому

    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

  • @Mario-ye9pt
    @Mario-ye9pt 10 місяців тому

    E como seria com o derivativo?

  • @vitora.garcia2797
    @vitora.garcia2797 Рік тому

    Parabéns pelo conteúdo! Muito bom! Chegou a fazer o controle de temperatura?

    • @prof_brunoraniere
      @prof_brunoraniere  Рік тому

      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

  • @JeyLAB
    @JeyLAB 3 роки тому

    Boooooooa. :D Show demais.

  • @gilbertoassis2798
    @gilbertoassis2798 2 роки тому

    Ó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.

    • @prof_brunoraniere
      @prof_brunoraniere  2 роки тому

      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

    • @gilbertoassis2798
      @gilbertoassis2798 2 роки тому

      @@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.

  • @davidmartinsleite123
    @davidmartinsleite123 3 роки тому +1

    Ficaria interessante transcrever a planta para o scilab, afim de usar a sintonia do Nichols ou Luyben

    • @prof_brunoraniere
      @prof_brunoraniere  3 роки тому

      Ah, isso é assunto pra outro vídeo, nesse foi a sintonia no modo tentativa e erro mesmo!

  • @Crusader_No_Regret
    @Crusader_No_Regret 10 місяців тому

    Pq tentativa e erro? Existem métodos de cálculos específicos para esses ganhos…

  • @deathnote7943
    @deathnote7943 3 роки тому

    se fosse possivel me inscreveria mil vezes

    • @prof_brunoraniere
      @prof_brunoraniere  3 роки тому

      Aí seria show! Haha
      Mas se vc compartilhar esse meu conteúdo com seus amigos já vai estar ajudando demais!

  • @andrefeliciano3813
    @andrefeliciano3813 3 роки тому

    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.

    • @prof_brunoraniere
      @prof_brunoraniere  3 роки тому +1

      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!

  • @marinilsonmoreira
    @marinilsonmoreira Рік тому

    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);
    }
    //---------------------------------------------------------------------------