Académique Documents
Professionnel Documents
Culture Documents
Software livre para clculo numrico e simulao de sistemas fsicos Utilizado nas reas de:
Controle e processamento de sinais Automao industrial Computao grfica Matemtica Fsica Entre outras.
SCILAB
Disponvel como software livre desde 1994 pelo site: www.scilab.org Possui a maioria das funcionalidades do concorrente MatLab. Disponvel para diversas plataformas:
SCILAB
SCILAB
SCILAB
%s varivel complexa de polinmios (Transformada de Laplace) %z varivel complexa de polinmios (Transformada z) %T varivel booleana True ( verdadeiro) %F varivel booleana False (falso) %pi %e valor de (3,1415926...) nmero de Euler ( 2,7182818...)
SCILAB
Declarao de variveis
Sensvel a maisculas e minsculas Palavra nica At 24 caracteres No pode iniciar com nmero Ex1.: a varivel que armazena o valor do custo de produo de um produto pode ser custo_total
>a=2;b=3; //declarando as variaveis >a+b //soma ans = 5. >ab //subtracao ans = 1. >a*b //multiplicacao ans = 6. >a/b /divisao ans = 0.6666667
>a^b /exponenciacao ans = 8. O SCILAB atribui varivel ans o valor do resultado do clculo.
>a=3+2*%i; b=96*%i; //declarando as variaveis >a+b //soma de complexos ans = 12. 4.i >ab //subtracao de complexos ans = 6. + 8.i >a*b //multiplicacao de complexos ans = 39. >a/b //divisao de complexos ans = 0.1282051 + 0.3076923i
Converso de retangular para polar (x,y) > (,) Ex.: Se o nmero z = 4+3i; mdulo = = (42+32) ngulo = = arctan(3/4) A funo abs(x) calcula o mdulo do nmero complexo; Utilizao da frmula de Euler:
abs(x) Retorna o valor absoluto (se x real) e o mdulo ( se x complexo) cos(x), sin(x), tan(x), cotg(x) Retorna cosseno, seno, tangente ou cotangente de x (x deve estar em radianos) acos(x), asin(x), atan(x)* Retorna o angulo (em radianos)
Funo atan(x), atan(x,y) atan(x): Calcula o arco tangente para os quadrantes I e IV [/2, /2 ] atan(x,y): Calcula o arco tangente para todos os quadrantes [, ]
imag(x) Mostra a parte imaginria de um complexo real(x) Mostra a parte real de um complexo log(x), log10(x), log2(x) Logaritmos natural, base 10 e base 2 modulo(x,y) Mostra o resto da diviso de x por y
round(x) Arredonda o valor de x para o inteiro mais prximo floor(x) Arredonda para o menor inteiro ceil(x) Arredonda para o maior inteiro sqrt(x) Calcula a raiz quadrada de x
Um terreno A mede 5 m de largura por 30 m de comprimento. O outro terreno B mede 8 m de largura por 40 de comprimento. Sabendo que o m2 de cada terreno vale R$ 15,00, calcule a rea total e o valor monetrio necessrio para se adquirir esses dois terrenos.
2 - O raio de uma circunferncia r igual a 2 m. Calcule o permetro desta circunferncia, bem como, a rea do crculo.
3 A seo transversal de um cilindro tem raio 0,5 m e o comprimento do mesmo 1,5 m. Calcule o volume e rea da seo transversal do mesmo.
SCILAB - Polinmios
Formas de declarao Ex.: p = s2 3s +2 forma fatorada: p = (s 1)(s 2) Usando a funo poly() Pelas razes: p = poly([ 1 2 ], 's') Pelos coeficientes: p = poly([ 2 3 1 ], 's' , 'coeff ' ) Obs.: os coeficientes devem ser digitados do menor grau para o maior.
SCILAB - Polinmios
SCILAB - Polinmios
>p=poly([1 2],'s') p = 2 2 3s + s //pelas raizes
>p=poly([2 3 1],'s','coeff') p = 2 2 3s + s
//pelos coeficientes
SCILAB - Polinmios
A funo roots() calcula as razes da funo polinmio ex.: roots(p) A funo horner() calcula o valor da funo polinmio ex.: horner(p,2) A funo derivat() calcula a derivada do polinmio ex.: derivat(p)
SCILAB - Polinmios
Ex.: p = s2 3s +2: >p=poly([2 3 1],'s','coeff') p = 2 2 3s + s >roots(p) //calcula raizes ans = 1. 2. >horner(p,2) ans = 0. //substitui s por 2 (uma raiz)
A = valor_inicial:incremento:valor_final >A=0:2:10 //incrementa de 2 em 2 A = 0. 2. 4. 6. 8. 10. >b=0:10 //incrementa de 1 em 1 (padrao) b = 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. >C=10:2:0 //decresce de 2 em 2 C = 10. 8. 6. 4. 2. 0.
Consideremos o vetor
Declarando vetores (vetor linha) A = [a11,a12, a13] ou A=[a11 a12 a13] Obs.: os elementos so separados por ' , ' (vrgula) ou espao Ex.: >A=[4,5,6]; B=[4 5 6]; //elementos separados por (,) >A,B A = 4. 5. 6. B = 4. 5. 6.
Para calcular a inversa utiliza-se o comando inv(). Para calcular o determinante utiliza-se o comando det()
Vejamos agora uma aplicao matemtica com vetores: Calcular o valor da seguinte srie para os seguintes valores de n: n = 10 n = 20 n = 1000 Utilizar a funo sum()
SCILAB - Grficos
SCILAB - Grficos
SCILAB - Grficos
Outras funcionalidades..
SCILAB - Grficos
Outras funcionalidades..
SCILAB - Grficos
Outra opo...... xtitle(< titulo do grfico >", < ttulo do eixo x >",<ttulo do eixo y");
SCILAB - Grficos
>> y=sin(x); >> z=cos(x); >> plot(x,y,x,z) Vamos plotar um grfico do seno e do co-seno simultaneamente. O resultado est no grfico da figura abaixo.
SCILAB - Grficos
Para plotar grficos em janelas diferentes, utilizamos o comando: xset('window',n) onde n o nmero da janela grfica, ex.:
>> y=sin(x); >> xset('window',0) >> plot(x,y) >> z=cos(x); >> xset('window',1) >>plot(x,z)
SCILAB - Grficos
SCILAB - Grficos
>> y=sin(x); >> plot(x,y); Vamos plotar um grfico do seno e do coseno simultaneamente. >> z=cos(x); >> plot(x,y,x,z) Plotaremos agora o mesmo grfico anterior acrescido da funo soma entre o seno e o coseno do ngulo. >> u=sin(x)+cos(x); >> plot(x,y,x,z,x,u)
SCILAB - Grficos
Estilos de Linha, Marcadores e Cores
Quando plotamos vrios grficos, podemos diferenci-los utilizando cores e marcadores diferentes.
SCILAB - Grficos
SCILAB - Grficos
SCILAB - Grficos
Podemos colocar em uma mesma janela grfica, grficos separados. Utilizamos para isso o comando subplot()
subplot(n_linhas, n_colunas, sequencia)
SCILAB - Grficos
plot2d([x,x],[sin(x) cos(x)],[10 20],leg='seno@cos')
SCILAB - Grficos
SCILAB - Grficos
SCILAB - Grficos
Exerccios: 1 Elaborar o grfico das funes: exponencial positiva exponencial negativa ln log10 (em reas separadas da janela grfica, com ttulos, e legendas) 2 Elaborar o grfico da funo 3d z = sen(x2+y2)
SCILAB - Programao
SCILAB - Programao
SCILAB - Programao
SCILAB - Programao
Ex1.: Elaborar um programa que avalia a mdia das notas de um aluno e retorna a situao do mesmo (aprovado ou reprovado)
SCILAB - Programao
Estrutura condicional
SCILAB - Programao
Estrutura condicional
SCILAB - Programao
SCILAB - Programao
Elaborar o programa do exemplo 1. Para imprimir no console utilizar a funo: printf('\n <texto>: %f",<varivel>) O \n serve para pular uma linha no console.
SCILAB - Programao
Ex2.: Elaborar um programa para clculo do fatorial de um nmero.
SCILAB - Programao
Estruturas repetitivas
SCILAB - Programao
Estruturas repetitivas
SCILAB - Programao
SCILAB - Programao
SCILAB - Programao
Funes
Funes internas
Sin(), tan(), sqrt(), bode(), entre outras.
SCILAB - Programao
Funes
Utilizar o menu FILE > EXECUTE ou Utilizar o comando getf, ex.: getf('/home/manoel/Documentos/matlab/work_scilab/funcoes.sci'); Implementar os exemplos 1 e 2 em funes.
poly Escreve um polinmio,dados os coeficientes em ordem crescente ou as razes do mesmo roots Extra as razes de um polinmio ones Cria um vetor (ou matriz), onde o valor de cada elemento do vetor vale 1. Vetor de 1. Zeros Vetor (ou matriz) de zeros csim Simulao de um sistema linear, dado o tipo de entrada U. Resposta no tempo plot Desenha um grfico
Para determinar razes polinmios: Exemplo: p(s)=7s3 +2s2+5s+1 Comando: (roots) > p = poly ([1 5 2 7], ' s ',' coef ' ); > roots ( p ); As variveis s e z, so reconhecidas pelo SCILAB, basta escrever: %s
Ex.: num = poly([3 2 1],s,coeff) Ex.: den = poly([2 3 1],s,coeff) TF = num / den
Decomposio em fraes parciais Decompor em fraes parciais a seguinte funes de 2 transferncia G2(s)=(5s+2)/(s+1)(s+2) Comando: (pfss) --> G2 = (5*%s+2) / ((%s+1)(%s+2)2 ) > pfss(G2)
Utilizar o comando roots() Utilizar o comando csim() Deve ser definido o intervalo de tempo da resposta
deff('u=input(t)','u=(sin(t))') plot2d([t',t'],[(csim(input,t,H))',0*t']) plot(t,0.1*input(t)) xtitle("Resposta para funo senoidal","t [s]","Deslocamento angular [rad]");
Grfico da resposta em frequncia. Utilizado como exemplo a seguinte funo de 2 transferncia G2(s)=(5s+2)/(s+1)(s+2) Comando: (bode) --> G2 = (5*%s+2) / ((%s+1)(%s+2)2 ) --> G = syslin('c',G2) //'c' indica um sistema contnuo no tempo > bode(G)
Exerccio1:
O tipo de resposta para o degrau (sub, super, criticamente amortecido ou oscilatrio) Encontre a frequncia natural e a taxa de amortecimento. Calcule o tempo de pico, overshoot, tempo de subida, conforme o caso. Decomponha a equao de sada em fraes parciais. Trace o grfico da resposta para uma entrada degrau Trace o grfico de Bode.
Exerccio2:
Implementar a funo de transferncia que relaciona a velocidade e a tenso em um motor cc e obter os grficos da resposta para o impulso, degrau e senoidal.