Escolar Documentos
Profissional Documentos
Cultura Documentos
Iniciando no Scilab. O Scilab um ambiente utilizado no desenvolvimento de programas para a resoluo de problemas numricos. Criado e mantido por pesquisadores pertencentes ao Institut de Recherche en Informatique et en Automatique, INRIA, atravs do Projeto METALAU (Methods, algorithmes et logiciels pour l'automatique) e a Ecole Nationale des Ponts et Chauss ees, ENPC, o Scilab gratuito (Free software) e distribudo com o cdigo fonte (Open Source software). O Scilab um ambiente de programao numrica bastante flexvel. Suas principais caractersticas so: 1. um software de distribuio gratuita, com cdigo fonte disponvel. Sua linguagem simples e de fcil aprendizado;
Mauricio Oscar Prez Lisboa 2 2. um ambiente poderoso para gerao de grficos; 3. Implementa diversas funes para manipulao de matrizes. As operaes de concatenao, acesso e extrao de elementos, transposio, adio e multiplicao de matrizes so facilmente realizadas; 4. Permite trabalhar com polinmios, funes de transferncia, sistemas lineares e grafos; 5. Apresenta facilidades para a definio de funes. As funes podem ser passadas para outras funes como argumento de entrada ou de sada; 6. Permite interface com rotinas escritas nas linguagens FORTRAN, C ou Maple1; 7. Suporta o desenvolvimento de conjuntos de funes voltadas para aplicaes especficas (os chamados toolboxes). O Scilab possui um ambiente de programao e uma interface grfica. Na verso 4.0 h uma srie de melhorias em relao s verses anteriores (3.0, 2.7 e 2.6). Basicamente possvel operar o scilab de duas formas. A primeira executar os comandos no prompt do programa, ambiente do Scilab. A segunda utilizar um arquivo que possui os comandos a serem executados. Inicialmente tomaremos contato com o programa para isto rode o Scilab. Aparecer a tela de inicializao do Scilab como ilustrado na figura a seguir. A tela de inicializao do scilab apresenta menus e o prompt de comandos.
O menu apresenta as seguintes opes: File , Edit, Preferences, Control, Editor, Applications, ?. Descreveremos a seguir algumas funes bsicas. 1) File, temos as seguintes opes: 1. New Scilab: carrega outro programa 2. Exec: Permite executar um arquivo (script) do tipo *.sci 3. Open: Abre um arquivo de simulao e permite sua edio 4. Load e Save: Carrega e salva um programa 5. Change Directory: Muda de diretrio de trabalho 6. Get Currente Directory: Inforam o diretrio de trabalho 7. Print setup: Configura a impressora 8. Print: Imprime 9. Exit: Sai do Scilab 2) O menu Edit: possui funes para edio. 3) O Preferences permite personalizar o ambiente do Scilab. 4) O Control , permite parar, abortar, e interromper a execuo de um script 5) O Editor, carrega o editor de script do Scilab 6) O Applications, Carrega as ferramentas do Scilab: 1. scicos, ambiente de blocos do scilab 2. m2sci, conversor de Matlab para Scilab. 7) O ? menu de helps 1. Scilab help: carrega o help 2. Configure: permite configuraes 3. Scilab Demos: Carrega exemplos Vamos verificar alguns funes que o programa permite realizar. Para isto carregue o Scilab Demos e siga as instrues do programa, so mostradas algumas funes bsicas por exemplo >> a=1 . definido o valor de a como sendo 1. uma constante real. Verifique algumas operaes utilizando a tecla Enter Para Abortar a execuo do help v ate o menu Control >> Interrupt Crtl-C Novamente v at o help ? e carregue o Scilab Help Verifique as diversas funes que o
Mauricio Oscar Prez Lisboa 4 programa possui. Aps esta primeira impresso vamos a conhecer algumas operaes bsicas. Seja a seguinte equao y=2x -3x . Vamos verificar como podemos simular isto para x variando de 0 a 10 e depois realizar um grfico do resultado. --> x=0:10; -->plot(x,y) --> xgrid() \\este comando cria um vetor x de 0 a 10 com passos de 1. \\ realiza o grfico dos valores de x e y \\ inclui grades no grfico; -->y=2 .*x -3 .*x^2; \\ o vetor y criado com os valores da equao.
Mauricio Oscar Prez Lisboa 6 para carregar e executar todos os comandos no arquivo. A seguir veremos algumas aplicaes. Para isto siga as instrues a seguir:
-->A = 1 --> A=1; -->b = 2; -->A + b ans = 3. // atribui o valor de 1 constante A e mostra o valor. // Atribuindo a A o valor 1, mas o ; no mostra o resultado // Atribuindo a b o valor 2 // Soma de A e b
No Scilab tambm as grandezas podem ser complexas. Realize a seguinte operao: A=5 + 2i e B=-2 +i. O resultado dever ser:
-->A = 5 + 2 * %i A= 5. + 2.i -->B = -2 + %i // Atribuindo a B o valor -2 + i B= - 2. + i // Atribuindo a A o valor 5 + 2i
Efetue algumas operaes matemticas com estas duas variveis e responda a seguir. c= A*B d=A + B ; resp.= ; resp.=
Mauricio Oscar Prez Lisboa 7 e=A/B f=B/A Polinmios Os polinmios so criados no Scilab atravs da utilizao da funo poly. Sendo que polinmios de mesma varivel podem ser somados, subtrados, multiplicados e divididos entre si. Por exemplo, o polinmio p = s -3s +2, que possui raizes em 1 e 2, podem ser criados da seguinte forma
-> p=poly([1 2], s) p= 2 - 3s + s
; rep.= ; resp.=
Um polinmio tambm pode ser criado a partir da especificao de seus coeficientes. Por exemplo, o polinmio q = 2s + 1 e criado atravs do comando.
-->q = poly([1 2], 's', 'coeff') q= 1 + 2s
Obtenha as raizes de q e efetue as seguintes operaes raizes de q resp.= p*q q+q p/q q/p , resp.= , resp.= , resp.= , resp.=
Mauricio Oscar Prez Lisboa 8 Vetores As grandezas vetoriais so criadas colocando-se seus componentes entre colchetes, [ ]. Os componentes de um vetor podem ser separados por espao, vrgula ou por ponto-e-vrgula. Importante observar que elementos entre [ ], separados por espao ou por vrgula, do origem a vetores linha. Quando separados por ponto-e-vrgula do origem a vetores coluna. Por exemplo digite
-->v = [2, -3+%i, 7] v = ! 2. - 3. + i 7. ! -->w= [2 ; -1 +%i ; -5] // Vetor coluna w= 1. 2. +i -5. -->v' ans = ! 2. ! ! - 3. - i ! ! 7. ! // Vetor transposto // Vetor linha
Mauricio Oscar Prez Lisboa 9 Matrizes: As matrizes so construdas utilizando vrias linhas e colunas. Os elementos so separados por espao ou vrgula e as colunas por ponto e vrgula. Por exemplo construa as matrizes a seguir.
1 2 3 Z= 4 5 6 3 7 8
] [
,
1 1 0 Y= 2 3 1 2 3 5
] [ ]
e
1 2 3 X= 2 4 6 3 6 9
Utilizaremos algumas funes do Scilab para resoluo sistemas de equaes. Por exemplo dado o seguinte sistema linear:
10 x y=11 5x3y=2
--> A= [ 10 1; 5 -3]; --> a1=[11; 2]; --> y=-linsolve(A,a1) y = 1. 1. --> >z=inv(A) * a1 z = 1. 1.
2 x9y=47 x20y=101
\\ resolve sistema linear utilizando a equao A*x+b=0 .
Utilizaremos os comandos at agora estudados para resolver os seguintes problemas de circuitos eltricos. O primeiro circuito corresponde ao equivalente de Thevenin de um circuito qualquer e o segundo um circuito onde ser utilizado a anlise de malhas.
R1=4 R4=3
Rth=2,5
2V
+ +
V2 R5=10
R6=1
Vth
+ Vo
10V
R3=3 R2=2
1) Escreva o script que realize a simulao do equivalente de Thevenin considere a resistncia variando de 0,5 a 10 ohm. 1. Calcule a tenso na carga (Vo) 2. Calcule a corrente na carga 3. Calcule a potncia na carga 4. Grafique o resultados para a corrente, tenso e potncia. 2) Resolva o circuito por anlise de malha 1. Monte as equaes das malhas 2. Utilize a resoluo de equaes lineares para encontrar as correntes nas malhas.
V3=10V
RL 0,510
V1=5V
Mauricio Oscar Prez Lisboa 11 Grficos H vrios comando para realizar grficos. Os mais simples so o comando plot e o comando plot2d a seguir veremos algumas aplicaes. Para isto carregue o scilab e digite no prompt do simulador as seguintes instrues:
--> x=[0:0.1:2*%pi]; --> plot(sin(x)) --> clf() --> plot(x,sin(x))
Este comandos permitiram cria um vetor com valores de 0 a 2* com passo de 0.1. Depois foi realizado um grfico (funo plot) onde o eixo x o nmero de pontos e o eixo y o valor do sin(x) . Posteriormente o grfico foi realizado sendo o eixo x os valores da varivel x e o eixo y com os valores de sin(x). Por ltimo a funo clf() limpa a tela. O scilab permite repetir qualquer comando utilizando as teclas de direo. Verifique isto refazendo os comandos acima. A figura a seguir ilustra estes comandos e o resultado deles.
Uma outra foram de realizar grficos utilizar no mesmo grfico (tela) vrios vetores ao mesmo tempo. Mas cuidado o vetor deve ser coluna. Por exemplo tente executar o seguinte comando.
--> clf() --> plot(x,[sin(x) sin(2*x) sin(3*x)])
Mauricio Oscar Prez Lisboa 12 Deve indicar um erro de dimenso. Para ajustar isto realize:
--> a=x' ; --> plot(a,[sin(a) sin(2*a) sin(3*a) cos(a)])
Refaa o circuito do equivalente de Thevenin utilizando os comandos acima descritor para no mesmo grfico incluir ao vrios vetores. Um exemplo dos comandos podem estes a seguir:
--> rl=0:.5:10; -->vth=10; --> rth=2.5; -->vo=vth .*rl ./(rl+rth); --> io=vth ./(rl+rth); --> po=io .*vo; --> plot(rl,vo,rl,io,rl,po)
Fig. Resultado da simulao do equivalente de Thevenin, grfico e script. H outros comandos de grficos, veremos somente o plot2d. Ele permite graficar vrias curvas no mesmo grfico da seguinte forma. plot2d(x,y1,1) , plot2d(x,y2,2) e plot2d(x,y3,3) . Isto indica que ser realizado um grfico com a mesma varivel x e com vrios valores de y. No primeiro casso a varivel y1 ser graficada com a cor 1 (preto), a varivel y2 com a cor 2 (verde) e a varivel y3 com a cor 3 (azul).
Mauricio Oscar Prez Lisboa 13 Os comandos a seguir realizaram os grficos para o circuito equivalente de Thevenin.
-->clf() -->plot2d(rl,vo,1) -->plot2d(rl,io,2) -->plot2d(rl,po,3) -->xgrid()
Outros parmetros importantes que podem ser utilizados so: .- xgrid() . esta funo inclui linha de grade (grid) no grfico. .- legend() .Esta funo permite incluir legendas no grfico da seguinte forma: Por exemplo o seguinte comando incluir legenda no grfico --> legend([Tenso vo; Corrente io; Potencia Po]) Maiores informaes no help do Scilab. Outra opo importante dos comandos de grficos fazer vrios grficos com escalas diferentes na mesma tela. Isto implementado com a funo subplot() da forma: subplot(m,n,p) ou subplot(mnp) Onde mnp representam nmeros inteiros, sendo uma matriz de m x n de sub-grficos e p representa uma sub-diviso do grfico atual, sendo m as linhas, n as colunas e p o elemento da matriz. Por exemplo para realizar um dois grficos, podemos utilizar os seguintes comandos:
--> x=[0:0.1:2*%pi]; -->subplot(2,1,1) --> plot(x,sin(x)) --> subplot(2,1,2) --> plot(x,cos(x))
Desta forma temos dois grficos com escalas diferentes. Isto est ilustrado na figura a seguir
Podemos realizar vrios grficos alterando o parmetro p somente por exemplo os comando as seguir implementam isto:
--> subplot(2,2,1) --> plot(x,sin(x)); --> subplot(2,2,2) --> plot(x,cos(x)); --> subplot(2,2,3); --> plot(x,sin(2*x)); --> subplot(2,2,4) --> plot(x,cos(2*x));
No entanto a diviso dos subplot pode ser mais genrica da forma como ilustrado na figura a seguir:
subplot(3,2,1) subplot(3,2,2)
subplot(3,3,4)
subplot(3,3,5)
subplot(3,3,6)
subplot(3,1,3)
Para finalizar utilizaremos circuitos de filtros passivos para apresentar os grficos em escalas logartmicas. A figura a seguir ilustra os circuitos dos filtros RC passa baixa e passa alta respectivamente.
Escreva o script para realizar a simulao dos filtros acima para frequncia de 100Hz a 100kHz com fc=500Hz para o filtro passa baixa e com fc=15 kHz para o filtro passa alta. A funo grfico em escala log no eixo x plot2d("oln",x,y). listado a seguir:
f=100:50:10E3; w=2*%pi .*f; wc=2*%pi*500; // passa baixa subplot(2,1,1) vo_pb=1 ./(1 + %i .*w/wc); plot2d("oln",f,real(vo_pb),1); plot2d("oln",f,abs(vo_pb),2); plot2d("oln",f,imag(vo_pb),3); legend(["Parte real"; "Modulo"; "Fase"]) xgrid()
// passa alta subplot(2,1,2) vo_pa= 1 ./(1-%i*wc ./w); plot2d("oln",f,real(vo_pa),1); plot2d("oln",f,abs(vo_pa),2); plot2d("oln",f,imag(vo_pa),3); legend(['Parte real'; 'Modulo'; 'Fase']) xgrid()