Apostila de MATLAB

Page 1

U N I V E RS I DA D E F E D E R A L D E C A M P I NA G R A ND E - UFCG C E N T RO D E E N G E N HA R I A E LÉ T R I CA E I N FO R M ÁT I C A - CEEI U N I DA D E A CA D Ê M I CA D E E NG E NHA R I A E LÉ T R I CA - UAEE P RO G R A M A D E E D U CA ÇÃ O T U TOR I A L - PET

MINICURSO:

Análise de Circuitos no Matlab®

3ª Edição

Fevereiro de 2012


Autores e colaboradores

1ª Edição: Edson Porto da Silva Felipe Vigolvino Lopes Nustenil Segundo de M. L. Marinus

2ª Edição: Felipe Maia Másculo Ilis Nunes A. Cordeiro Jessiedna Araújo de Sá

3ª Edição: Andréia Bispo do Nascimento Nayara Brandão de Freitas Priscila Dias Pereira

2


Sumário 1.

Apresentação ........................................................................................................................ 5 1.1

2.

Ambiente do MATLAB® ................................................................................................. 5

Introdução ............................................................................................................................. 7 2.1

Sintaxe ........................................................................................................................... 7

2.2

Constantes..................................................................................................................... 8

2.3

Informações sobre a área de trabalho .......................................................................... 8

2.4

Operações básicas ......................................................................................................... 9

2.5

Matrizes......................................................................................................................... 9

2.5.1. Adição e Subtração ................................................................................................... 11 2.5.2. Multiplicação ............................................................................................................ 12 2.5.3. Divisão ...................................................................................................................... 13 2.5.4. Potenciação .............................................................................................................. 13 2.6

Operações “Elemento por elemento” ......................................................................... 13

2.6.1. Adição e Subtração ................................................................................................... 14 2.6.2. Multiplicação e Divisão ............................................................................................. 14 2.6.3. Potenciação ............................................................................................................... 14 2.7 3.

Números complexos.................................................................................................... 15

Manipulação de vetores e matrizes .................................................................................... 17 3.1

Geração de vetores ..................................................................................................... 17

4.

Funções ............................................................................................................................... 19

5.

Operações com Polinômios ................................................................................................. 20 5.1

5.1.1.

Adição .................................................................................................................. 21

5.1.2.

Multiplicação ....................................................................................................... 21

5.1.3.

Divisão ................................................................................................................. 21

5.1.4.

Cálculo da derivada ............................................................................................. 21

5.2. 6.

Operações com Polinômios ......................................................................................... 21

Utilizando variáveis simbólicas ................................................................................... 22

Gráficos ............................................................................................................................... 25 6.1.

Em três dimensões ...................................................................................................... 29

6.1.1.

Curvas definidas por equações paramétricas ..................................................... 29

6.1.2.

Gráficos de superfícies ........................................................................................ 30 3


7.

Programação ....................................................................................................................... 34 7.1.

Operadores Lógicos ..................................................................................................... 34

7.2.

Operadores Relacionais............................................................................................... 35

7.3.

Funções Lógicas e Relacionais ..................................................................................... 36

7.4.

Controle de Fluxo ........................................................................................................ 37

7.4.1.

If – elseif - else ..................................................................................................... 37

7.4.2.

Switch .................................................................................................................. 38

7.5.

Loops ........................................................................................................................... 40

7.5.1.

For ....................................................................................................................... 40

7.5.2.

While ................................................................................................................... 42

7.6.

8.

Definindo funções e scripts ......................................................................................... 43

7.6.1.

Os scripts ............................................................................................................. 43

7.6.2.

As funções ........................................................................................................... 44

Características dos constituintes básicos dos circuitos elétricos ........................................ 46 8.1.

O resistor ..................................................................................................................... 46

8.2.

O capacitor .................................................................................................................. 47

8.3.

O indutor ..................................................................................................................... 48

8.4.

Fontes de alimentação ................................................................................................ 49

Formas de representação dos circuitos na linguagem do MATLAB®................................... 50

9.

9.1.

Um circuito resistivo com alimentação DC ................................................................. 50

9.2.

Um circuito em regime senoidal ................................................................................. 51

10.

Análise de circuitos elétricos ........................................................................................... 54

10.1.

Método das tensões de nó ...................................................................................... 54

10.2.

Método das tensões de nó + fontes dependentes ................................................. 55

10.3.

Método das correntes de malha ............................................................................. 57

10.4.

Método das correntes de malha + fontes dependentes ......................................... 58

10.5.

Circuitos equivalentes de Thévenin e Norton ......................................................... 59

10.6.

O Princípio da superposição .................................................................................... 63

11.

Respostas dos circuitos RL e RC a um degrau ................................................................. 67

12.

Resposta natural e a um degrau de um circuito RLC série e paralelo ............................. 70

13.

Potência complexa .......................................................................................................... 76

14.

Resolução de circuitos no ambiente MATLAB® .............................................................. 81

15.

Resposta em Frequência no Domínio da Freqüência e Diagrama de Bode........... ........85

4


1. Apresentação O MATLAB® é um software destinado a realizar cálculos com matrizes (MATLAB® = MATrixLABoratory) e não uma linguagem de programação, como comumente se imagina. O seu uso é bastante abrangente, sendo utilizado em vários meios industriais e acadêmicos, por permitir a realização de aplicações ao nível da análise numérica, de análise de dados, cálculos matriciais, processamento de sinais, construção de gráficos, otimização de funções, entre outras, abordando uma banda larga de problemas científicos e de engenharia. O uso do MATLAB® se torna bastante simples devido aos seus comandos bastante similares a forma das expressões algébricas, permitindo assim a resolução de problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante numa linguagem de programação clássica.

1.1 Ambiente do MATLAB®

A interface do MATLAB® está ilustrada na figura abaixo, ela mostra três diferentes janelas: Command Window, Workspace e Command History.

Figura 1.1: Interface do Matlab®

O espaço da janela de comando (Command Window) é utilizado para fornecer as diretivas ao programa. No Workspace é possível visualizar as variáveis criadas e os valores atribuídos. No espaço do Command History, ficam armazenados todos os comandos já executados. 5


É possível guardar códigos no próprio ambiente do MATLAB®, sem a necessidade de utilizar editores de texto. Para isto, é necessário abrir um arquivo.m (File>New>M-File) escrever o código neste arquivo e salvá-lo.

Figura 1.2: Arquivo M-File

O prompt do MATLAB® é o padrão “>>”. O prompt“>>” significa que o MATLAB® está “esperando” um comando do utilizador, sendo comumente chamando de “prompt de comando”. Todos os comandos devem ser finalizados teclando-se <enter>. O comando mais importante do MATLAB® é o “help”, o qual exibe todos os comandos e símbolos sintáticos disponíveis. O comando “help nome” fornece informações sobre o comando nome. Como exemplo, faça: >>help plot Aperte <enter>e veja o que aparece.

6


2. Introdução O MATLAB® trabalha com matrizes numéricas, podendo conter elementos complexos. Quando usamos apenas um escalar, estamos na verdade usando uma matriz 1x1.

2.1 Sintaxe

As duas principais terminações do MATLAB® são a vírgula (,) e o ponto-e-vírgula (;). Quando um comando é terminado com vírgula seu resultado é expresso na tela e atribuído à variável do sistema ans (de answer, ou resposta), enquanto que, com a terminação ponto-evírgula, o resultado do comando não é expresso na tela. Quando a terminação é uma vírgula, esta pode ser suprimida. Para continuar um comando na outra linha, basta usar a terminação três pontos (...). Para fazer comentários, usa-se o sinal de por cento (%) no início da linha.

Exemplo 2.1: Digite: >>5 + 6, >>5 + 6 >>5 + 6; >>% 5 + 6 >>5+ ... 6

Para inicializar uma variável, basta fazer, por exemplo, a = 5. Obs: O MATLAB® faz distinção entre maiúsculas e minúsculas.

Algumas regras devem ser seguidas para nomear variáveis. Os nomes de variáveis devem ser nomes iniciados por letras e não podem conter espaços nem caracteres de pontuação. Assim, modificando o exemplo 1: Exemplo 2.2: Digite: >>A = 5; >>B = 6 >>A + B, >>A + B 7


>>A + B; >>% A + B >>A+ ... B

2.2 Constantes O MATLAB® também possui várias variáveis predefinidas, algumas listadas abaixo:

ans – variável usada para os resultados.

pi– número π

eps- menor número tal que, quando adicionado a 1, cria um número

maior que 1 no computador.

inf – significa infinito

NaN – não é um número, por exemplo, 0/0.

i e j – unidade imaginária √(-1)

nargin– número de argumentos de entrada de uma função.

nargout – número de argumentos de saída de uma função.

realmin – menor número que o computador pode armazenar.

realmax– maior número que o computador pode armazenar.

2.3 Informações sobre a área de trabalho Para listar as variáveis existentes no espaço de trabalho, basta usar o comando who ou whos. O comando clear limpa o espaço de trabalho, extinguindo todas as variáveis. Exemplo 2.3: Digite: >>A = 8; >>a = 6; >>A >>a >>who 8


>>clear >>a >>A

2.4 Operações básicas Para realizar as quatro operações básicas da matemática, usamos os símbolos +, -, * e / para soma, subtração, multiplicação e divisão, respectivamente. Para se calcular um número elevado a outro, usa-se o símbolo ^. Assim, para o cálculo da raiz quadrada podemos usar (número)^(1/2) ou apenas usar o comando sqrt(número). Obs: As expressões são avaliadas, primeiramente, da esquerda para a direita, com a potência tendo a mais alta prioridade, seguida pela multiplicação e divisão, que têm igual precedência, e por último vêm a adição e a subtração, que possuem o mesmo peso. Para alterar essa ordem, usamos parênteses, sendo os mais internos avaliados antes dos mais externos. Parênteses também são úteis para calcular expressões grandes e seu uso incorreto pode gerar erros. Por exemplo, >> 9^1/2 = 4.5 >>9^(1/2) = 3

Exemplo 2.4: Digite: >> a = 5 + 7*(5+9) - (6+8)/(5-3) >> b = 4 - (6 - (8/(9+7))*4) - sqrt(7+9) + (5+1)^(7+1) - 6^8 >> total = a+b

2.5 Matrizes Para criar uma variável que armazena uma matriz, basta escrever os elementos da matriz entre colchetes [...], sendo que os elementos de uma mesma linha são separados por vírgulas ou por espaços e as linhas são separadas com o uso de ponto-e-vírgula ou por quebra de linha. Por exemplo, para escrever a matriz: 9


1 2 3  A = 4 5 6   7 8 9

Fazemos: >>A = [1 2 3; 4 5 6; 7 8 9] Ou >>A = [1, 2, 3; 4, 5, 6; 7, 8, 9] Ou >>A = [1 2 3 456 7 8 9]

Para

acessar

qualquer

elemento

de

uma

matriz,

fazemos

NomedaMatriz(linha,coluna). Por exemplo: >>A(2,3) = 6

Para se ter os elementos de uma coluna da matriz, fazemos NomedaMatriz(:, coluna). Por exemplo: 2 A(:,2) = 5    8 

Para

se

ter

os

elementos

de

uma

linha

da

matriz,

fazemos

NomedaMatriz(linha, :). Por exemplo: A(2,:) = [ 4 5 6 ]. As operações envolvendo matrizes são semelhantes às operações com escalares. 

Soma: A + B

Subtração: A – B 10


