Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CURSO DE ENGENHARIA ELÉTRICA LABORATÓRIO DE CONTROLE DE PROCESSOS PRÁTICA 6 – COMPENSADOR DE AVANÇO POR RESPOSTA EM FREQUÊCIA Docente: Lucas Silvestre Chaves Discentes: Heberte Sebastião Leandro Rafael Bruno da Silva Vitor da Cunha de Souza NEPOMUCENO-MG 07/11/2022 1. OBJETIVO Analisar um sistema de controle com compensador de avanço projetado pelo método da resposta em frequência. 2. PRÁTICA Após realizar o projeto de um compensador de avanço utilizando o método da resposta em frequência, um engenheiro eletricista obteve o seguinte sistema de controle como resultado: Em que: 𝐺𝐶(𝑆) = 9,5238 𝑆 + 3,0101 𝑆 + 14,3339 𝐺(𝑆) = 10 𝑆(𝑆 + 1) Com base nas informações apresentadas determine: a) Os diagramas de bode do compensador e da função de transferência em malha aberta; Figura: Diagrama de Bode da função de transferência Figura: Diagrama de Bode da função do compensador b) A fase máxima imposta pelo compensador; ø = −310° c) As frequências de cruzamento de ganho e de fase de 𝐺𝐶(𝑠)𝐺(𝑠); d) A margem de fase e a margem de ganho de 𝐺𝐶(𝑠)𝐺(𝑠); e) As respostas ao degrau unitário e a rampa unitária do sistema compensado e não compensado. Resposta ao degrau do sistema compensado em malha fechada: Resposta ao degrau do sistema não compensado em malha fechada: Resposta a rampa do sistema compensado em malha fechada: Resposta a rampa do sistema não compensado em malha fechada: Código em Python para gerar o diagrama de Bode: #Gráfico de Bode #%%capture test # só serve pra deixar o jupyter mais "limpo". (pode ser retirado) #!pip install control import numpy as np from pylab import plot import control import warnings #Baixa outras bibliotecas. warnings.filterwarnings('ignore') s = control.TransferFunction.s #G = (10)/((s)*(s+1)) #control.bode(G,dB=True) Gc_sG_s= (10)/((s)*(s+1))*(9.5238*(s+3.0101))/((s+14.3339)) control.bode(Gc_sG_s,dB=True) plot() #margin()Calcule as margens de ganho e fase e frequencias de cruzamento associadas gm, pm, wg, wp = control.margin(Gc_sG_s) print("Resultados:") print() print("Margem de Ganho: "+str(gm)+' db\n') print("Frequência de cruazamento no ponto da Marge de Ganho: "+str(wg)+ ' rad/s\n') #print("Margem de Fase : "+str(pm)+'graus\n') print(f'margem de fase: {round(pm, 2)}'+' graus\n') #print("Frequência de cruzamento no ponto da Marge de Fase: "+str(wp)+' rad/s\n') print(f'Frequência de cruzamento no ponto da margem de fase: {round(wp, 2)}'+' rad/s\n') Código para gerar a resposta ao degrau do sistema compensado em malha fechada: !pip install slycot # optional !pip install control import matplotlib.pyplot as plt import numpy as np import control s = control.tf('s') Gc = (9.5238*(s+3.0101))/((s+14.3339)) #planta G = 10/(s**2+s) #Malha Fechada MF = G*Gc/(1+G*Gc) print('MF(s) =', MF) #Resposta ao degrau unitário t,y = control.step_response(MF,10) #plt.plot(t,y) #Gráfico plt.rcParams.update({'font.size': 12}) plt.figure() plt.plot(t,y,'r- ',label="Resposta ao degrau do sistema compensado em malha fechada");pl t.grid() #plt.plot(t,y,'k-',label="Resposta ao degrau unitário") ;plt.grid() plt.xlabel('Tempo (s)') #plt.ylabel("Tempo de subida") plt.legend() plt.show Código para gerar a resposta ao degrau do sistema não compensado em malha fechada: !pip install slycot # optional !pip install control import matplotlib.pyplot as plt import numpy as np import control s = control.tf('s') G = 10/(s**2+s) #Malha Fechada MF = G/(1+G) print('MF(s) =', MF) #Resposta ao degrau unitário t,y = control.step_response(MF,10) #plt.plot(t,y) #Gráfico plt.rcParams.update({'font.size': 12}) plt.figure() plt.plot(t,y,'r- ',label="Resposta ao degrau do sistema não compensado em malha fechada" );plt.grid() #plt.plot(t,y,'k-',label="Resposta ao degrau unitário") ;plt.grid() plt.xlabel('Tempo (s)') #plt.ylabel("Tempo de subida") plt.legend() plt.show Código para gerar a resposta a rampa do sistema compensado em malha fechada: !pip install slycot # optional !pip install control import matplotlib.pyplot as plt import numpy as np import control s = control.tf('s') Gc = (9.5238*(s+3.0101))/((s+14.3339)) #planta G = (10/(s**2+s)) #Malha Fechada MF = (1/s)*G*Gc/(1+G*Gc) print('MF(s) =', MF) #Resposta ao degrau unitário t,y = control.step_response(MF,10) #plt.plot(t,y) #Gráfico plt.rcParams.update({'font.size': 12}) plt.figure() plt.plot(t,y,'r- ',label="Resposta a rampa em malha fechada do sistema compensado");plt. grid() #plt.plot(t,y,'k-',label="Resposta ao degrau unitário") ;plt.grid() plt.xlabel('Tempo (s)') #plt.ylabel("Tempo de subida") plt.legend() plt.show Código para gerar a resposta a rampa do sistema não compensado em malha fechada: !pip install slycot # optional !pip install control import matplotlib.pyplot as plt import numpy as np import control s = control.tf('s') G = 10/(s**2+s) #Malha Fechada MF = (1/s)*G/(1+G) print('MF(s) =', MF) #Resposta ao degrau unitário t,y = control.step_response(MF,10) #plt.plot(t,y) #Gráfico plt.rcParams.update({'font.size': 12}) plt.figure() plt.plot(t,y,'r- ',label="Resposta a rampa em malha fechada do sistema não compensado"); plt.grid() #plt.plot(t,y,'k-',label="Resposta ao degrau unitário") ;plt.grid() plt.xlabel('Tempo (s)') #plt.ylabel("Tempo de subida") plt.legend() plt.show
Compartilhar