SISTEMAS DE CONTROLE COM PYTHON
Resposta em frequência
Cap´ıtulo1
Introdu¸c˜ao
Amodelagemmatem´aticapodeserentendidacomoaatividadededescrevermatematicamentesistemasreaisemdiferentes´areasdoconhecimento, comof´ısica,qu´ımica,bilogia,ecologia,microbiologia,economia,ciˆenciassociais,engenhariasetc.
Essadescri¸c˜aomatem´aticadeumsistemapodeserviaautˆomatoscelularesouviaequa¸c˜oesdiferenciaisordin´ariasouparciais.Asequa¸c˜oes diferenciaisordin´ariass˜aoasmaisutilizadasparamodelarsistemasreais.
Umconjuntodeequa¸c˜oesquerepresentaalgumacaracter´ısticadeum sistema´edenominadomodelomatem´atico.
Otipodeprocedimentodemodelagempodeserclassificadocomo:
1. Caixapreta,Identifica¸c˜ao,Modelagememp´ırica:quandon˜aoh´aconhecimentosobreosistema.
2. CaixabrancaouModelagempeloconhecimentoouModelagemfenomenol´ogicaouconceitual:quandoh´aconhecimentosobreosistema ous˜aoutilizadasleisf´ısicasconhecidas.
Osmodelosmatem´aticos(vejaFigura 1.1)podemserclassificadosde acordocomotipodeequa¸c˜aoutilizadonasuaformula¸c˜ao:
1. Est´aticoouDinˆamico.
14Sistemasdecontrolecompython:respostaemfrequˆencia
(a) Est´atico:omodeloutilizado´eumsistemadeequa¸c˜oesalg´ebricas.
(b) Dinˆamico:omodeloutilizado´eumsistemadeequa¸c˜oesdiferenciaisoudiferen¸cas.
2. LinearouN˜aolinear.
(a) Linear:omodelosatisfazoprinc´ıpiodasuperposi¸c˜ao.
(b) N˜aolinear:n˜ao´eposs´ıveldeverificaroprinc´ıpiodesuperposi¸c˜ao.
3. Umaentrada-umasa´ıdaouM´ultiplasentradas-m´ultiplassa´ıdas (SISO-MIMO).
(a) Umaentrada-umasa´ıda(SISO):omodeloapresentaumavari´aveldeentradaeumavari´aveldesa´ıda.
(b) M´ultiplasentradas-m´ultiplassa´ıdas(MIMO):omodeloapresentadoisoumaissinaisdeentradae/oudoisoumaissinaisde sa´ıda.
4. InvariantenotempoouVariantenotempo.
(a) Invariantenotempo:osparˆametrosdoscomponentesdosistema n˜aovariamcomotempo.
(b) Variantenotempo:osparˆametrosdoscomponentesdosistema variamcomotempo.
5. Tempocont´ınuoouTempodiscreto.
(a) Tempocont´ınuo:ossinaisdeentradaedesa´ıdas˜aofun¸c˜oesreais davari´aveltempo.
(b) Tempodiscreto:ossinaisdeentradaedesa´ıdas˜aodefinidosem instantesdeterminadosdetempo.
6. Determin´ısticoouEstoc´astico.
(a) Determin´ıstico:arepeti¸c˜aodaentradacausar´asempreamesma sa´ıdanomodelosobasmesmascondi¸c˜oes.
(b) Estoc´astico:asa´ıdan˜ao´ecertanomodelosobumadadaentrada edeveserexpressaemtermosprobabil´ısticos.
7. ParˆametrosconcentradosouParˆametrosdistribu´ıdos.
(a) Parˆametrosconcentrados:osparˆametrosdoscomponentesindependemdaposi¸c˜aonoespa¸co.
(b) Parˆametrosdistribu´ıdos:osparˆametrosdepelomenosumdos componentesdependemdaposi¸c˜aonoespa¸co.
1.1Modelagemmatem´aticadesistemasmecˆanicos
Ossistemasmecˆanicospodemsermodeladosapartirdeelementosmecˆanicossimples,comomostraaTabela 1.1.
Ossistemasmecˆanicosrotacionaispodemsermodeladosapartirdeelementosmecˆanicosrotacionaissimples,comopodeserobservadonaTabela 1.2.
Parasistemasmecˆanicos,s˜aoutilizadosasegundaleideNewton,para obteromodelo,eoconceitodeLagrange.AsegundaleideNewtonpode serescritacomo:
Exemplo 1.1. Considereosistemamassa-molaconformemostradonaFigura 1.3.Realizeamodelagemmatem´aticadosistemaqueest´aemmovimentolivre.
Tabela1.1:Sistemasmecˆanicosdetransla¸c˜ao.
Massatranslacional
Armazenamento indutivo
Equa¸c˜ao F = mx F = mv1
Energia T = 1 2 mv2 1
Molatranslacional
Armazenamento indutivo
Equa¸c˜ao F = kx12 v12 = 1 k dF dt
Energia V = 1 2 kx2 12 = 1 2 F 2 k
Amortecedortranslacional
Dissipador deenergia
Equa¸c˜ao F = bv12
Energia D = b 2 v2 12
Solu¸c˜ao 1.1. NaFigura 1.3,considerequeaprimeiramolalivretemum comprimento l en˜aopossuipeso;sobessascondi¸c˜oes,n˜aoh´afor¸casagindo namola.Naimagememqueamassa m foicolocadanoextremodamola, afor¸carestaurativadamolaentraemequil´ıbriocomopesodamassa m; essa´eaposi¸c˜aodeequil´ıbrio.Istoquedizerque:
ks = mg.
18Sistemasdecontrolecompython:respostaemfrequˆencia
Tabela1.2:Sistemasmecˆanicosderota¸c˜ao.
Massarotacional
Armazenamento capacitivo
Equa¸c˜ao τ = J dω1 dt
Energia T = 1 2 Jω2 1
Molarotacional
Equa¸c˜ao
Armazenamento
indutivo
τ = kθ12 dτ dt = kω12
Energia T = 1 2 kθ2 12 = 1 2 τ 2 k
Amortecedorrotacional
Dissipador deenergia
Equa¸c˜ao τ = bω12
Energia D = b 2 ω2 12
Naimagem,Figura 1.3,naqualamassafoideslocada y unidadesdesdeo pontodeequil´ıbrioelogoamassa´eliberada,ent˜aoteremosummovimento harmˆonico.ConformeaFigura 1.3,considera-seodeslocamentodamassa m nosentidopositivoparaabaixo.UtilizandoasegundaleideNewton, obtemos:
m ¨ y = m i=1 ⃗ Fi
.Comoosistemaseencontravaemequil´ıbrioentreafor¸capesodamassa m eafor¸carestauradoradamola k logo,a´unicafor¸caagindonamassa m
Cap´ıtulo2
TransformadadeLaplace
AtransformadadeLaplacetemessenomeemhomenagemaomatem´atico,astrˆonomoef´ısicofrancˆesPierre-SimonLaplace(1746-1827),que utilizouumatransformadasemelhanteemsuapesquisasobreateoriada probabilidade.Nofinaldos´eculoXIXein´ıciodos´eculoXX,atransformadadeLaplacecome¸couasermaisdesenvolvidae,somenteap´osaSegundaGuerraMundial,foimaisdifundidanaengenharia.
OssistemasdinˆamicoslinearesinvariantesnotempodeparˆametrosconcentradospodemserresolvidosdemaneiramaissimplesutilizandoatransformadadeLaplace.
2.1Defini¸c˜oes
AtransformadadeLaplaceapartirdeumafun¸c˜aodevari´avel t (tempo) geraumafun¸c˜aodevari´avel s (frequˆencia).AtransformadadeLaplace forneceumadescri¸c˜aoquediminuiacomplexidadedoprocessodean´alise es´ıntesedeumsistema,isto´e,converteumaequa¸c˜aodiferencialemuma equa¸c˜aoalg´ebricaeumaconvolu¸c˜aoemumamultiplica¸c˜ao.
54Sistemasdecontrolecompython:respostaemfrequˆencia
Vari´aveiscomplexass˜aodefinidascomo:
s = σ + jω
Naqual σ ´eapartereale ω ´eaparteimagin´aria.
Umafun¸c˜aocomplexa´edefinidacomo:
G(s)= R + jI
Naqual R e I s˜aoquantidadesreaise |G(s)| ´eom´odulodefinido
como:
|G(s)|= √R2 + I 2
Adefasagemde G(s)´e:
G(s) = θ =arctan I R
Naqualoˆangulo θ ´epositivonosentidoanti-hor´arioapartirdosemieixorealpositivo.
Pontossingulares
Ospontossingularesemque G(s)´eindefinidas˜aodenominadosde polos.Ospontossingularesemque G(s)´enulas˜aodenominadosde zeros.
Asrela¸c˜oesdeEulerpodemserdefinidascomo:
ejθ =cos(θ)+ j sen(θ)
e jθ =cos(θ) j sen(θ)
cos(θ)= 1 2 ejθ + e jθ
sen(θ)= 1 2j ejθ e jθ
AformabilateraldatransformadadeLaplace´edefinidacomo:
Naqual f (t)´eumafun¸c˜aodotempoe s ´eumavari´avelcomplexa.
FoiconvencionadoqueatransformadadeLaplacerefere-se`aforma unilateralemquequalquerargumento´ecausaloum´ultiplodafun¸c˜ao Heaviside.
Assim,define-seatransformadadeLaplacedafun¸c˜ao f (t)como:
onde f (t)´eumafun¸c˜aocausalnotempo, s ´eavari´avelcomplexa, L ´eos´ımbolodooperadordatransformadadeLaplace, L{·} significaa transformadadeLaplacee F (s)´eatransformadadeLaplacede f (t). Ooperadortransformaafun¸c˜ao f (t)definidanodom´ıniodotempo emumafun¸c˜ao F (s)definidanodom´ıniodafrequˆencia.
56Sistemasdecontrolecompython:respostaemfrequˆencia
AtransformadainversadeLaplace´edefinidacomo: L
ondeaabscissadeconvergˆencia c ´eumaconstanterealescolhidacomo valorsuperior`aparterealdetodosospontossingularesde F (s).
Afun¸c˜aodeHeaviside,cujonome´eumahomenagemaomatem´atico inglˆeseengenheiroeletricistaOliverHeaviside,´eumafun¸c˜aosingulare descont´ınua,que´enulaseoargumentofornegativoeunit´ariaseoargumentoforpositivo,definidacomo:
onde x ´eoargumentoouvari´avelindependente.Afun¸c˜aodeHeavisidecom descontinuidadeem x = a ´edefinidacomo:
Afun¸c˜aodegrauunit´aria´edefinidacomo:
Onde x comumente´eotempo.Assim,afun¸c˜aodegrauunit´arianotempo ´edenotadapor u(t).
Afun¸c˜aoimpulso´edefinidacomo: f (t)= lim t0→0 A t0 , 0 <t<t0, 0,t< 0,t0 <t
EsuatransformadadeLaplace´e:
L{f (t)} = A.
Afun¸c˜aoimpulsounit´ariaoufun¸c˜aodeltadeDirac,queocorreem t = t0, ´edenotadapor δ(t t0)edefinidacomo:
δ(t t0)= ∞,t = t0, 0,t< 0,t = t0 e ∞ −∞
δ(t t0)dt =1
Assim,podeserconsideradaaderivadadafun¸c˜aodegrauunit´aria u(t t0) em t t0 como:
δ(t t0)= d dt u(t t0)
2.2Propriedadeseteoremasdatransformadade
Laplace
Linearidade
Asfun¸c˜oes f (t)e g(t),cujastransformadasdeLaplaces˜ao,respectivamente, F (s)e G(s)podemserdescritascomo:
L{αf (t)+ βg(t)} = αL{f (t)} + βL{g(t)} = αF (s)+ βG(s)
Fun¸c˜aotransladadaoumudan¸cadetempo
Sejaumafun¸c˜aonotempo f (t)u(t)cujatransformadadeLaplace´e F (s) esejadefinidaafun¸c˜ao f (t α)u(t α)onde α ≥ 0ecujatransformada deLaplacecorrespondente´e:
L{f (t α)u(t α)} = e αsF (s)para α ≥ 0
Multiplica¸c˜aode f (t) por e αt oumudan¸cadefrequˆencia
Sejafun¸c˜ao f (t)esuatransformadadeLaplace F (s),ent˜aoa:
L e αtf (t) = F (s + α)
Mudan¸cadeescaladetempoouescalamentodetempo
Se t forsubstitu´ıdapor t/α,naqual α ´eumaconstantepositiva,ent˜ao afun¸c˜ao f (t)ser´amudadapara f (t/α).Sejaafun¸c˜ao f (t)esuarespectiva transformadadeLaplace F (s):
L f t α = ∞ 0 f t α e stdt = αF (αs)
Cap´ıtulo3 Respostaemfrequˆencia
3.1Fun¸c˜aodetransferˆencia
NoPython,´eposs´ıveldefinirumafun¸c˜aodetransferˆenciadev´arias formas.UmadelaspodeserobservadanaListagem 3.1,naqualdefinem-se oscoeficientesdonumeradoredodenominadordafun¸c˜aodetransferˆencia.
Listagem3.1:C´odigoexemploPython.
from control import * import numpy as np import matplotlib . pyplot as plt # Para plotar
"""
Diferentes formas de definir uma funcao de ... trasferencia no Python
"""
n = np . array ([10])
d = np . array ([1/100,1/20,1])
H = tf ( n , d )
print ( ' H ( s ) = ' , H )
72Sistemasdecontrolecompython:respostaemfrequˆencia
Outraforma´emostradanaListagem 3.2,naqualdefine-seavari´avel ‘s’comoumafun¸c˜aodetransferˆencia.Apartirdessavari´avel,´edefinidaa estruturadafun¸c˜aodetransferˆenciadesejada.
Listagem3.2:C´odigoexemploPython.
from control import *
import numpy as np
import matplotlib . pyplot as plt # Para plotar
"""
Diferentes formas de definir uma funcao de ... trasferencia no Python
"""
s = tf ( ' s ' )
G =10*( s +1)/( s **2+ s +1) print ( ' G ( s ) = ' , G )
Outraforma´emostradanaListagem 3.3,naqualdefine-seavari´avel‘s’ comoumafun¸c˜aodetransferˆenciautilizandoocomando‘TransferFunction.s’.Comessavari´avel,´edefinidaaestruturadafun¸c˜aodetransferˆencia desejada.
Listagem3.3:C´odigoexemploPython.
from control import *
from control matlab import *
import numpy as np
import matplotlib . pyplot as plt # Para plotar """
Diferentes formas de definir uma funcao de ... trasferencia no Python
"""
s = TransferFunction . s
G =10*( s +1)/( s **2+ s +1) print ( ' G ( s ) = ' , G )
3.2Fun¸c˜aodetransferˆenciacomretardodetransporte
Sejadadaumafun¸c˜aodetransferˆenciadefinidacomo:
G(s)= 1 s +1
Quedescreveumafun¸c˜aodetransferˆenciasemretardodetransporte.Agora, sejadadaamesmafun¸c˜aodetransferˆenciacomretardodetransportecomo:
G
Naqual Td ´eaconstantederetardodetransportenotempoouatrasode tempo.Afun¸c˜aodetransferˆenciasenoidalcomatrasodetransporte´e:
G(jω)= e jωTd jω +1
Nela,podemosobservarqueoretardodetransportetemamplitudeunit´aria, isto´e:
e jωTd =cos( ωTd)+ j sen( ωTd)
Eamagnitude´e:
e jωTd =1
74Sistemasdecontrolecompython:respostaemfrequˆencia
Acontribui¸c˜aoangulardoretardodetransporte´e:
Quedependedovalordafrequˆencia ω ede Td.NoPython,oretardode transportepodeseraproximadopormeiodocomando pade()
Asaproxima¸c˜oespolinomiaistendemaoscila¸c˜oes;portanto,s˜aoutilizadasasaproxima¸c˜oesracionais.Asaproxima¸c˜oesdePad´es˜aoasmais popularesaproxima¸c˜oesracionaisparaoatrasodetransporte,quepodeser aproximadoporumafun¸c˜aodetransferˆenciaracionaldeordemarbitr´aria.
Paraumamelhorprecis˜aodeaproxima¸c˜ao,aordemdafun¸c˜aodeveser maior.Aaproxima¸c˜aodeumafun¸c˜aodetransferˆenciadoatrasodetempo utilizandos´eriesdeTaylor´e:
Outrom´etododeaproxima¸c˜aoracionalparaafun¸c˜aodetransferˆenciado atrasodetempo´epormeiodosaproximantesdePad´e:
Nosquais pi e qi s˜aoconstantes.F´ormulasparaoscoeficientesdospolinˆomiosdomesmograu,isto´e m = n,s˜ao:
Respostaemfrequˆencia75
Outraformadeaproxima¸c˜ao´e:
e Tds ≈ P (Tds) Q(Tds)
Naqualospolinˆomios P (Tds)e Q(Tds)s˜ao:
P (Tds)= n j=0 (n + j)! j!(n j)! ( Tds)n j
Q(Tds)= n j=0 (n + j)! j!(n j)! (Tds)n j
ATabela 3.1 mostraaproxima¸c˜oesdeprimeiro,segundoeterceirograu. Paramaisdetalhes,oleitorpodeconsultar HantaeProch´azka (2009).
Tabela3.1:Aproxima¸c˜oesdePad´eparaafun¸c˜aodetransferˆenciadoatraso detempo.
Graudeaproxima¸c˜aoFun¸c˜aoracionaldeaproxima¸c˜ao
3.3Respostaemfrequˆencia
Arespostaemfrequˆencia´eaan´alisedocomportamento(amplitudee fase)darespostapermanentedeumsistemaquandoafrequˆenciadeuma entradasenoidalvariaemdeterminadafaixadefrequˆencia.Osm´etodos darespostaemfrequˆenciaforamdesenvolvidasporHarryNyquist,Hendrik WadeBodeeNathanielB.Nichols,entreasd´ecadasde1930e1940.
Considereumsistemalinearinvariantenotempo(SLIT)cujafun¸c˜aode
76Sistemasdecontrolecompython:respostaemfrequˆencia
transferˆencia´edadapor G(s);sup˜oe-sequeosistema´eest´aveleque C(s) e R(s)s˜aoastransformadasdeLaplacedossinaisdesa´ıdaedeentrada, respectivamente.Arela¸c˜aoentrada-sa´ıda´emostradanaFigura 3.1.
Figura3.1: Rela¸c˜aoentrada-sa´ıdadeumsistemagen´erico.
Paraobservarmosainfluˆenciadosinaldeentradasenoidalnaresposta emregimepermanentedosistema,consideremosqueosistematem n polos comparterealnegativa,isto´e,todosospolosest˜aolocalizadosnosemiplano esquerdodoplano s.Assim,afun¸c˜aodetransferˆenciadosistema´e:
Eosinaldeentrada´e:
Noqual ω ´eafrequˆenciadosinalsenoidal, A ´eaamplitudedosinalconsideradoconstanteecujatransformadadeLaplace´e:
Assim,asa´ıdadosistematemaseguinteforma:
C
Cap´ıtulo4
Projetonarespostaemfrequˆencia
Umacompensa¸c˜ao´eoajustedeummecanismoinclu´ıdonosistema, deformaqueocomportamentodosistemaatenda`asespecifica¸c˜oesdedesempenhorequeridas.Adefini¸c˜aodasespecifica¸c˜oesdedesempenhoda respostatransit´oria´edemaneiraindiretapelamargemdefase,margem deganho,amplitudedepicoderessonˆancia,frequˆenciadecruzamentode ganho,frequˆenciaderessonˆancia,bandapassanteeconstantesdeerroest´atico.
Estecap´ıtuloapresentaosprocedimentosparaoprojetodecompensadorespelom´etododerespostaemfrequˆencia.Ast´ecnicasdeprojetode compensadoresparasistemaslinearesinvariantesnotempos˜aoacompensa¸c˜aodeganho,compensa¸c˜aoporavan¸codefase,compensa¸c˜aoporatrasode faseecompensa¸c˜aoporatraso-avan¸codefase.Noprojetodoscompensadores,muitasvezestem-serequisitosconflitantes.Seforocaso,deve-sealterar dealgummodoaestruturadosistemaafimdesatisfazerosrequisitosde desempenhosolicitados.
Existemdiversostiposdecompensa¸c˜aoparaumsistemadecontrolecom realimenta¸c˜aounit´aria,comopodeserobservadoem DorfeBishop (2011), Nise (2012).Nestecap´ıtulo,utiliza-seaestruturamostradanaFigura 4.1, denominadacompensadoremcascataouems´eriecomosistema.
188Sistemasdecontrolecompython:respostaemfrequˆencia
Figura4.1: Estruturadecompensa¸c˜ao.
Oprojetodocompensador Gc(s)podeserdesenvolvidoemtermosda respostaemfrequˆenciaapresentadanodiagramadeBode,porsermais pr´aticodeobteredesenhar.Existemv´ariosprocedimentosdeprojetodos compensadores,comopodeserobservadoem Ogata (2008),quetemcomo m´etododeprojetoatentativaeerronalocaliza¸c˜aodozeroedopolodos compensadoresde PhillipseHarbor (1997),quetemcomom´etododeprojetoousododiagramadeNyquistnalocaliza¸c˜aoec´alculodozeroepolo doscompensadores.
Osparˆametrosdedesempenhodesejadosdedeterminadosistemadevem serfornecidosantesdoin´ıciodoprojeto,podendoser:oserrosemregime permanentepermiss´ıveis;sobressinalpermitidoparaasvaria¸c˜oesemdegrau naentrada;tempodeassentamento;larguradebanda,queforneceuma estimativadavelocidadedarespostatransit´oria;picoderessonˆancia,que forneceumaaproxima¸c˜aodoamortecimentodosistema;constantesdeerro est´atico,quefornecemaprecis˜aoemregimepermanente.
Considereumsistemadecontrole,comoomostradonaFigura 4.1,com realimenta¸c˜aounit´ariaecujafun¸c˜aodetransferˆenciaemmalhaaberta´e:
Onde Gc(s)´eafun¸c˜aodetransferˆenciadocompensadore G(s)´eafun¸c˜ao detransferˆenciadosistemaouplanta.Afun¸c˜aodetransferˆenciaemmalha fechada´e:
Arespostaaodegraudeumsistemacompolosdominantesdesegunda
ordem´edadanaFigura 4.2.
Figura4.2: Respostaaodegraudeumsistemapadr˜aodesegundaordem.
Ascaracter´ısticasdestarespostaquedevemterimportˆanciaparaum sistemadecontroleparticulars˜ao:
1. Otempodesubida tr.
2. Otempodepico tp.
3. Osobressinalpercentual Mp.
4. Otempodeacomoda¸c˜ao ts.
Sequeremosreduziro ts,ospolosdafun¸c˜aodetransferˆenciaemmalhafechadadevemserdeslocados`aesquerdanoplano s,reduzindoasconstantes detempo.O Mp narespostatransit´oriaest´arelacionada`aressonˆanciado sistemaemmalhafechadaeaparececomoumpiconarespostaemfrequˆencia.
Aressonˆanciaocorreemsistemasemmalhafechadaseasmargensde estabilidaderelativasforempequenas.Parareduzirom´aximosobressinal darespostatransit´oria,´enecess´arioaumentarasmargensdeestabilidade relativadosistema.Om´aximosobressinal´emaissens´ıvel`amargemdefase.
190Sistemasdecontrolecompython:respostaemfrequˆencia
Paraumcomportamentoapropriadodarespostatransit´oria,´epreciso queasmargensdefaseedeganhosejamadequadasequeforne¸camuma boarobustezparaasimprecis˜oesdemodelagem.Parasistemasdecontrole commargensdeestabilidadesapropriadas,s˜aonecess´ariasumamargemde faseacimade45◦ eumamargemdeganhoacimade8dB.
OsistemamostradanaFigura 4.1 temaseguinteequa¸c˜aocaracter´ıstica:
Desejamosprojetar Gc(s)paraqueosistematenhacertascaracter´ısticasespecificadas.Osefeitosdacompensa¸c˜aonelass˜aoindicadospelalocaliza¸c˜ao dasra´ızesdaequa¸c˜aocaracter´ısticadaEqua¸c˜ao 4.1
4.1Compensadordeganho
Consideremosacompensa¸c˜aopormeiodavaria¸c˜aodoganho.Sejaum sistemacomoomostradonaFigura 4.1,noqualocompensador Gc(s)´eum ganho Kc.Este´eocontroladorproporcionaloucontroleP.NaFigura 4.3, ´emostradooefeitodeaumentaroganhocom K1 <K2 <K3.Oefeitoque oganho Kc temnodiagramapolar´eaumentaroureduzirodiagrama,seo ganhoforaumentadoouseoganhoforreduzido,respectivamente.
Apartirdoefeitoqueoganho Kc temnodiagramadeBode(Figura 4.4), observa-sequeamargemdefaseeoefeitodeadicionarumganhomenorque aunidade,aamplitude´edeslocadaparabaixo,acurvadefasepermanece inalterada,amargemdefase´eaumentada,afrequˆenciadecruzamentode ganho(ωcg)´ereduzidae,geralmente,alarguradefaixatamb´em´ereduzida. Assim,otempodesubidacresce,mas,comoamargemdefase´eaumenta (MFcom),o Mp darespostatransit´oriadevesermenor.
Figura4.4: DiagramadeBodecomoacr´escimodeumganhomenorqueaunidade.
Exemplo 4.1. Considereaseguintefun¸c˜aodetransferˆenciaemmalhaaberta:
Deseja-sequeamargemdefaseseja 50◦.Projeteumcompensadordeganho.
Solu¸c˜ao 4.1. Comoprimeiropasso,desenhamosodiagramadeBodedo sistema,definindonoPythonafun¸c˜aodetransferˆenciaemmalhaabertado sistema(Listagem ).
OdiagramadeBodedosistema´emostradonaFigura 4.5a earespostaa umaentradadegrauunit´ario,naFigura 4.5b.DodiagramadeBode(Figura 4.5a),observamosqueaMG= 3, 52 dB, ωcf =1, 41 rad/s,MF= 11, 42◦ e ωcg =1, 14 rad/s.Darespostaaodegrau(Figura 4.5b),observamosque Mp =70, 01%e ts =37, 54 s.Assim,osistema´ebastanteoscilat´orioe verifica-sequeMGeMFtˆemvalorespequenos,isto´e,menoresque 45◦ e 8 dB,respectivamente.
Paraprojetarocompensadordeganho,sabemosqueoganhona ωcg ´e
ApˆendiceA
Entendendoosc´odigosemPython utilizados
Oc´odigoemPythondasfun¸c˜oesauxiliarescriadas´emostradonaListagem .Afun¸c˜ao my_control_functions ´eumconjuntodefun¸c˜oes criadas:afun¸c˜ao info_st determinaalgunsparˆametrosdedesempenho, como tr, tp, Mp e ts;asfun¸c˜oes gera_tabela_latex, gera_tabela_excel e gera_tabela_html geramumatabeladedadosparaLATEX,ExceleHTML, respectivamente,deumafun¸c˜aodetransferˆenciasenoidal,sendoaprimeira colunadatabelareferente`afrequˆenciaemrad/s,asegundacoluna`aamplitudeabsoluta,aterceiracoluna`aamplitudeemdB,aquartacoluna`a fase,aquintacoluna`afasecomatrasodetempocomaproxima¸c˜aodePad´e easextacolunareferente`afasecomatrasodetemposemaproxima¸c˜ao; afun¸c˜ao onda_quadrada geradadosdeumaondaquadradadefinidospela amplitude,offseteper´ıodo;afun¸c˜ao onda_triangular geradadosdeuma ondatriangulardefinidospelaamplitude,offseteper´ıodo;afun¸c˜ao Mr_BW determinaaamplitudedepicoderessonˆancia,afrequˆenciaderessonˆancia ealarguradebandadeumafun¸c˜aodetransferˆenciaemmalhafechada; afun¸c˜ao plot_margins plotaodiagramadeBode,indicandograficamente asmargensdefaseedeganho,bemcomoosrespectivosvaloresnum´eri-
458Sistemasdecontrolecompython:respostaemfrequˆencia cos;afun¸c˜ao save_fig salvaafiguraativaemformatodesejadocomDPI desejado;afun¸c˜ao pid_control implementaocontrolePID,pois,apenas comoscomandosdalibraria control,n˜aoconseguecalcularesseesfor¸code controledocontroladorPID.
NaListagem A.1,´emostradaainicializa¸c˜aodosc´odigosemPythone s˜aoutilizadasaslibrarias; control e control.matlab servemparautilizar oscomandosdecontrole, numpy servepararealizarmanipula¸c˜oeseopera¸c˜oesmatriciais, matplotlib.pyplot e matplotlib.gridspec servempara plotardadosnum´ericosedefinircaracter´ısticasdoseixosdosgr´aficos, webbrowser forneceumainterfacedealton´ıvelparapermitiraexibi¸c˜aode documentosbaseadosnaWebparaosusu´ariose os forneceumamaneira port´atildeusarafuncionalidadedependentedosistemaoperacional.
ListagemA.1:Entendendoc´odigogen´ericoexemploPython. from control import *
from control . matlab import * import numpy as np
import matplotlib pyplot as plt # Para plotar from matplotlib . gridspec import GridSpec from pandas import DataFrame
import my_control_functions as mcf # Conjunto de fun¸c~oes ... de propria cria¸c~ao import webbrowser import os plt . close ( ' all ' )
NaListagem A.2,define-seafun¸c˜aodetransferˆenciaemmalhaaberta, aqual´eimpressanalinhadecomandos.Foramdefinidososexpoentes m´ınimoem´aximocorrespondentes`asfrequˆenciasm´ınimaem´axima,res-
pectivamente,paradefinirovetordefrequˆenciacriadocomumdistribui¸c˜ao logar´ıtmica.Outramaneiradedefinirovetordefrequˆencias´edemaneira linearcomocomando np.arange.Plota-seadiagramadeBodecomas respectivasmargensdefaseedeganho,eessafigura´esalvaemformato PNG.
ListagemA.2:Entendendoc´odigogen´ericoPython.
# Define - se a FT em MA
s = tf ( ' s ' )
G =(1)/( s *( s +8)*( s +30)) print ( ' G ( s ) = ' , G )
# Expoente para menor frequ^encia
emin =-1
# Expoente para maior frequ^encia
emax =2
# Vetor de valores das frequ^encias
w = np . logspace ( emin , emax ,10000)
# Frequ^encia m´ınima
wmin =10** emin
# Frequ^encia m´axima
wmax =10** emax
w1 = np logspace ( emin -2, emax ,10000)
# w = np . arange (1, 1000, 0.01)
# Plota - se o diagrama de Bode de G ( s )
mcf . plot_margins ( G , emin -2, emax )
# Exporta - se a Figura do diagrama de Bode para png
460Sistemasdecontrolecompython:respostaemfrequˆencia
mcf . save_fig ( ' figura_exemplo_24c_bode_cap3 ' )
NaListagem A.3,foidefinidaafun¸c˜aodetransferˆenciaemmalhafechada paraobterarespostaaumaentradadegraue,consequentemente,alguns parˆametrosdedesempenho.Osditosparˆametrosdedesempenhoforam inclu´ıdosnafiguradarespostaaodegrau,aqual´esalvanoformatoPNG. ListagemA.3:Entendendoc´odigogen´ericoexemploPython.
# Determina - se a FT em MF
G_mf = feedback ( G ,1)
# Plota - se a resposta ao degrau unit´ario da FT em MF
plt . figure (2)
T , yout = step_response ( G_mf )
Mp , tp , ts , tr = mcf . info_st ( G_mf ,2)
plt . plot ( T , yout , ' k ' )
plt xlabel ( ' Tempo ( s ) ' )
plt . ylabel ( ' Amplitude ' )
plt . grid ( True , which = ' both ' )
plt . title ( " $M_p = $ %.2 f $t_p = $ %.2 f $t_s = $ %.2 f $t_r = $ %.2 f " % ( round ( Mp ,2), round ( tp ,2), round ( ts ,2), round ... ( tr ,2)))
# Exporta - se a Figura da resposta ao degrau para png mcf . save_fig ( ' figura_exemplo_6b_step_cap3 ' )
NaListagem A.4,foramdefinidosvetoresdetempoparapodergerara respostaaumaentradarampaesalvarafiguranoformatoPNG.Defineseoganhoajustadoquesatisfazorequerimentoemregimepermanente. Plota-seadiagramadeBodedosistemacomganhoajustadoeafigura´e salvaemformatoPNG.Plota-searespostaaodegraudosistemacomganho ajustadomasn˜aocompensadoeafigura´esalvaemformatoPNG.
ListagemA.4:Entendendoc´odigogen´ericoexemploPython.
# Vetor tempo a passos de 0.01
t = np . arange (0,20,0.01)
t1 = np arange (0,80,0.01)
plt . figure (3)
T1 , yout1 = forced_response ( G_mf , t1 , t1 ,0)
plt . plot ( T1 , T1 , ' k ' , label = ' Rampa ' )
plt . plot ( T1 , yout1 , ' k ' , label = ' Sa´ıda ' )
plt xlabel ( ' Tempo ( s ) ' )
plt . ylabel ( ' Amplitude ' )
plt . grid ( True , which = ' both ' )
plt . title ( ' Resposta `a rampa ' )
plt . legend ( loc = ' best ' )
# Exporta - se a Figura da resposta a rampa para png
mcf save_fig ( ' figura_exemplo_6b_ramp_cap3 ' )
# Ganho calculado e sistema com ganho ajustado mas n~ao ... compensado
K1 =1440
Gk1 = K1 * G
# Plota - se o diagrama de Bode de K1 * G ( s )
mcf . plot_margins ( Gk1 , emin , emax )
# Exporta - se a Figura do diagrama de Bode para png
mcf . save_fig ( ' figura_exemplo_6b_k1_bode_cap3 ' )
# Determina - se a FT em MF
Gk1_mf = feedback ( Gk1 ,1)
# Plota - se a resposta ao degrau unit´ario da FT em MF
plt . figure (5)
T , yout = step_response ( Gk1_mf )
Mp , tp , ts , tr = mcf . info_st ( Gk1_mf ,2)
plt plot ( T , yout , ' k ' )
plt . xlabel ( ' Tempo ( s ) ' )
plt . ylabel ( ' Amplitude ' )
plt . grid ( True , which = ' both ' )
plt . title ( " $M_p = $ %.2 f $t_p = $ %.2 f $t_s = $ %.2 f $t_r = $ %.2 f " % ( round ( Mp ,2), round ( tp ,2), round ( ts ,2), round ... ( tr ,2)))
# Exporta - se a Figura da resposta ao degrau para png mcf . save_fig ( ' figura_exemplo_6b_k1_step_cap3 ' )
NaListagem A.5,est˜aodispon´ıveisosdadosdeentradaparaasfun¸c˜oes de gera_tabela_latex e gera_tabela_excel,masambasencontram-se comentadas.Seemambasasfun¸c˜oesoscoment´ariosforemeliminados,o c´odigogeraumatabeladedadosemLATEXeoutratabeladedadosemExcel, quepodemserutilizadaspararealizarasleiturasdedadosdeprojetodos compensadoresdesejados.Astabelass˜aosalvasemarquivosnoformatotex ouxlsx,respectivamente.
ListagemA.5:Entendendoc´odigogen´ericoexemploPython.
# # Dados para gerar tabela da resposta em freq . para o ...
LaTeX
# # G fun¸c~ao de transfer^encia do sistema # # w vetor de frequ^encias
# # Td =0 atraso de tempo
# # N =0 ordem de aproxima¸c~ao de Pad´e para o atraso Td # # a1 string com o nome do arquivo em latex
# # a2 string com a etiqueta do Exemplo q ser resolvido # # a3 string com a etiqueta da tabela para ser ... referenciada
Nos últimos anos, o Python vem sendo utilizado, em vez do Matlab.
O Python e suas respectivas bibliotecas específicas estão crescendo e amadurecendo de maneira a serem uma alternativa chamativa ao Matlab. Neste livro, estarão disponíveis todos os códigos em Python de todos os exemplos desenvolvidos e de um conjunto de funções criadas para mostrar: dados de simulação como máximo sobressinal; tempo de acomodação, tempo de pico e tempo de subida; frequência de ressonância, amplitude de pico de ressonância e largura de banda; geração de uma onda quadrada e uma onda triangular; margens de fase e de ganho, as respectivas frequências de cruzamento de ganho e de cruzamento de fase; setas de direção de movimento dos diagramas polares; e também funções para criar as tabelas de dados da resposta em frequência, ditas tabelas em LaTeX, HTML e Excel.
O Python é uma linguagem de programação de alto nível, interpretada, open source e combina uma sintaxe concisa com recursos de biblioteca por módulos. Ele apresenta um módulo para sistemas de controle com comandos muito semelhantes ao Matlab. Na ampla literatura de controle, observam-se livros que utilizam o Matlab, Scilab e C nos idiomas inglês e português. Livros da área de sistemas de controle utilizando Python são poucos em ambas as linguagens e, principalmente, em português.