Produto: A*B (Deve obedecer à regra do produto de matrizes)

Transposta: A’

Multiplicação por um escalar: n*A (n é escalar)

Potência: A^k (k é um escalar) 2.5.1. Adição e Subtração

A adição e subtração de matrizes são indicadas, respectivamente, por “+" e "-". As operações são definidas somente se as matrizes possuírem as mesmas dimensões.

Exemplo 2.5: >> A = [1 2 3; 4 5 6; 7 8 9]; >> B = [9 8 7; 6 5 4; 3 2 1]; Como A e B têm as mesmas dimensões, a operação pode ser realizada. >>Subtração =A - B

Subtração = -8 -6 -4 -2

0

2

4

6

8

>> Soma = A + B

Soma = 10 10 10 10 10 10 10 10 10

11


As operações de adição e subtração também são definidas se um dos operadores for um escalar, ou seja, uma matriz 1x1. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro operador. Por exemplo: >>x = [ -1 0 2]’; >> y = x – 1 y= -2 -1 1

2.5.2. Multiplicação

A multiplicação de matrizes é indicada por "*". A multiplicação x*y é definida somente se a segunda dimensão de x for igual à primeira dimensão de y. A multiplicação: >> x'* y ans = 4 Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer matriz. >>pi*x ans = -3.1416 0 6.2832

12


2.5.3. Divisão

A divisão de matrizes requer especial atenção, pois existem dois símbolos para divisão de matrizes no MATLAB® "\" e "/". Se A é uma matriz inversível quadrada e b é um vetor coluna (ou linha) compatível, então A\b e b/A correspondem respectivamente à multiplicação à esquerda e à direita da matriz b pela inversa da matriz A, ou inv(A)*b e b*inv(A), mas o resultado é obtido diretamente: X = A\b é a solução de A*X = b X = b/A é a solução de X*A = b

2.5.4. Potenciação

A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada e p um escalar. Se p é um inteiro maior do que um, a potenciação é calculada como múltiplas multiplicações. Por exemplo, >>A^3 ans = 279 360

306

684 873

684

738

441

900

