Circuito RL

Simulando um circuito RL e avaliando sua resposta no tempo e na frequência.

Um circuito RL é formado por um resistor e um indutor normalmente disposto em série. É um circuito bastante simples, mas muito importante para o entendimento de circuitos reativos mais complexos como filtros.

Neste post, vamos ver como este circuito pode ser analisado e simulado no Scilab. É esperado que o leitor tenha conhecimento básico de análise de circuitos, transformada de Laplace e função de transferência.

O circuito

Abaixo, na Figura 1, temos um desenho esquemático de um circuito RL típico.

Plot 3d
Figura 1: Circuito RL série.

Na Figura 1, $v_{in}(t)$ é a entrada de tensão do circuito e $v_{out}(t)$ é a saída. A corrente de saída, $i_{out}(t)$ é considerada igual a zero. Ou seja, este circuito RL é formado por uma única malha que envolve a fonte $v_{in}$, o resistor $R_1$ e o indutor $L_1$, todos conectados em série.

Neste exemplo, vamos considerar os seguintes valores para $R_1$ e $L_1$:

\[
R_1= 1 K \Omega
\]

\[
L_1= 0.999 H
\]

Em relação a entrada, $v_{in}(t)$, diversos tipos de forma de onda serão testadas. Os tipos específicos e suas particularidades serão abordados na próxima seção. A função de transferência do circuito RL da Figura 1 e sua respectiva frequência de ressonância são apresentados logo abaixo:

\[
H(s) = \frac{1}{1+\frac{R}{s \cdot L}} \qquad Eq.1
\]

\[
f_{c} = \frac{R}{2 \pi L} \qquad Eq.2
\]

Resposta no tempo

Para realizar simulações do comportamento dinâmico do circuito precisamos, essencialmente, obtermos a funções de transferência do circuito ($H(s)$) e definir qual a forma do sinal de entrada ($v_{in}(t)$). Uma vez definidos $H(s)$ e $v_{in}(t)$ é possível calcular a saída $v_{out}(t)$ por simulação dinâmica. Vários tipos diferentes de softwares podem ser utilizados para realizar esse trabalho, como: Scilab, Matlab, Modelica, Mathematica, Python(SciPy), etc. Ou seja, há muitas opções de software para realizar esse trabalho. A abordagem é basicamente a mesma para todos esses softwares. Neste exemplo, vamos utilizar o Scilab para realizar as simulações. No Scilab, o comando para simular a resposta no tempo de um sistema dinâmico definido por uma função de transferência é o csim. Este comando tem três parâmetros principais: entrada $r(t)$, o tempo $t$ e a função de transferência $H(s)$ do sistema que se deseja obter a resposta. No nosso caso, consideraremos $r(t)=v_{in}(t)$. E $t$ será um vetor com todos os instantes de tempo utilizados para calcular os valores de $v_{in}(t)$. A função de transferência $H(s)$ será a do circuito RL (Figura 1), a equação 1.

Faremos simulações do comportamento dinâmico do circuito RL da Figura 1 com 4 tipos de sinais diferente, listados abaixo:

  1. Entrada constante e indutor descarregado: $v_{in}(t)=12$ e $I_L(0)=0$;
  2. Entrada nula e indutor carregado: $v_{in}(t)=0$ e $I_L \neq 0 \rightarrow v_L(0)=12$
  3. Entrada igual a um pulso e indutor descarregado: $v_{in}(t)=12 \cdot (u(t-0.001)-u(t-0.003))$ e $I_L(0)=0$
  4. Entradas senoidais de frequências $0.1 w_c$,$w_c$ e $10 w_c $ e indutor descarregado: $v_{in}(t)=12 \cdot sin(w_i \cdot t)$ e $I_L(0)=0$

A resposta do circuito RL para todos os estímulos acima é simulada no tempo. A resposta em frequência do circuito poderia ser obtida realizando várias simulações consecutivas no tempo de entradas senoidais com frequências distribuídas ao longo de um intervalo desejado. Ou através da própria função de transferência substituindo $s$ por $jw$ e calculando o valor da função de transferência para vários valores de $w$ diferentes. Entretanto, na maioria dos software esse trabalho de avaliar a resposta em diferentes sinais senoidais não é necessário. Em muitos software, como no Scilab, há rotinas prontas para, por exemplo, plotar o gráfico de Bode a partir da função de transferência do sistema. Vamos mostrar esse procedimento por último.

