Академический Документы
Профессиональный Документы
Культура Документы
e-mail:elenilton@bol.com.br
SUMRIO
1. 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.6.1. 1.6.2. 1.6.3. 1.6.4. 1.6.5. 1.7. 1.7.1. 1.7.2. 1.7.3. 1.8. 1.8.1. 2. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. 2.10. 2.11. 2.12. 2.13. 2.14. 2.15. 2.16. 2.17. 2.18. 2.19. 2.20. 2.21. 2.22. 2.23. 2.24. 2.25. 2.26. 2.27. 3. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 3.10. 3.11. INTRODUO AO MATLAB ........................................................................................................................................................... 3 INTRODUO................................................................................................................................................................................... 3 VANTAGENS DO MATLAB .................................................................................................................................................................. 3 DESVANTAGENS DO MATLAB ............................................................................................................................................................ 3 O AMBIENTE MATLAB ....................................................................................................................................................................... 3 A REA DE TRABALHO MATLAB......................................................................................................................................................... 4 CONCEITOS, COMANDOS E SIMBOLOGIA DO MATLAB ....................................................................................................................... 5 COMANDOS E SIMBOLOGIA .............................................................................................................................................................. 5 COMANDOS, VARIVEIS E SMBOLOS ESPECIAIS............................................................................................................................... 7 CONSTANTES ................................................................................................................................................................................... 7 OPERAES ARITMTICAS BSICAS ................................................................................................................................................. 7 FUNES MATEMTICAS COMUNS(OBS: ALGUM EXEMPLOS) ............................................................................................................. 8 COMANDOS CARACTERSTICOS DE JANELA ....................................................................................................................................... 8 COMANDOS DO WORKSPACE ............................................................................................................................................................ 8 COMANDOS FORMATOS DE EXIBIO DE NMEROS ......................................................................................................................... 9 COMANDOS RELACIONADOS A ARQUIVOS E DADOS .......................................................................................................................... 9 MATRIZES ........................................................................................................................................................................................ 9 ENTRADA DE DADOS ........................................................................................................................................................................ 9 TRANSFORMADA DE LAPLACE ....................................................................................................................................................10 TRANSFORMADA DE LAPACE............................................................................................................................................................10 TRANSFORMADA DE LAPLACE DE ALGUMAS FUNES COM O MATLAB .............................................................................................10 FUNO EXPONENCIAL ...................................................................................................................................................................10 FUNO DEGRAU ............................................................................................................................................................................11 FUNO RAMPA ..............................................................................................................................................................................11 FUNO SENO ................................................................................................................................................................................12 FUNO COSENO ............................................................................................................................................................................13 FUNO PULSO OU GATE ................................................................................................................................................................14 FUNO IMPULSO ...........................................................................................................................................................................14 ALGUMAS PROPIEDADES DA TRANSFORMADA DE LAPLACE COM MATLAB .........................................................................................15 LINEARIDADE..................................................................................................................................................................................15 MULTIPLICAO DE UMA F(T) POR ....................................................................................................................................... 15 MULTIPLICAO DE UMA F(T) POR tn ...............................................................................................................................................15 TRANSFORMADA DE LAPLACE DE DERIVADAS ..................................................................................................................................16 TRANSFORMADA DE LAPLACE DE INTEGRAIS ...................................................................................................................................16 REPRESENTAO DE ALGUMAS FUNES COM O MATLAB ................................................................................................................17 FUNO EXPONENCIAL ...................................................................................................................................................................17 FUNO RAMPA ..............................................................................................................................................................................17 FUNO ACELERAO .....................................................................................................................................................................17 FUNO SENO ................................................................................................................................................................................17 FUNO COSSENO REPRESENTADA NO MATLAB ..............................................................................................................................18 TRANSFORMADA INVERSA DE LAPLACE............................................................................................................................................18 TRANSFORMADA INVERSA DE LAPLACE COM O MATLAB ...................................................................................................................18 EXPANSO EM FRAES PARCIAIS COM O MATLAB ..........................................................................................................................20 DETERMINAO DOS ZEROS E PLOS DE B(S)/A(S) .........................................................................................................................23 TEOREMA DO VALOR INICIAL (TVI) .................................................................................................................................................25 TEOREMA DO VALOR FINAL (TVF)....................................................................................................................................................25 MODELAGEM MATEMTICA .........................................................................................................................................................27 CONTROLE CLSSICO: FUNO DE TRANSFERNCIA ........................................................................................................................27 REPRESENTAO DA FUNO DE TRANSFERNCIA ..........................................................................................................................27 REPRESENTAO DA FUNO DE TRANSFERNCIA COM O MATLAB..................................................................................................28 COMANDOS PARA OBTER A RESPOSTA TEMPORAL ...........................................................................................................................31 SISTEMAS ELTRICOS .....................................................................................................................................................................36 CIRCUITOS COMPLEXOS VIA MTODO DAS MALHAS.........................................................................................................................37 SISTEMAS MECNICOS ....................................................................................................................................................................38 REPRESENTAO DE ESPACO DE ESTADOS ......................................................................................................................................40 MODELAGEM POR VARIVEIS DE ESTADO ........................................................................................................................................40 REPRESENTAO DE ESPAO DE ESTADOS COM O MATLAB .............................................................................................................43 TRANFORMAO LINEARES DE SISTEMAS ........................................................................................................................................ 44
et
4. 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. 4.10.
DIGRAMA DE BLOCOS .................................................................................................................................................................47 INTRODUO: DIGRAMA DE BLOCOS...............................................................................................................................................47 COMPONENTES DOS DIGRAMA DE BLOCOS ......................................................................................................................................47 BLOCO FUNCIONAL .........................................................................................................................................................................47 PONTO DE SOMA OU DETECTOR DE ERRO .......................................................................................................................................47 PONTO DE JUNO OU DERIVAO .................................................................................................................................................48 REDUO DE DIGRAMAS DE BLOCOS...............................................................................................................................................48 REDUO DE DIGRAMAS DE BLOCOS COM O MATLAB ......................................................................................................................48 BLOCOS EM SRIE COM MATLAB .....................................................................................................................................................48 BLOCOS EM PARALELO COM MATLAB ...............................................................................................................................................51 REALIMENTAO (FEEDBACK) .........................................................................................................................................................52
5. 5.1. 5.2.
ii
mandos, onde podem ser colocados comandos; Janela de Figuras, que exibem desenhos e grficos; e Janelas de Edio / Depurao, que permitem a um usurio criar e modificar programas MATLAB. Vamos ver exemplos desses trs tipos de janelas na presente seo.
1.5. A REA DE TRABALHO MATLAB Ao iniciar o MATLAB Verso 6, aparece uma janela especial denominada rea de trabalho MATLAB. A configurao inicial da rea de trabalho MATLAB exibida na Figura 1.1.
Figura 1.1 - A rea de trabalho MATLAB. A aparncia exata da janela pode diferir ligeiramente em diferentes tipos de computador. Ela integra diversas ferramentas para gerenciar arquivos, variveis e aplicaes dentro do ambiente MATLAB. As principais ferramentas presentes na rea de trabalho MATLAB, ou que podem ser acessadas a partir dela, so as seguintes:
Janela de Comandos O lado direito da rea de trabalho MATLAB contm a Janela de Comandos. Um usurio pode inserir comandos interativos pelo marcador de comandos (), na Janela de Comandos, e eles sero executados de imediato. Janela de Histrico de Comandos A Janela de Histrico de Comandos exibe uma lista dos comandos que um usurio inseriu na Janela de Comandos. Espao de lanamento O Espao de Lanamento uma ferramenta especial que agrupa referncias a documentao, demonstraes e ferramentas relacionadas para o prprio MATLAB e para cada conjunto de ferramentas que voc adquire. Janela de Edio / Depurao Uma Janela de Edio/Depurao usada para criar novos arquivos M ou modificar os j existentes. Voc pode criar um novo arquivo M selecionando File/New/M-file no menu da rea de trabalho, ou clicando sobre o cone na Barra de Ferramentas. Janela de Figuras Uma Janela de Figuras usada para exibir grficos MATLAB. Uma figura pode ser a representao grfica bidimensional ou tridimensional de dados, uma imagem ou uma GUI. Navegador do Espao de Trabalho e Editor de Matrizes Um espao de trabalho a coleo de todas as variveis e matrizes que podem ser usadas pelo MAT quando um comando, arquivo M ou funo em particular est em execuo. Navegador de Ajuda Voc pode obter ajuda no MATLAB de trs maneiras. O mtodo preferido utilizar o Navegador de Ajuda. Voc pode iniciar o Navegador de Ajuda selecionando o cone de Ajuda ? localizado na barra de ferramentas, ou digitando helpdesk ou helpwin na janela de Comandos.
1.6. CONCEITOS, COMANDOS E SIMBOLOGIA DO MATLAB 1.6.1. COMANDOS E SIMBOLOGIA Todos os arquivos com extenso m so executveis no MATLAB, os comandos podem ser editados no editor deste software (de preferncia) ou em outro editor de texto como o editor edit do DOS.
M-file editor: editor de documentos do MATLAB, onde voc pode digitar programas salvando-os em arquivos com extenso m (tornando estes arquivos executveis). Para acionar o editor de textos dentro do prprio Matlab, acione sequencialmente, as opes do menu: File New Blank M-File
Dentro do MATLAB voc pode usar comandos semelhantes ao do DOS ou interagir com eles, a seguir vem alguns deles: addpath dir1: faz com que voc possa, posteriormente, executar ou carregar um arquivo gravado no diretrio dir1. cd: mostra o corrente diretrio que voc est trabalhando. delete( nome arquivo): apaga o nome do arquivo especificado. Workspace: janela que se abre para mostrar o nome e caractersticas das variveis usadas no MATLAB num determinado instante. Por exemplo, quando se usa os comandos who ou whos esta janela acionada. Tambm pode ser usado o cone ( semelhante a um cubo) do Workspace browser para executar essa tarefa. Comand history: mostra os ltimos comandos digitados. Path browser: muda o path (o caminho), onde so lidos os arquivos no MATLAB . Palavras em negrito: representa termos e fatos importantes. Palavras em negrito itlico: novos termos. Palavras em negrito na inicial dos nomes: nomes de teclas, menus, itens de menus, nome de funes , arquivos e comandos. Palavras em itlico: ttulos de livros, empresas, etc.
1.6.2. COMANDOS, VARIVEIS E SMBOLOS ESPECIAIS Comandos no Matlab: so editados em letras minsculas. Nome de variveis: o nome de uma varivel pode ser definido como uma letra ou um conjunto de caracteres, havendo o caso sensitivo, isto , uma varivel em letra minscula diferente daquela mesma em letra maiscula Se for usar mais de uma palavra para representar uma varivel, deve ser usado o sinal de sublinhado para ligar os nomes que representaro a varivel. Exemplo de nomes de variveis: a, A, preo1, val3, custo_mdio, preo_de_venda, etc. ; : suprime a impresso de resultados. % : serve para se colocar um comentrio. ... :indica que uma linha continuao de uma linha anterior. ans: varivel usada para assumir o resultado referente ao ltimo comando. inf: infinito(exemplo: digite 1/0). NaN: indeterminao(exemplo: digite 0/0). ctrl c: interrompe comandos do MATLAB. ! : seguida de um comando do DOS, acionar este comando digitado. clc : limpa a tela(semelhante ao comando CLS do DOS).
Smbolo + * / .* ./ \
Operao soma subtrao multiplicao normal de matrizes diviso normal de matrizes multiplicao elemento a elemento diviso elemento a elemento
diviso esquerda(exemplo: 5\25 tem o mesmo efeito que 25/5 que resulta: ans = 5)
1.6.5. FUNES MATEMTICAS COMUNS(OBS: ALGUM EXEMPLOS) abs(x) acos(x) cos(x) cosh(x) exp(x) gcd(x, y) imag(x) lcm(x, y) log(x) log10(x) real(x) round (x) sin(x) sinh(x) sqrt(x) tan(x) mdulo de x arco cujo coseno x coseno de x ( x em radianos) coseno hiperblico de x exponencial : ex MDC dos inteiros x e y parte imaginria de um complexo MMC dos inteiros x e y logaritmo natural de x logaritmo de x na base 10 parte real de x arredonda o valor de x seno de x (em radianos) seno hiperblico de x raiz quadrada de x tangente de x
1.7. COMANDOS CARACTERSTICOS DE JANELA 1.7.1. COMANDOS DO WORKSPACE who : exibe o nome das variveis usadas. whos: exibe na tela os nomes, dimenso, nmero de bytes e tipos das variveis que esto sendo usadas no momento. what: exibe arquivos de extenso .m e .mat do diretrio corrente. disp n: exibe o contedo da varivel n sem mostrar seu nome. clear n: apaga a varivel n. clear: apaga todas as variveis. [x, y] = ginput(n): permite que voc entre com os pares ordenados (x, y) por meio do mouse, escolha com o mouse cada ponto na janela que aparecer na tela, sendo que n representa o nmero de pontos a serem determinados. input ('...'): usado para entrada de dados exemplo: n = input ('digite um nmero _') O nmero que voc digitar ser assumido pela varivel n. pause: serve para pausar um comando de exibio do Matlab. pause(n): pausa por n segundos. echo on: na execuo de um programa executvel, gravado num arquivo .m, o uso desta opo permite a exibio, na tela, dos comandos usados no seu programa, para desativar este opo usa-se o comando echo off. break: termina a execuo de um loop while ou for.
1.7.2. COMANDOS FORMATOS DE EXIBIO DE NMEROS Supondo a = 1/3, quando usamos: format short: resultar: a = 0,3333,ou seja, quatro casas decimais( o default). format short e: teremos: a = 3.3333e-001, ou seja, quatro casas decimais e em notao exponencial(que significa 3.3333 x 10-1). format short g: teremos: a = 0.33333, com cinco casas decimais. format long: teremos a = 0.33333333333333, com catorze casas decimais. format long e: teremos a = 3.333333333333333e-001, com catorze casas decimais mais o expoente . format hex: teremos: a = 3fd5555555555555 (formato hexadecimal) format bank: teremos: a = 0.33, ou seja, dois dgitos decimais (no formato monetrio). format: volta ao formato normal que equivale ao format short.
1.7.3. COMANDOS RELACIONADOS A ARQUIVOS E DADOS save: salva todas as variveis que esto sendo usadas naquele momento, no formato binrio num arquivo com extenso mat no MATLAB. save data: salva todas as variveis no arquivo data.mat. save data a, b, c: salva as variveis a, b, c no arquivo data.mat. load filename: carrega as variveis salvas com o comando save no arquivo especificado. file print: use esses comandos do menu para imprimir o contedo atual da janela ativ
1.8. MATRIZES 1.8.1. ENTRADA DE DADOS Para separar os elementos de uma dada matriz usa- se o espao em branco ou ento vrgulas e para mudar de linha usa- se "; " ou a tecla <ENTER> . Exemplo: a = [1 2 3; 4 5 6; 7 8 9]; <Enter> ou a = [1,2,3; 4,5,6; 7,8,9]; <Enter> ou ainda, a = [1 2 3 <Enter> 4 5 6 <Enter> 7 8 9];
L[f(t)] = F(s) =
e st dt f(t) =
f(t) e st dt
2.2. TRANSFORMADA DE LAPLACE DE ALGUMAS FUNES COM O MATLAB 2.3. FUNO EXPONENCIAL A funo exponencial definida como:
0 f(t) = t A e
p/ t <0 p/ t 0
Onde A e so constantes.
f(t) = A e t
F(s) =
A (s + )
A transformada de Laplace pode ser obtida atravs do Matlab: syms t s A f = A*exp(-a*t) F = laplace(f ) pretty(F) syms t s A a f = A/(s+a) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = A e
a t
Transformada inversa
F(s) =
A (s + a)
10
Exemplo numrico: syms t s f = 3*exp(-6*t) F = laplace(f ) pretty(F) syms t s f = 3/(s+6) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = 3 e
6 t
Transformada inversa
F(s) =
3 (s + 6)
0 f(t) = A
p/ t <0 p/ t 0
Onde A constante.
f(t) = A
F(s) =
A s
Obs: A transformada de Laplace de uma funo degrau no da para ser obtida atravs do Matlab.
0 f(t) = A t
p/ t <0 p/ t 0
Onde A constante.
f(t) = A t
F(s) =
A s2
11
A transformada de Laplace pode ser obtida atravs do Matlab: syms t s A f = A*t F = laplace(f) pretty(F) syms t s A f = A/(s^2) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = A t
Transformada inversa
f(t) =
A s2
Exemplo numrico: syms t s f = 3*t F = laplace(f ) pretty(F) syms t s f = 3/s^2 F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = 3 t
Transformada inversa
f(t) =
3 s2
0 f(t) = A sen(t)
Onde: A e so constantes.
A
p/ t < 0 p/ t 0
f(t) = A sen(t)
F(s) =
A s + 2
2
A transformada de Laplace pode ser obtida atravs do Matlab: syms t s A w f = A*sin(w*t) F = laplace(f) pretty(F) syms t s A w f = A*w /(s^2+w^2) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = A sen(t)
Transformada inversa
F(s) =
A s + 2
2
12
Exemplo numrico: syms t s f = 5*sin (4*t) F = laplace(f) pretty(F) syms t s f = 8/(s^2+4) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = 5 sen(4t)
Transformada inversa
f(t) =
8 s +4
2
0 f(t) = A cos(t)
Onde: A e so constantes.
A
p/ t < 0 p/ t 0
f(t) = A cos(t)
F(s) =
As s + 2
2
A transformada de Laplace pode ser obtida atravs do Matlab: syms t s A w f = A*cos(w*t) F = laplace(f) pretty(F) syms t s A w f = A*s /(s^2+w^2) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = A cos(t)
Transformada inversa
F(s) =
As s 2 + 2
Exemplo numrico: syms t s f = 5*cos(4*t) F = laplace(f) pretty(F) syms t s f = 3*s/(s^2+4) F = ilaplace(f ) pretty(F)
Transformada direta
f(t) = 5 cos(4t)
Transformada inversa
f(t) =
3s s +4
2
13
0 u(t) = A 0
f(t) = A A u(t )
F(s) =
A 1 - e - s s
Obs: A transformada de Laplace de uma funo pulso no da para ser obtida atravs do Matlab.
(t)
0 1 lim t 0 t 0
L[(t)] = 1
Obs: A transformada de Laplace de uma funo impulso no da para ser obtida atravs do Matlab.
14
L[e-t f(t)] =
Exemplos: disp('Exemplo 01') syms t s a w f = exp(-a*t) * cos(w*t) pretty(f) F = laplace(f) pretty(F) disp('Exemplo 02') syms t s f = exp(2*t)* sin(3*t) pretty(f) F = laplace(f) pretty(F)
a) L[e t cos(t)]
b) L[e2t sen(3t)]
dnF(s) ds
n
Dica:
f f ' g - g' f = g g2
L[tn e-t ] =
n! (s + )n+1
Onde : (n=1,2,3,......)
15
Exemplos: % Exemplo 01 disp('Exemplo 01') syms t s f = t^2 * exp(5*t) pretty(f) F = laplace(f) pretty(F) disp(' ') disp('Exemplo 02') syms t s f = t^2 * sin(t) pretty(f) F = laplace(f) pretty(F)
2 5t a) L[t e ]
b) L[t2 sen(t)]
Se existe a Transformada de f(t) e de f(t), ento a T.L. de f(t) ser obtida como:
dn [f(t)] n n-1 n-2 n-2 n-1 L = s F(s) - s f(0) - s f '(0) + + sf (0) - f (0) n dt Se as condies iniciais forem iguais a zero teremos: dn [f(t)] n L = s F(s) dtn
2.15. TRANSFORMADA DE LAPLACE DE INTEGRAIS
Se existe a Transformada de f(t), ento a T.L. da integral de f(t) ser obtida como:
f(t)dt =
0
F(s) s
16
Programa Matlab: F_exponencial.m clc; clear; disp('Funo Exponencial'); syms t A = 3; a = 2; ut = A*exp(-a*t); disp('u(t) = '); pretty(ut); U = tf([A],[1 a])
% % % % % % % %
Limpa a tela e as variveis Exibe o comentrio Varivel simblica t Amplitude da curva Decaimento da curva Funo u(t) Exibe a funo u(t) Funo exponencial em 's'
Programa Matlab: F_rampa.m clc; clear; disp('Funo Rampa'); syms t A = 2; ut = A*t; disp('u(t) = '); pretty(ut); U = tf([A],[1 0 0])
% % % % % % %
Limpa a tela e as variveis Exibe o comentrio Varivel simblica t Inclinao da curva Funo u(t) Exibe a funo u(t) Funo Rampa em 's'
Programa Matlab: F_rampa.m clc; clear; disp('Funo Acelerao'); syms t A = 4; ut = A*t^2; disp('u(t) = '); pretty(ft); U = tf([A],[1 0 0 0])
2.20. FUNO SENO
% % % % % % %
Limpa a tela e as variveis Exibe o comentrio Varivel simblica t Inclinao da curva Funo u(t) Exibe a funo u(t) Funo Acelerao em 's'
Programa Matlab: F_seno clc; clear; disp('Funo Seno'); syms t A = 2; w = 3; ut = A*sin(w*t); disp('u(t) = '); pretty(ut); U = tf([A*w],[1 0 w^2])
% % % % % % % %
Limpa a tela e as variveis Exibe o comentrio Varivel simblica t Amplitude da curva Freqncia da curva Funo u(t) Exibe a funo u(t) Funo Seno em 's'
17
Programa Matlab: F_cosseno clc; clear; disp('Funo Cosseno'); syms t A = 5; w = 2; ut = A*cos(w*t); disp('u(t) = '); pretty(ut); U = tf([A 0],[1 0 w^2])
% % % % % % % %
Limpa a tela e as variveis Exibe o comentrio Varivel simblica t Amplitude da curva Frequencia da curva Funo u(t) Exibe a funo u(t) Funo Cosseno em 's'
O processo inverso de determinao da funo de tempo f(t) a partir da Transformada de Laplace F(s) chamado de Transformada Inversa de Laplace e a notao utilizada para design-la L1 . A Transformada Inversa de Laplace pode ser obtida a partir de F(s), com o auxilio da seguinte integral de inverso:
L1 [F(s)] = f(t) =
1 2j
c + j
c + j
F(s)e st ds ,
para t > 0
2.23. TRANSFORMADA INVERSA DE LAPLACE COM O MATLAB Plos distintos: Considere a seguinte Funo: F(s) =
s+7 s + 8s + 15
2
Programa: clc clear syms t s sys =(s+7)/(s^2+8*s+15); pretty(sys) sys1 = ilaplace(sys); sys2 = simplify(sys1); pretty(sys2) Soluo: %Limpa a tela %Limpa a variveis da memria %Define as variveis simblicas s e t %Equao de F(s) %Exibe a equao a ser transformada %Aplica a Transformada Inversa %Simplifica a equao Transformada %Exibe a equao Transformada
18
s+7 s 2 + 2s + 5
Programa: clc clear syms t s sys =(s+7)/(s^2+8*s+15); pretty(sys) sys1 = ilaplace(sys); sys2 = simplify(sys1); pretty(sys2) Soluo: %Limpa a tela %Limpa a variveis da memria %Define as variveis simblicas s e t %Equao de F(s) %Exibe a equao a ser transformada %Aplica a Transformada Inversa %Simplifica a equao Transformada %Exibe a equao Transformada
(s 3 + 2s + 5) (s + 3) 4
Programa: clc clear syms t s sys =(s^3+2*s+5)/((s+3)^4); pretty(sys) sys1 = ilaplace(sys); sys2 = simplify(sys1); pretty(sys2) Soluo: %Limpa a tela %Limpa a variveis da memria %Define as variveis simblicas s e t %Equao de F(s) %Exibe a equao a ser transformada %Aplica a Transformada Inversa %Simplifica a equao Transformada %Exibe a equao Transformada
19
Exerccios: Obter a Transformada Inversa de Laplace das seguintes funes com o Matlab
a) F(s) =
(s 3 + 2s + 5) (s + 3)
4
b) F(s) =
(s 3 + 2s + 5) (s + 3) 4 (s 3 + 2s + 5) (s + 3) 4 (s 3 + 2s + 5) (s + 3) 4
c) F(s) =
(s 3 + 2s + 5) (s + 3) 4 (s 3 + 2s + 5) (s + 3) 4
d) F(s) =
e) F(s) =
f) F(s) =
B(s) : A(s)
Onde alguns ai e bi podem ser nulos. No MATLAB os vetores linha num e den so formados pelos coeficientes do numerador e do denominador da Funo de Transferncia. Ou seja: num = [b0 b1 b2 .... bn] den = [a0 a1 a2 .... an] O comando [r,p,k]=residue(num,den) Determina os resduos (r), os plos (p) e o termo direto (k) da expanso em fraes parciais da relao entre dois polinmios B(s) e A(s). B(s) A expanso em fraes parciais de dada por: A(s)
B(s) r(1) r(2) r(k) r(n) = + +L+ +L+ + + k(s) A(s) s p(1) s p(2) s p(k) s p(n)
(2.1)
Comparando as equaes eqs.(2.1) e (2.6), notamos que p(1) = -p1, p(2) = -p2,...., p(n)= pn; r(1) = a1, r(2) = a2,...., r(n)= -an. [k(s) um termo direto.]
20
F(s) =
Para esta funo, temos: num = [2 5 3 6] den = [1 6 11 6] O Comando [r,p,k]=residue(num,den) Apresenta o seguinte resultado: r= -6.0000 -4.0000 3.0000 p= -3.0000 -2.0000 -1.0000 k= 2 Note que os resduos retornam na coluna vetor r, o lugar dos plos, na coluna p, e o termo direto, na linha vetor k. Essa a representao em MATLAB da seguinte expanso em fraes parciais de B(s)/A(s):
F(s) =
O comando residue pode ser tambm utilizado para formar os polinmios (numerador e denominador) a partir de suas expanses parciais em fraes. Ou seja, o comando: [num,den]=residue(r,p,k) Onde r, p e k foram fornecidos previamente pelo MATLAB, convertendo de volta a expanses em fraes parciais para a relao polinomial, como segue: [num,den] = residue(r,p,k) printsys(num,den,s) num/den=
21
2s ^ 3 + 5s ^ 2 + 3s + 6 s ^ 3 + 6s ^ 2 + 11s + 6
O comando printsys(num,den,s) apresenta o num/den em termos da relao polinomial em s. Note que, se p(j) = p(j + 1) = L = p(j + m 1) [isto , p j = p j+1 = L = p j+m1 ], o plo p(j)
Para esta funo temos: num = [0 1 2 3] den = [1 3 3 1] O Comando [r,p,k]=residue(num,den) Apresenta o resultado mostrado adiante. a representao em MATLAB da seguinte expanso em fraes parciais de B(s)/A(s):
F(s) =
22
Note que o termo direto k zero. Para obter a funo original B(s)/A(s) a partir de r, p, e k, insira o seguinte programa:
F(s) =
O MATLAB tem um comando [num,den] = residue(r,p,k) que permite obter zeros, polos e o ganho K de B(s)/A(s). Considere o sistema definido por:
F(s) =
Para obter zeros (z), plos (p) e ganho (k), insira o seguinte programa em MATLAB: num = [0 0 4 16 12]; den = [1 12 44 48 0]; [z,p,k] = tf2zp(num,den) Ento, o computador vai apresentar os seguintes dados na tela: z= -3 -1 p= 0 -6.0000 -4.0000 -2.0000 k= 4
23
Os zeros esto em s = -3 e -1. Os plos esto em s = 0, -6, -4 e -2. O ganho K 4. Se os zeros, os plos e o ganho K forem dados, ento o seguinte programa em MATLAB vai produzir o num/den original: z = [-1; -3]; p= [0;-2;-4;-6]; K = 4; [num,den] = zp2tf(z,p,K); printsys(num,den,s)
num / den =
Exerccios
01) Obter a expanso em fraes parciais das seguintes funes, utilizando o MATLAB. E em seguida obtenha a Transformada Inversa de Laplace de F(s): a) F(s) =
b)
24
02) Obtenha a expresso B(s)/A(s)= num/den com o MATLAB. a) Sendo que a funo B(s)/A(s) tem os seguintes zeros, plos e ganho K: Zeros em s = -1, s = -2 Plos em s = 0, s = -4, s = -6 Ganho k = 5
b) a) Sendo que a funo B(s)/A(s) tem os seguintes zeros, plos e ganho K: Zeros em s =-3, s = -4, s = -1 Plos em s = 3, s = -5, s = 0, s = -2 Ganho k = 8
O teorema do valor inicial (TVI) permite que se descubra o valor inicial f(0 +) do sinal f(t) cuja Transformada de Laplace F(s) seja conhecida. O teorema do valor inicial estabelece que:
O teorema do valor final (TVF) permite que se descubra o valor final f() do sinal f(t) cuja Transformada de Laplace F(s) seja conhecida. O teorema do valor final estabelece que:
Restries de aplicao :
Os plos de F(s) = B(s) / A(s) , aps cancelamento dos termos comuns, tm que estar no semi-plano esquerdo (SPE);
25
S permitido um nico plo em s=0 ( de esperar f() = cte como na funo degrau); O valor de f() indefinido se existirem pares de plos conjugados no eixo j , pois a f(t) conter funes de tempo oscilante. O valor de f() indefinido se existirem pares de plos conjugados no eixo no semiplano esquerdo (SPD), pois a f(t) conter funes de tempo crescentes exponencialmente. Este teorema no se aplica quando f(t) for uma funo senoidal sen(t), pois s F(s) tem plos em s= j e o lim f(t) no existe.
t
Exemplos: Encontre valor inicial f(0 +) o valor final f() dos sinais abaixo:
a)
F(s) = 12(s + 1) s(s 2 + 1)
Valor inicial:
f(0 +) = lim s
s
12(s + 1) s(s 2 + 1)
=0
Valor final:
Valor inicial:
Como a ordem dos dois polinmios numerador e denominador so iguais efetua-se a diviso polinomial:
F(s) = 4s + 5 3 =2+ = 2 + Y(s) e aplica-se o teorema do valor inicial a Y(s): 2s + 1 2s + 1
Valor final:
26
A Funo de Transferncia de um sistema de equaes diferenciais lineares invariantes no tempo definida como a relao da Transformada de Laplace da sada (funo resposta) para a transformada de Laplace da entrada (funo de excitao) sob a hiptese de que todas as condies iniciais so nulas.
Funo de transferncia = F(s) = L [sada] L [entrada] Condies
(3.1)
iniciais nulas
Usando o conceito de Funo de Transferncia, possvel representar a dinmica do sistema pelas equaes algbricas em s.
(3.2)
Fatorando o polinmio do numerador e do denominador esta mesma Funo de Transferncia pode ser expressa em termos do produto dos fatores como:
F(s) = Y(s) K ( s z1 )( s z2 ) L ( s zm 1 )( s zm ) = U(s) ( s p1 )( s p2 ) L ( s pn1 )( s pn )
(3.3)
referido para ser um plo da Funo de Transferncia. Assumindo agora que os plos {pi } so reais ou complexos mas distintos, podemos escrever a eq.(3.4) como uma frao parcial:
F(s) = C1 C2 Cn1 Cn Y(s) = + +L+ + U(s) s p1 s p2 s pn1 s pn (3.4)
Onde C1 , C2 , L , Cn1 , Cn so chamados de resduos e podem ser calculado pelo mtodo fraes parciais visto no capitulo 2.
27
Sistemas contnuos no Matlab so representados por Funes de Transferncia. Uma vez que as Funes de Transferncia so descritas por razes de polinmios, elas so definidas no Matlab por vetores linha de seus coeficientes. Por exemplo:
F(s) =
m m 1 + L + bm 1 s + bm Y(s) b0 s + b1 s = n U(s) a0 s + b1 s n1 + L + an1 s + an
No Matlab: num = [bo b1 bm-1 bm] den = [ao a1 an-1 an] sys = tf(num,den) onde: num o numerador den o denominador
Programa MATLAB 3-1 %---------- Representao da da Funo de Transferncia ---------clc clear %***** Entrar com os valores do numerador e denominador da Funo de Transferncia ***** num = [1 5]; den = [1 3 2] %***** Funo de Transferncia na forma polinomial ***** sys = tf(num,den)
Comandos do matlab
% serve para colocar um comentario clc limpa a janela de comandos clear remove todas as variveis da workspace A entrada de dados no Matlab tambm pode ser feita a partir da definio do ganho e dos zeros e plos do sistema que tambm so descritos por vetores linha. Por exemplo:
F(s) = Y(s) K ( s z1 )( s z2 ) L ( s zm 1 )( s zm ) = U(s) ( s p1 )( s p2 ) L ( s pn1 )( s pn )
28
No Matlab: zeros = [z1 z2 zm-1 zm] polos = [p1 p2 pn-1 pn] ganho = k sys = zpk(zeros,polos,ganho) onde: zeros so os zeros do sistema polos so os plos do sistema ganho o ganho do sistema
Exemplo: Represente a Funo de Transfrencia
Y(s) 3(s 2)(s 1) = com o Matlab: R(s) (s 7)(s 3)(s 4)
Programa MATLAB 3-2 %---------- Representao da Funo de Transferncia ---------clc clear %***** Entrar com os valores dos plos, zeros e do ganho da Funo de Transferncia ***** zeros = [2 1] polos = [7 3 4] ganho = 3 %***** Funo de Transferncia na forma de plos, zeros e ganho ***** sys = zpk(zeros,polos,ganho)
Converte funes de transferncia para plos e zeros. [z,p,k] = tf2zp(num,den) Ou seja, encontra os zeros, os plos e o ganho
F(s) = Y(s) K ( s z1 )( s z2 ) L ( s zm 1 )( s zm ) = U(s) ( s p1 )( s p2 ) L ( s pn1 )( s pn )
29
Programa MATLAB 3-3 %---------- Transformao da Funo de Transferncia ---------clc clear %***** Entrar com os valores do numerador e denominador da Funo de Transferncia ***** num = [1 5] den = [1 3 2] %***** Converte a Funo de Transferncia para plos e zeros ***** [z,p,k] = tf2zp(num,den) sys = zpk(z,p,k)
Converte plos, zeros e ganhos para Funes de Transferncia. [num,den] = tzp2tf(z,p,k) Ou seja, encontra Funes de Transferncia na forma de polinmio:
F(s) =
m m 1 + L + bm 1 s + bm Y(s) b0 s + b1 s = n n 1 U(s) a0 s + b1 s + L + an1 s + an
Programa MATLAB 3-4 %---------- Transformao da Funo de Transferncia ---------clc clear %***** Entrar com os valores dos plos, zeros e do ganho da Funo de Transferncia ***** z = [ 2 ; 1] p = [7 ; 3 ; 4] k=3 %***** Converte a Funo de Transferncia para a forma polinomial ***** [num,den] = zp2tf(z,p,k) sys = tf(num,den)
30
Criaao de uma Funao de Transfrencia por outro mtodo s = tf('s'); sys = (s+1)/(s^2+3*s+1)
Programa MATLAB 3-5 %---------- Representao da Funo de Transferncia ---------clc clear %***** Especif ica a Funo de Transferncia sys(s) =s (varivel de Laplace ) ***** s = tf('s'); %***** Entrar com a Funo de Transferncia diretanente com a espresso de s ***** sys = (s+1)/(s^2+3*s+1)
O matlab tambm possui comandos especializados para obter a resposta temporal de sistemas. Por exemplo:
Resposta ao degrau unitrio
Resposta ao degrau unitrio: Criao da Funo de Transfrencia - Mtodo 01 Programa MATLAB 3-6 %---------- Resposta a funo degrau unitrio Mtodo 1 ---------close all clear all clc % Criaao de uma Funo de Transfrencia num = [1 1] den = [1 3 1] sys = tf(num,den) % Aplicao de um degrau ao sistema f igure(1) step(sys) grid on
31
Comandos do matlab
close all fecha todas as janelas de figuras abertas clear all remove todas as variveis e funoes da workspace figure( ) cria uma nova figura gride on habilita as linhas de grade dos grficos
Resposta ao degrau unitrio: Criao de uma Funo de Transfrencia - Mtodo 2 Programa MATLAB 3-7 %---------- Resposta a funo degrau unitrio Mtodo 2 ---------close all; clear all; clc; % Criaao de uma Funo de Transfrencia s = tf('s'); sys = (s+1)/(s^2+3*s+1) % Aplicao de um degrau ao sistema f igure(1) step(sys) grid on
Resposta ao degrau unitrio com intervalo de tempo que a resposta ser apresentada Programa MATLAB 3-8 %---------- Resposta a funo degrau unitrio num intervalo de tempo close all; clear all; clc % Criaao de uma Funo de Transfrencia s = tf('s'); sys = (s+1)/(s^2+3*s+1) % Aplicao de um degrau ao sistema f igure(1) % Intervalo de tempo que sera apresentada a resposta do sistema tempo=8 step(sys,tempo) grid on
32
Programa MATLAB 3-9 %---------- Resposta a funo impulso unitrio num intervalo de tempo close all clear all clc % Criaao de uma Funo de Transfrencia z = [-2] p = [-1 ;-3] k = [1] sys = zpk(z,p,k) % Aplicao de um degrau ao sistema f igure(1) % Intervalo de tempo que sera apresentada aresposta do sistema tempo=10; impulse(sys,tempo) grid on
Programa MATLAB 3-10 %---------- Aplicacao de uma funcao qualquer ao sistema: funo rampa close all; clear all; clc % Def inindo a funcao no interval de tempo t=0:0.1:10; U= 15*t; num = [1 1] den = [1 3 1] sys = tf(num,den) f igure(1) lsim(sys,U,t) grid on % funo rampa % Criaao de uma Funo de Transfrencia
33
Funo acelerao
Programa MATLAB 3-11 %---------- Aplicacao de uma funcao qualquer ao sistema: funo acelerao close all; clear all; clc; % Def inindo a funcao no interval de tempo t=0:0.1:10; U= 15*t; num = [1 1] den = [1 3 1] sys = tf(num,den) f igure(1) lsim(sys,U,t) grid on % funo rampa % Criaao de uma Funo de Transfrencia
Funo seno
Programa MATLAB 3-12 % Aplicacao de uma funcao qualquer ao sistema: funo seno close all; clear all; clc; % Def inindo a funcao no interval de tempo t=0:0.1:1000; A= 3 w = 377 f i = pi/2 U= A*sin(w*t+f i); num = [1 4] den = [1 3 1] sys = tf(num,den) f igure(1) lsim(sys,U,t) grid on % Amplitude % Velocidade angular % Fase inicial % Funo seno
34
Funo cosseno
Programa MATLAB 3-13 % Aplicacao de uma funcao qualquer ao sistema: funo cosseno close all;clear all;clc; % Def inindo a funcao no interval de tempo t=0:0.1:1000; A= 3 w = 377 f i = pi/2 U= A*cos(w*t+f i); num = [1 4] den = [1 3 1] sys = tf(num,den) f igure(1) lsim(sys,U,t) grid on % Amplitude % Velocidade angular % Fase inicial % Funo cosseno
Funo exponencial
Programa MATLAB 3-14 % Aplicacao de uma funcao qualquer ao sistema: funo exponencial close all; clear all;clc ; % Def inindo a funcao no interval de tempo t=0:0.1:20; A= 3 a=2 U= A*exp(-a*t); num = [1 4] den = [1 3 1] sys = tf(num,den) f igure(1) lsim(sys,U,t) grid on title ('** Resposta a funo exponencial **') xlabel ('** Tempo **') ylabel ('** Amplitude **') % Amplitude % % Funo exponencial
35
3.5. SISTEMAS ELTRICOS Exemplo 01: Representar a Funo de Transferncia do sistema eltrico com o Matlab
VS (s) = VE (s)
1 CL R 1 s2 + s + L CL
Onde: R = 10; L = 20 m H e C = 3 F
Programa MATLAB 3-15 % Funcao de Transferencia de um sistema RLC close all; clear all;clc ; % Def inindo os valores das constantes L = 20e-3; R = 10; C = 3e-6; % Criaao de uma Funo de Transfrencia num = [1/C*L]; den = [1 R/L 1/C*L]; sys = tf(num,den)
Exercicio 01: Desenvolva um programa em Matlab para o circuito R-L-C e aplique uma uma tenso de entrada de 10 volts [VE(t) = 10 volts]. Para essa tenso aplicada analise a resposta desse sistema
Exercicio 02: Desenvolva um programa em Matlab para o circuito R-C-L e aplique uma uma tenso de entrada de 10 volts [VE(t) = 10 volts]. Para essa tenso aplicada analise a resposta desse sistema.
36
3.6. CIRCUITOS COMPLEXOS VIA MTODO DAS MALHAS Exemplo 01: Dado o circuito abaixo, obter a Funo de Transferncia I2(s)/V(s)
Programa MATLAB 3-16 % Nome do arquivo: clc; clear; disp('Exemplo 01') syms s R1 R2 L C V
% Limpa a tela; % Limpa as variaveis do programa. % Exibe ttulo. % Constri objetos simblicos para a varivel de freqncia % 's', e 'R1', 'R2', 'L', 'C' e 'V'. A2=[(R1+L*s) V;-L*s 0] % Forma Ak = A2. A=[(R1+L*s) -L*s;-L*s (L*s+R2+(1/(C*s)))] % Forma A. I2=det(A2)/det(A); % Usa a Regra de Cramer para calcular I2(s). I2=simple(I2); % Reduz a complexidade de I2(s). G=I2/V; % Forma a funo de transferncia, I2(s)/V(s). % G(s) = % Exibe ttulo. 'G(s)' pretty(G) % Apresenta G(s) na forma "bonita".
Comentrios:
O Toolbox de Matemtica Simblica pode ser usada para simplificar a soluo de equaes simultneas empregando a Regra de Cramer. Um sistema de equaes simultneas pode ser representado em forma matricial por Ax = B, onde A a matriz formada pelos coeficientes das incgnitas das equaes simultneas, x, um vetor contendo as incgnitas e B um vetor contendo as entradas. A regra de Cramer estabelece que xk, o k-simo elemento do vetor soluo, x, obtido atravs de xk = det(Ak)/det(A), onde Ak a matriz formada pela substituio da k-sima coluna da matriz A pelo vetor de entrada, B. No texto, chamamos det(A) de delta. No MATLAB, as matrizes so escritas com um espao ou uma vrgula separando os elementos no interior de cada linha. A linha seguinte indicada por um ponto-e-vrgula ou por um retorno de carro. A matriz, como um todo, delimitada por um par de colchetes. Aplicando o que acaba de ser dito soluo do Exemplo anterior: A=[{R1+L*s) -L*s;-L*s (L*s+R2+(1/(C*s)))] e Ak=[(R1+L*s) V;-L*s 0]. A funo det(matriz quadrada) calcula o determinante do argumento matriz quadrada. Determinemos a funo de transferncia, G(s) = I2(s)/V(s), pedida no Exemplo. O comando, simple(S), onde S uma funo simblica, introduzida na soluo. Simple(S) simplifica a soluo reduzindo o tamanho da expresso S. O uso de simple(I2) reduz a soluo combinando os termos de mesma potncia da varivel de Laplace, s.
37
Exerccios
01) Obter a Funo de Transferncia I3(s)/V(s) com Matlav
3.7. SISTEMAS MECNICOS Exemplo 01: Obter a Funo de Transferncia do sistema mecnico mostrado na Figura abaixo,
considerando que o termo forante u(t) a entrada e a posio da massa, y(t) a sada.
U(s) = Y(s)
1 m b k s2 + s + m m
38
Programa MATLAB 3-17 % Funcao de Transferencia de um sistema Massa-Mola-Amortecedor close all; clear all;clc ; % Def inindo os valores das constantes m = 10; k = 20; b = 4; % Criaao de uma Funo de Transfrencia num = [1/m]; den = [1 b/m k/m]; sys = tf(num,den)
39
Como exerccio, realize a representao deste sistema no Matlab: - Admita como sinal de entrada xi e de sada xo. X 0 (s) - Encontre a Funo de Transfrencia X i (s) a) Se o sistema for excitado por um impulso de 0,10 m de posio (ex: A roda passa por um tacho na pista com 10cm ), observe o sinal de sada x0(t). Ocorreu alguma oscilao? Por qu? b) Se for retirado o amortecedor da suspenso, o que acontece com a posio de sada do carro? O carro estabiliza em alguma posio? c) Qual deveria ser o valor do amortecedor para que o sistema no apresentasse oscilao e a resposta de sada fosse o mais rpido possvel para zero?
& & y + a 1 y + K + a n 1 y + a n y = b 0 u + b1 u + L + b n 1u + b n u
( n 1)
(n)
( n 1)
(3.5)
Pode ser representando por espao de estado atravs das seguintes equaes matriciais:
1 0 M 0 a n 1
0 1 M 0 a n 2
L L
0 x 1 1 0 x 2 2 O M M + M L 1 x n 1 n 1 L a1 x n n
(3.6)
40
x1 x y = [1 0 L 0] 2 + 0 u M x n
Onde:
(3.7)
0 = b 0 1 = b1 a 1 0 2 = b 2 a 11 a 2 0 3 = b 3 a 1 2 a 21 a 3 0 M n = b n a 1 n 1 L a n 11 a n 0
(3.8)
As eqs.(3.6 e 3.7) podem ser reescritas atravs de uma forma padro, na qual so dadas por:
(3.9) (3.10)
41
Normalmente, a matriz D zero, j que nos sistemas fsicos aparece uma dinmica em todos os caminhos entre as entradas e sadas. Logo, a equaes por espao de estado podem ser escritas da seguinte forma:
& x (t) = A x + B u
y(t) = C x
eq.(3.1) eq.(3.2)
Uma representao por diagrama de blocos das eqs.(4.8 e 4.9) pode ser visto atravs da Fig.(4.2).
FIGURA 3.2 - Diagrama de blocos da equao de estado e de sada (matriz D nula) A equao caracterstica do sistema, na qual determina as localizaes dos plos obtida atravs da seguinte equao:
eq.(3.3)
42
X(s) = F(s)
1 m b k s2 + s + m m
E a equao de sada :
x1 y = 1 0 x 2
43
Programa MATLAB 3-18 %---------- Representao da em Representao de Estados ---------clc; clear all; close all % Def inindo os valores das constantes m = 10; k = 20; b = 4; %***** Montagem das Matrizes de estado e sada ***** A = [0 1; -k/m -b/m]; B = [0 ; 1/m]; C = [1 0]; D = [0]; %***** Representao em espao de estados ***** sys = ss(A,B,C,D)
& x = Ax + Bu y = Cx + Du
Programa MATLAB 3-19 %---------- Transformao de funo de Transferencia para Estados de Estados---------close all; clear all;clc ; % Def inindo os valores das constantes m = 10;
44
k = 20; b = 4; % Criaao de uma Funo de Transfrencia num = [1/m]; den = [1 b/m k/m]; sys = tf(num,den) % Transformao de Funo de Transferencia para Estados de Estados [A,B,C,D] = tf2ss(num,den)
De espao de estados para funo de transferncia Se o sistema tem uma entrada e uma sada, o comando [num, den] = ss2tf(A,B, C,D) Produz a funo de transferncia Y(s)/U(s). Se o sistema possuir mais de uma entrada, deve-se usar o seguinte comando:
& x = Ax + Bu y = Cx + Du
Para a representao em funo de transferncia
& x1 0 1 x1 1 0 u1 & = + x2 2 3 x 2 0 1 u2
x u y = 1 0 1 + 0 0 1 x u 2 2
45
Podem-se obter duas Funes de Transferncia para este sistema. Uma relacionada a sada y com a entrada u1 e a outra relacionada a sada y com a entrada u2. (Quando se considera a entrada u1, admiti-se que u2 zero, e vice-versa.) A seguinte sada de um programa MATLAB ilustra o exposto.
Programa MATLAB 3-20 %---------- Transformao de Estados de Estados parae Funo de Transfrencia ---------close all; clear all;clc ; %***** Montagem das Matrizes de estado e sada ***** A =[0 1;-2 -3]; B =[1 0; 0 1]; C =[1 0]; D =[0 0]; % Criaao de uma Funo de Transfrencia [num,den] = ss2tf(A,B,C,D,1) sys1 = tf(num,den) [num,den] = ss2tf(A,B,C,D,2) sys2 = tf(num,den)
46
47
4.7. REDUO DE DIGRAMAS DE BLOCOS COM O MATLAB 4.8. BLOCOS EM SRIE COM MATLAB
Suponha que temos desenvolvido modelos matemticos na forma de Funo de Transferncia para a planta, representada por G(s), bem como o controlador, representado por H (s) e, possivelmente, muitos outros componentes do sistema como sensores e atuadores. O objetivo interligar esses componentes para formar um sistema de controle. Iremos utilizar funes do MATLAB para realizar as transformaes do diagrama de blocos. O processo a ser controlado mostrado na Figura 4.1.
48
Um simples sistema de controle de malha aberta pode ser obtido atravs da interligao da Planta e do Controlador em sries como ilustrado na Figura 4.2. Podemos utilizar o MATLAB para calcular a Funo de Transferncia R (s) para Y (s), conforme ilustrado no Exemplo a seguir
1 500s 2
e o controlador,
s +1 . Podemos usar a funo series para a s+2 cascata de duas Funes de Transferncia G1 (s) e G2 (s) como mostra a Figura 4.3.
T(s) =
G1 (s) =
num1 den1
G2 (s) =
num2 den2
[nun,den]=series(num1,den1,num2,den2)
Figura 4.3 - Funo series
Anotaes
49
50
A Funo de Transferncia Gc (s)G(s) calculado utilizando a funo series como mostrado na Figura 4.4.
Gc (s)G(s) =
T(s) =
G1 (s) =
num1 den1
G2 (s) =
num2 den2
[nun,den]=parallel(num1,den1,num2,den2)
Figura 4.5 - Funo parallel
51
T(s) =
G(s) =
num1 den1
H(s) =
num2 den2
[nun,den]=feedback(num1,den1,num2,den2,sinal)
Figura 4.6 - Funo feedback
Exemplo:
Um sistema multi-malha mostrado na Figura a seguir. Determine a funo de Transferncia de Malha Fechada.
52
EXERCCIOS RESOLVIDOS
01) Reduzir o diagrama de blocos mostrado na figura abaixo a uma nica Funo de Transferncia.
Resp:
02) Reduzir o sistema mostrado na figura abaixo a uma nica Funo de Transferncia.
Resp:
53
EXERCCIOS ROPOSTOS
01) Obter a Funo de Transferncia equivalente T(s) = figura abaixo.
Resp.
T(s) =
s3 + 1 2s 4 + s2 + 2s
02) Reduza o diagrama de blocos mostrado na Figura a seguir a uma nica Funo de TransfernC(s) cia, T(s) = . Use os seguintes mtodos: R(s) a) Reduo de diagramas de blocos; b) MATLAB.
54
55
05) Reduzir o sistema mostrado na figura abaixo a uma nica Funo de Transferncia, C(s) T(s) = . R(s)
06) Obtenha a Funo de Transferncia, T(s) = Use os seguintes mtodo: a) Reduo de diagramas de blocos;
1 1 , G2 (s) = 2 , s+7 s + 2s + 3 1 1 5 3 1 1 G3 (s) = , G4 (s) = , G5 (s) = , G6 (s) = 2 , G7 (s) = , G8 (s) = . s+4 s s+7 s+2 s+6 s + 5s + 10
56
06) Reduza o diagrama de blocos mostrado na Figura a seguir a um nico bloco, T(s) =
C(s) . R(s)
08) Determine o sistema com realimentao unitria que equivalente ao mostrado na Figura abaixo
57
09) Dado o diagrama de blocos de um sistema mostrado na Figura abaixo, obtenha a Funo de Transferncia, G(s) = 22 . 11
10) Reduza o diagrama de blocos mostrado na Figura a seguir a um nico bloco, T(s) =
C(s) . R(s)
58
59
Note-se que nas equaes anteriores o escalar iu um ndice para as entradas dos sistema e especifica qual entrada deve ser usada para a resposta, e t o tempo especificado pelo usurio. Se o sistema envolve vrias entradas e vrias sadas, o comando step, tal como apresentado nas equaes anteriores produz uma srie de grficos de resposta ao degrau, um para cada combinao de entradas e sadas possveis de acordo com
& x = Ax + Bu y = Cx + Du
A resposta ao impulso ou rampa do sistema de controle pode ser obtida multiplicando-se ou dividindo-se por s a Funo de Transferncia a malha fechada e usando-se o comando step.
G(s) =
2s + 4 s + 1, 3s 2 + 7s + 4
3
Este sistema representado como dois conjuntos numricos, cada qual contendo os coeficientes dos polinmios do numerado e do denominador, em potncias decrescentes de s, como se mostra a seguir: num = [0 0 2 4]; den = [1 1.3 7 4] Convm observar que a ausncia de determinado termo representativo de uma potncia de s deve ser indicado com um zero no lugar respectivo. importante notar aqui o cuidado que se deve ter ao entrar com os elementos do arranjo numrico. Se, por exemplo, for digitado como denominador desta funo den = [1 1,3 7 4] o programa trata o denominador em pauta como um polinmio completamente diferente do correto em funo da presena da vrgula entre o 1 e o 3. Neste caso, o denominador considerado seria den = [1 1 3 7 4] portanto, as respostas do sistema correto e do sistema errado seriam diferentes. Os usurios do MATLAB devem evitar o aparentemente inocente e inconseqente erro de trocar um ponto decimal por uma vrgula.
60
C(s) 25 = 2 R(s) s + 4s + 25
Obter o grfico de uma curva de resposta ao degrau unitrio. Programa MATLAB 5-1 permite obter o resultado desejado. Um grfico da curva de resposta do sistema ao degrau unitrio mostrado na figura abaixo: Programa MATLAB 5-1 %---------- Resposta ao degrau unitrio ---------%***** Resposta ao degrau unitrio da funo de transferncia do sistema***** %***** Entrar com os valores do numerador e denominador da Funo de Transferncia ***** clc num = [0 0 25]; den = [1 4 25]; sys = tf(num,den); %***** Entrar com o seguinte comando de resposta ao degrau ***** step(sys) %***** Entrar com os valores das coordenadas e com o ttulo do grf ico ***** grid title('Resposta ao degrau unitrio de G(s) = 25/(s^2+4s+25)') Resposta obtida:
61
C(s) 6, 3223s2 + 18s + 12, 8112 = 4 R(s) s + 6s 3 + 11, 3223s 2 + 18s + 12, 8112
Obter tambm um grfico de curva de resposta do sistema, marcando tal curva com o smbolo o. Para obter um grfico da curva de resposta marcada com o, pode-se utilizar o programa MATLAB 5-2. A curva de resposta resultada mostrada na Figura a seguir. Programa MATLAB 5-2 % ---------- resposta ao degrau unitrio ---------%***** Se desejar plotar a curva de resposta ao degrau unitrio % com as marcas o, x, --, etc, utilizar o programa mostrado abaixo ***** %***** Entrar com os valores do numerador e denominador da Funo de % Transferncia a malha fechada ***** num =[0 0 6.3223 18 12.8112] den = [1 6 11.3223 18 12.8112] %***** Entrar com os seguintes comandos ***** [c,x,t] = step(num,den); plot(t,c,'o') %***** Entrar com as coordenadas, com o ttulo do eixo dos x e % com o ttulo do eixo dos y ***** g r id title('Resposta ao degrau unitrio') xlabel('Tempo [Segundos]') ylabel('Sada c(t)')
62
Resposta obtida:
Exemplo: Seja o sistema de controle mostrado na Figura abaixo. Neste sistema, o controlador
proporcional fornece um torque T para o elemento de carga constitudo de momento de inrcia e atrito viscoso. A perturbao de torque representada por N.
Admitindo-se que a entrada de referncia seja zero, isto , R(s)=0, a funo de transferncia entre C(s) e N(s) dada por
C(s) 1 = N(s) Js 2 + bs + k p
Portanto:
63
O erro de estado estacionrio devido a um torque perturbador de magnitude TP, dado por:
ess = lim s
s 0
TP 1 Js 2 + bs + k p s
ess =
TP kp
Em regime estacionrio, o controlador proporcional fornece o torque -TSS que igual na magnitude mas de sinal contrrio ao torque perturbador TP. A sada em regime permanente, devido ao torque perturbador, :
e ss = eP =
TP kp
O erro estacionrio pode ser reduzido aumentando-se o valor do ganho KP. No entanto, o crescimento desse valor afeta a resposta do sistema, tornando-a mais oscilatria. Verifique esse fato obtendo as curvas de resposta para um valor pequeno e para uma valor grande de KP. Plote as duas curvas de resposta em um mesmo diagrama. Para obter as curvas acima pedidas, sero considerados dois casos: Caso 1: J=1, b=0,5, KP=1 (sistema 1) C(s) 1 = 2 N(s) s + 0,5s + 1 Caso 2 s=1, b=0,5, KP=4 (sistema 2) C(s) 1 = N(s) s 2 + 0,5s + 4 Observe-se que, para o sistema 1: num1 = [0 0 1] den1 = [1 0.5 1] e que, para o sistema 2: num1 = [0 0 1] den1 = [1 0.5 4] O programa MATLAB 5-3 fornece os grficos das duas curvas de resposta de degrau em um nico diagrama. Nesse programa usa-se a notao y1 e y2 para a resposta. y1 a resposta c(t) do sistema 1 e y2 a resposta c(t) do sistema 2.
64
Para plotar vrias curvas em um nico diagrama, deve-se usar o comando hold. Ao entrar com tal comando, aparecer o seguinte na tela: hold current plot held Para liberar o grfico retido, entra-se novamente com o comando hold. A partir da o grfico ser liberado. Veja-se esta seqncia de comandos: hold current plot held hold current plot held As duas curvas de resposta no degrau so mostradas na Figura a seguir. Programa MATLAB 5-3 % ---------- Plotando duas curvas de resposta ao degrau em um nico grf ico---------%***** Entrar com os valores dos numeradores e dos denominadores das % duas Funes de Transferncia ***** clc;clear num1 = [0 0 1] den1 = [1 0.5 1] num2 = [0 0 1] den2 = [1 0.5 4] %***** Para plotar duas curvas de resposta ao degrau y1 versus t e y2 versus t em um % nico grf ico, entrar com os seguintes comandos ***** step(num1,den1); hold % Current plot held: signif ica graf ico corrente retido step(num2,den2); grid title('Respostas de Dois Sistemas ao Degrau') xlabel('tempo (segundos)') ylabel('Amplitude') %***** Supresso do comando hold ***** hold % Current plot released: siginigf ica corrente liberado
65
Resposta obtida:
Observa-se que na Figura anterior que as identificaes dos eixos x e dos y foram determinadas automaticamente. Se for necessrio identificar cada um dos eixos separadamente, preciso modificar o comando step. Por exemplo, para dar ao eixo dos x a identificao t segundos, e ao dos y sadas y1 e y2, o comando de resposta ao degrau deve ser usado com os seguintes argumentos: [y,x,t] = step(num, den, t) Veja o programa MATLAB 5-4 Desejando-se diferenciar a curva respectiva dos sistema 1 daquela que representa o sistema 2, basta entrar um comando text. A seguir sero considerados dois casos. a - escrita de texto na seta do grfico. Para escrever texto na seta do grfico, basta entrar, por exemplo, com os seguintes comandos: text(9, 0.9, ' Sistema 1 ') text(9, 0.15, ' Sistema 2 ')
66
O primeiro comando solicita ao programa que escreva 'Sistema 1', a partir das coordenadas ' x=9, y=0.9. De maneira anloga, o segundo comando faz com que seja escrito 'Sistema 2' come' ando no ponto de coordenadas x=9, y=0.15. Ver o programa MATLAB 5-4, utiliza-se o comando plot com vrios argumentos, em vez de se usar o comando hold. (O resultado o mesmo para ambos os casos). O uso do comando plot com vrios argumentos faz com que o tamanho dos valores y1 e y2 no precise ser o mesmo. No entanto, conveniente que tais valores sejam da mesma dimenso. Portanto, especifica-se o mesmo valor dos pontos de clculo, atravs da especificao dos tempos de computao dos resultados (como t=0:0.1:20). O comando step precisa incluir esta informao de tempo especificada pelo usurio. Assim, no programa MATLAB 5-4, utiliza-se o seguinte comando step: [y, x, t] = step(num, den, t) b - Identificao das curvas atravs de texto, Para marcar as curvas com textos usam-se os seguintes comandos text(t, y1, '1') text(t, y2 '2')
Programa MATLAB 5-4 % ---------- Plotando duas curvas de resposta ao degrau em um nico %grfico----------
%***** Entrar com os valores dos numeradores e dos denominadores das duas %funes de transferncia ***** num1 den1 num2 den2 = = = = [0 [1 [0 [1 0 1] 0.5 1] 0 1] 0.5 4]
%***** para plotar duas curvas de resposta ao degrau y1 versus t %e y2 versus t em um nico grfico e escrever %Sistema 1 e Sistema 2 para distinguir uma curva da outra, %entrar com os seguintes comandos ***** t = 0:0.1:20; [y1,x1,t] = step(num1,den1,t); [y2,x2,t] = step(num2,den2,t); plot(t,y1,t,y2) grid text(9,0.9,'Sistema 1'), text(9,0.15,'Sistema 2') %***** Adicionar o ttulo do grfico e os ttulos dos eixos dos x e dos y ***** title('Resposta dos dois sistemas ao degrau') xlabel('t Segundos') ylabel('Sadas y1 e y2')
67
Programa MATLAB 5-5 %*****Plotando duas curvas de resposta ao degrau em um nico %grfico***** %*****Entrar com os numeradores e os denominadores das duas %funes de transferncias ***** clc clear
= = = =
[0 [1 [0 [1
%****Para plotar duas curvas de resposta ao degrau y1 versus t e %y2 versus t em um nico grfico,marcando cada uma delas com '1' e '2', %respectivamente,entrar com os seguintes comandos***** t=0:0.4:20; [y1,x1,t] = step(num1,den1,t); [y2,x2,t] = step(num2,den2,t); plot(t,y1,'o',t,y2,'o'); text(t,y1,'1'),text(t,y2,'2'); %***** Adicionar as coordenadas, o ttulo do grfico e os ttulos dos eixos %dos x e dos y***** grid title ('resposta de dois sistemas ao degrau') xlabel('t segundos') ylabel('sadas y1 e y2')
68
O uso de tais comandos far com que as curvas sejam marcadas com 1 e 2,respectivamente de forma que elas possam ser claramente identificadas. Para este caso veja-se o programa MATLAB 5-5.(Neste programa usa-se o comando plot com argumentos mltiplos.) O grfico resultante aparece na Figura anterior.
C ( s) s = N ( s) 2s + 2s + 1
Onde N(s) uma perturbao de entrada e C(s) a sada correspondente. Nos de controle , o efeito da perturbao deve ser minimizado tanto quanto possvel. (Neste sistema, para uma entrada correspondente a uma perturbao em degrau , a saida correspondente torna-se nula em regime estacionrio.) 69
Ser obtida, a seguir, a resposta c(t) a uma perturbao em degrau unitrio.Uma vez que N(s)=1/s,tem-se
C (s) =
1 1 s = 2s + 2s + 1 s 2s + 2s + 1
c(t ) = e
1 sen t 2
A resposta c(t) tende a zero, medida que t aumenta. Agora, ser obtida esta resposta ao degrau utilizando o MATLAB. O programa MATLAB 5-6 pode ser usado para obter a resposta correspondente a uma perturbao em degrau unitrio. Obsr O bserve que que o comando pode no fornecer a resposta desejada. Poder aparecer na tela a mensagem de advertncia divide by zero. Quando isso ocorre , necessrio entrar com os pontos correspondentes aos tempos onde a resposta vai ser calculada (tal como t=0 : 0.1 : 12) e entrar o tempo t especificado pelo usurio atravs do comando step,como abaixo:
step(num,den,t)
Obtm-se, ento, a resposta c(t).O grfico gerado pelo programa MATLAB 5-6 aparece na figura a seguir.. Uma forma alternativa de obter a resposta evitando a diviso por zero modificado ligeiramente a numerador e/ou o denominador da funo de transferncia. No caso em estudo,por exemplo, se for trocado o polinmio 2s + 2s + 1 do denominador por,digamos 2s + 2s + 0.9999 ou 2s + 1.9999s + 1, ou algo desse tipo, possvel eliminar a dificuldade causada pela diviso por zero.
Programa MATLAB 5-6 %----- Resposta ao degrau unitrio %***** Obteno resposta ao degrau unitrio para um caso particular % devido ocorrncia de diviso por zero nos clculos do MATLAB*****
%*****Entrar com o numerador e com o denominador da funo de %transferncia***** clc clear num =[0 1 0]; den =[2 2 1]; %*****Entrar com o comando de resposta ao degrau***** step(num,den)
70
%Warning: divide by zero % {{{ Error using MM ??? %Student system limit on maximum variable size exceeded. %Error in MM \MATLAB\SIGSYS\step.m %On line 85 MM x=???(aa,bb,ones(n,1)zeros(nb,mb); %*****Se este tipo de advertncia aparecer,especificar os instantes de %tempo onde a funo deve ser calculada %(tal como t=0:0.1:12)e entre com o seguinte comando: %step(num,den,t)***** t= 0:0.1:120; step(num,den,t) %***** Adicionar coordenadas e ttulo ao grfico**** grid title('Resposta ao degrau unitrio')
71
Exemplo 5.3: Considere-se o sistema mostrado na figura abaixo. Obter a resposta do sistema a
uma entrada correspondente ao degrau unitrio como sinal de referncia e ao degrau unitrio como perturbao.
Resposta ao degrau unitrio com sinal de referncia. A funo de transferncia a malha fechada para o sistema supondo-se que U(s)= 0, obtida da forma a seguir:
%____Resposta entrada de referncias em degrau unitrio ______ clc clear num = [0 10.4 47 160]; den = [1 14 56 160]; v = [0 5 0 1.4]; axis(v); t =0:0.05:5; step(num,den,t) grid title('Resposta entrada de referncia em degrau unitrio')
72
Resposta perturbao em degrau unitrio A resposta a uma perturbao em degrau unitrio pode ser obtida supondo-se a entrada de referncia como sendo zero. A funo de transferncia a malha fechada entre C(s) e U(s) obtida como a seguir:
O programa Matlab 5-8 pode realizado para obter o grfico da resposta a uma entrada correspondente a um degrau unitrio como perturbao. O grfico dessa resposta exibido na figura a seguir.
73
num = [0 0 1 0]; den = [1 14 56 160]; v = [0 10 -0.04 0.04]; axis(v); t = 0:0.1:10; step(num,den,t) grid title('Resposta a uma perturbao em degrau unitrio')
74
Exemplo 5.4: Neste exemplo, ser considerado um sistema submetido somente as condies
iniciais. Seja o sistema mecnico mostrado na figura a seguir:
onde m-=1kg, b=3 N.s/m, e k=2 N/m. Suponha-se que em t=0 a massa deslocada para baixo, de forma que x(0)=0.1m e
iniciais especificadas. (Suponha-se que no h nenhuma ao externa atuando sobre o sistema.) A equao do sistema :
&& & mx + bx + kx = 0
& Para as condies iniciais x(0)=0.1m e x (0)=0.05m/s. A transformada de Laplace da equao do sistema dada por
X (s) = X ( s) =
& m s x(0) + m x(0) + b x(0) ms + bs + k (1 0.1 s ) + (1 0.05) + (3 0.1) 0,1 s + 1 0.05 + 3 0,1 = (1 s ) + (3 s ) + 2 s + 3s + 2 0,1 s + 0.35 s + 3s + 2
X (s) =
X (s) =
0,1s + 0,35s 1 s + 3s + 2 s
75
Portanto, o movimento da massa m pode ser obtida como a resposta do degrau unitrio do seguinte sistema:
G ( s) =
0,1s + 0,35s s + 3s + 2
O programa MATLAB 5-9 fornece o grfico do movimento da massa da figura: Programa Matlab 5-9 %-----Resposta a condies iniciais-----
%*****Resposta do sistema a condies iniciais convertida para %resposta ao degrau unitrio modificando-se o polinmio do %numerador***** %*****Entrar com o numerador e com o denominador da funo de %transferncia da funo G(s)***** num=[0.1 0.35 den=[1 3 2]; 0];
%*****Entrar com o seguinte comando de resposta ao degrau***** step(num,den) %*****Entrar com as coordenadas e com o ttulo do grfico***** grid title('Resposta do Sistema Massa-Mola-Amortecedor a condies iniciais')
76
& x = Ax + Bu y = Cx + Du
Programa Matlab 5-10 %-----Resposta ao degrau unitrio-----
%*****Entrar com as matrizes A,B,C e D das equaes de %estado***** A=[0 1 0 0;0 0 1 0;-100 -80 -32 -8]; B=[0;0;5;60]; C=[1 0 0 0]; D=[0] %*****Para obter a resposta ao degrau unitrio y versus t, entrar com %seguinte comando***** Step(A,B,C,D) %*****Entrar com as coordenadas e com o ttulo do grfico***** grid title('Resposta ao degrau unitrio')
77
Onde
1 0 0 0 0 0 1 0 A= 0 0 0 1 100 80 32 8
0 0 B= 5 60
C = [1 0 0 0]
D=0
Exemplo 5.5: Obter a resposta ao degrau unitrio do sistema descrito pelas seguintes equaes
de estado:
x1 y = [1 0 0] x2 x3
O Programa MATLAB 5-11 fornece um grfico da resposta do sistema ao degrau unitrio. O grfico da sada y(t) versus t mostrado na figura a seguir.
%*****Entrar com as matrizes A,B,C e D das equaes de estado***** %*****Entrar com o numerador e com o denominador da funo de %transferncia da funo G(s)***** A=[0 1 0 ;0 0 1 ;-5.008 -25.1026 -5.0325]; B=[0;25.04;-121.005]; C=[1 0 0 ]; D=[0] %*****Entrar com o seguinte comando de resposta ao degrau unitrio***** [y,x,t]=step(A,B,C,D) plot(t,y) grid title('Resposta ao degrau unitrio') xlabel('t segundos') ylabel('sada y')
78
importante notar que, se for executado o comando plot(y) em vez de plot(t,y), y ser plotado contra os pontos de computao da curva (160 pontos=10 segundos neste exemplo). Veja a figura a seguir para o grfico de y versus os pontos de computao.
%*****Entrar com as matrizes A,B,C e D das equaes de estado***** %*****Entrar com o numerador e com o denominador da funo de %transferncia da funo G(s)***** clc clear A=[0 1 0 ;0 0 1 ;-5.008 -25.1026 -5.0325]; B=[0;25.04;-121.005]; C=[1 0 0 ]; D=[0]; %*****Entrar com o seguinte comando de resposta ao degrau unitrio***** [y,x,t]=step(A,B,C,D); plot(y) grid title('Resposta ao degrau unitrio') xlabel('Pontos de computao da curva (160 pontos=10 segundos)') ylabel('Sada y')
79
Para Obter o grfico y(t) versus t, necessrio entrar com o comando plot(t,y). Para plotar as curvas x1 versus t, x2 versus t e x3 versus t em um nico diagrama, basta entrar com o comando plot(t,x). Para plotar x2 versus t e x3 versus t em diagramas separados, basta entrar com os seguintes comandos:
x2 = [ 0 1 0] x ' x3 = [ 0 0 1] x '
O programa Matlab 5.12 plota trs curvas, x1 versus t, x2 versus t e x3 versus t em um nico diagrama, alm de plotalas em trs diagrmas separados. Um grfico das trs curvas x1 versus t, x2 versus t e x3 versus t mostrado na figura a seguir. Graficos separados de x2 versus t e x3 versus t aparecem nas figuaras logo a seguir respectivamente.
80
% *****Para plotar as curvas x1 versus t, x2 versus t e x3 versus t % em um nico % diagrama ,entrar, respectivamente, com os seguintes % comandos plot e text***** %*****Entrar com o numerador e com o denominador da funo de %transferncia da funo G(s)***** clc; clear; A=[0 1 0; 0 0 1; -5.008 -25.1026 -5.0325]; B=[0; 25.04;-121.005]; C=[1 0 0 ]; D=[0]; %*****Entrar rio***** com o seguinte comando de resposta ao degrau unit-
[y,x,t] = step(A,B,C,D); figure(1) plot(t,x) text(5, 2.0,'x1') text(5,-1.3,'x2') text(5,-24.1,'x3') % *****Adicionar as coordenadas, o ttulo do % eixo dos x e do % eixo dos y***** grid title('Curvas de resposta ao Degrau para x1, xlabel('t segundos') ylabel('x1, x2 e x3') grfico e os ttulos do
x2 e x3')
% *****Atravs dos comandos seguintes possvel plotar as curvas % individuais % separadamente***** % *****Uma vez que x1= y,a curva x1 versus t a mesma que a curva y % versus t obtida anteriormente***** % *****Para plotar a curva x2 versus t, entrar com o seguinte % comando***** figure(2) x2 = [0 1 0]*x'; plot(t,x2) grid title('Resposta x2 versus t') xlabel('t segundos') ylabel('x2') % *****Para plotar a curva x3 versus t, entrar com o seguinte comando***** figure(3) x3 = [0 0 1]*x'; plot(t,x3) grid title('Resposta x3 versus t') xlabel('t segundos') ylabel('x3')
81
Curvas de Resposta ao Degrau Relativas a (x1, x2 e x3), (x2 versus t) e (x3 versus t)
82
83