·
Engenharia de Controle e Automação ·
Sinais e Sistemas
· 2023/2
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Prova 2 Sinais e Sistemas-2019 1
Sinais e Sistemas
UTFPR
5
Avaliação - 2024-1
Sinais e Sistemas
UTFPR
4
Prova Substituitiva e Prova 2- Sinais e Sistemas-2017
Sinais e Sistemas
UTFPR
8
Provas 2 do Primeiro e Segundo Período Sinais e Sistemas-2016
Sinais e Sistemas
UTFPR
1
Atividade de Acompanhamento Filtros Digitais 2023 1
Sinais e Sistemas
UTFPR
42
Introdução a Sinais e Sistemas
Sinais e Sistemas
FMU
2
Simulação 2 - Modelagem de Circ Usando Transf de Laplace - 2023-1
Sinais e Sistemas
UFMT
4
Atividades_de_apoio 1 pdf
Sinais e Sistemas
UFMG
4
Exercícios sobre Transformada de Laplace e Circuitos Elétricos
Sinais e Sistemas
IFPA
853
Sinais e Sistemas Lineares - B.P. Lathi
Sinais e Sistemas
CEFET/RJ
Texto de pré-visualização
Considere o sistema n˜ao-linear x˙2(t) = 2x1(t)x2(t) + x1(t) + u(t) sendo x1(t) e x2(t) as vari´aveis de estado dos sistema e u(t) a entrada de controle. Parte 1: Entrega at´e 13/11 O principal objetivo da Parte 1 ´e projetar dois controladores, a partir da representac¸˜ao linearizada do sistema, de forma que u(t) garanta localmente a estabilidade assint´otica. E necess´ario tamb´em que os´ sistemas de controle assegurem que a sa´ıda y(t) = x1(t) siga ao menos um conjunto limitado de sinais de referˆencia r(t). A nota atribu´ıda ao trabalho ser´a baseada no cumprimento dos seguintes requisitos: • An´alise de existˆencia e unicidade de solu¸c˜oes do sistema; • Determina¸c˜ao da representa¸c˜ao linearizada em malha aberta; • Apresenta¸c˜ao dos pontos de equil´ıbrio desejados, dependentes da referˆencia r(t); • Ilustra¸c˜ao da validade dos controladores por meio de respostas temporais; • An´alise comparativa dos controladores. Parte 2: Entrega at´e 30/11 O principal objetivo da Parte 2 do trabalho ´e projetar um controlador a partir das t´ecnicas n˜ao-lineares vistas em aula. O controlador deve garantir a estabilidade assint´otica local, assim como assegurar que a sa´ıda y(t) = x1(t) siga ao menos um conjunto limitado de sinais de referˆencia r(t). A nota atribu´ıda ao trabalho ser´a baseada no cumprimento dos seguintes requisitos: • Determina¸c˜ao do sistema de controle n˜ao-linear; • An´alise da regi˜ao de atra¸c˜ao, ao menos em torno da origem para r(t) = 0; • Compara¸c˜ao com um dos controladores lineares obtidos na Parte 1, em termos de desempenho, abrangˆencia da regi˜ao de estabilidade e aplicabilidade. Instru¸c˜oes para entrega dos trabalhos Cada trabalho dever´a ser entregue em formato .pdf. Para a avalia¸c˜ao, ser˜ao analisados n˜ao s´o os resultados, mas tamb´em as etapas de desenvolvimento dos controladores pedidos. Assim, vocˆe dever´a apresentar os dados importantes para que se possa reproduzir o resultado, como os parˆametros escolhidos para determinac¸˜ao dos controladores (por exemplo, os polos em caso de uma s´ıntese por aloca¸c˜ao de polos). N˜ao ´e necess´ario detalhar a fundamenta¸c˜ao te´orica ou os passos alg´ebricos para chegar em um resultado (por exemplo, n˜ao ´e necess´ario detalhar como foi efetuado o c´alculo dos autovalores de uma matriz, basta apresentar os valores). A an´alise dos resultados obtidos tamb´em ser´a avaliada: os resultados s˜ao coerentes com que se esperava? Se n˜ao forem, o que vocˆe sup˜oe que seja o problema? A entrega de um texto bem escrito e bem estruturado tamb´em conta pontos positivos! 2 Lista sobre Sinais e Sistemas 30 de novembro de 2023 Parte 1 An´alise da existˆencia e Unicidade de Soluc¸˜oes A an´alise de existˆencia e unicidade de soluc¸˜oes de um sistema de equac¸˜oes diferenciais or- din´arias (EDOs) ´e uma etapa importante antes de prosseguir com o projeto do controlador. Para o sistema fornecido: ˙x1(t) = x2(t)(x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) Vamos considerar o sistema de equac¸˜oes diferenciais autˆonomas: ˙x = f(x) onde x = [x1, x2]T ´e o vetor de estados, e f(x) ´e a func¸˜ao que descreve as derivadas em relac¸˜ao ao tempo. O teorema de existˆencia e unicidade de soluc¸˜oes para EDOs garante a existˆencia e a unicidade de soluc¸˜oes locais sob certas condic¸˜oes. Para verificar a existˆencia e unicidade de soluc¸˜oes, ´e necess´ario garantir que a func¸˜ao f(x) seja Lipschitz cont´ınua em relac¸˜ao a x. Se f(x) atende `a condic¸˜ao de Lipschitz, ent˜ao o teorema garante que existe uma soluc¸˜ao ´unica para o sistema de EDOs em torno de um ponto inicial. Vamos analisar a Lipschitz continuidade. A func¸˜ao f(x) para o sistema fornec Determinac¸˜ao da representac¸˜ao linearizada em malha aberta A determinac¸˜ao da representac¸˜ao linearizada em malha aberta envolve calcular as derivadas parciais do sistema em relac¸˜ao `as vari´aveis de estado e entrada e avaliar essas derivadas no ponto de equil´ıbrio. O sistema fornecido ´e: ˙x1(t) = x2(t)(x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) A representac¸˜ao linearizada em malha aberta pode ser expressa como: ˙ ∆x = A∆x + B∆u 1 Sinais e Sistemas Onde: - Ax = [Az,, Av]? sao as perturbagGes nos estados em relagao ao ponto de equilfbrio, - A éa matriz de coeficientes associada as derivadas parciais de f(x) em relagéo ax, - Béa matriz de coeficientes associada as derivadas parciais de f(x) em relagao a u. Vamos calcular A e B derivando f(x) em relagdo a x e u, respectivamente, e avaliando no ponto de equilibrio. of [0 atl Ox |2% 2a, Avaliando em x., = [0,0] (ponto de equilibrio): 0 1 shh Of |0 du {i Avaliando em x., = [0,0] (ponto de equilibrio): 0 Bi Portanto, a representagao linearizada em malha aberta do sistema é dada por: . 0 1 0 Ax = F 4 Ax + H Au Esta € a representacgao linearizada em malha aberta em torno do ponto de equilibrio x,, = (0, 0]. Apresentacao dos Pontos de equilibrio Dado o sistema nao linear fornecido: £,(t) = a2(t)(02(t) +) e a representacao linearizada em malha aberta: Ax = AAx + BAr onde Ax = [Az ;, Ar]? representa as perturbagdes nos estados em relagao ao ponto de equilibrio, A é a matriz de coeficientes associada as derivadas parciais de f(x) em relagao a x, e B éa matriz de coeficientes associada as derivadas parciais de f(x) em relagéo a u. 1. Definicaéo dos Pontos de Equilibrio Dependentes de 1(t): - Considere a perturbaga4o Ar na entrada de referéncia e resolva as equag6es para Ax, e Ax2 em termos de Ar. - Isso permitira observar como os pontos de equilibrio variam em resposta a perturba¢des na entrada de refer€ncia. 2. Ilustracao Grafica: - Plote os pontos de equilibrio em fungaéo de Ar para uma compre- ensdo visual de como a dinamica do sistema responde a varia¢oes na entrada de referéncia. 2 Sinais e Sistemas Esta abordagem permite explorar como os pontos de equil´ıbrio do sistema variam com perturbac¸˜oes na entrada de referˆencia sem a necessidade de uma func¸˜ao espec´ıfica r(t) no momento. Vamos testar diferentes func¸˜oes para r(t) para termos um entendimento melhor sobre como o sistema responde, utilizando Func¸˜oes de Referˆencia Padr˜ao: Degrau Unit´ario: r(t) = 1 para t ≥ 0 Rampa Linear: r(t) = t para t ≥ 0 Func¸˜ao Senoidal: r(t) = A sin(2πft) para uma amplitude A e frequˆencia f Func¸˜ao Quadr´atica: r(t) = at2 + bt + c para coeficientes a, b, e c Func¸˜ao Exponencial: r(t) = A exp(−αt) para uma amplitude A e um coeficiente α Para isso, podemos implementar o seguinte c´odigo 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # F u n o que representa o sistema n o linear 7 def sistema_nao_linear(x, t, u): 8 x1, x2 = x 9 10 dx1dt = x2 * (x1**2 + 1) 11 dx2dt = 2 * x1 * x2 + x1 + u(t) 12 13 return [dx1dt, dx2dt] 14 15 # F u n e s de refer ncia 16 def degrau_unitario(t): 17 return 1.0 * (t >= 0) 18 19 def rampa_linear(t): 20 return t * (t >= 0) 21 22 def funcao_senoidal(t): 23 A = 1.0 24 f = 0.1 25 return A * np.sin(2 * np.pi * f * t) 26 27 def funcao_quadratica(t): 28 a, b, c = 0.1, 0.2, 0.5 29 return a * t**2 + b * t + c 30 31 def funcao_exponencial(t): 32 A = 1.0 33 alpha = 0.1 3 Sinais e Sistemas 34 return A * np.exp(-alpha * t) 35 36 # S i m u l a o do sistema para diferentes f u n e s de refer ncia 37 tempo = np.linspace(0, 10, 1000) 38 39 for funcao_referencia in [degrau_unitario, rampa_linear, funcao_senoidal, funcao_quadratica, funcao_exponencial]: 40 # S i m u l a o do sistema n o linear 41 solucao_nao_linear = odeint(sistema_nao_linear, [0, 0], tempo, args=( funcao_referencia,)) 42 43 # Plotagem dos resultados 44 plt.figure(figsize=(10, 6)) 45 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 46 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 47 if tempo.size > 0: 48 plt.plot(tempo, [funcao_referencia(t) for t in tempo], label=’r(t)’ , linestyle=’--’) 49 plt.title(f’Resposta do Sistema N o Linear com {funcao_referencia. __name__}’) 50 plt.xlabel(’Tempo’) 51 plt.ylabel(’Estado’) 52 plt.legend() 53 plt.grid(True) 54 plt.show() Obtendo os seguintes resultados: 4 Sinais e Sistemas Figura 1: Resultados para diferentes r(t) Para escolher a entrada u(t), vamos utilizar o m´etodo de Controle N˜ao-linear. Para isso, podemos implementar o seguinte c´odigo: 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # Funcao que representa o sistema n o linear 7 def sistema_nao_linear(x, t): 8 x1, x2 = x 9 u = -x1**3 - x1 - x2 # Controlador n o linear 10 11 dx1dt = x2 * (x1**2 + 1) 12 dx2dt = 2 * x1 * x2 + x1 + u 13 14 return [dx1dt, dx2dt] 15 16 # Condicoes iniciais 17 x0 = [2, 2] 18 19 # Tempo de simulacao 20 tempo = np.linspace(0, 10, 1000) 21 22 # S i m u l a o do sistema nao linear 23 solucao_nao_linear = odeint(sistema_nao_linear, x0, tempo) 24 25 # Plotagem dos resultados 26 plt.figure(figsize=(10, 6)) 27 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 28 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 29 plt.title(’Resposta do Sistema N o Linear’) 30 plt.xlabel(’Tempo’) 31 plt.ylabel(’Estado’) 32 plt.legend() 33 plt.grid(True) 34 plt.show() Obtendo ent˜ao o seguinte resultado: 5 Sinais e Sistemas Figura 2: Resposta do Sistema N˜ao Linear Validade dos controladores por meio de respostas temporais J´a possu´ımos um c´odigo que simula o sistema n˜ao linear com diferentes func¸˜oes de referˆencia. Vamos adicionar uma sec¸˜ao ao c´odigo para ilustrar a validade dos controladores. Neste caso, como estamos usando um controlador n˜ao linear, a validac¸˜ao envolver´a observar como o sistema responde `as diferentes entradas de referˆencia. O controlador busca manter a sa´ıda do sistema pr´oxima `a referˆencia desejada. O c´odigo modificado ´e o seguinte: 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # F u n o que representa o sistema n o linear 7 def sistema_nao_linear(x, t, u): 8 x1, x2 = x 9 10 dx1dt = x2 * (x1**2 + 1) 11 dx2dt = 2 * x1 * x2 + x1 + u(t) 12 13 return [dx1dt, dx2dt] 14 15 # F u n e s de refer ncia 16 funcoes_referencia = [degrau_unitario, rampa_linear, funcao_senoidal, funcao_quadratica, funcao_exponencial] 17 18 # C o n d i e s iniciais 19 x0 = [0, 0] 20 21 # Tempo de s i m u l a o 22 tempo = np.linspace(0, 10, 1000) 23 24 # Loop sobre as f u n e s de refer ncia 25 for funcao_referencia in funcoes_referencia: 26 # S i m u l a o do sistema n o linear 27 solucao_nao_linear = odeint(sistema_nao_linear, x0, tempo, args=( funcao_referencia,)) 28 6 Sinais e Sistemas 29 # Plotagem dos resultados 30 plt.figure(figsize=(10, 6)) 31 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 32 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 33 plt.plot(tempo, [funcao_referencia(t) for t in tempo], label=’r(t)’, linestyle=’--’) 34 plt.title(f’Resposta do Sistema N o Linear com {funcao_referencia. __name__}’) 35 plt.xlabel(’Tempo’) 36 plt.ylabel(’Estado’) 37 plt.legend() 38 plt.grid(True) 39 plt.show() 40 41 # A d i o da s e o de v a l i d a o 42 plt.figure(figsize=(10, 6)) 43 plt.plot(tempo, solucao_nao_linear[:, 0] - [funcao_referencia(t) for t in tempo], label=’Erro (x1 - r(t))’) 44 plt.title(f’ V a l i d a o do Controlador com {funcao_referencia.__name__} ’) 45 plt.xlabel(’Tempo’) 46 plt.ylabel(’Erro’) 47 plt.legend() 48 plt.grid(True) 49 plt.show() Gerando os seguintes resultados Figura 3: Resposta / Validac¸˜ao para a func¸˜ao Degrau Figura 4: Resposta / Validac¸˜ao para a func¸˜ao Rampa 7 Sinais e Sistemas Figura 5: Resposta / Validac¸˜ao para a func¸˜ao Senoide Figura 6: Resposta / Validac¸˜ao para a func¸˜ao Quadr´atica Figura 7: Resposta / Validac¸˜ao para a func¸˜ao Exponencial An´alise comparativa dos Controladores Para realizar essa an´alise comparativa, podemos considerar alguns crit´erios comuns, como: 1. Erro de Estado Estacion´ario (Steady-State Error): Avaliac¸˜ao do quanto cada contro- lador minimiza o erro entre a sa´ıda do sistema e a referˆencia desejada quando o sistema atinge o estado estacion´ario. 2. Tempo de Estabilizac¸˜ao: An´alise do tempo necess´ario para cada controlador estabilizar o sistema em resposta a diferentes referˆencias. 8 Sinais e Sistemas 3. Sobressinal (Overshoot): Verificac¸˜ao se os controladores introduzem sobressinal na res- posta do sistema, afetando a estabilidade. 4. Tempo de Subida: Considerac¸˜ao do tempo que cada controlador leva para alcanc¸ar a referˆencia desejada. 5. Resposta a Dist´urbios: Avaliac¸˜ao de como cada controlador responde a dist´urbios no sistema, caso aplic´avel. Essas medidas quantitativas e gr´aficos comparativos ajudar˜ao a identificar as diferenc¸as no desempenho dos controladores. Parte 2 Determinac¸˜ao do Sistema de Controle N˜ao-Linear Para projetar um controlador n˜ao linear, ´e necess´ario seguir algumas etapas. Vamos apre- sentar um exemplo b´asico usando a t´ecnica de controle n˜ao linear conhecida como Feedback Linearization (Linearizac¸˜ao por Retroalimentac¸˜ao). Modelo Dinˆamico do Sistema Considere o sistema dinˆamico n˜ao linear dado por: ˙x1(t) = x2(t) · (x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) onde x1(t) e x2(t) s˜ao as vari´aveis de estado e u(t) ´e a entrada de controle. Objetivos do Controle O objetivo ´e projetar um controlador u(t) de modo que o sistema resultante tenha um com- portamento desejado. Feedback Linearization A t´ecnica de Feedback Linearization visa transformar o sistema n˜ao linear em um sistema linear utilizando uma transformac¸˜ao de coordenadas apropriada. A ideia ´e encontrar uma func¸˜ao de controle u(t) que torne o sistema linearizado. Para o sistema dado, a transformac¸˜ao de coordenadas pode ser escolhida para cancelar os termos n˜ao lineares. Uma poss´ıvel escolha ´e: z1 = x1 z2 = x2 · (x2 1 + 1) 9 Sinais e Sistemas Linearizac¸˜ao Agora, linearize o sistema utilizando a nova vari´avel z: ˙z1 = ˙x1 = x2 · (x2 1 + 1) ˙z2 = ˙x2 · (x2 1 + 1) + 2x2 · x1 · (2x1 · x2) + x1 · x2 = 2x2 · (x2 1 + 1) + x1 · x2 + 2x2 · (x2 1 · x2) Cancelamento de N˜ao Linearidades Para isso, vamos utilizar o seguinte c´odigo para determinar a lei u(t) de modo que as n˜ao linearidades presentes nas equac¸˜oes do sistema sejam canceladas ou simplificadas nas novas coordenadas: 1 import sympy as sp 2 3 # Definindo vari veis e f u n e s 4 t = sp.symbols(’t’) 5 x1, x2, z1, z2, u = sp.symbols(’x1 x2 z1 z2 u’, real=True) 6 7 # Sistema original 8 system_eq1 = x2 * (x1**2 + 1) 9 system_eq2 = 2 * x1 * x2 + x1 + u 10 11 # Coordenadas auxiliares 12 z1_expr = x1 13 z2_expr = x2 * (x1**2 + 1) 14 15 # Derivadas temporais em r e l a o a t 16 z1_dot_expr = sp.diff(z1_expr, t) 17 z2_dot_expr = sp.diff(z2_expr, t) 18 19 # Substituindo derivadas de x1 e x2 nas e q u a e s originais 20 system_eq1_sub = system_eq1.subs({x1: z1, x2: z2_expr}) 21 system_eq2_sub = system_eq2.subs({x1: z1, x2: z2_expr}) 22 23 # Exibindo o sistema linearizado 24 print("Sistema Linearizado:") 25 print("dz1/dt =", z1_dot_expr) 26 print("dz2/dt =", z2_dot_expr) 27 print("") 28 29 # Escolhendo uma lei de controle para cancelar termos n o lineares 30 u_expr = -system_eq2_sub 31 print("Lei de Controle Escolhida:") 32 print("u =", u_expr) Obtendo assim o seguinte resultdo: 1 Sistema Linearizado: 2 dz1/dt = 0 3 dz2/dt = 0 4 5 Lei de Controle Escolhida: 6 u = -u - 2*x2*z1*(x1**2 + 1) - z1 Isto ´e: 10 Sinais e Sistemas dz1 dt = 0 dz2 dt = 0 Lei de controle escolhida Utilizamos o seguinte c´odigo para chegar as equac¸˜oes derivadas de z1 e z2: 1 import sympy as sp 2 3 # Definindo vari veis e f u n e s 4 x1, x2, z1, z2, u = sp.symbols(’x1 x2 z1 z2 u’) 5 z1_dot = z1 * (x1**2 + 1) + x2 6 z2_dot = -2 * z1 * x2 7 8 # Encontrando os pontos de equil brio (zerando as derivadas) 9 pontos_equilibrio = sp.solve([z1_dot, z2_dot], [z1, z2]) 10 11 # Exibindo o sistema linearizado 12 print("Sistema Linearizado:") 13 print("dz1/dt =", z1_dot) 14 print("dz2/dt =", z2_dot) Onde chegamos a: 1 Sistema Linearizado: 2 dz1/dt = x2 + z1*(x1**2 + 1) 3 dz2/dt = -2*x2*z1 dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 Com isso, podemos chegar `a seguinte lei de controle escolhida pode ser obtida considerando a derivada temporal de z2 no sistema linearizado: dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 Calculando a derivada temporal de z2 em relac¸˜ao a t: d2z2 dt2 = d dt(−2x2z1) = −2dx2 dt z1 − 2x2 dz1 dt Escolhemos u de forma a cancelar os termos n˜ao lineares, assumindo u = −z1(x2 1 + 1). Substituindo isso na derivada de z2: d2z2 dt2 = −2dx2 dt z1 − 2x2 dz1 dt − 2z1(x2 1 + 1) Os termos n˜ao lineares foram cancelados, resultando em uma derivada de z2 que se torna zero. Portanto, a lei de controle escolhida ´e: 11 Sinais e Sistemas u = −z1(x2 1 + 1) Essa escolha de u torna o sistema linearizado invariante no tempo, facilitando a an´alise e controle. An´alise da regi˜ao de atrac¸˜ao para r(t) = 0 Para realizar a an´alise da regi˜ao de atrac¸˜ao para r(t) = 0, podemos considerar o sistema linearizado com a lei de controle escolhida e investigar a estabilidade do ponto de equil´ıbrio. O sistema linearizado ´e dado por: dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 E a lei de controle escolhida ´e: u = −z1(x2 1 + 1) O ponto de equil´ıbrio ocorre quando todas as derivadas temporais s˜ao iguais a zero: dz1 dt = 0 dz2 dt = 0 Podemos ent˜ao analisar a estabilidade desse ponto de equil´ıbrio, por exemplo, utilizando o crit´erio de estabilidade de Routh-Hurwitz. Este crit´erio ´e aplic´avel para sistemas lineares da forma: ˙x = Ax + Bu onde A ´e a matriz de coeficientes do sistema linearizado. Resolvendo o sistema acima, chegamos a: (z1, x2) = (0, 0) An´alise da regi˜ao de atrac¸˜ao Para realizar essa an´alise, considerando o sistema linearizado e a lei de controle escolhida, ´e necess´ario examinar a estabilidade do ponto de equil´ıbrio. Nesse contexto, podemos aplicar o crit´erio de estabilidade de Routh-Hurwitz para avaliar as condic¸˜oes sob as quais o sistema permanece est´avel. O crit´erio de Routh-Hurwitz ´e aplic´avel a sistemas lineares representados na forma: ˙x = Ax + Bu Para realizar a an´alise de estabilidade com o crit´erio de Routh-Hurwitz, precisamos primeiro derivar as equac¸˜oes do sistema linearizado e, em seguida, encontrar os pontos de equil´ıbrio. Como vocˆe mencionou que o ponto de equil´ıbrio ´e a origem, podemos usar isso como ponto de partida. 12 Sinais e Sistemas 1 import sympy as sp 2 import symbtools as st 3 4 # Definindo vari veis 5 x1, x2, z1, z2 = sp.symbols(’x1 x2 z1 z2’) 6 7 # Sistema linearizado 8 dz1_dt = x2 + z1 * (x1**2 + 1) 9 dz2_dt = -2 * x2 * z1 10 11 # Pontos de equil brio (para r(t) = 0, considerando a origem) 12 equilibria = sp.solve([dz1_dt, dz2_dt], (x1, x2, z1, z2)) 13 print("Pontos de Equil brio:", equilibria) Obtendo os seguintes pontos de equil´ıbrio: (−i, 0, z1, z2), (i, 0, z1, z2), (x1, 0, 0, z2) 13
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Prova 2 Sinais e Sistemas-2019 1
Sinais e Sistemas
UTFPR
5
Avaliação - 2024-1
Sinais e Sistemas
UTFPR
4
Prova Substituitiva e Prova 2- Sinais e Sistemas-2017
Sinais e Sistemas
UTFPR
8
Provas 2 do Primeiro e Segundo Período Sinais e Sistemas-2016
Sinais e Sistemas
UTFPR
1
Atividade de Acompanhamento Filtros Digitais 2023 1
Sinais e Sistemas
UTFPR
42
Introdução a Sinais e Sistemas
Sinais e Sistemas
FMU
2
Simulação 2 - Modelagem de Circ Usando Transf de Laplace - 2023-1
Sinais e Sistemas
UFMT
4
Atividades_de_apoio 1 pdf
Sinais e Sistemas
UFMG
4
Exercícios sobre Transformada de Laplace e Circuitos Elétricos
Sinais e Sistemas
IFPA
853
Sinais e Sistemas Lineares - B.P. Lathi
Sinais e Sistemas
CEFET/RJ
Texto de pré-visualização
Considere o sistema n˜ao-linear x˙2(t) = 2x1(t)x2(t) + x1(t) + u(t) sendo x1(t) e x2(t) as vari´aveis de estado dos sistema e u(t) a entrada de controle. Parte 1: Entrega at´e 13/11 O principal objetivo da Parte 1 ´e projetar dois controladores, a partir da representac¸˜ao linearizada do sistema, de forma que u(t) garanta localmente a estabilidade assint´otica. E necess´ario tamb´em que os´ sistemas de controle assegurem que a sa´ıda y(t) = x1(t) siga ao menos um conjunto limitado de sinais de referˆencia r(t). A nota atribu´ıda ao trabalho ser´a baseada no cumprimento dos seguintes requisitos: • An´alise de existˆencia e unicidade de solu¸c˜oes do sistema; • Determina¸c˜ao da representa¸c˜ao linearizada em malha aberta; • Apresenta¸c˜ao dos pontos de equil´ıbrio desejados, dependentes da referˆencia r(t); • Ilustra¸c˜ao da validade dos controladores por meio de respostas temporais; • An´alise comparativa dos controladores. Parte 2: Entrega at´e 30/11 O principal objetivo da Parte 2 do trabalho ´e projetar um controlador a partir das t´ecnicas n˜ao-lineares vistas em aula. O controlador deve garantir a estabilidade assint´otica local, assim como assegurar que a sa´ıda y(t) = x1(t) siga ao menos um conjunto limitado de sinais de referˆencia r(t). A nota atribu´ıda ao trabalho ser´a baseada no cumprimento dos seguintes requisitos: • Determina¸c˜ao do sistema de controle n˜ao-linear; • An´alise da regi˜ao de atra¸c˜ao, ao menos em torno da origem para r(t) = 0; • Compara¸c˜ao com um dos controladores lineares obtidos na Parte 1, em termos de desempenho, abrangˆencia da regi˜ao de estabilidade e aplicabilidade. Instru¸c˜oes para entrega dos trabalhos Cada trabalho dever´a ser entregue em formato .pdf. Para a avalia¸c˜ao, ser˜ao analisados n˜ao s´o os resultados, mas tamb´em as etapas de desenvolvimento dos controladores pedidos. Assim, vocˆe dever´a apresentar os dados importantes para que se possa reproduzir o resultado, como os parˆametros escolhidos para determinac¸˜ao dos controladores (por exemplo, os polos em caso de uma s´ıntese por aloca¸c˜ao de polos). N˜ao ´e necess´ario detalhar a fundamenta¸c˜ao te´orica ou os passos alg´ebricos para chegar em um resultado (por exemplo, n˜ao ´e necess´ario detalhar como foi efetuado o c´alculo dos autovalores de uma matriz, basta apresentar os valores). A an´alise dos resultados obtidos tamb´em ser´a avaliada: os resultados s˜ao coerentes com que se esperava? Se n˜ao forem, o que vocˆe sup˜oe que seja o problema? A entrega de um texto bem escrito e bem estruturado tamb´em conta pontos positivos! 2 Lista sobre Sinais e Sistemas 30 de novembro de 2023 Parte 1 An´alise da existˆencia e Unicidade de Soluc¸˜oes A an´alise de existˆencia e unicidade de soluc¸˜oes de um sistema de equac¸˜oes diferenciais or- din´arias (EDOs) ´e uma etapa importante antes de prosseguir com o projeto do controlador. Para o sistema fornecido: ˙x1(t) = x2(t)(x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) Vamos considerar o sistema de equac¸˜oes diferenciais autˆonomas: ˙x = f(x) onde x = [x1, x2]T ´e o vetor de estados, e f(x) ´e a func¸˜ao que descreve as derivadas em relac¸˜ao ao tempo. O teorema de existˆencia e unicidade de soluc¸˜oes para EDOs garante a existˆencia e a unicidade de soluc¸˜oes locais sob certas condic¸˜oes. Para verificar a existˆencia e unicidade de soluc¸˜oes, ´e necess´ario garantir que a func¸˜ao f(x) seja Lipschitz cont´ınua em relac¸˜ao a x. Se f(x) atende `a condic¸˜ao de Lipschitz, ent˜ao o teorema garante que existe uma soluc¸˜ao ´unica para o sistema de EDOs em torno de um ponto inicial. Vamos analisar a Lipschitz continuidade. A func¸˜ao f(x) para o sistema fornec Determinac¸˜ao da representac¸˜ao linearizada em malha aberta A determinac¸˜ao da representac¸˜ao linearizada em malha aberta envolve calcular as derivadas parciais do sistema em relac¸˜ao `as vari´aveis de estado e entrada e avaliar essas derivadas no ponto de equil´ıbrio. O sistema fornecido ´e: ˙x1(t) = x2(t)(x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) A representac¸˜ao linearizada em malha aberta pode ser expressa como: ˙ ∆x = A∆x + B∆u 1 Sinais e Sistemas Onde: - Ax = [Az,, Av]? sao as perturbagGes nos estados em relagao ao ponto de equilfbrio, - A éa matriz de coeficientes associada as derivadas parciais de f(x) em relagéo ax, - Béa matriz de coeficientes associada as derivadas parciais de f(x) em relagao a u. Vamos calcular A e B derivando f(x) em relagdo a x e u, respectivamente, e avaliando no ponto de equilibrio. of [0 atl Ox |2% 2a, Avaliando em x., = [0,0] (ponto de equilibrio): 0 1 shh Of |0 du {i Avaliando em x., = [0,0] (ponto de equilibrio): 0 Bi Portanto, a representagao linearizada em malha aberta do sistema é dada por: . 0 1 0 Ax = F 4 Ax + H Au Esta € a representacgao linearizada em malha aberta em torno do ponto de equilibrio x,, = (0, 0]. Apresentacao dos Pontos de equilibrio Dado o sistema nao linear fornecido: £,(t) = a2(t)(02(t) +) e a representacao linearizada em malha aberta: Ax = AAx + BAr onde Ax = [Az ;, Ar]? representa as perturbagdes nos estados em relagao ao ponto de equilibrio, A é a matriz de coeficientes associada as derivadas parciais de f(x) em relagao a x, e B éa matriz de coeficientes associada as derivadas parciais de f(x) em relagéo a u. 1. Definicaéo dos Pontos de Equilibrio Dependentes de 1(t): - Considere a perturbaga4o Ar na entrada de referéncia e resolva as equag6es para Ax, e Ax2 em termos de Ar. - Isso permitira observar como os pontos de equilibrio variam em resposta a perturba¢des na entrada de refer€ncia. 2. Ilustracao Grafica: - Plote os pontos de equilibrio em fungaéo de Ar para uma compre- ensdo visual de como a dinamica do sistema responde a varia¢oes na entrada de referéncia. 2 Sinais e Sistemas Esta abordagem permite explorar como os pontos de equil´ıbrio do sistema variam com perturbac¸˜oes na entrada de referˆencia sem a necessidade de uma func¸˜ao espec´ıfica r(t) no momento. Vamos testar diferentes func¸˜oes para r(t) para termos um entendimento melhor sobre como o sistema responde, utilizando Func¸˜oes de Referˆencia Padr˜ao: Degrau Unit´ario: r(t) = 1 para t ≥ 0 Rampa Linear: r(t) = t para t ≥ 0 Func¸˜ao Senoidal: r(t) = A sin(2πft) para uma amplitude A e frequˆencia f Func¸˜ao Quadr´atica: r(t) = at2 + bt + c para coeficientes a, b, e c Func¸˜ao Exponencial: r(t) = A exp(−αt) para uma amplitude A e um coeficiente α Para isso, podemos implementar o seguinte c´odigo 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # F u n o que representa o sistema n o linear 7 def sistema_nao_linear(x, t, u): 8 x1, x2 = x 9 10 dx1dt = x2 * (x1**2 + 1) 11 dx2dt = 2 * x1 * x2 + x1 + u(t) 12 13 return [dx1dt, dx2dt] 14 15 # F u n e s de refer ncia 16 def degrau_unitario(t): 17 return 1.0 * (t >= 0) 18 19 def rampa_linear(t): 20 return t * (t >= 0) 21 22 def funcao_senoidal(t): 23 A = 1.0 24 f = 0.1 25 return A * np.sin(2 * np.pi * f * t) 26 27 def funcao_quadratica(t): 28 a, b, c = 0.1, 0.2, 0.5 29 return a * t**2 + b * t + c 30 31 def funcao_exponencial(t): 32 A = 1.0 33 alpha = 0.1 3 Sinais e Sistemas 34 return A * np.exp(-alpha * t) 35 36 # S i m u l a o do sistema para diferentes f u n e s de refer ncia 37 tempo = np.linspace(0, 10, 1000) 38 39 for funcao_referencia in [degrau_unitario, rampa_linear, funcao_senoidal, funcao_quadratica, funcao_exponencial]: 40 # S i m u l a o do sistema n o linear 41 solucao_nao_linear = odeint(sistema_nao_linear, [0, 0], tempo, args=( funcao_referencia,)) 42 43 # Plotagem dos resultados 44 plt.figure(figsize=(10, 6)) 45 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 46 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 47 if tempo.size > 0: 48 plt.plot(tempo, [funcao_referencia(t) for t in tempo], label=’r(t)’ , linestyle=’--’) 49 plt.title(f’Resposta do Sistema N o Linear com {funcao_referencia. __name__}’) 50 plt.xlabel(’Tempo’) 51 plt.ylabel(’Estado’) 52 plt.legend() 53 plt.grid(True) 54 plt.show() Obtendo os seguintes resultados: 4 Sinais e Sistemas Figura 1: Resultados para diferentes r(t) Para escolher a entrada u(t), vamos utilizar o m´etodo de Controle N˜ao-linear. Para isso, podemos implementar o seguinte c´odigo: 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # Funcao que representa o sistema n o linear 7 def sistema_nao_linear(x, t): 8 x1, x2 = x 9 u = -x1**3 - x1 - x2 # Controlador n o linear 10 11 dx1dt = x2 * (x1**2 + 1) 12 dx2dt = 2 * x1 * x2 + x1 + u 13 14 return [dx1dt, dx2dt] 15 16 # Condicoes iniciais 17 x0 = [2, 2] 18 19 # Tempo de simulacao 20 tempo = np.linspace(0, 10, 1000) 21 22 # S i m u l a o do sistema nao linear 23 solucao_nao_linear = odeint(sistema_nao_linear, x0, tempo) 24 25 # Plotagem dos resultados 26 plt.figure(figsize=(10, 6)) 27 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 28 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 29 plt.title(’Resposta do Sistema N o Linear’) 30 plt.xlabel(’Tempo’) 31 plt.ylabel(’Estado’) 32 plt.legend() 33 plt.grid(True) 34 plt.show() Obtendo ent˜ao o seguinte resultado: 5 Sinais e Sistemas Figura 2: Resposta do Sistema N˜ao Linear Validade dos controladores por meio de respostas temporais J´a possu´ımos um c´odigo que simula o sistema n˜ao linear com diferentes func¸˜oes de referˆencia. Vamos adicionar uma sec¸˜ao ao c´odigo para ilustrar a validade dos controladores. Neste caso, como estamos usando um controlador n˜ao linear, a validac¸˜ao envolver´a observar como o sistema responde `as diferentes entradas de referˆencia. O controlador busca manter a sa´ıda do sistema pr´oxima `a referˆencia desejada. O c´odigo modificado ´e o seguinte: 1 import control as ctrl 2 import numpy as np 3 import matplotlib.pyplot as plt 4 from scipy.integrate import odeint 5 6 # F u n o que representa o sistema n o linear 7 def sistema_nao_linear(x, t, u): 8 x1, x2 = x 9 10 dx1dt = x2 * (x1**2 + 1) 11 dx2dt = 2 * x1 * x2 + x1 + u(t) 12 13 return [dx1dt, dx2dt] 14 15 # F u n e s de refer ncia 16 funcoes_referencia = [degrau_unitario, rampa_linear, funcao_senoidal, funcao_quadratica, funcao_exponencial] 17 18 # C o n d i e s iniciais 19 x0 = [0, 0] 20 21 # Tempo de s i m u l a o 22 tempo = np.linspace(0, 10, 1000) 23 24 # Loop sobre as f u n e s de refer ncia 25 for funcao_referencia in funcoes_referencia: 26 # S i m u l a o do sistema n o linear 27 solucao_nao_linear = odeint(sistema_nao_linear, x0, tempo, args=( funcao_referencia,)) 28 6 Sinais e Sistemas 29 # Plotagem dos resultados 30 plt.figure(figsize=(10, 6)) 31 plt.plot(tempo, solucao_nao_linear[:, 0], label=’x1’) 32 plt.plot(tempo, solucao_nao_linear[:, 1], label=’x2’) 33 plt.plot(tempo, [funcao_referencia(t) for t in tempo], label=’r(t)’, linestyle=’--’) 34 plt.title(f’Resposta do Sistema N o Linear com {funcao_referencia. __name__}’) 35 plt.xlabel(’Tempo’) 36 plt.ylabel(’Estado’) 37 plt.legend() 38 plt.grid(True) 39 plt.show() 40 41 # A d i o da s e o de v a l i d a o 42 plt.figure(figsize=(10, 6)) 43 plt.plot(tempo, solucao_nao_linear[:, 0] - [funcao_referencia(t) for t in tempo], label=’Erro (x1 - r(t))’) 44 plt.title(f’ V a l i d a o do Controlador com {funcao_referencia.__name__} ’) 45 plt.xlabel(’Tempo’) 46 plt.ylabel(’Erro’) 47 plt.legend() 48 plt.grid(True) 49 plt.show() Gerando os seguintes resultados Figura 3: Resposta / Validac¸˜ao para a func¸˜ao Degrau Figura 4: Resposta / Validac¸˜ao para a func¸˜ao Rampa 7 Sinais e Sistemas Figura 5: Resposta / Validac¸˜ao para a func¸˜ao Senoide Figura 6: Resposta / Validac¸˜ao para a func¸˜ao Quadr´atica Figura 7: Resposta / Validac¸˜ao para a func¸˜ao Exponencial An´alise comparativa dos Controladores Para realizar essa an´alise comparativa, podemos considerar alguns crit´erios comuns, como: 1. Erro de Estado Estacion´ario (Steady-State Error): Avaliac¸˜ao do quanto cada contro- lador minimiza o erro entre a sa´ıda do sistema e a referˆencia desejada quando o sistema atinge o estado estacion´ario. 2. Tempo de Estabilizac¸˜ao: An´alise do tempo necess´ario para cada controlador estabilizar o sistema em resposta a diferentes referˆencias. 8 Sinais e Sistemas 3. Sobressinal (Overshoot): Verificac¸˜ao se os controladores introduzem sobressinal na res- posta do sistema, afetando a estabilidade. 4. Tempo de Subida: Considerac¸˜ao do tempo que cada controlador leva para alcanc¸ar a referˆencia desejada. 5. Resposta a Dist´urbios: Avaliac¸˜ao de como cada controlador responde a dist´urbios no sistema, caso aplic´avel. Essas medidas quantitativas e gr´aficos comparativos ajudar˜ao a identificar as diferenc¸as no desempenho dos controladores. Parte 2 Determinac¸˜ao do Sistema de Controle N˜ao-Linear Para projetar um controlador n˜ao linear, ´e necess´ario seguir algumas etapas. Vamos apre- sentar um exemplo b´asico usando a t´ecnica de controle n˜ao linear conhecida como Feedback Linearization (Linearizac¸˜ao por Retroalimentac¸˜ao). Modelo Dinˆamico do Sistema Considere o sistema dinˆamico n˜ao linear dado por: ˙x1(t) = x2(t) · (x2 1(t) + 1) ˙x2(t) = 2x1(t)x2(t) + x1(t) + u(t) onde x1(t) e x2(t) s˜ao as vari´aveis de estado e u(t) ´e a entrada de controle. Objetivos do Controle O objetivo ´e projetar um controlador u(t) de modo que o sistema resultante tenha um com- portamento desejado. Feedback Linearization A t´ecnica de Feedback Linearization visa transformar o sistema n˜ao linear em um sistema linear utilizando uma transformac¸˜ao de coordenadas apropriada. A ideia ´e encontrar uma func¸˜ao de controle u(t) que torne o sistema linearizado. Para o sistema dado, a transformac¸˜ao de coordenadas pode ser escolhida para cancelar os termos n˜ao lineares. Uma poss´ıvel escolha ´e: z1 = x1 z2 = x2 · (x2 1 + 1) 9 Sinais e Sistemas Linearizac¸˜ao Agora, linearize o sistema utilizando a nova vari´avel z: ˙z1 = ˙x1 = x2 · (x2 1 + 1) ˙z2 = ˙x2 · (x2 1 + 1) + 2x2 · x1 · (2x1 · x2) + x1 · x2 = 2x2 · (x2 1 + 1) + x1 · x2 + 2x2 · (x2 1 · x2) Cancelamento de N˜ao Linearidades Para isso, vamos utilizar o seguinte c´odigo para determinar a lei u(t) de modo que as n˜ao linearidades presentes nas equac¸˜oes do sistema sejam canceladas ou simplificadas nas novas coordenadas: 1 import sympy as sp 2 3 # Definindo vari veis e f u n e s 4 t = sp.symbols(’t’) 5 x1, x2, z1, z2, u = sp.symbols(’x1 x2 z1 z2 u’, real=True) 6 7 # Sistema original 8 system_eq1 = x2 * (x1**2 + 1) 9 system_eq2 = 2 * x1 * x2 + x1 + u 10 11 # Coordenadas auxiliares 12 z1_expr = x1 13 z2_expr = x2 * (x1**2 + 1) 14 15 # Derivadas temporais em r e l a o a t 16 z1_dot_expr = sp.diff(z1_expr, t) 17 z2_dot_expr = sp.diff(z2_expr, t) 18 19 # Substituindo derivadas de x1 e x2 nas e q u a e s originais 20 system_eq1_sub = system_eq1.subs({x1: z1, x2: z2_expr}) 21 system_eq2_sub = system_eq2.subs({x1: z1, x2: z2_expr}) 22 23 # Exibindo o sistema linearizado 24 print("Sistema Linearizado:") 25 print("dz1/dt =", z1_dot_expr) 26 print("dz2/dt =", z2_dot_expr) 27 print("") 28 29 # Escolhendo uma lei de controle para cancelar termos n o lineares 30 u_expr = -system_eq2_sub 31 print("Lei de Controle Escolhida:") 32 print("u =", u_expr) Obtendo assim o seguinte resultdo: 1 Sistema Linearizado: 2 dz1/dt = 0 3 dz2/dt = 0 4 5 Lei de Controle Escolhida: 6 u = -u - 2*x2*z1*(x1**2 + 1) - z1 Isto ´e: 10 Sinais e Sistemas dz1 dt = 0 dz2 dt = 0 Lei de controle escolhida Utilizamos o seguinte c´odigo para chegar as equac¸˜oes derivadas de z1 e z2: 1 import sympy as sp 2 3 # Definindo vari veis e f u n e s 4 x1, x2, z1, z2, u = sp.symbols(’x1 x2 z1 z2 u’) 5 z1_dot = z1 * (x1**2 + 1) + x2 6 z2_dot = -2 * z1 * x2 7 8 # Encontrando os pontos de equil brio (zerando as derivadas) 9 pontos_equilibrio = sp.solve([z1_dot, z2_dot], [z1, z2]) 10 11 # Exibindo o sistema linearizado 12 print("Sistema Linearizado:") 13 print("dz1/dt =", z1_dot) 14 print("dz2/dt =", z2_dot) Onde chegamos a: 1 Sistema Linearizado: 2 dz1/dt = x2 + z1*(x1**2 + 1) 3 dz2/dt = -2*x2*z1 dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 Com isso, podemos chegar `a seguinte lei de controle escolhida pode ser obtida considerando a derivada temporal de z2 no sistema linearizado: dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 Calculando a derivada temporal de z2 em relac¸˜ao a t: d2z2 dt2 = d dt(−2x2z1) = −2dx2 dt z1 − 2x2 dz1 dt Escolhemos u de forma a cancelar os termos n˜ao lineares, assumindo u = −z1(x2 1 + 1). Substituindo isso na derivada de z2: d2z2 dt2 = −2dx2 dt z1 − 2x2 dz1 dt − 2z1(x2 1 + 1) Os termos n˜ao lineares foram cancelados, resultando em uma derivada de z2 que se torna zero. Portanto, a lei de controle escolhida ´e: 11 Sinais e Sistemas u = −z1(x2 1 + 1) Essa escolha de u torna o sistema linearizado invariante no tempo, facilitando a an´alise e controle. An´alise da regi˜ao de atrac¸˜ao para r(t) = 0 Para realizar a an´alise da regi˜ao de atrac¸˜ao para r(t) = 0, podemos considerar o sistema linearizado com a lei de controle escolhida e investigar a estabilidade do ponto de equil´ıbrio. O sistema linearizado ´e dado por: dz1 dt = x2 + z1(x2 1 + 1) dz2 dt = −2x2z1 E a lei de controle escolhida ´e: u = −z1(x2 1 + 1) O ponto de equil´ıbrio ocorre quando todas as derivadas temporais s˜ao iguais a zero: dz1 dt = 0 dz2 dt = 0 Podemos ent˜ao analisar a estabilidade desse ponto de equil´ıbrio, por exemplo, utilizando o crit´erio de estabilidade de Routh-Hurwitz. Este crit´erio ´e aplic´avel para sistemas lineares da forma: ˙x = Ax + Bu onde A ´e a matriz de coeficientes do sistema linearizado. Resolvendo o sistema acima, chegamos a: (z1, x2) = (0, 0) An´alise da regi˜ao de atrac¸˜ao Para realizar essa an´alise, considerando o sistema linearizado e a lei de controle escolhida, ´e necess´ario examinar a estabilidade do ponto de equil´ıbrio. Nesse contexto, podemos aplicar o crit´erio de estabilidade de Routh-Hurwitz para avaliar as condic¸˜oes sob as quais o sistema permanece est´avel. O crit´erio de Routh-Hurwitz ´e aplic´avel a sistemas lineares representados na forma: ˙x = Ax + Bu Para realizar a an´alise de estabilidade com o crit´erio de Routh-Hurwitz, precisamos primeiro derivar as equac¸˜oes do sistema linearizado e, em seguida, encontrar os pontos de equil´ıbrio. Como vocˆe mencionou que o ponto de equil´ıbrio ´e a origem, podemos usar isso como ponto de partida. 12 Sinais e Sistemas 1 import sympy as sp 2 import symbtools as st 3 4 # Definindo vari veis 5 x1, x2, z1, z2 = sp.symbols(’x1 x2 z1 z2’) 6 7 # Sistema linearizado 8 dz1_dt = x2 + z1 * (x1**2 + 1) 9 dz2_dt = -2 * x2 * z1 10 11 # Pontos de equil brio (para r(t) = 0, considerando a origem) 12 equilibria = sp.solve([dz1_dt, dz2_dt], (x1, x2, z1, z2)) 13 print("Pontos de Equil brio:", equilibria) Obtendo os seguintes pontos de equil´ıbrio: (−i, 0, z1, z2), (i, 0, z1, z2), (x1, 0, 0, z2) 13