Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nome: Gustavo A = 7 B = 9. 1. Usando o Octave, calcule a função de transferência pulsada G(z) do sistema. 2. Usando o Octave, esboce o lugar geométrico das raízes de G(z). 3. Determine o valor de K para resultar em uma ultrapassagem percentual de 16,3%. Explique passo a passo como obteve o valor de K, apresentando os gráficos e resultados intermediários gerados no Octave. O cálculo da curva de fator de amortecimento com a ultrapassagem de 16,3% foi realizado utilizando os seguintes passos no octave: Depois, geramos a curva de fator de amortecimento e sobrepusemos a curva no lugar geométrico das raízes para conseguir ver onde eles se cruzam, e com isso conseguimos ver o ponto do plano Z. Logo após identificar o ponto do plano Z, foi feito o cálculo da função de transferência Gz(s) no ponto Z1, e depois realizado o cálculo para determinar o valor do ganho do sistema (K). 4. Mostre a resposta do sistema em malha fechada a degrau e discuta se o objetivo foi atingido. Após a determinação do valor do ganho K (75.74) para 16,3% de overshoot, foi recalculado a função de transferência de Gs e logo depois a função de Gz, e por fim consegue-se determinar o modelo matemático do sistema em malha fechada, conforme o código feito no octave e o gráfico a seguir. 5. Determine a faixa de K para a estabilidade. Explique passo a passo como obteve a faixa de K, apresentando os gráficos e resultados intermediários gerados no Octave. Foi recalculado o valor do polo complexo Z1, de acordo com o valor do cruzamento do círculo unitário com o LGR (lugar geométrico das raízes). Após conseguir o Z1, conseguir determinar a faixa de K para a estabilidade. Ganho para resultar em uma ultrapassagem de 16,3%. K = 75.74 Faixa de ganho para estabilidade 0 < K < 455.22 Codigo do Octave: >> clear >> pkg load control >> pkg load signal >> num = 1 num = 1 >> den = poly ([-7 -9]) den = 1 16 63 >> Gs = tf (num, den) Transfer function 'Gs' from input 'u1' to output ... 1 y1: --------------- s^2 + 16 s + 63 Continuous-time model. >> T = 0.1 T = 0.1000 >> Gz = c2d(Gs, T) Transfer function 'Gz' from input 'u1' to output ... 0.00299 z + 0.001752 y1: ----------------------- z^2 - 0.9032 z + 0.2019 Sampling time: 0.1 s Discrete-time model. >> [numGz denGz] = tfdata (Gz); >> numGz = cell2mat (numGz); >> denGz = cell2mat (denGz); >> hold on; >> rlocus(Gz); >> warning: invalid zoom region >> UP = 16.3 UP = 16.300 >> fa = -log(UP/100)/sqrt (pi^2 + (log(UP/100))^2) fa = 0.5000 >> wT = linspace (0, pi, 1000); >> rho = exp(-wT*(fa/sqrt(1-fa^2))); >> polar (wT, rho, "k"); >> z1 = 0.338 + 0,469*i z1 = 0.3380 ans = 0 + 469i >> z1 = 0.338 + 0.469*i z1 = 0.3380 + 0.4690i >> g1 = polyval (numGz, z1) / polyval (denGz, z1); >> K = 1/abs(g1) K = 75.743 >> num = K num = 75.743 >> Gs = tf (num, den) Transfer function 'Gs' from input 'u1' to output ... 75.74 y1: --------------- s^2 + 16 s + 63 Continuous-time model. >> Gz = c2d(Gs, T) Transfer function 'Gz' from input 'u1' to output ... 0.2265 z + 0.1327 y1: ----------------------- z^2 - 0.9032 z + 0.2019 Sampling time: 0.1 s Discrete-time model. >> Tz = tf(num, den) Transfer function 'Tz' from input 'u1' to output ... 75.74 y1: --------------- s^2 + 16 s + 63 Continuous-time model. >> Tz = feedback(Gz) Transfer function 'Tz' from input 'u1' to output ... 0.2265 z + 0.1327 y1: ----------------------- z^2 - 0.6767 z + 0.3346 Sampling time: 0.1 s Discrete-time model. >> step(Tz); >> Clf; error: 'Clf' undefined near line 1, column 1 >> clf; >> step(Tz); >> clf; >> theta = linspace (0, 2*pi, 1000); >> rho = ones (1, 1000); >> polar (theta, rho, "r"); >> rlocus(Gz); >> hold on; >> rlocus(Gz); >> polar (theta, rho, "r"); >> warning: invalid zoom region >> z1 = -0.229 + 0973 * i z1 = -0.2290 + 973.0000i >> z1 = -0.229 + 0.973 * i z1 = -0.2290 + 0.9730i >> g1 = polyval (numGz, z1) / polyval (denGz, z1); >> K = 1/abs(g1) K = 455.22
Compartilhar