1. Entrada constante e indutor descarregado

Scilab
//Exemplo de código ilustrativo de simulação de circuito RL
//www.drgomes.pro

s=poly(0,'s');

R=1e3   //ohm
L=0.999 //henry
tau=L/R
Vcc=12

Zl=s*L
H=Zl/(R+Zl)

t=0:(tau/1000):5*tau;
Vin=Vcc*ones(t)

y=csim(Vin,t,H)

xtitle("www.drgomes.pro")
plot(t,y)
xlabel("t(s)")
ylabel("V(volts)")
xgrid

ax=gca(),//Captura dos parâmetros do plot atual.
ax.data_bounds=[0 -0.5; 0.005 12.5]; 
ax.children.children.thickness=2
Plot resposta circuito RL
Figura 2: Resposta no tempo, linha azul, a uma entrada $V_{in}(t)$ em degrau com 12V de amplitude em $t=0$ e indutor inicialmente descarregado (estado inicial nulo).

2. Entrada nula e indutor carregado

Scilab
//Exemplo de código ilustrativo de simulação de circuito RL
//www.drgomes.pro

s=poly(0,'s');

R=1e3   //ohm
L=0.999 //henry
tau=L/R
Vcc=0

Zl=s*L
H=Zl/(R+Zl)

t=0:(tau/1000):5*tau;
Vin=Vcc*ones(t)

//31.623 é o ganho do sistema com estado inicial 1
y=csim(Vin,t,H,12/31.623)

xtitle("www.drgomes.pro")
plot(t,y)
xlabel("t(s)")
ylabel("V(volts)")
xgrid
ax=gca(),//Captura dos parâmetros do plot atual.
ax.data_bounds=[0 -0.5; 0.005 12.5]; 
ax.children.children.thickness=2
Plot resposta circuito RL
Figura 3: Resposta, linha azul, a entrada nula ($V_{in}(t)=0$) e indutor inicialmente carregado $I_L \neq 0$ e com uma tensão inicial de 12V (estado inicial não nulo).

3. Entrada igual a um pulso e indutor descarregado

Scilab
//Exemplo de código ilustrativo de simulação de circuito RL
//www.drgomes.pro

function y=step(x)
    y=zeros(x)
    y(x==0)=0.5
    y(x>0)=1
endfunction

s=poly(0,'s');

R=1e3   //ohm
L=0.999 //henry
tau=L/R
Vcc=12

Zl=s*L
H=Zl/(R+Zl)

t=0:(tau/1000):5*tau;
Vin=Vcc*ones(t)

t=0:(tau/1000):5*tau;
Vin=Vcc*(step(t-0.001)-step(t-0.003))

y=csim(Vin,t,H)

xtitle("www.drgomes.pro")
plot(t,Vin,'r-')
plot(t,y)
xlabel("t(s)")
ylabel("V(volts)")
xgrid
ax=gca(),//Captura dos parâmetros do plot atual.
ax.data_bounds=[0 -12.5; 0.005 12.5]; 
ax.children.children.thickness=2.1

Plot resposta circuito RL
Figura 4: Resposta do circuito RL da Figura 1, linha azul, a um pulso de duração de 2ms e início em 1ms, linha vermelha. Indutor inicialmente descarregado.

4. Entradas senoidais de frequências $0.1 w_c$,$w_c$ e $10 w_c $ e indutor descarregado

Neste exemplo, são consideradas três entradas senoidais diferentes. Uma primeira entrada senoidal com frequência 10 vezes menor que a frequência de corte do circuito, aproximadamente 15.9Hz. Uma segunda entrada senoidal com frequência igual a frequência de corte do circuito, 159.3 Hz. Uma terceira entrada com frequência 10 vezes maior que a frequência de corte, aproximadamente 1593.1Hz. Todas as entradas senoidais possuem 12V de amplitude de pico. E todas as respostas senoidais foram sobrepostas em um mesmo gráfico, Figura 5, para melhor comparação. O script do Scilab segue logo abaixo:

Scilab
//Exemplo de código ilustrativo de simulação de circuito
//www.drgomes.pro

s=poly(0,'s');

R=1e3   //ohm
L=0.999 //henry
tau=L/R
Vcc=12

Zl=s*L
H=Zl/(R+Zl)

t=0:(tau/100):100*tau;

