Escolar Documentos
Profissional Documentos
Cultura Documentos
Dica SOBRE BASICS HARDWARE NDICE PRXIMA
INTRODUO CONTROLEDECRUZEIRO
SISTEMA
MODELAGEM DCPosiodomotor:PIDController
ANLISE Design
ComandosMATLABusadosnestetutorialso:tf,etapa,ofeedback
AOCONTROLE
PID
Contedo
LOCODARAIZ
Controleproporcional
FREQNCIA
ControlePI
ESTADOESPAO ControlePID
DIGITAL
Apartirdoproblemaprincipal,afunodetransfernciaemmalhaaberta
doMotorCCdadacomosesegue.
SIMULINK
(1)
MODELAGEM
AOCONTROLE Aestruturadosistemadecontroletemaformamostradanafiguraabaixo.
acima,consulteoDCMotorPosio:ModelingSystempgina.
Paraumarefernciadepassode1radian,oscritriosdedesignsoos
seguintes.
Tempodeestabilizaoinferiora0,040segundos
Superaoinferiora16%
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 1/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
entradadeperturbaodedegrau
Primeirocrieumnovomfileedigiteosseguintescomandos(consulteo
principalproblemaparaosdetalhesdeobteressescomandos).
J=3,2284E6;
B=3,5077E6;
K=0,0274;
R=4;
L=2,75E6;
s=tf('s');
P_motor=K/(s*((J*s+b)*(L*s+R)+K^2));
LembresedequeafunodetransfernciaparaumcontroladorPIDtem
aseguinteforma.
(2)
Controleproporcional
Vamosprimeirotentarusarumcontroladorproporcionalcomoganhoque
ganhoproporcionaldiferente,podeserconstrudousandoumparaloop.
Asfunesdetransfernciadecircuitofechadopodesergeradousandoo
arquivoeexecutlonajaneladecomandoMATLAB:
Kp=1;
parai=1:3
C(:,:,i)=pid(Kp);
Kp=Kp+10;
fim
Sys_cl=feedback(C*P_motor,1);
comando.Vocdevegerarogrficomostradonafiguraabaixo.
T=0:0,001:0,2;
(Sys_cl(:,:,1),sys_cl(:,:,2),sys_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 2/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
ttulo("RespostaaumarefernciadePassocomdiferentesvaloresdeK_p'
legenda('K_p=1','K_p=11','K_p=21')
Vamostambmconsiderararespostadosistemaaumdistrbiodefase.
Nestecaso,vamosassumirumarefernciadezeroeolharparaaforma
comandopodeaindaserutilizadaparagerarafunodetransfernciade
circuitofechadoemquehaindaofeedbacknegativo,noentanto,agora
somenteafunodetransfernciadaplantaP(s)estnocaminhopara
superiordestapginaparaveraestruturadosistema.Adicioneoseguinte
aofinaldeseumarquivoeexecutlonajaneladecomando.Vocdeve
gerarogrficomostradonafiguraabaixo.
Dist_cl=feedback(P_motor,C);
Passo(dist_cl(:,:,1),dist_cl(:,:,2),dist_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
ttulo("RespostaaumaperturbaoPassocomdiferentesvaloresdeK_p'
legenda('K_p=1','K_p=11','K_p=21')
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 3/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
escolhadeganhoproporcionalKp.Istodevidoaofatodequeaplanta
temumintegrador,isto,osistemadotipo1.Noentanto,osistematem
perturbaoaplicadasimultaneamenteigualsomadosdoisgrficos
mostrados acima. Isso decorre da propriedade da superposio que
mantm para sistemas lineares. Portanto, para ter zero erro de estado
estacionrionapresenadeumaperturbao,precisamosdarespostade
chegaazero.Almdisso,utilizandoosvalorescadavezmaioresdeKp
temoefeitoadversodeaumentodaultrapassagemeliquidartempocomo
ControlePI
VamosprimeirotentarumcontroladorPIparaselivrardoerrodeestado
estacionriodevidoperturbao.VamosdefinirKp=21etesteganhos
integrais Ki variando de 100 a 500. Alterar o seu marquivo para o
Kp=21;
Ki=100;
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 4/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
parai=1:5
C(:,:,i)=pid(Kp,Ki);
Ki=Ki+200;
fim
Sys_cl=feedback(C*P_motor,1);
T=0:0,001:0,4;
(Sys_cl(:,:,1),sys_cl(:,:,2),sys_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
ttulo("RespostaaumarefernciadePassocomK_p=21ediferentesvalores
legenda('K_i=100','K_i=300','K_i=500')
passo.Altereosseguintescomandosnoseumfileevolteaexecutarna
janela de comandos. Voc deve gerar um grfico como o mostrado na
figuraabaixo.
Dist_cl=feedback(P_motor,C);
Passo(dist_cl(:,:,1),dist_cl(:,:,2),dist_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
ttulo("RespostaaumaperturbaoPassocomK_p=21ediferentesvaloresd
legenda('K_i=100','K_i=300','K_i=500')
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 5/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
oscilaoaumentandoligeiramentecomoKifeitomaior.Noentanto,a
porqueoerrodevidoperturbaodecairapidamenteparazero,mesmo
searespostarefernciatemumtempomaislongoemaisdecantao
ControlePID
ganhosKdvariando0,050,25.Volteparaomarquivoefaaasseguintes
alteraes.Executandoomarquivoalteradoirgerarumgrficocomoo
mostradoabaixo.
Kp=21;
Ki=500;
Kd=0,05;
parai=1:3
C(:,:,i)=pid(Kp,Ki,Kd);
Kd=Kd+0,1;
fim
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 6/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
Sys_cl=feedback(C*P_motor,1);
T=0:0,001:0,1;
(Sys_cl(:,:,1),sys_cl(:,:,2),sys_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
ttulo("RespostaaumarefernciadePassocomK_p=21,K_i=500ediferen
legenda('K_d=0,05','K_d=0,15','K_d=0,25')
altereosseguintescomandosnoseuarquivomeexecutenovamentena
linhadecomando.
Dist_cl=feedback(P_motor,C);
T=0:0,001:0,2;
Passo(dist_cl(:,:,1),dist_cl(:,:,2),dist_cl(:,:,3),t)
ylabel('Posio,\theta(radianos)')
ttulo("RespostaaumaperturbaoPassocomK_p=21,K_i=500evaloresd
legenda('K_d=0,05','K_d=0,15','K_d=0,25')
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 7/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
ParecequequandoKd=0,15,podemossatisfazerasnossasexigncias
doprojeto.Paradeterminarascaractersticasprecisasdarespostapasso
que voc pode usar o menu do boto direito do enredo resposta ao
degrau,ouvocpodeusarocomandoMATLABstepinfocomomostrado
abaixo.
Stepinfo(sys_cl(:,:,2))
Ans
RiseTime:0,0046
SettlingTime:0,0338
SettlingMin:0,9183
SettlingMax:1.1211
Sobrecarga:12.1139
Undershoot:0
Pico:1,1211
TempodePeak:0,0121
Doquefoiditoacima,vemosquearespostaaumarefernciadepasso
controladorPIDcom
Kp=21,Ki=500,eKd=0,15,
Todososnossosrequisitosdedesignserosatisfeitos.
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 8/9
02/01/2017 TutoriaisdecontroleparaMATLABeSimulinkPosiodomotor:DesigndocontroladorPID
PublicadocomMATLAB7.14
TodososcontedoslicenciadossobumalicenaCreativeCommonsAttribution
ShareAlike4.0International.
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition§ion=ControlPID 9/9