Vous êtes sur la page 1sur 74

SCILAB

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:

Linux Windows Solaris Unix

SCILAB

SCILAB

SCILAB

Variveis que no podem ser modificadas

%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...)

%eps preciso da mquina (%eps+1=1) %inf infinito

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

SCILAB Operaes bsicas

>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.

SCILAB Operaes com nmeros complexos

>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

SCILAB Operaes com nmeros complexos

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:

Ex.: z = 5e0.6435011 (forma polar) z = 4+3i z = 4. + 3.i (forma retangular) >z=5*%e^(0.6435011*%i)

SCILAB Funes elementares


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)

SCILAB Funes elementares


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 [, ]

SCILAB Funes elementares


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

SCILAB Funes elementares


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

1 Usando a linha de comando do SCILAB resolva o seguinte problema:

SCILAB Funes elementares

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.

4 Qual o resultado das seguintes expresses segundo o SCILAB:

((5+3)*2^2+7)*2 (5+3*2^2+7)*2 (5+3*2^(41)*2)+(53*2) (2*3)^(31)/(52)+6

SCILAB Funes elementares

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

Usando a varivel %s p = %s^23*%s+2

Declarando um polinmio x x = poly(0, 'x') p = x^23*x+2

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

>x = poly(0, 'x');p = x^23*x+2 p = 2 2 3x + x

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)

SCILAB Vetores e Matrizes

Dizse que x um vetor de dimenso n em R se: x= x 1, x 2, ... , x n

Mas, ao invs de pensar em coordenadas, podese pensar em matrizescoluna:

SCILAB Vetores e Matrizes

Declarando vetores (sequencias)

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.

SCILAB Vetores e Matrizes

Declarando vetores (vetor coluna)

Consideremos o vetor

. Seus elementos devem ser

separados por ' ; ' (ponto e vrgula) no Scilab. Ex.: >A=[4;5;6] A = 4. 5. 6.

SCILAB Vetores e Matrizes

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.

SCILAB Vetores e Matrizes


Transposio A' Ex.: >A=[1 2 3] //vetor linha A = 1. 2. 3. >A' //vetor coluna ans = 1. 2. 3.

SCILAB Vetores e Matrizes


Operaes com vetores

SCILAB Vetores e Matrizes

SCILAB Vetores e Matrizes


Operaes com matrizes

SCILAB Vetores e Matrizes


Formas de declarao

SCILAB Vetores e Matrizes

SCILAB Vetores e Matrizes

Para calcular a inversa utiliza-se o comando inv(). Para calcular o determinante utiliza-se o comando det()

SCILAB Vetores e Matrizes

SCILAB Vetores e Matrizes

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 Vetores e Matrizes

Exerccio: elaborar o clculo do produto vetorial de dois vetores no sistema xyz.

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

Elaborar o programa do exemplo 2.

SCILAB - Programao

Utilizando as estruturas de repetio e condicionais....e

SCILAB - Programao
Funes
Funes internas
Sin(), tan(), sqrt(), bode(), entre outras.

Funes definidas pelo usurio


Utiliza a definio de funo
function y = nome_da_funo(argumentos) < algortmo da funo > endfunction

So gravadas em arquivos de script (.sce) utilizando um editor de texto ascii qualquer.

SCILAB - Programao

Funes

Para serem utilizadas, as funoes devem ser carregadas na memria.

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.

SCILAB Sistemas de controle

Existem diversas funes internas para utilizao em sistemas de controle.

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

SCILAB Sistemas de controle

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

SCILAB Sistemas de controle

Para utilizar a funo de transferncia

Definir o polinmio do numerador

Ex.: num = poly([3 2 1],s,coeff) Ex.: den = poly([2 3 1],s,coeff) TF = num / den

Definir o polinmio do denominador

Definir a funo de transferncia

SCILAB Sistemas de controle


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)

SCILAB Sistemas de controle

Para extrair os plos e zeros

Utilizar o comando roots() Utilizar o comando csim() Deve ser definido o intervalo de tempo da resposta

Para se obter a resposta do sistema


t=0.1:0.1:10 c = csim('step',t,H) plot(t,c)

O sinal de entrada pode ser step, impulse, ou definido pelo usurio.

SCILAB Sistemas de controle


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]");

SCILAB Sistemas de controle


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)

SCILAB Sistemas de controle

Exerccio1:

Elaborar um programa que dada a funo de transferncia de 1a ou 2a ordem, o mesmo apresente:


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.

Vous aimerez peut-être aussi