w2=1/tau
w1=0.1*w2;
w3=10*w2;

Vin1=Vcc*sin(w1*t)
Vin2=Vcc*sin(w2*t)
Vin3=Vcc*sin(w3*t)

y1=csim(Vin1,t,H)
y2=csim(Vin2,t,H)
y3=csim(Vin3,t,H)

xtitle("www.drgomes.pro")
plot(t,y3,'b-')
plot(t,y2,'r-')
plot(t,y1,'g-')

xlabel("t(s)")
ylabel("V(volts)")
xgrid

ax=gca(),//Captura dos parâmetros do plot atual.
ax.data_bounds=[0 -12.5; 100*tau 12.5]; 
ax.children.children.thickness=2

É interessante notar nos sinais de resposta a concordância entre a expectativa teórica e as simulações. Primeiro, o sinal com frequência muito menor que a frequência de corte do circuito(159.3 Hz, Equação 2) é atenuado fortemente em -20dB ($V_{out}≃1.2V$), linha verde na Figura 5. O sinal senoidal com frequência igual a frequência de corte, linha vermelha na Figura 5, tem uma atenuação de $1/ \sqrt{2}$ ou -3dB. E, o sinal com frequência 10 vezes maior que a frequência de corte, linha azul na Figura 5, praticamente não é atenuado. Ou seja, o circuito RL com saída de tensão sobre o indutor $L_1$ se comporta como um filtro passa-alta.

Plot resposta circuito RL
Figura 5: Resposta do circuito RL da Figura 1 a três estímulos senoidais diferentes. Linha verde, sinal senoidal de $0.1 w_c$ ou 15.9 Hz. Linha vermelha, sinal senoidal de $w_c$ ou 159.3 Hz (frequência de corte do circuito). Linha azul, sinal senoidal de $10 w_c$ ou 1593.1 Hz.

Resposta em frequência

A resposta em frequência do circuito RL pode ser obtida basicamente de duas formas diferentes. Simulando a resposta no tempo para vários valores de entradas senoidais com frequências diferentes e comparando a amplitude e fase das respectivas saídas em relação as entradas. Ou pode ser obtida diretamente a partir da função de transferência, substituindo $s$ por $jw$ e calculando o módulo e a fase da função de transferência para vários valores diferentes de frequência angular $w$. Entretanto, como a análise da resposta em frequência é uma tarefa relativamente comum, muito software já oferecem rotinas prontas para esse tipo de tarefa. No caso do Scilab, o comando “mágico” se chama bode, em referência ao gráfico de bode. Essencialmente, o único parâmetro que precisa ser passado para esse comando é a própria função de transferência do sistema na forma de um sistema linear. No Scilab para transformar uma função racional em $s$, como $H(s)$, em um sistema linear e contínuo no tempo é preciso chamar o comando syslin de conversão para informar ao Scilab que $H(s)$ deve ser interpretado como um sistema linear. Esse comando é apenas uma conversão de tipo. Não envolve nenhuma transformação ou operação matemática extra sobre $H(s)$.

Um exemplo de script em Scilab para plotar a resposta em frequência do circuito RL da Figura 1 segue logo abaixo:

Scilab

s=poly(0,'s');

R=1e3   //ohm
L=0.999 //henry
tau=L/R
Vcc=12

Zl=s*L
H=Zl/(R+Zl)

sl=syslin('c',H)
bode(sl,1e-2,1e4)

xtitle("www.drgomes.pro")
xgrid

fig=gcf(),//Captura dos parâmetros do plot atual.
fig.children.children.children.thickness=2

Na linha 13, o comando bode para plotar o gráfico de bode normalmente só precisa da função de transferência do sistema ao qual se deseja a resposta em frequência. Entretanto, também é possível especificar um intervalo de frequências específicas para plotar o gráfico. Neste exemplo, o intervalo de frequências utilizado vai de 0.01 Hz até 10 kHz.

Plot resposta circuito RL
Figura 6: Resposta em frequência do circuito RL da Figura 1.

Esse é o “básico” sobre simulação e análise de um circuito RL série simples usando uma ferramente CAS como o Scilab. Questões, comentários, dúvidas e críticas são sempre bem vindas.

Para quem gostou deste post e do assunto abordado eu convido a dar uma olhada em mais dois outros post com assuntos semelhantes:

That’s all folks!


Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *