def execute(self): # Resposta ao degrau [self.xout, self.yout] = con.step_response(self.sys, const.TEMPO) # Pegando as informações do sistema info = con.step_info(self.sys, self.xout) # "Alterando" amplitude do degrau self.yout = self.yout * self.VALOR_ENTRADA # Pegando o valor de estado estacionário self.valorEstacionario = info['SteadyStateValue'] * self.VALOR_ENTRADA # Ponto de acomodação self.tempo_acomodacao = info['SettlingTime'] self.valor_acomodacao = accommodationPoint(self.yout, self.valorEstacionario) # Overshoot self.overshootX = info['PeakTime'] self.overshootY = info['Peak'] * self.VALOR_ENTRADA self.overshoot = info['Overshoot'] # Erro em regime permanente self.erroRegimePermanente = errorCalculate(self.VALOR_ENTRADA, self.valorEstacionario)
def execute(self): # Realimentando a malha sysFechada = con.feedback(self.sys, 1) # Resposta ao degrau [self.xout, self.yout] = con.step_response(sysFechada, const.TEMPO_CALCULO) # "Alterando" amplitude do degrau self.yout = self.yout * const.SP # Pegando as informações sobre o sistema info = con.step_info(sysFechada, self.xout) # Pegando o valor de estado estacionário self.valorEstacionario = info['SteadyStateValue'] * const.SP # Ponto de acomodação self.tempo_acomodacao = info['SettlingTime'] self.valor_acomodacao = accommodationPoint(self.yout, self.valorEstacionario) # Overshoot self.overshootX = info['PeakTime'] self.overshootY = info['Peak'] * const.SP self.overshoot = info['Overshoot'] # Erro em regime permanente self.erroRegimePermanente = errorCalculate(const.SP, self.valorEstacionario)
def execute(self): # Calculando os valores dos ganhos self.kp, self.ki = KpKi(self.sys) # Criando a função de transferência auxiliar sysAux = con.TransferFunction([1, 0], [1, -1], const.TEMPO_AMOSTRAGEM) # Criando a transferência do controlador sysControlador = sysAux * self.ki * const.TEMPO_AMOSTRAGEM + self.kp # Realimentando a malha sysGanhoIntegral = con.feedback(sysControlador * self.sys, 1) # Resposta ao degrau [self.xout, self.yout] = con.step_response(sysGanhoIntegral, const.TEMPO_CALCULO) # "Alterando" amplitude do degrau self.yout = self.yout * const.SP # Pegando as informações sobre o sistema info = con.step_info(sysGanhoIntegral, self.xout) # Pegando o valor de estado estacionário self.valorEstacionario = info['SteadyStateValue'] * const.SP # Ponto de acomodação self.tempo_acomodacao = info['SettlingTime'] self.valor_acomodacao = accommodationPoint(self.yout, self.valorEstacionario) # Overshoot self.overshootX = info['PeakTime'] self.overshootY = info['Peak'] * const.SP self.overshoot = info['Overshoot'] # Erro em regime permanente self.erroRegimePermanente = errorCalculate(const.SP, self.valorEstacionario)