2.6 Operações “Elemento por elemento” O termo operações com conjuntos é utilizado quando as operações aritméticas são realizadas entre os elementos que ocupam as mesmas posições em cada matriz (elemento por elemento). As operações com conjuntos são efetuadas como as operações usuais, utilizandose os mesmos caracteres ("*", "/", "\", "^" e "‘ ") precedidos por um ponto "." (".*", "./", ".\", ".^" e " .‘ ").

13


2.6.1. Adição e Subtração

Para a adição e a subtração, as operações com conjuntos e as operações com matrizes são iguais. Deste modo os caracteres "+" e "-" são empregados do mesmo modo e considerando as mesmas restrições de utilização. 2.6.2. Multiplicação e Divisão

A multiplicação de conjuntos é indicada por “ .* ”. Se A e B são matrizes com as mesmas dimensões, então A.*B indica um conjunto cujos elementos são simplesmente o produto dos elementos individuais de A e B. Por exemplo, se: >> x = [1 2 3]; y = [4 5 6]; >> z = x .* y z= 4

10

18

As expressões A./B e A.\B formam um conjunto cujos elementos são simplesmente os quocientes dos elementos individuais de A e B. Assim, >> z = x.\ y z= 4.0000

2.5000

2.0000

2.6.3. Potenciação

A potenciação de conjuntos é indicada por “.^”. A seguir, são mostrados alguns exemplos utilizando os vetores x e y. A expressão: >> z = x .^ y z= 1

32

729 14


A potenciação pode usar um escalar. >> z = x.^2 z= 1

4

9

Ou a base pode ser um escalar. >> z = 2.^[x y] z= 2

4

8

16

32

64

2.7 Números complexos O MATLAB® trabalha de forma eficiente com números complexos. Como foi citada anteriormente, a unidade imaginária é representada por i ou j. Dessa forma, para escrever um número complexo, basta fazer: >> z= 3 + 4*i ou >> z= 3 +4*j Este número complexo se encontra na forma retangular. Podemos também representar na forma polar, da seguinte forma: >> w= r * exp(i*theta) >> w = 5*exp(i*pi)

Onde r é a magnitude e theta é o ângulo.

Para se obter matrizes complexas, usamos as duas formas mostradas abaixo: >> A= [1 2; 3 4]+i*[5 6;7 8] e 15


>> A= [1+5*i 2+6*i; 3+7*i 4+8*i] Ambas as formas produzem o mesmo resultado. Se i ou j forem usados como variáveis, de forma que tenham seus valores originais modificados, uma nova unidade complexa deverá ser criada e utilizada de maneira usual: >>ii=sqrt(-1); >> z = 3 + 4*ii Para se obter o módulo e o ângulo de um número complexo, basta usar as funções abs(x) e angle(x), respectivamente. Assim, para z = 3 + 4j, temos >> z = 3 + 4j >>abs(z) = 5 >>angle(z) = 0.9273 Obs: É importante observar que o MATLAB® só trabalha com radianos. Para transformar para graus basta multiplicar o ângulo por 180/pi.

16


3. Manipulação de vetores e matrizes 3.1 Geração de vetores 3.1.1. Gerar Vetores Para gerar vetores, podemos usar o caractere “:”. Podemos fazer: >> x = 1:10 x= 1

2

3

4

5

6

7

8

9 10

Percebemos que foi gerado um vetor com números de 1 até 10, com incremento de uma unidade.

3.1.2. Incrementos de Unidade Podemos usar outros incrementos diferentes da unidade, fazendo: >> x = 1 : 2 : 10 ans = 1

3

5

7

9

Muitas vezes é útil usar incrementos negativos. >> z = 6: -1: 1 z= 6

5

4

3

2

1

3.1.3. Linspace Com a função linspace, podemos gerar vetores linearmente espaçados.

17


>>linspace(1, 10, 5) ans = 1.0000 3.2500 5.5000 7.7500 10.0000 Cria um vetor linearmente espaçado de 1 a 10 com 5 elementos.

3.1.4. Outras Funções Úteis Outras funções úteis são dadas abaixo: 

logspace(x1, x2, k) – cria um vetor com espaçamento logaritmo de x1 até x2

com k elementos. 

eye(n,m) – gera uma matriz identidade nxm.

ones(n,m) – gera uma matriz com elementos unitários nxm.

zeros(n,m) – gera uma matriz nxm com elementos nulos.

rand(n,m) – gera uma matriz nxm com elementos aleatórios com distribuição

uniforme entre 0 e 1.

18


4. Funções O MATLAB® possui diversas funções pré-definidas, sendo que a maioria pode ser utilizada da mesma forma que seria escrita matematicamente. Algumas dessas funções são listadas abaixo: abs(x) - valor absoluto de x. cos(x) – cosseno de x. acos(x) - arco cosseno de x. sin(x) – seno de x. asin(x) - arco seno de x. tan(x) – tangente de x. atan(x) - arco tangente de x. exp(x) - exponencial de x. gcd(x,y) – máximo divisor comum de x e y. lcm(x,y) - mínimo múltiplo comum de x e y. log(x) - logaritmo de x na base e. log10(x) - logaritmo de x na base 10. rem(x,y) - resto da divisão de x por y. sqrt(x) - raiz quadrada de x.

19


5. Operações com Polinômios Polinômios são funções de uma única variável, que seguem a forma geral abaixo: ( ) É muito comum, no estudo de controle de sistemas, lidar com estas funções. O MATLAB® dispõe de várias ferramentas que auxiliam o trato de polinômios, vejamos como utilizar alguns dos recursos disponíveis. Sejam

os coeficientes do polinômio. É útil guardar estes

valores num vetor, com o cuidado especial de incluir também valores iguais a zero. A função polyval(a,x) recebe dois vetores, o primeiro referente ao vetor de coeficientes, e o segundo é apenas um conjunto de valores qualquer. Esta função retornará um vetor do mesmo tamanho do vetor x e corresponderá aos valores de x aplicados ao polinômio definido por a. A função roots(a) recebe o vetor de coeficientes na entrada e retorna um vetor coluna com as raízes do polinômio definido por a. É possível também, definir um polinômio sabendo inicialmente quais as suas raízes, isto é possível através da função poly que recebe um vetor contendo as raízes e gera um vetor de coeficientes.

Exemplo 5.1: Seja o polinômio ( ) ( ) para

, encontre as raízes e os valores de .

>> a = [5,0,8,-10,0]; >> x = -3:3; >>r = roots(a) >> polyval(a,x) %Podemos exemplificar também o uso da função poly que deve retornar um vetor idêntico ao vetor a já definido. >>poly(r)

20


5.1 Operações com Polinômios 5.1.1. Adição

Ao somar os vetores de coeficientes de dois polinômios, estamos automaticamente somando os polinômios, no entanto, nesta operação, é preciso que os dois vetores sejam do mesmo tamanho, isto implica que é preciso completar o menor dos vetores com zeros nos primeiros elementos. 5.1.2. Multiplicação

A multiplicação entre um escalar e um polinômio é obvia, basta multiplicar o escalar pelo vetor de coeficientes do polinômio. Para efetuar a multiplicação entre polinômios há uma função específica chamada conv que receberá os dois vetores de coeficientes e retornará o vetor de coeficientes resultante da multiplicação. 5.1.3. Divisão

Similar à multiplicação, a divisão entre polinômios também dispõe de uma função própria chamada deconv de sintaxe similar à conv, pois também recebe as mesmas entradas no mesmo formato. As saídas, no entanto, diferem um pouco, afinal a divisão de polinômios gera, além do quociente, um resto. Assim, a função deconv retorna dois vetores de coeficientes: o primeiro, referente ao cociente e o segundo, ao resto. 5.1.4. Cálculo da derivada

O MATLAB® disponibiliza algumas funções capazes não só de calcular a derivada de um polinômio, mas também a derivada de um produto e a derivada de uma divisão de dois polinômios. polyder(a) polyder(a,b) [n,d] = polyder(a,b)

Retorna os coeficientes da derivada do polinômio identificado pelo vetor a Retorna os coeficientes da derivada da multiplicação A(x)*B(x). Retorna o coeficientes da derivada da divisão entre A(x) e B(x) representados na forma N(x)/D(x)

21


5.2.

Utilizando variáveis simbólicas

É possível tratar polinômios e várias outras funções através do uso de variáveis e expressões simbólicas. No MATLAB®, há inúmeras funções próprias para isto - abaixo foram listadas algumas funções separadas pela sua área de aplicação. No entanto, há diversas outras ferramentas aplicadas a funções especiais como a função de Bessel, álgebra linear e trigonometria. Para saber mais sobre esta biblioteca pasta executar o comando: >>help symbolic

x=sym(‘x’) syms x pretty(f) latex(S) ccode(S)

Operações Simbólicas Cria uma variável simbólica com o nome ‘x’ e guarda seu valor em x. Desempenha a mesma tarefa de x=sym(‘x’). Mostra a expressão simbólica f de forma mais amigável. Retorna a representação em LaTex da expressão simbólica S. Retorna a representação em C da expressão simbólica S.

solve(‘f=n’) rsolve(eq1,eq2…) g =finverse(f) compose(f,g)

simplify(S) expand(S)

factor(S) [R,Como] = simple(S) C = coeffs(f,x) Y = sort(f)

subs(f,x,y)

Solução de Equações Retorna os valores de x para que f(x) assuma o valor n, n pode ser um número ou uma variável simbólica. Recebe equações diferenciais ordinárias e condições iniciais e retorna a solução. Retorna a função inversa de f, armazenada em g. Retorna a função composta f(g(x)), sendo x a variável simbólica de g.

Simplificação Simplifica cada termo da expressão simbólica S. Escreve cada elemento de S como um produto dos seus fatores, pode ser usada em polinômios, funções trigonométricas, exponenciais, etc... Fatora cada elemento de S, S pode ser desde uma expressão até um número. Tenta várias formas de simplificação e retorna aquela que tenha sido mais bem sucedida, armazena em R a expressão simplificada e em Como a função utilizada. Armazena em C os coeficientes de x na função f. Se f for um vetor Y será o vetor correspondente aos elementos de f em ordem crescente. Se f for um polinômio, Y será um vetor de coeficientes em ordem decrescente de potência. Substitui na expressão f a variável simbólica x pela variável y. 22


Cálculo diff (f,x) Retorna uma expressão simbólica referente à derivada da expressão f em relação a x. Int(f,x,a,b) Retorna uma expressão simbólica referente à integral da expressão f em relação a x de a até b. (a e b devem ser variáveis escalares simbólicas) Limit(f,x,a) Retorna a expressão do limite de f(x) quando x tende para a, ao omitir x e a função retorna o limite da função quando x tende a zero. taylor (f,n) Retorna o polinômio de Maclaurin de ordem (n-1) da expressão f. symsum(f,x,a,b) Retorna o somatório definido entre a e b da função f em relação a x.

F = fourier(f,u,v) F = laplace(f,u,v) F = ztrans(f,u,z) F = ifourier(f,u,v) F = ilaplace(f,u,v) F = iztrans(f,u,v)

Cálculo de Transformadas Retornará F(v) que corresponde à transformada de Fourier de f(u). Retornará F(v) que corresponde à transformada de Laplace de f(u). Retornará F(z) que corresponde à transformada Z de f(u). Retornará F(v) que corresponde à transformada inversa de Fourier de f(u). Análoga a função iforier, mas para transformada de Laplace. Análoga a função iforier, mas para transformadaZ.

Vejamos um exemplo que utiliza as funções acima.

Exemplo 5.2: >> syms a b c x; %Define as variáveis simbólicas a, b, c e x. >> solve('x^2+2*x-5=3') ans = 2 -4 >> f = x-2; >> g = x-1; >> l = x-3; >> h = f*g h= (x-2)*(x-1)

23


>> expand(h) ans = x^2-3*x+2 >> k = h/l k= (x-2)*(x-1)/(x-3) >> expand(k) ans = 1/(x-3)*x^2-3/(x-3)*x+2/(x-3) >> pretty(ans)

>> solve('a*x^2+b*x+c') ans = -1/2*(b-(b^2-4*a*c)^(1/2))/a -1/2*(b+(b^2-4*a*c)^(1/2))/a

24


6.

Gráficos Uma das principais ferramentas que o MATLAB® proporciona é a sua grande

facilidade para gerar gráficos. Abaixo, listamos algumas funções para manipulação de gráficos. 

plot(x, y) – gera um gráfico linear. X é o vetor que contêm os pontos do eixo das abscissas e y são os pontos do eixo das ordenadas.

semilogx (x,y) - gera um gráfico em escala semi-logarítmica(eixo x). x é o vetor que contêm os pontos do eixo das abscissas e y são os pontos do eixo das ordenadas.

semilogy (x,y) - gera um gráfico em escala semi-logarítmica(eixo y). x é o vetor que contêm os pontos do eixo das abscissas e y são os pontos do eixo das ordenadas.

title(‘texto’) – dá título ao gráfico gerado.

xlabel(‘texto’) – nomeia o eixo x.

ylabel(‘texto’) – nomeia o eixo y.

grid – cria linhas imaginárias no gráfico gerado

legend(‘texto’) – cria uma legenda para o gráfico.

Podemos também escolher a cor do gráfico gerado, colocando mais um argumento na função que gerou o gráfico (plot, semilogx, semilogy, etc). Por exemplo, 

plot (x, y, ‘r’) – cria um gráfico vermelho (o novo argumento é r, de red = vermelho).

Para gerar vários gráficos, adicionamos novos valores na função que gerou o gráfico e escolhemos a cor de cada gráfico. Por exemplo, 

plot(x1, y1, ‘r’, x2, y2, ‘b’, x3, y3, ‘g’) – gera três gráficos (x1, y1), (x2, y2) e (x3, y3) com cores vermelho, azul e verde, respectivamente.

25


Esses gráficos são gerados na mesma janela (mesmos eixos), mas se quisermos gerar gráficos em janelas diferentes, é comum se usar a função figure (numero). Por exemplo, 

figure(1), plot(x1, y1)

figure(2), plot(x2, y2).

Assim, serão gerados dois gráficos em janelas diferentes, ou seja, figura 1 (x1,y1) e figura 2 (x2, y2).

Exemplo 6.1: >> t = 0 : pi/10 : 4*pi; >> y = sin(t); >> figure(1), plot(t,y,'k'), xlabel('Eixo x'), ylabel('Eixo Y'), grid, title('Função Seno')

Figura 6.1: Gráfico plotado no exemplo 6.1

Exemplo 6.2: >> z = log(t) >>figure(2),plot(t,z,'k'), xlabel('Eixo x'), ylabel('Eixo Y'), grid, title('Função Logaritmo') 26


Figura 6.2: Gráfico plotado no exemplo 6.2

Exemplo 6.3: >> w = exp(t); >>figure(3),plot(t,w,'g'),xlabel('Eixo x'),ylabel('Eixo Y'), grid, title('Função Exponecial')

Figura 6.3: Gráfico plotado no exemplo 6.3

27


Exemplo 6.4: >> plot(t, y, '*k',t,z,'ok'), xlabel('Eixo x'), ylabel('Eixo Y'), grid, title('Funções: Seno e logaritmica'), legend('Seno', 'Logaritmo')

Figura 6.4: Gráfico plotado no exemplo 6.4

Até agora os gráficos gerados ilustram muito bem sinais contínuos no tempo, no entanto é comum ter de lidar com sinais discretos, para plotá-los a função stem se mostra bastante útil. Vejamos o seguinte exemplo:

Exemplo 6.5: >>t = [-5:.5:5]; >>x = t.^2+2*t+10; >> stem(t,x,'k.'), xlabel('n'), ylabel('Amplitude'), grid, title('Sinal discreto') %usamos o argumento 'k.' para que o grafico seja marcado com pontos pretos.

28


Figura 6.5: Gráfico plotado no exemplo 6.5

6.1.

Em três dimensões

É possível gerar gráficos 3D de diferentes formas, vejamos algumas delas. 6.1.1. Curvas definidas por equações paramétricas

Suponha que x e y sejam ambas dadas como funções de uma terceira variável t (chamada de parâmetro) pelas equações X = f(t) e Y = g(t) Chamadas equações paramétricas. É fácil enxergar que para cada valor de t teremos um par coordenado (X,Y) que pode ser facilmente plotado em um gráfico 3D. No ambiente do MATLAB® a função plot3, para três dimensões, é análoga à função plot para duas dimensões. A função plot3 recebe tradicionalmente 3 argumentos (x,y,z) que devem ser vetores de tamanho idêntico e o seu gráfico é composto por linhas, por isso não é muito indicado para superfícies. Exemplo 6.6: >>%Seja x = sen(t) e y = cos(t) >> t = [0:pi/100:8*pi]; >> x = sin(t); >> y = cos(t); 29


>> plot3(x,y,t,'k'), grid, xlabel('x'), ylabel('y'),zlabel('z')

Figura 6.6: Gráfico plotado no exemplo 6.6

É possível escolher o ângulo de visão pelo qual o observador verá o gráfico, a forma mais fácil de fazer isso é utilizando a função view([x,y,z]) que define em coordenadas cartesianas o ponto de observação do gráfico. 6.1.2. Gráficos de superfícies

Para plotar superfícies, é necessário inicialmente definir uma grade no plano XY utilizando a função meshgrid (x,y), que receberá dois vetores quaisquer a e b e retornará duas matrizes, observe um exemplo de utilização desta função: Exemplo 6.7: >>x = [-1,0,1]; >>y=[1,2]; >> [X,Y] = meshgrid(x,y)

X= -1

0

1

-1

0

1

30


Y= 1

1

1

2

2

2

No caso de geração de gráficos, x e y serão sempre vetores que podem possuir tamanhos distintos e definirão os pontos dos eixos X e Y. Após definir as matrizes A e B desejadas, é necessário utilizar uma segunda função, neste caso, há mais de uma opção, vejamos a sintaxe e definição de duas possíveis funções. A função surf plota um conjunto de superfícies paramétricas coloridas, estas superfícies serão definidas pelas entradas. Sua sintaxe é surf(X,Y,Z,C) onde X e Y são resultados da função meshgrid e Z deve ser dada em função dos vetores x e y. Por fim, C define a escala de cor do gráfico, este último parâmetro pode ser omitido e neste caso C será igual a Z. Observe os seguintes exemplos de uso da função surf.

Exemplo 6.8: >> [x,y]=meshgrid(-3:1:3,-3:1:3); >> z = (50 - 6*x - 10*y)/7; >> c = zeros(size(z)) >> surf(x,y,z,c)

Figura 6.7: Gráfico plotado no exemplo 6.8

31


Exemplo 6.9: >> Z = x.^2-y.^2; >> surf(x,y,Z,c)

Figura 6.8: Gráfico plotado no exemplo 6.9

Enquanto a função surf gera planos paramétricos coloridos, a função mesh gera apenas a grade colorida de acordo com o quarto argumento, sua sintaxe é similar a da função surf. Os exemplos 6.10 e 6.11 mostram os mesmos gráficos 6.9 e 6.10, gerados pela função mesh. Exemplo 6.10: >>mesh(x,y,z,c)

Exemplo 6.11: >>mesh(x,y,Z,c)

32


Figura 6.9: Grรกfico plotado no exemplo 6.10

Figura 6.10: Grรกfico plotado no exemplo 6.11

33


7.

Programação Além de efetuar cálculos e plotar gráficos, é possível utilizar os recursos do

MATLAB® para programar. A programação torna o MATLAB® uma ferramenta ainda mais potente na resolução de problemas de engenharia.

7.1. Operadores Lógicos Ao utilizar expressões lógicas ou relacionais, suas saídas serão expressas da seguinte forma: 1 para VERDADEIRO 0 para FALSO Estas mesmas expressões podem retornar matrizes, chamadas matrizes lógicas, as quais serão compostas por 0 e 1. Apesar do formato característico, elas não diferem das numéricas comuns e podem ser usadas nas operações matemáticas já discutidas. Os operadores lógicos são similares aos de outras linguagens de programação, no MATLAB® dispõe-se dos seguintes: Operador & | ~

Significado E lógico OU lógico NÃO lógico

Além destes três operadores, há um quarto operador lógico típico que aqui assume a aspecto de uma função: o XOR (OU Exclusivo). Expressões lógicas podem conter escalares e/ou matrizes, vejamos alguns exemplos: Exemplo 7.1: >> a = eye(3,3); %Gera uma matriz identidade 3x3 >> b = [1, 2, 3; 4, 5, 6; 7, 8, 9]; >>a&b ans = 34


1 0 0 1 0 0 >>xor(a,b)

0 0 1

ans = 0 1 1

1 0 1

1 1 0

1 0 1

1 1 0

>> b &~a ans = 0 1 1

>> b&0 %Operação lógica entre uma matriz e um escalar ans = 0 0 0

0 0 0

0 0 0

7.2. Operadores Relacionais Operador < <= > >= == ~=

Significado Menor Menor ou igual Maior Maior ou igual Igual Não igual

Note a diferença entre o uso de “=” e “==”, o primeiro é utilizado para atribuições e o segundo testa a igualdade das duas entradas. Os operadores relacionais têm precedência em relação aos lógicos, os parênteses podem ser utilizados a fim de modificar isto. Análogas às expressões lógicas, as expressões relacionais também podem ser efetuadas entre matrizes, entre escalares e com os dois simultaneamente. 35


Exemplo 7.1(Continuação): >> b>=5 ans = 0 0 1

0 1 1

0 1 1

% A condição “maior ou igual a 5?” foi testada para todos os elementos de b. >> b.*(a~=b) ans = 0 4 7

2 5 8

3 6 9

>> b - (b>6) ans = 1 4 6

2 5 7

3 6 8

%A matriz resultante da operação (b>6) utilizada numa rotina matemática.

7.3. Funções Lógicas e Relacionais Além dos operadores já citados, há inúmeras funções que desempenham tarefas lógicas e relacionais e que são capazes de expor características importantes de escalares, vetores ou matrizes. Vejamos a definição de algumas destas funções.

36


Função

Descrição

any(x)

Se x for um vetor, o resultado será um escalar resultado da operação OU elemento a elemento. Se x for uma matriz, o resultado será um vetor referente a operação OU realizada nos elementos de uma mesma coluna.

all(x)

Se x for um vetor, o resultado será um escalar resultado da operação AND elemento a elemento. Se x for uma matriz, o resultado será um vetor referente a operação AND realizada nos elementos de uma mesma coluna.

find(x)

Retorna a linha, coluna e valor dos elementos de uma matriz que satisfaçam uma condição prévia definida pelo usuário.

isnan(x)

Retorna uma matriz na qual 1 corresponde a um elemento NaN (não é um número) e 0 corresponde a um elemento numérico.

isinf(x)

Análoga a “isnan”, detecta os elementos infinitos (+infe -inf).

isempty(x)

Retorna 1 para arrays vazios e 0 caso contrário.

strcmp(x1,x2)

Compara as strings x1 e x2, retornando 1 se elas forem iguais e 0 caso contrário.

7.4. Controle de Fluxo Declarações de controle permitem que o programador manipule o fluxo de execução do programa de acordo com determinadas condições. Basicamente alguns laços testam a condição e caso ela seja verdadeira uma rotina específica será executada. 7.4.1. If – elseif - else

A sintaxe:

IF expressão1 Declarações1 ELSEIF expressão2 Declarações2 ELSE Declarações3 END

37


O fluxo ocorre da seguinte forma: 1. A expressão1 é testada e, se for verdadeira, a rotina Declarações1 será executada. 2. Se expressão 1 for falsa, expressão2 será testada. 3. Se expressão2 for verdadeira, declarações2 será executada. 4. Se expressão2 for falsa, então declarações3 será executada. Note que há uma precedência de condições. Se a expressão1 for verdadeira, nenhuma das outras sequer será testada e, mesmo que elas sejam verdadeiras, o programa não responderá a isto. É possível definir um if dentro de outro if, é o que se chama de if encadeado, isto ocorre quando, por exemplo, Declarações1 inclui no seu escopo um outro if, que será testado e executado apenas se a expresão1 for verdadeira. Exemplo 7.2: nome = input('Qual o seu nome?','s'); tam = size(nome); if (tam < 5) disp('Seu nome possui menos de 5 letras') elseif (tam > 10) disp('Seu nome possui mais de 10 letras') else disp('Seu nome possui entre 5 e 10 letras') end 7.4.2. Switch

Switch é uma alternativa para a estrutura if-elseif-else. Toda e qualquer declaração de controle pode ser expressa em qualquer um dos formatos, cabendo ao programador decidir qual dos dois utilizar, baseado principalmente na legibilidade do código.

38


A sintaxe: SWITCH switch_expr CASE case_expr1, Declarações1 CASE {case_expr2, case_expr3, case_expr4,...} Declarações2 ... OTHERWISE, Declarações3 END

A “switch_expr” pode ser uma expressão matemática, lógica e/ou relacional que pode retornar 0, 1 ou qualquer outro número, ela também pode ser uma função que retorne algum tipo de dado. O resultado da “switch_expr” será comparado a cada um dos case_expr, caso ele seja idêntico a “case_expr3”, por exemplo, Declarações2 será executado. Por fim, OTHERWISE corresponde ao else, visto anteriormente. Exemplo 7.3: cor = 'azul'; switch(cor) case {'verde','verde claro','verde escuro'} disp('A cor é verde') case 'branco' disp('A cor é branco') case 'preto' disp('A cor é preto') otherwise disp('Cor desconhecida') end

Cor desconhecida

39


7.5.

Loops

Loops são estruturas de repetição. For e While são declarações que permitem efetuar comandos repetidamente, impondo um critério de parada, de forma que haja um número fixo e predeterminado de vezes que o programa executará as mesmas instruções. 7.5.1.

For

A sintaxe: FOR variable = expr Declarações END O uso do laço for já é bastante conhecido em outras linguagens. No caso do MATLAB®, o mais comum é que ele seja executado utilizando vetores e matrizes, consideremos então que a variável seja um vetor. O bloco de declarações será executado diversas vezes, uma vez para cada coluna da variável na expressão. A cada iteração a devida coluna da expressão será atribuída a variável que irá operar nos comandos internos às declarações. Uma regra importante no uso do for é: se a expressão resultar em uma matriz vazia o laço será ignorado. Uma boa prática, ao utilizar o MATLAB® é evitar a utilização de laços for, pois eles podem aumentar significativamente o tempo de execução do programa. Apesar de o MATLAB® ser capaz de alocar memória dinamicamente (comumente utilizada em laços for) este recurso não é nada eficiente em termos de esforço computacional, muito provavelmente será melhor criar um vetor ou matriz nulos e arbitrariamente grandes que possam ser manipulados matematicamente e forneçam um resultado equivalente ao uso do for, afinal operações com matrizes é o potencial mais evidente do MATLAB®.

40


Exemplo 7.4: vetor = [1:3]; soma = 0; for i = vetor soma = soma + i end

soma = 1

soma = 3

soma = 6 Exemplo 7.5: matriz = [[1:3];[4:6];[7:9]]; soma = 0; [linhas,colunas] = size(matriz); for i = 1:linhas for j = 1:colunas soma = soma+matriz(i,j); end end soma

soma =

45

41


7.5.2. While

A sintaxe: WHILE expressão declarações END Quando a expressão for totalmente verdadeira, o bloco de declarações será executado, as condições da expressão serão novamente testadas e se forem verdadeiras, novamente as declarações serão executadas. Caso algum elemento da expressão seja falso, o controle ignorará as declarações e passará para o próximo comando após o END. É essencial que no bloco de declarações haja uma mudança em alguma das variáveis testadas nas condições da expressão, caso contrário o laço será executado infinitas vezes. Caso não seja possível implementar um código tal qual descrito anteriormente, o programador pode recorrer a um último recurso: o uso do break.

WHILE expressão1 Declarações If expressão2 break END Break pode ser usado dentro de um for ou while. Ele termina a execução dos loops em qualquer um dos casos. Quando há um for ou while aninhado o comando break só poderá ser usado no laço mais profundo.

Exemplo 7.6: O exemplo abaixo recebe valores do usuário (até que a tecla Enter seja pressionada) e calcula a média dos valores informados. cont = 1; valor = input('Insira um valor (Enter para parar):'); while ~isempty(valor) valores(cont) = valor; 42


cont = cont + 1; valor = input('Insira um valor (Enter para parar):'); end media = sum(valores)/(cont-1)

7.6. Definindo funções e scripts O uso contínuo do MATLAB® em um mesmo projeto, trabalho ou disciplina muito provavelmente exigirá a execução de rotinas comuns em diferentes situações. Ora, salvar os códigos usando arquivos .m já auxilia bastante o trabalho nessas circunstâncias. Há dois tipos de arquivos .m: As funções e os Scripts. Script é um código salvo que não aceita entradas nem fornece saídas, ele apenas executa uma sequência de comandos sobre os dados do workspace. As funções recebem entradas, executam operações sobre elas e sobre variáveis locais e finalmente fornecem as saídas desejadas. 7.6.1. Os scripts

Para se criar um script basta digitar o código desejado no editor do MATLAB ® e salvar o arquivo .m com um nome conhecido. Para executá-lo basta digitar o seu nome no prompt. Para um script chamado teste .m, é necessário fazer: >>teste Um exemplo típico de utilização do script é salvar um conjunto de comandos de plotagem completos, incluindo legenda, título, grid, etc. Quando o código já está salvo no arquivo é muito simples modificar algum parâmetro para obter novos gráficos. Além de usar variáveis locais, definidas dentro do arquivo, os scripts interagem com o usuário de maneira mais amigável. Eles podem fazer uso de variáveis já definidas anteriormente no workspace. Para tanto basta que as variáveis possuam o mesmo nome, dentro do script e no workspace.

43


7.6.2. As funções

Para criar uma função basta salvar um arquivo .m com o mesmo nome da função, é também necessário que neste arquivo a primeira linha contenha o cabeçalho da função que apresenta o seguinte formato: function[saída1, saída2...] = nome_da_função(entrada1, entrada2) As funções não utilizam as variáveis definidas no workspace, elas utilizam suas próprias variáveis locais e as entradas fornecidas pelo usuário. Ao adicionar linhas de comentário abaixo do cabeçalho da função, você estará criando o help da sua função, que poderá ser visto ao executar o comando: >>help nome_da_função A função deve terminar com o comando “return”.

A implementação de funções e scripts comumente exige o uso de declarações de controle de fluxo. Além disso, algumas funções acessórias são muito utilizadas, vejamos algumas delas e suas respectivas descrições:

Função Descrição error(‘mensagem’) Mostra na tela uma string de caracteres definida pelo programador, aborta a execução da função e retorna o controle para o teclado. nargin(função) Ao colocar o nome da função desejada, nargin retornará o seu número de entradas. nargout(função) Ao colocar o nome da função desejada, nargin retornará o seu número de saídas. display(x) Mostra a variável x, também pode mostrar uma string dede que seja posta entre aspas no argumento. input(‘string’) Mostra string na tela e espera para receber um dado que será a atribuído a x, ao fazer x = input(‘string’). Exemplo 7.7: No arquivo .m, definiu-se a seguinte função rampa: function u = ramp(t) % RAMP Ramp function % u = ramp(t) % u = 0 for t<0 % u = t for t>=0 44


t = sort(t); u = zeros(size(t)); a = find(t>=0); u(a) = t(a); plot(t,u,'k'),title('Função rampa'), xlabel('t'),ylabel('Amplitude') return Para utilizá-la, basta definir um vetor qualquer e passá-lo como argumento, por exemplo: >> t = [-5,4,-3,8,5,0]; >> u = ramp(t); E o resultado será o gráfico:

Figura 7.1: Gráfico plotado no exemplo 7.2

45


8. Características dos constituintes básicos dos circuitos elétricos

Os elementos básicos que constituem os circuitos elétricos são os resistores, os indutores, os capacitores e as fontes de alimentação. Cada um desses elementos tem um comportamento bem definido com relação a determinadas grandezas elétricas, ou à variação destas. Em outras palavras, cada um desses elementos tem uma característica própria que relaciona, por exemplo, a corrente e a tensão em seus terminais. Para uniformizar, de forma prática, a análise dos sistemas que são constituídos por circuitos elétricos, busca-se as relações lineares entre as grandezas de estudo e as características dos componentes presentes. Deve-se observar que a linearidade, por vezes, está restrita ao modelo de análise que se segue. Desse modo, o comportamento real dos componentes pode não seguir estritamente o modelo linear, passando este a ser apenas uma aproximação do que realmente acontece no componente, ou circuito. Nos itens a seguir, temos uma breve descrição dos elementos citados que auxiliará o entendimento dos métodos que podem ser usados na análise de circuitos com o MATLAB®.

8.1.

O resistor O resistor é o componente mais simples de um circuito elétrico. Sua finalidade

é apenas a de dissipar potência. A propriedade que quantifica a capacidade de dissipação de potência de um resistor é denominada resistência elétrica. A resistência elétrica, para cada resistor, é uma constante que relaciona linearmente a tensão e a corrente nos terminais do componente. Dessa forma, para um resistor, as grandezas elétricas que se relacionam de forma linear são a tensão e corrente nos seus terminais. Essa relação é mais conhecida como Lei de Ohm e é expressa como: V  R.i , onde V e i são, respectivamente, a tensão e a corrente nos terminais do componente e R é o valor da sua resistência, cuja unidade de medida é o Ohm. A mesma relação se

46


ˆ e corrente Iˆ para a análise do regime mantém entre os fasores de tensão V ˆ  R  Iˆ . permanente senoidal, no domínio da freqüência: V

Figura 8.1: Símbolos elétricos para o resistor

Figura 8.2: Relação linear entre V e i para um resistor com R = 20 Ohms.

8.2.

O capacitor O capacitor é o componente dos circuitos que tem a propriedade de acumular

energia em um campo elétrico. A “capacidade” que um dado capacitor tem para armazenar energia é quantificada por um atributo do mesmo, denominado capacitância elétrica. A capacitância é uma constante que relaciona a carga acumulada pelo capacitor e a tensão sobre seus terminais. Sua unidade de medida é o faraday (F), onde 1faraday = 1 columb/1 volt. Assim, para um capacitor de capacitância C, têm-se as duas mais importantes relações: C  Q e i  C dV . Portanto, no capacitor as grandezas que se relacionam V

dt

de forma linear são: a carga acumulada e a tensão nos terminais e, por conseqüência, a corrente e a derivada da tensão com relação ao tempo. Para a análise do regime

47


permanente senoidal, no domínio da freqüência, temos a seguinte relação entre os ˆ  1  Iˆ . fasores tensão e corrente no capacitor: V jC

Figura 8.3: Símbolo elétrico do capacitor

Figura 8.4: Relação entre i e dV/dt para um capacitor com C = 10uF

8.3.

O indutor De forma análoga ao capacitor, o indutor é um elemento do circuito capaz de

armazenar energia em um campo. A diferença é que o indutor armazena energia em um campo magnético. O parâmetro que descreve numericamente a capacidade de um indutor de armazenar energia é denominado de indutância, que tem o henry como unidade de medida. Dado um indutor de indutância L, percorrido por uma corrente i, segue-se que a tensão V entre os seus terminais será dada por: V  L. di . A proporcionalidade entre dt

a tensão e a variação da corrente é a relação linear mais importante de um indutor, do 48


ponto de vista da análise de circuitos. Para circuitos em regime permanente senoidal, no domínio da freqüência, temos a seguinte relação entre os fasores tensão e corrente ˆ  jL  Iˆ . no indutor: V

Figura 8.5: Símbolo elétrico do indutor

Figura 8.6: Relação entre V e di/dt para um indutor com L = 50mH

8.4.

Fontes de alimentação As fontes de alimentação são as entidades presentes no circuito com a

finalidade de fornecer energia aos componentes passivos, por esse motivo recebem a denominação de componentes ativos. As fontes podem ser classificadas de várias formas: fonte de corrente ou de tensão, DC ou AC, dependente ou independente. O funcionamento de um circuito está diretamente relacionado com os tipos de fonte nele presentes. Por conseguinte, a forma de análise escolhida para um determinado sistema também depende de quais tipos de fonte nele estão presentes. Por exemplo, quando se quer avaliar o comportamento de regime de um sistema alimentado por fontes senoidais, a representação fasorial das grandezas é a mais adequada.

49


9. Formas de representação dos circuitos na linguagem do MATLAB® A ferramenta que geralmente se usa para reproduzir os parâmetros e as equações dos circuitos na linguagem do MATLAB® é o arquivo M-file. Um M-file é um arquivo de texto, salvo no computador com a terminação ".m", que contém uma seqüência de comandos que pode ser executada pelo MATLAB®. Exemplificaremos a seguir a melhor maneira de se passar os dados de circuito para um M-file.

9.1.

Um circuito resistivo com alimentação DC Observe o circuito resistivo simples mostrado na figura 12:

Figura 9.1: Exemplo de circuito resistivo

A partir desse circuito obtemos o seguinte sistema de equações lineares, cujas incógnitas são as correntes no circuito:

(

)

Observe que as equações foram escritas de forma literal. A vantagem de escrever as equações dos circuitos na forma literal é que, mesmo que os valores dos resistores e das fontes mudem, elas continuarão válidas. Dessa forma, poupa-se 50


trabalho se for necessário analisar o desempenho do circuito para diversos valores dos componentes. Em seguida, temos o mesmo sistema na notação matricial:

[

] [ ]

[

]

Uma vez que as operações no MATLAB® são de característica matricial, ao se representar o sistema linear na forma de igualdade de matrizes A  I  B , foi dado o passo final para a representação do problema na linguagem do mesmo. Temos a seguir, o texto do código presente no arquivo M-file gerado para análise desse circuito: %Analise de um circuito resistivo simples %Definição dos parâmetros R1 = 10; R2 = 8; R3 = 5; R4 = 2; V1 = 10; V2 = 5; V3 = 12; %Definição das matrizes A = [R1+R4, R3, 0; 0, R3, -R2; 1, -1, -1]; C = [V1-V2; V3-V2; 0]; %Solução do sistema Solução

I = inv(A)* C;

I1 = 0.1531 I2 = 0.6327 I3 = -0.4796

I1 = I(1) I2 = I(2) I3 = I(3)

A saída gerada pelo MATLAB® no prompt de comando, ao se executar o M-file com o código mostrado anteriormente, é mostrada no retângulo interno ao retângulo com o trecho de código.

9.2.

Um circuito em regime senoidal O conceito de fasor é de extrema importância na análise de circuitos no

regime senoidal, já que a maioria das grandezas terá forma gt   A  cos(t   ) , onde

51


A é a amplitude,  é a freqüência angular e  é a fase de g(t). O fasor Gˆ da grandeza g(t) é definido pela relação seguinte:

g (t )  A  cos(t   )  Re{ A  e j  e jt }  Gˆ  A  e j  Gˆ  A Dessa forma, podemos entender um fasor como sendo um número complexo que guarda informação sobre a amplitude e o ângulo de fase de uma grandeza senoidal. Suponha agora que necessitamos encontrar o fasor da corrente que circula no circuito a seguir, em regime senoidal.

Figura 9.2: Exemplo de circuito em regime senoidal

Novamente, seguimos passos semelhantes aos realizados no exemplo anterior. Primeiramente determinamos as expressões literais, em termos de fasores, que o circuito deve obedecer. São elas:

ˆ  100 V s 1  ˆI j C  ˆI  jL  ˆI

ˆ   jX  ˆI  V c c ˆ  jX V L L ˆ  R  ˆI V R

ˆ V ˆ V ˆ V ˆ V ˆ  ( R  jX  jX )  ˆI V s c L R s L C ˆ V s  ˆI  ( R  jX L  jX C )

52


Deste modo, como o problema consiste em apenas determinar o fasor da corrente no circuito, no M-file devem constar apenas os parâmetros do circuito e a última expressão para o fasor da corrente. Desta forma, temos a seguir o texto do código presente no M-file gerado para a resolução desse problema: %Determinação da corrente num circuito RLC %em regime senoidal %Definição dos parâmetros R = 200e+3; C = 10e-6; L = 50e-3; Vs = 10; w = 1000; %Parâmetros derivados Xc = - 1/(w*C); Xl = w*L; %Expressão para o fasor da corrente fprintf ('O fasor da corrente e: '); I = Vs/(R+j*Xl-j*Xc)

Saída no prompt do MATLAB®: O fasor da corrente e: I= 5.0000e-005 -3.7500e-008i

53


10. Análise de circuitos elétricos Com o avanço da tecnologia, sentiu-se a necessidade da realização da análise de circuitos elétricos mais complexos. Em geral, são adotados métodos apropriados para análise de circuitos os quais possibilitam, de forma simplificada, a obtenção das correntes e tensões verificadas ao longo do mesmo. Dentre estes métodos, os mais conhecidos são o método das tensões de nó e o método das correntes de malha. Neste mini-curso serão explanados estes métodos e, em seguida, considerando as variações possíveis dos circuitos em questão, serão transcritos, para o prompt do MATLAB®, os comandos necessários para que seja possível a verificação das correntes e tensões de forma precisa através das potencialidades desta ferramenta matemática.

10.1. Método das tensões de nó O objetivo deste método é obter equações que descrevam o comportamento das tensões no circuito as quais são conhecidas como Equações das tensões de nó. Estas equações co-relacionam as tensões dos nós dos circuitos possibilitando uma análise adequada do mesmo. Para tanto, um procedimento simples deve ser seguido. Veja: 1. Desenhar o circuito de forma que os ramos não se cruzem facilitando assim a assinalação dos nós essenciais, os quais são os nós que possuem três ou mais elementos ligados; 2. Escolher um dos nós essenciais como nó de referência. Embora qualquer um dos nós essenciais possa ser escolhido como referência, geralmente existe um nó mais indicado para tal função; 3. Nomear as tensões nos nós essenciais assinalados; 4. Calcular as correntes que saem de cada um dos nós considerados em função das tensões dos nós do circuito; 5. Considerando a lei de Kirchhoff, igualar a zero a soma das correntes que saem de cada nó essencial; 54


6. A partir do passo 5, são obtidas as equações das tensões de nó. Sendo assim, tem-se um sistema linear em que as variáveis são as tensões de nó do circuito. Portanto, basta resolver este sistema linear da forma que lhe for mais conveniente.

10.2. Método das tensões de nó + fontes dependentes Em vários casos, são encontradas fontes dependentes nos circuitos elétricos. Estas fontes possuem um comportamento que depende de valores assumidos por grandezas como correntes ou tensões em diferentes pontos do circuito. Muitas vezes, a primeira impressão que se tem é a de que a existência de fontes dependentes complica por demais a solução do circuito elétrico, porém, para tanto, basta seguir o mesmo procedimento para o caso de circuito sem fontes dependentes e então adicionar as equações impostas pela presença da fonte dependente às equações das tensões de nó encontradas. Exemplo 10.1 - Determinar as correntes Iˆa , Iˆb e Iˆc .

Figura 10.1: Circuito Usado para ilustrar o método das tensões de nó. Fonte: Circuitos Elétricos, Nilsson e Riedel, Figura 9.34 pág298

Nó  1

Nó  2 Vˆ2  Vˆ1 Vˆ2 Vˆ2  20 Iˆx   0 1  j 2  j5 5

Vˆ Vˆ  Vˆ  10,6  1  1 2  0 10 1  j 2 Vˆ1 1,1  j 0,2  Vˆ2  10,6  j 21,2

55


mas : Vˆ  Vˆ2 Iˆx  1 1  j2

Substituin do(nó2) :  5Vˆ1  4,8  j 0,6Vˆ2  0 Assim : 1,1  j 0,2  5 

 Vˆ1  10,6  j 21,2    4,8  j 0,6 Vˆ2   0  1

SOLUÇÃO:

Vˆ1  68,40  j16,80 V

Vˆ2  68  j 26 V

Logo : Iˆa  6,84  j1,68 A Iˆb  1,44  j11,92 A

Iˆc  5,2  j13,6 A

56


No MATLAB®: clear clc %----------------------------------------------------%Mini-curso de Matlab - PET-Elétrica %----------------------------------------------------fprintf ('\nExemplo 10.1\n') %Sistema Linear - A.x = B A = [(1.1+0.2i) -1; -5 (4.8+0.6i)]; B = [(10.6+21.2i); 0]; V = A\B; Solução %Tensões: Exemplo 10.1 V1 = V(1); Correntes: V2 = V(2); %Correntes: Ia = 6.84 -1.68i A Ix = (V1-V2)/(1+2i); Ib = -1.44 -11.92i A Ia = V1/10; Ic = 5.20 +13.60i A Ib = (V2-20*Ix)/5; Ic = V2/(-5i); %Escrevendo as respostas: fprintf('Correntes:\n') fprintf('Ia = %.2f %+.2fi A\n', real(Ia), imag(Ia)) fprintf('Ib = %.2f %+.2fi A\n', real(Ib), imag(Ib)) fprintf('Ic = %.2f %+.2fi A\n', real(Ic), imag(Ic))

10.3. Método das correntes de malha Um outro método bastante utilizado na análise de circuitos elétricos é o Método das correntes de malha. A corrente de malha pode ser definida como sendo uma corrente que existe apenas no perímetro de uma única malha. Sendo assim, percebe-se que este método se aplica apenas a circuitos em que as malhas não possuem outras malhas em seu interior. Desta forma, ao longo da análise por este método, a lei de Kirchhoff é automaticamente satisfeita uma vez que em qualquer um dos nós do circuito, a corrente de malha que entra no nó é a mesma que sai. Portanto, para solucionar circuitos através deste método das correntes de malha, deve-se seguir o seguinte procedimento:

1. Utilizar setas as quais indicarão o sentido das correntes de malha do circuito. É preferível que se utilize o mesmo sentido para todas as malhas; 57


2. Calcular as tensões sobre os componentes da malha em análise considerando a corrente resultante nos ramos comuns a duas malhas e dando um sentido preferencial para a corrente da malha em análise; 3. Considerando a lei de Kirchhoff, igualar a zero a soma das tensões da malha fechada em questão; 4. A partir do passo 3, são obtidas as equações necessárias para a análise das correntes de malha. Sendo assim, tem-se um sistema linear em que as variáveis são as correntes de malha do circuito. Portanto, basta resolver este sistema linear da forma que lhe for mais conveniente.

10.4. Método das correntes de malha + fontes dependentes Quando existem fontes dependentes no circuito em análise, basta seguir o mesmo procedimento para o caso de circuito sem fontes dependentes e então adicionar as equações impostas pela presença da fonte dependente às equações das correntes de malha obtidas.

Exemplo 10.2 - Determinar as correntes de malha indicadas no circuito a seguir.

Figura 10.2: Circuito Usado para ilustrar o método das correntes de malha. Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 9.36 pág. 299

Malha  1 Malha  2 1  j 2Iˆ1  12  j16 Iˆ1  Iˆ2  150 12  j16 Iˆ2  Iˆ1  1  j3Iˆ2  39Iˆx  0 ˆ ˆ 13  j14I  12  j16I  150

1

2

58


mas : Iˆx  Iˆ1  Iˆ2

Assim : Substituin do(malha 2) :  13  j14  12  j16  Iˆ  150 27  j16Iˆ1  26  j13Iˆ2  0 27  j16  26  j13   ˆ1    0    I 2   

SOLUÇÃO:

Iˆ1  26  j52 A

Iˆ2  24  j58 A

No MATLAB®:

clear clc %----------------------------------------------------------%Mini-curso de Matlab - PET-Elétrica %----------------------------------------------------------fprintf ('\nExemplo 10.2\n') %Sistema Linear - A.x = B A = [(13-14i) -(12-16i); (27+16i) -(26+13i)]; Solução B = [150; 0]; Exemplo 10.2 I = A\B; Correntes de malha: %Correntes de malha: I1 = I(1); I1 = -26.00 -52.00i A I2 = I(2); I2 = -24.00 -58.00i A %Escrevendo as respostas: fprintf('Correntes de malha:\n') fprintf('I1 = %.2f %+.2fi A\n', real(I1), imag(I1)) fprintf('I2 = %.2f %+.2fi A\n', real(I2), imag(I2))

10.5. Circuitos equivalentes de Thévenin e Norton Em diversos casos, durante a análise dos circuitos elétricos, o objetivo é obter o comportamento em pontos específicos do circuito. Ao ligar um forno em casa, não estamos preocupados com os efeitos sobre a tensão nas outras tomadas, ou seja, o nosso interesse limita-se a um par de terminais. A teoria sobre análise de circuitos elétricos no domínio da freqüência apresenta métodos que facilitam bastante os procedimentos de solução dos mesmos uma vez 59


que permitem uma fácil simplificação dos circuitos. Os circuitos equivalentes de Thévenin e Norton são circuitos simplificados que têm mesmo funcionamento do ponto de vista do par de terminais de interesse. Desta forma, pode-se afirmar que qualquer circuito elétrico, composto por elementos lineares, pode ser representado pelos seus respectivos circuitos equivalentes de Thévenin e Norton.

Para determinar o circuito equivalente de Thévenin, deve-se seguir o seguinte procedimento: 1. Calcular a tensão de circuito aberto VˆTh entre os terminais “a” e “b” de interesse; 2. Colocar uma fonte de corrente de 1A entre os terminais “a” e “b” e em seguida calcular a tensão sobre esta mesma fonte Vˆcc , curto-circuitando as fontes de tensão e abrindo o circuito nas fontes de corrente; 3. Calcular a resistência de Thévenin através da expressão ZTh 

Vˆcc  Vˆcc ; 1

Assim, obtém-se o seguinte circuito equivalente de Thévenin:

Figura 10.3: Circuito equivalente de Thévenin Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 9.25 pág. 295

O circuito equivalente de Norton é formado por uma fonte independente de corrente I N em paralelo com uma resistência R N . Considerando que este circuito equivalente pode ser obtido a partir do circuito equivalente de Thévenin, deve-se seguir o seguinte procedimento para obtenção do circuito de Norton: 1. Calcular o circuito equivalente de Thévenin segundo o procedimento especificado anteriormente;

60


2. Realizar transformação da fonte de tensão para fonte de corrente. Veja que neste caso, a resistência de Thévenin é igual à resistência de Norton.

Assim, obtém-se o circuito equivalente de Norton mostrado a seguir:

Figura 10.4: Circuito equivalente de Norton Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 9.25 pág. 295

Exemplo 10.3 - Determinar o circuito equivalente de Thévenin e em seguida, calcular a corrente por um resistor de 1 Ω inserido entre os terminais “a” e “b”.

Figura 10.5: Circuito para análise de circuitos equivalentes Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig 9.27 pág. 295 Exemplo 9.9

1atransformação(tensão - corrente): Iˆ  4  j12 A, Z  1  j3( Paralelo ) Paralelo das impedâncias: Z  1  j3 // 9  j3  1,8  j 2,4 2a transformação de fonte(corrente-tensão): Vˆ  36  j12V , Z  1,8  j 2,4(Série) Série das impedâncias: Z  1,8  j 2,4  0,2  j 0,6  2  j3

61


Assim:

Iˆ0 

36  j12  1,56  j1,08 A 2  j3  10  j19

Calculando o circuito equivalente de Thévenin teríamos:

VˆTh  10  j19  Iˆ0  10  j19  1,56  j1,08  36,12  18,84V Z Th  10  j19 // 2  j3  2,63  j 2,84

Então, adicionando o resistor de 1 , teríamos uma corrente de Iˆ1  3,65  j8,05 A . No MATLAB®: %--------------------------------------------------%Mini-curso de Matlab %--------------------------------------------------clear clc fprintf('\nExemplo 10.3\n') %Transformação de fonte: %Tensão - Corrente: If = Vf/Zf e Zf = cte %Corrente - Tensão: Vf = Zf*If e Zf = cte Vf = 40; Zf = (1+3i); %Primeira transformação: If = Vf/Zf; %Paralelo das impedaâncias Zf = inv(inv(1+3i)+inv(9-3i)); %Segunda transformação: Vf = Zf*If; %Série das impedâncias Zf = Zf+(0.2+0.6i); %Corrente: Io = Vf/(Zf+(10-19i)); %Circuito equivalente de Thévenin: Vth = (10-19i)*Io; Zth = inv(inv(Zf)+inv(10-19i)); %Adicionando o resistor de 1 Ohm: Zeq = Zth + 1; I = Vth/Zeq;

Solução

Exemplo 10.3 Circuito equivalente: Vth = 36.12 -18.84i V Zth = 2.63 +2.84i Ohm Corrente: I = 3.65 -8.05i A

%Escrevendo as respostas: fprintf('Circuito equivalente:\n') fprintf('Vth = %.2f %+.2fi V\n', real(Vth), imag(Vth)) fprintf('Zth = %.2f %+.2fi Ohm\n', real(Zth), imag(Zth)) fprintf('Corrente:\n') fprintf('I = %.2f %+.2fi A\n', real(I), imag(I))

62


10.6. O Princípio da superposição Ao longo deste material, foram vistos diversos tipos de circuitos. Dentre os circuitos apresentados, é possível perceber que o número de fontes de tensão e/ou corrente que alimentam os circuitos varia bastante. Num sistema elétrico de potência, por exemplo, existem vários geradores atuando na alimentação das cargas, fato este que evidencia a necessidade do engenheiro de conhecer os melhores caminhos para análise de um circuito com mais de uma fonte de alimentação. Geralmente, a solução de circuitos com múltipla alimentação torna-se bastante complexa, fato este que evidencia a necessidade de métodos que possam simplificar o procedimento de análise do circuito. De acordo com James W. Nilson e Susan A. Riedel, 2003, segundo o princípio da superposição, nos casos em que um sistema linear é excitado ou alimentado por mais de uma fonte de energia, a resposta total é a soma das respostas a cada uma das fontes agindo separadamente. Entretanto, em alguns casos o uso do princípio da superposição pode dificultar a solução do problema, de forma que é mais indicado para circuitos que possuem fontes independentes de tipos distintos (CA e CC).

Exemplo 10.4 - Determinar as correntes indicadas no circuito a seguir através do princípio da superposição.

Figura 10.6: Princípio da superposição Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 4.62 pág. 106

63


Substituindo inicialmente a fonte de corrente por um circuito aberto, temos:

V1  120 V1 V   1 0 6 3 24 V1  30V

Logo :  120  30 i1   15 A 6  30 i2   10 A 3   30 i3  i4   5A 6

Substituindo agora a fonte de tensão por um curto-circuito, temos:

V3 V3 V3  V4     0 3 6 2 V3  12V  Também :  Logo : V4  24V  V4  V3 V4   12  0  2 2  Então :   V3 12 i1    2A 6 6  12  V  i2  3   4 A 3 3  V  V4  12  24 i3  3   6A 2 2  24  V i4  4   6 A 4 4

64

  i1  i1  i1  15  2  17 A   i2  i2  i2  10  4  6 A   i3  i3  i3  5  6  11A   i4  i4  i4  5  6  1A


No MATLAB®:

clear clc %-------------------------------------------------%Mini-curso de Matlab %-------------------------------------------------fprintf('\nExemplo 10.4\n') %Tensão da fonte Vf = 120; %Tensões e correntes com fonte de corrente em aberto V1 = 30; I1i = (Vf-V1)/6; I2i = (V1)/3; I3i = (V1)/(2+4); I4i = (V1)/(2+4); %Tensões e correntes com fonte de tensão em curto %Sistema Linear: A = [1 -0.5; -0.5 (3/4)]; B = [0; -12]; Solução V = A\B; Exemplo 10.4 V3 = V(1); V4 = V(2); Correntes: (Forma de resolução 1) I1 = 17.00 +0.00i A I2 = 6.00 +0.00i A I1ii = (-V3)/6; I3 = 11.00 +0.00i A I2ii = (V3)/3; I4 = -1.00 +0.00i A I3ii = (V3-V4)/(2); I4ii = (V4)/(4); %Superposição I1 = I1i + I1ii; I2 = I2i + I2ii; I3 = I3i + I3ii; I4 = I4i + I4ii; %Escrevendo as respostas: fprintf('Correntes: (Forma de resolução 1)\n') fprintf('I1 = %.2f %+.2fi A\n', real(I1), imag(I1)) fprintf('I2 = %.2f %+.2fi A\n', real(I2), imag(I2)) fprintf('I3 = %.2f %+.2fi A\n', real(I3), imag(I3)) fprintf('I4 = %.2f %+.2fi A\n', real(I4), imag(I4))

65


%Outro método para solucionar o Exemplo 10.4 %Tensão da fonte Vf = 120; %Tensões dos nós V1 = [30 -12]; V2 = [9999 -24]; for k = 1:2 if k == 1 I1(k) I2(k) I3(k) I4(k) end if k == 2 I1(k) I2(k) I3(k) I4(k) end end I1 I2 I3 I4

= = = =

Solução Correntes: (Forma de resolução 2) I1 = 17.00 +0.00i A I2 = 6.00 +0.00i A I3 = 11.00 +0.00i A I4 = -1.00 +0.00i A

= (Vf-V1(k))/6; = (V1(k))/3; = (V1(k))/6; = V1(k)/6; = = = =

(-V1(k))/6; (V1(k))/3; (V1(k)-V2(k))/2; V2(k)/4;

sum(I1); sum(I2); sum(I3); sum(I4);

%Escrevendo as respostas: fprintf('Correntes: (Forma de resolução 2)\n') fprintf('I1 = %.2f %+.2fi A\n', real(I1), imag(I1)) fprintf('I2 = %.2f %+.2fi A\n', real(I2), imag(I2)) fprintf('I3 = %.2f %+.2fi A\n', real(I3), imag(I3)) fprintf('I4 = %.2f %+.2fi A\n', real(I4), imag(I4))

66


11. Respostas dos circuitos RL e RC a um degrau Didaticamente, circuitos RL e RC alimentados por fontes contínuas são bastante utilizados em disciplinas que envolvem o estudo de circuitos elétricos. Sendo assim, neste

tópico,

explicitaremos

a

análise

destes

circuitos

evidenciando

seu

comportamento sempre visando uma implementação do modelo através do MATLAB®. Cada circuito elétrico tem um comportamento distinto quando submetido à aplicação brusca de uma tensão ou corrente. Este comportamento é conhecido como resposta a um degrau. Neste caso, no exame da resposta dos circuitos RL e RC a um degrau, é possível verificar o comportamento destes circuitos durante a fase em que a energia está sendo armazenada no indutor ou capacitor.

11.1.

Resposta de um Circuito RL a um degrau

Para este caso, a energia inicial do circuito é expressa como um valor inicial da corrente circulante pelo indutor, ou seja, i 0 . Portanto, o objetivo desta análise é obter expressões para a corrente no circuito e para as tensões entre os terminais do indutor durante seu carregamento. Então temos:

Figura 11.1: Resposta a um degrau de um circuito RL Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 7.16 pág. 204

67


Logo:

di dt di  Ri  VS  R  VS    i   dt L L  R di  R  VS  dt   i  dt dt L  R

Assim : di R  dt VS  L  i   R

VS  Ri  L

di 

i t 

di  R I VS   0 L dt  0 i     R V i t    S   R   R t ln V L I 0   S  R  

 R  VS   i  dt L  R

t

Logo : V i t    S  R  R  e L t V I 0   S   R

it  

VS  V  R t   I 0  S e L R  R

Considerando então que a tensão nos terminais do indutor é dada por vL

di dt

 

V  R t  v   R  I 0  S e L L R

As equações acima demonstradas dão suporte para as análises do circuito proposto.

11.2.

Resposta de um Circuito RC a um degrau

Para o caso de um circuito RC, a energia inicial do circuito é expressa como um valor inicial da tensão sobre o capacitor, ou seja, V 0 . Sendo assim, o objetivo desta análise é obter expressões para a corrente no circuito e para as tensões entre os terminais do capacitor durante seu carregamento. Então tomemos como exemplo:

68


Figura 11.2: Resposta a um degrau de um circuito RC Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 7.21 pág. 207

Logo:

dvC vC   IS dt R dvC vC I   S dt RC C dvC I S vC 1 vC  R.I S     dt C RC RC 1 vC  R.I S dt dvC   RC

C

Assim :

 t dvC 1   dt  V    RC  0 0  v C  R.I S    v t   R.I S  1 ln C  t V0  R.I S  RC v t 

Então : vC t   R.I S  e V0  R.I S 

1 t RC

vC t   R.I S  V0  R.I S e

1 t RC

Considerando então que a corrente circulante pelo capacitor é dada por

iC

1  t dvC 1  it    C V0  R.I S e RC  dt RC

V   t  it    I S  0 e RC R  1

As equações acima demonstradas dão suporte para as análises do circuito proposto.

69


12. Resposta natural e a um degrau de um circuito RLC série e paralelo A compreensão do funcionamento de circuitos RLC série ou paralelo é de grande relevância uma vez que seu comportamento apresenta características semelhantes a inúmeros fenômenos abordados na engenharia elétrica. A resposta de circuitos deste tipo apresenta oscilações até entrar em regime, oscilações estas semelhantes às verificadas em fenômenos de desligamento de transformadores, transitórios em sistemas de potência, controle de motores, entre outros. As oscilações verificadas nas respostas destes circuitos a um degrau podem ser classificadas como: 1. Super-amortecidas; 2. Sub-amortecidas; 3. Criticamente amortecidas. A forma assumida pela resposta do circuito RLC, seja ele paralelo ou série, depende dos valores da freqüência de Neper (  ), a qual reflete o efeito da resistência no circuito, e da freqüência angular de ressonância (  0 ). Assim, dependendo dos valores destas freqüências, as soluções destes circuitos variam, apresentando diferentes comportamentos de amortecimento. Portanto, a seguir, é apresentado um procedimento simplificado para a obtenção da solução destes circuitos. Veja: 1. Verificar os valores de  e de  0 2. Verificar as condições a seguir: a. Se  2  0 2 Superamortecido - A tensão ou corrente chega ao valor final sem oscilações; b. Se  2  0 2 Subamortercido - A tensão ou corrente oscila antes de chegar ao valor final; c. Se  2  0 2 Criticamente amortecido - A tensão ou corrente oscila antes de chegar ao valor final; 3. Dependendo da classificação do amortecimento a partir do tópico anterior, utilizar as equações apresentadas na Tabela 1 como resposta do sistema.

70


Amortecimento

Superamortecido

Equações dos coeficientes -

Equação da Resposta Natural

Resposta Natural

x0  A1  A2

xt   A1e s1t  A2e s2t

x0  B1 Subamortecido

dx 0  B1   d B2 dt onde :

xt   B1 cos d t  B2 sin d t e t

d  0 2   2 Criticamente amortecido

xt   D1t  D2 e

x0  D2

t

dx 0  D1  D2 dt

Amortecimento

Equação da Resposta a um Degrau

Superamortecido

xt   X f  A1e s1t  A2 e s2t

Equações dos coeficientes – Resposta a um degrau

x0  X f  A1  A2

x0   X f  B1 Subamortecido

xt   X f  B1 cos d t  B2 sin d t e

dx 0  B1   d B2 dt onde :

t

d  0 2   2 Criticamente amortecido

Equação característica: RLC série e paralelo

Raízes

xt   X f  D1t  D2 e

x0  X f  D2 t

dx 0  D1  D2 dt

s 2  2s  0  0 2

s1 , s2     2  0

2

Tabela 1 – Equações das respostas de um circuito RLC em paralelo ou em série

71


Sendo assim, utilizando o procedimento descrito, é possível solucionar os circuitos a seguir. No MATLAB®, as curvas podem ser evidenciadas.

Exemplo 12.1 - Determinar a expressão de iL t  para R=400Ω, sabendo que a energia inicial do circuito é zero e que em t=0s, uma fonte de corrente de I=24mA é ligada ao circuito.

Figura 12.1: Resposta a um degrau de um circuito RLC paralelo Fonte: Circuitos Elétricos, Nilsson e Riedel, Exemplos 8.6, 8.7 e 8.8 pág. 256 e 257

Valor inicial de iL : 

 

Energia inicial zero, então iL 0  0 A.

Valor inicial de

diL : dt

Energia inicial zero, então

 

diL  0  0. dt

Verificando o tipo de amortecimento:

1 1012   16  108 rad / s LC 25  25 1 109    5  10 4 rad / s   2  25  108 2 RC 2  400  25

0 

Então, temos uma resposta do sistema superamortecida, pois  2  0 . 2

72


Raízes: 

s1  5  10 4  3  10 4  20000rad / s s2  5  10 4  3  10 4  80000rad / s

Expressão: 

iL t   I f  A1e s1t  A2e s2t

Mas:

iL 0  I f  A1  A2  0  A  32mA  1 diL 0  s1 A1  s2 A2  0  A2  8mA dt

Logo: 

iL t   24  32e 20000t  8e 80000t mA, t  0s No MATLAB®:

clear clc %------------------------------------------------------%Mini-curso de Matlab - PET-Elétrica %------------------------------------------------------fprintf ('\nExemplo 12.1\n') %Valores dos componentes e fontes: If = 24e-3; %Fonte de corrente R = 400; %Resistência C = 25e-9; %Capacitância L = 25e-3; %Indutância %Tempo máximo de simulação tmax = 0.002; dt = 10e-8; %Vetor tempo t = [0:dt:tmax]; %Numero de pontos TAM = length(t); %Criando vetores: iL = zeros(1,TAM); didt = zeros(1,TAM); %Verificando o tipo de resposta: alfa = 1/(2*R*C); w0 = sqrt(1/(L*C));

73


%Eq. Caracteristica: poly = [1 (2*alfa) (w0^2)]; S = roots(poly); s2 = S(1); s1 = S(2);

Solução: Exemplo 12.1 Raízes: s1 = -20000.000 s2 = -80000.000 Coeficientes: A1 = -0.032 A2 = 0.008

%Condições iniciais iL(1) = 0; didt (1) = 0; %Obtendo coeficientes: a = [1 1; s1 s2]; b = [(iL(1)-If);didt(1)]; A = a\b; A1 = A(1); A2 = A(2);

%Simulação dos pontos for tempo = 1:TAM iL(tempo)= If+A1*exp(s1*t(tempo))+A2*exp(s2*t(tempo)); end %Escrevendo as respostas: fprintf('Raizes:\n'); fprintf('s1 = %.3f\n', s1); fprintf('s2 = %.3f\n', s2); fprintf('Coeficientes:\n'); fprintf('A1 = %.3f\n', A1); fprintf('A2 = %.3f\n', A2); %Plotar gráfico: plot(t, iL, 'k'), grid title('Gráfico da corrente no indutor versus tempo’) xlabel('Tempo (s)'), ylabel('Corrente no indutor (A)')

74


Figura 12.2: Gráfico da corrente em função do tempo no indutor

75


13. Potência complexa Existem inúmeros conceitos envolvidos no estudo de potência em circuitos senoidais, porém, no intuito de facilitar o entendimento desta análise trataremos apenas da potência complexa a qual traz informações suficientes sobre a potência dos circuitos elétricos em análise. A potência complexa, expressa em volt-ampère(VA), é dada pela soma entre a potência ativa (unidade W) e a potência reativa (unidade var) multiplicada por j.

S  P  jQ Uma das vantagens de se utilizar a potência complexa nas análises, é que esta permite uma análise geométrica, na qual é originado o triângulo de potência. Veja:

Figura 13.1: Triângulo de potência

A relação entre a potência útil do circuito (potência ativa) e a potência total do circuito(potência aparente) é denominada fator de potência. Sendo assim, o cosseno do ângulo  é equivalente ao valor do fator de potência do circuito em questão. Então, considerando que se trata de potências em circuitos senoidais, estas serão dadas por: P  S cos  Q  S sin  onde : S  P2  Q2

Fasorialmente, temos que a potência aparente é dada por: S  S 

76


Analiticamente, a potência pode ser demonstrada a partir das expressões da corrente e da tensão a seguir:

v  Vm cos t   v 

i  I m cost   i 

Então, desenvolvendo a expressão p  v  i , obtém-se que a potencia total é dada por:

p  P  P cos 2t  Q sin 2t

Portanto, no intuito de realizar o estudo da potência complexa em circuitos elétricos, consideremos o seguinte exemplo: Exemplo 13.1 - Uma carga elétrica é alimentada com 240 Vrms. A carga consome uma potência média de 8kW com um fator de potência atrasado de 0,8. a) Calcule a potência complexa da carga. b) Calcule a impedância da carga. Fonte: Circuitos Elétricos, Nilsson e Riedel, pág336 SOLUÇÃO: a)

