{"id":1118,"date":"2016-08-23T12:17:12","date_gmt":"2016-08-23T15:17:12","guid":{"rendered":"http:\/\/apcmode.com\/?page_id=1118"},"modified":"2020-09-16T18:34:26","modified_gmt":"2020-09-16T21:34:26","slug":"algoritmo-pid","status":"publish","type":"page","link":"https:\/\/apcmode.com\/?page_id=1118","title":{"rendered":"Algoritmo PID"},"content":{"rendered":"<pre>\/\/ vari\u00e1veis globais\n\nBOOL  auto;       \/\/ controlador em modo autom\u00e1tico(1)\/manual(0)\nREAL  pv,         \/\/ vari\u00e1vel de processo (controlada)\n      mv,         \/\/ vari\u00e1vel manipulada\n      sp,         \/\/ vari\u00e1vel de refer\u00eancia (setpoint)\n      spr,        \/\/ setpoint remoto\n      erroant,pvfant,acaoI_ant;  \/\/ auxiliares;\n\n<strong>procedure PID () {<\/strong>\n\n\/\/ declara\u00e7\u00e3o de vari\u00e1veis locais\nBOOL  SP_local,   \/\/ setpoint Local(1)\/Remoto(0)\n      direto,     \/\/ processo com a\u00e7\u00e3o direta(1)\/Reversa(0)\n      acaoP_ON,   \/\/ a\u00e7\u00e3o proporcional ligada(1)\/desligada(0)\n      acaoI_ON,   \/\/ a\u00e7\u00e3o proporcional integral(1)\/desligada(0)\n      acaoD_ON,   \/\/ a\u00e7\u00e3o proporcional derivativa(1)\/desligada(0)\n      DevPV,      \/\/ a\u00e7\u00e3o derivariva na PV(1)\/Erro(0)\n      ISA;       \/\/ algoritmo PID do tipo ISA(1)\/Paralelo(0)\nREAL  erro, erro2; \/\/ auxiliares\n\n \n\n  if not SP_local then sp:=spr;\n\n  if direto then begin       \/\/ calculo do erro de controle\n        erro:=sp-pv;\n        erro2:=fator_a*sp-pv; \/\/ erro com pondera\u00e7\u00e3o de SP\n  end else begin\n        erro:=pv-sp;\n        erro2:=pv-fator_a*sp;\n  end;\n\n  \/\/ calculo da PV filtrada a partir de uma equa\u00e7\u00e3o de diferen\u00e7a de ordem 1\n  PVF:=(talf\/(talf+deltaT))*PVFant+(deltaT\/(talf+deltaT))*PV;\n\n  if acaoP_ON then acaoP:=Kc*erro2 \/\/ calculo da a\u00e7\u00e3o proporcional\n  else acaoP:=0;\n\n  if acaoD_ON then begin     \/\/ calculo da a\u00e7\u00e3o derivativa\n        if DevPV then\n                if direto then acaoD:=Td*(pvf_ant-pvf)\/deltaT;\n                else acaoD:=Td*(pvf-pvfant)\/deltaT\n        else acaoD:=Td*(erro-erroant)\/deltaT;\n        if ISA then acaoD:=acaoD*Kc;\n  end else acaoD:=0;\n\n  if auto then begin\n        if (Ti&lt;&gt;0) AND (acaoI_ON) then begin    \/\/ c\u00e1lculo da a\u00e7\u00e3o integral\n                if ISA then acaoI:=acaoI_ant+erro*(1\/Ti)*Kc*DeltaT\n                else acaoI:=acaoI_ant+erro*(1\/Ti)*DeltaT;\n        end else acaoI:=0;\n        MV:=bias+acaoP+acaoI+acaoD;\n        if MV&gt;COMax then  \/\/ saturador e \u2018anti-windup\u2019\n                acaoI:=COMax-acaoP-acaoD-Bias\n        else if MV&lt;COMin then acaoI:=COMin-acaoP-acaoD-Bias;\n        MV:=bias+acaoP+acaoI+acaoD;\n  end\n  else acaoI:=MV-acaoP-acaoD-bias;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/\/ vari\u00e1veis globais BOOL auto; \/\/ controlador em modo autom\u00e1tico(1)\/manual(0) REAL pv, \/\/ vari\u00e1vel de processo (controlada) mv, \/\/ vari\u00e1vel manipulada sp, \/\/ vari\u00e1vel de refer\u00eancia (setpoint) spr, \/\/ setpoint remoto erroant,pvfant,acaoI_ant; \/\/ auxiliares; procedure PID () { \/\/ declara\u00e7\u00e3o &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/apcmode.com\/?page_id=1118\"> <span class=\"screen-reader-text\">Algoritmo PID<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":388,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"full-width-page.php","meta":{"footnotes":""},"class_list":["post-1118","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/1118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1118"}],"version-history":[{"count":1,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/1118\/revisions"}],"predecessor-version":[{"id":1350,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/1118\/revisions\/1350"}],"up":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/388"}],"wp:attachment":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}