Logo : P  S cos   mas :  Q  S sin   cos   0,8  sin   0,6

P 8k  10kVA cos  0,8 Q  10 sin   6k var

Logo:

S  8  j 6kVA

77

S 


b)

P  Veff I eff cos  v   i   Veff I eff cos   P  240  I eff  0,8  8000W

Assim :

Logo : I eff  41,67 A

Veff

Z

I eff

 cos 1 0,8

Z  5,7636,87 o

Exemplo 13.2 - Determinar as potências fornecidas pelas fontes de tensão do circuito do EXEMPLO 9.2 para um circuito que opera com freqüência de 60Hz. Já temos conhecimento dos valores das correntes de malha do circuito. Perceba que as correntes que passam pelas fontes de tensão são Iˆ1 e Iˆ2 respectivamente. Iˆ1  26  j52 A

Iˆ2  24  j58 A

Assim, temos que: S fonte_ indep  Vˆ fonte_ indep  Iˆ1

* S fonte_ dep  Vˆ fonte_ dep   Iˆ2

*

   1500    26  j 52 

S fonte_ indep  1500   26  j 52  o

S fonte_ indep

o

S fonte_ indep  3900  j 7800 Ou S fonte_ indep  8720,7116,56 o VA

*

* S fonte_ dep  39  Iˆx   24  j 58

Mas : Iˆx  Iˆ1  Iˆ2  2  j 6

S fonte_ dep  39 2  j 6   24  j 58 S fonte_ dep  11700  j10140 Ou S fonte_ dep  15482,5640,91o VA

78


Plotando os diagramas fasoriais no MATLAB®, temos:

clear clc %-------------------------------------------------------%Mini-curso de Matlab - PET-Elétrica %-------------------------------------------------------fprintf ('\nExemplo 13.2\n') t = [0:1e-4:.05]; Vindep = 150*exp(i*(0*pi/180)); I1 = -26-52*i; I2 = -24-58*i; Vdep = 39*(I1-I2); Sindep = Vindep*conj(I1); Sdep = Vdep*conj(-I2); subplot(2,2,1), plot([0 real(Vindep)], [0 imag(Vindep)], ... [0 real(I1)], [0 imag(I1)]), grid title('Diagrama fasorial: Fonte Independente'); legend('TENSÃO', 'CORRENTE', 'Location', 'Best'); xlabel('Real'), ylabel('Imaginario');

subplot(2,2,2), plot([0 real(Vdep)], [0 imag(Vdep)], ... [0 real(I2)], [0 imag(I2)]), grid title('Diagrama fasorial: Fonte Dependente'); legend('TENSÃO', 'CORRENTE', 'Location', 'Best'); xlabel('Real'), ylabel('Imaginario'); subplot(2,2,3), plot([0 real(Sdep)], [0 imag(Sdep)], ... [0 real(Sindep)], [0 imag(Sindep)]), grid title('Diagrama fasorial: Triangulo de potências'); legend('Sdep', 'Sindep', 'Location', 'Best'); xlabel('Potencia Ativa'), ylabel('Potencia Reativa');

79


Figura 13.2: Diagramas fasoriais do exemplo 13.2

80


14.

Resolução de circuitos no ambiente MATLAB®

Exercício 14.1 -Determinar as potências associadas às três fontes do circuito.

Figura 14.1: -Método das tensões de nó Fonte: Circuitos Elétricos, Nilsson e Riedel, Exercício 4.7 pág. 83

RESPOSTAS: P50V  150W , P3i1  144W , P5 A  80W

Exercício 14.2 - Determinar vt  para fontes de vs  100 sin t V e I s  10 cos t A, sendo

  50krad / s .

Figura 14.2: -Método das tensões de nó Fonte: Circuitos Elétricos, Nilsson e Riedel, Exercício 9.17 pág299

RESPOSTA: vt   31,62 cos 50000t  71,57 V

81

o


Exercício 14.3 –Determinar as potência fornecidas pelas fontes de tensão.

Figura 14.3: Método das Correntes de Malha com fonte dependente Fonte: Circuitos Elétricos, Nilsson e Riedel, Fig. 4.12 pág. 89

RESPOSTA: Iˆ  29  j 2  29,073,95o A

Exercício 14.4 - Determinar Iˆ através do método das malhas.

Figura 14.4: Método das correntes de malha Fonte: Circuitos Elétricos, Nilsson e Riedel, Exercício 9.18 pág. 300

RESPOSTA: Iˆ  29  j 2  29,073,95o A

82


Exercício 14.5 - Determinar v0 através do método da superposição.

Figura 14.5: Princípio da superposição Fonte: Circuitos Elétricos, Nilsson e Riedel, Exemplo 4.13 pág. 107

RESPOSTA: v0  24 V

Exercício 14.6 -Em t=0s, a chave passa da posição “a” para a posição “b”. Determinar e plotar i t  e vt  em função de t.

Figura 14.6: Respostado circuito RL Fonte: Circuitos Elétricos, Nilsson e Riedel, Exemplo 7.5 pág.205 fig. 7.19

83


Exercício 14.7 -Em t=0s, a chave passa da posição “a” para a posição “b”. Determinar e plotar i t  e vC t  em função de t.

Figura 14.7: Resposta a um degrau de um circuito RC Fonte: Circuitos Elétricos, Nilsson e Riedel, Exemplo 7.7 pág.209 fig. 7.25

Exercício 14.8 -Em t=0s, a fonte I=24mA é ligada. Determinar a expressão de iL t  , para R=400Ω, 500Ω e 625Ω. Em seguida plotá-la no MATLAB®.

Figura 14.8: Resposta a um degrau de um circuito RLC paralelo Fonte: Circuitos Elétricos, Nilsson e Riedel, Exemplos 8.6, 8.7 e 8.8 pág. 256 e 257

RESPOSTAS: iL t   24  32e

20000t

 8e 80000t mA, p / t  0s

iL t   24  960000te 40000t 24e 40000t mA, p / t  0s

iL t   24  24e32000t cos24000t   32e32000t sin24000t  mA, p / t  0s

84


15. Resposta em Frequência no Domínio da Freqüência e Diagrama de Bode Resposta em freqüência em regime permanente senoidal consiste no estudo dos efeitos da variação da freqüência da fonte sobre as tensões e correntes do circuito. Matematicamente, esta análise é definida através de uma função de transferência. A função de transferência (ou função do sistema), normalmente representada por H(s), pode ser definida como a razão, no domínio da freqüência, da variável de saída face a variável de entrada. Como a função de transferência de um filtro define o efeito do filtro em termos de freqüência, podemos usar esta função para definir o tipo de filtro. Por exemplo, um filtro passa baixa irá deixar passar todas as freqüências abaixo da freqüência de corte estabelecida. O passa faixa irá deixar passar a banda de freqüência especificada. E o rejeita faixa irá remover a banda de freqüência especificada. Cabe ressaltar que os filtros não são ideais, ou seja, a interrupção das frequências (o corte) não é instantânea. Como uma função de transferência é uma função complexa, a análise dos filtros inclui gráficos de magnitude e fase. Para isso utilizam-se as funções abs, angle e unwrap. Adicionalmente, as funções freqs, freqz e o estudo do diagrama de Bode para analisar o comportamento das funções, como no exemplo a seguir. Para fazer a análise gráfica dos filtros, é essencial primeiramente determinar a função de transferência do circuito. Logo após, utiliza-se as funções do Matlab® para obter os gráficos.

85


Exemplo 15.1: Faça a análise do presente circuito:

Figura 15.1: Representação Filtro Passa Alta Fonte: Apostila do Laboratório de Circuitos Elétricos II.

clear clc %-----------------------------------------------%Mini-curso de Matlab - PET-Elétrica %-----------------------------------------------w = logspace(-2,6,500); R = 50; L = 0.02; Xl = j*w*L; H = Xl./(R+Xl); figure(1); subplot(121), semilogx(w,20*log10(abs(H))),grid xlabel('omega', 'FontSize', 14) ylabel('20log_1_0|H| (dB)', 'FontSize', 14) subplot(122), semilogx(w,angle(H)*180/pi),grid xlabel('omega', 'FontSize', 14) ylabel('fi(graus)', 'FontSize', 14)

É importante destacar que, caso deseje-se obter a freqüência de corte, é preciso observar no gráfico em qual freqüência ocorre uma atenuação de 3dB , isto é, uma redução de 70,7% do valor da faixa de passagem.

86


Figura 15.1: Diagrama de Bode

87


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.