• Nenhum resultado encontrado

SCILAB. Software livre para cálculo numérico e simulação de sistemas físicos Utilizado nas áreas de:

N/A
N/A
Protected

Academic year: 2021

Share "SCILAB. Software livre para cálculo numérico e simulação de sistemas físicos Utilizado nas áreas de:"

Copied!
74
0
0

Texto

(1)

SCILAB

 Software livre para cálculo numérico e

simulação de sistemas físicos

 Utilizado nas áreas de:

 Controle e processamento de sinais  Automação industrial

 Computação gráfica

 Matemática

 Física

(2)

SCILAB

 Disponível como software livre desde 1994

pelo site: www.scilab.org

 Possui a maioria das funcionalidades do

concorrente MatLab.

 Disponível para diversas plataformas:

 Linux

 Windows

 Solaris  Unix

(3)
(4)
(5)

SCILAB

 Variáveis que não podem ser modificadas

 %s ­ variável complexa de polinômios

(Transformada de Laplace)

 %z ­ variável complexa de polinômios

(Transformada z)

 %T ­ variável booleana True ( verdadeiro)  %F ­ variável booleana False (falso)

 %pi ­ valor de π (3,1415926...)

 %e ­ número de Euler ( 2,7182818...)

(6)

SCILAB

 Declaração de variáveis

 Sensível a maiúsculas e minúsculas  Palavra única

 Até 24 caracteres

 Não pode iniciar com número

 Ex1.: a variável que armazena o valor do custo de

(7)

SCILAB – Operações básicas

 ­­>a=2;b=3; //declarando as variaveis  ­­>a+b //soma  ans =  5.  ­­>a­b //subtracao  ans =  ­ 1.  ­­>a*b //multiplicacao  ans =  6.  ­­>a/b /divisao ans =  ­­>a^b /exponenciacao  ans =  8.  O SCILAB atribui à

variável ans o valor do resultado do cálculo.

(8)

SCILAB – Operações com

números complexos

­­>a=3+2*%i; b=9­6*%i; //declarando as variaveis

 ­­>a+b //soma de complexos  ans =

 12. ­ 4.i

 ­­>a­b //subtracao de complexos  ans =

 ­ 6. + 8.i

 ­­>a*b //multiplicacao de complexos  ans =

 39.

(9)

SCILAB – Operações com

números complexos

Conversão de retangular para polar (x,y) ­> (ρ,θ)

 Ex.: Se o número é z = 4+3i;  módulo = ρ = √(42+32)  Ângulo = θ= arctan(3/4)

 A função abs(x) calcula o módulo do número complexo;  Utilização da fórmula de Euler:

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

(10)

SCILAB – Funções elementares

 abs(x)

 Retorna o valor absoluto (se x é real) e o

módulo ( 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)*

(11)

SCILAB – Funções elementares

 Função 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

(12)

SCILAB – Funções elementares

 imag(x)

 Mostra a parte imaginária 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)

(13)

SCILAB – Funções elementares

 round(x)

 Arredonda o valor de x para o inteiro mais

próximo

 floor(x)

 Arredonda para o menor inteiro  ceil(x)

 Arredonda para o maior inteiro  sqrt(x)

(14)

SCILAB – Funções elementares

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

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 monetário necessário para se adquirir esses dois terrenos.

2 - O raio de uma circunferência r é igual a 2 m. Calcule o perímetro desta

circunferência, bem como, a área do círculo.

3 ­ A seção transversal de um cilindro tem raio 0,5 m e o comprimento do

mesmo é 1,5 m. Calcule o volume e área da seção transversal do mesmo.

4 ­ Qual é o resultado das seguintes expressões segundo o SCILAB:

 ((5+3)*2^2+7)*2  (5+3*2^2+7)*2

 (5+3*2^(4­1)*2)+(5­3*2)  (2*3)^(3­1)/(5­2)+6

(15)
(16)

SCILAB - Polinômios

 Formas de declaração

 Ex.: p = s2 – 3s +2

 forma fatorada: p = (s – 1)(s – 2)  Usando a função poly()

 Pelas raízes:

 p = poly([ 1 2 ], 's')  Pelos coeficientes:

 p = poly([ 2 ­3 1 ], 's' , 'coeff ' )

(17)

SCILAB - Polinômios

 Usando a variável %s p = %s^2­3*%s+2  Declarando um polinômio x x = poly(0, 'x') p = x^2­3*x+2

(18)

SCILAB - Polinômios

­­>p=poly([1 2],'s') //pelas raizes p =

2 2 ­ 3s + s

­­>p=poly([2 ­3 1],'s','coeff') //pelos coeficientes p = 2 2 ­ 3s + s ­­>x = poly(0, 'x');p = x^2­3*x+2 p = 2 2 ­ 3x + x

(19)

SCILAB - Polinômios

A função roots() calcula as raízes da função

polinômio

ex.: roots(p)

A função horner() calcula o valor da função polinômio

ex.: horner(p,2)

A função derivat() calcula a derivada do polinômio

(20)

SCILAB - Polinômios

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) //substitui s por 2 (uma raiz) ans =

(21)

SCILAB – Vetores e Matrizes

Diz­se que x é um vetor de dimensão n em R se:

x= x 1, x 2, ... , x n  

Mas, ao invés de pensar em coordenadas, pode­se pensar em

(22)

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.

(23)

SCILAB – Vetores e Matrizes

 Declarando vetores (vetor coluna)

Consideremos o vetor . Seus elementos devem ser

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

(24)

SCILAB – Vetores e Matrizes

 Declarando vetores (vetor linha)

A = [a11,a12, a13] ou A=[a11 a12 a13]

Obs.: os elementos são separados por ' , ' (vírgula) ou espaço

Ex.:

­­>A=[4,5,6]; B=[4 5 6]; //elementos separados por (,) ­­>A,B

A =

4. 5. 6. B =

(25)

SCILAB – Vetores e Matrizes

 Transposição

A'

Ex.: ­­>A=[1 2 3] //vetor linha A =

1. 2. 3.

­­>A' //vetor coluna ans =

1. 2. 3.

(26)

SCILAB – Vetores e Matrizes

(27)
(28)

SCILAB – Vetores e Matrizes

(29)

SCILAB – Vetores e Matrizes

(30)
(31)

SCILAB – Vetores e Matrizes

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

(32)
(33)

SCILAB – Vetores e Matrizes

Vejamos agora uma aplicação matemática com vetores:

Calcular o valor da seguinte série para os seguintes valores de n: n = 10

n = 20 Utilizar a função sum()

(34)

SCILAB – Vetores e Matrizes

Exercício: elaborar o cálculo do produto vetorial de dois vetores no sistema xyz.

(35)
(36)
(37)

SCILAB - Gráficos

(38)

SCILAB - Gráficos

(39)

SCILAB - Gráficos

 Outra opção...

 xtitle(“< titulo do gráfico >",“ < título do eixo x

(40)

SCILAB - Gráficos

• >> y=sin(x); • >> z=cos(x); • >> plot(x,y,x,z)

• Vamos plotar um gráfico do seno e do co-seno

simultaneamente. O resultado está no gráfico da figura abaixo.

(41)

SCILAB - Gráficos

 Para plotar gráficos em janelas diferentes, utilizamos

o comando:

 xset('window',n) onde n é o número da janela gráfica,

ex.:  >> y=sin(x);  >> xset('window',0)  >> plot(x,y)  >> z=cos(x);  >> xset('window',1)  >>plot(x,z)

(42)
(43)

SCILAB - Gráficos

 >> y=sin(x);  >> plot(x,y);

 Vamos plotar um gráfico do seno e do co­seno simultaneamente.

 >> z=cos(x);  >> plot(x,y,x,z)

 Plotaremos agora o mesmo gráfico anterior acrescido da função soma entre o seno e o co­seno do ângulo.

 >> u=sin(x)+cos(x);

(44)

SCILAB - Gráficos

• Estilos de Linha, Marcadores e Cores

– Quando plotamos vários gráficos, podemos

diferenciá-los utilizando cores e marcadores diferentes.

(45)
(46)
(47)

SCILAB - Gráficos

• Podemos colocar em uma mesma janela gráfica, gráficos separados.

• Utilizamos para isso o comando subplot()

– subplot(n_linhas,

(48)

SCILAB - Gráficos

(49)
(50)
(51)

SCILAB - Gráficos

Exercícios:

1 – Elaborar o gráfico das funções: exponencial positiva

exponencial negativa ln

log10

(em áreas separadas da janela gráfica, com títulos, e legendas)

(52)
(53)
(54)
(55)

SCILAB - Programação

• Ex1.: Elaborar um programa que avalia a média das notas de um aluno e retorna a situação do mesmo (aprovado ou reprovado)

(56)

SCILAB - Programação

(57)

SCILAB - Programação

(58)
(59)

SCILAB - Programação

 Elaborar o programa do exemplo 1.

 Para imprimir no console utilizar a função:  printf('\n <texto>: %f",<variável>)

(60)

SCILAB - Programação

• Ex2.: Elaborar um programa para cálculo do fatorial de um número.

(61)

SCILAB - Programação

(62)

SCILAB - Programação

(63)

SCILAB - Programação

(64)

SCILAB - Programação

 Utilizando as estruturas de repetição e

(65)

SCILAB - Programação

• Funções

– Funções internas

• Sin(), tan(), sqrt(), bode(), entre outras.

– Funções definidas pelo usuário

• Utiliza a definição de função

– function y = nome_da_função(argumentos) – < algorítmo da função >

– endfunction

• São gravadas em arquivos de script (.sce) utilizando um editor de texto ascii qualquer.

(66)

SCILAB - Programação

 Funções

 Para serem utilizadas, as funçoes devem ser

carregadas na memória.

 Utilizar o menu FILE ­> EXECUTE ou

 Utilizar o comando getf, ex.:

getf('/home/manoel/Documentos/matlab/work_scilab/funcoes.sci');

(67)

SCILAB – Sistemas de controle

 Existem diversas funções internas para

utilização em sistemas de controle.

poly Escreve um polinômio,dados os coeficientes

em ordem crescente ou as raízes do mesmo

roots Extraí as raízes de um polinômio

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 Simulação de um sistema linear, dado o tipo

de entrada U. Resposta no tempo

(68)

SCILAB – Sistemas de controle

Para determinar raízes polinômios:

Exemplo: p(s)=7s3 +2s2+5s+1

Comando: (roots)

­­> p = poly ([1 5 2 7], ' s ',' coef ' ); ­­> roots ( p );

As variáveis “s” e “z”, são reconhecidas pelo SCILAB, basta escrever: %s

(69)

SCILAB – Sistemas de controle

 Para utilizar a função de transferência

 Definir o polinômio do numerador

 Ex.: num = poly([3 2 1],’s’,’coeff’)

 Definir o polinômio do denominador

 Ex.: den = poly([2 3 1],’s’,’coeff’)

 Definir a função de transferência

(70)

SCILAB – Sistemas de controle

 Decomposição em frações parciais

 Decompor em frações parciais a seguinte funções de

transferência G 2(s)=(5s+2)/(s+1)(s+2) 2  Comando: (pfss) --> G2 = (5*%s+2) / ((%s+1)(%s+2)2 ) ­­> pfss(G2)

(71)

SCILAB – Sistemas de controle

 Para extrair os pólos e zeros

 Utilizar o comando roots()

 Para se obter a resposta do sistema

 Utilizar o comando csim()

 Deve ser definido o intervalo de tempo da resposta

 t=0.1:0.1:10

 c = csim('step',t,H)  plot(t,c)

 O sinal de entrada pode ser step, impulse, ou

(72)

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 função senoidal","t

(73)

SCILAB – Sistemas de controle

 Gráfico da resposta em frequência.

 Utilizado como exemplo a seguinte função de

transferência G

2(s)=(5s+2)/(s+1)(s+2) 2

Comando: (bode)

--> G2 = (5*%s+2) / ((%s+1)(%s+2)2 )

--> G = syslin('c',G2) //'c' indica um sistema contínuo no tempo

(74)

SCILAB – Sistemas de controle

 Exercício1:

 Elaborar um programa que dada a função de transferência de 1a ou 2a ordem, o mesmo apresente:

 O tipo de resposta para o degrau (sub, super, criticamente

amortecido ou oscilatório)

 Encontre a frequência natural e a taxa de amortecimento.

 Calcule o tempo de pico, overshoot, tempo de subida, conforme o

caso.

 Decomponha a equação de saída em frações parciais.  Trace o gráfico da resposta para uma entrada degrau  Trace o gráfico de Bode.

 Exercício2:

 Implementar a função de transferência que relaciona a

Referências

Documentos relacionados

O problema de como garantir a autenticidade do acesso do usuário de sites de ensino à distância levou a uma busca de soluções que pudessem atender as exigências

O objetivo principal desta pesquisa foi discutir e propor um processo para criação de uma DSSA. O trabalho teve ainda outros objetivos específicos: apresentar uma arquitetura de

Neste sentido, entendemos que a expansão comercial em Salto del Guairá corresponde ao processo de territorialização do capital sobre o trabalho, em que percebemos

Tem-se como objetivo realizar uma análise estrutural, sendo essas estática e modal em cima de treliças plana e espacial utilizando programação livre do software Scilab.. O Scilab é

O presente estudo visou analisar o perfil alimentar e de composição corporal de atletas adolescentes, onde foi demonstrado que a composição corporal classificada

• “…Se puder verificar equipes incompletas no início da próxima aula seria uma mão

To control scope, we need to manage a list of tasks... To control time, we need to manage

Os melhores projetos de componentes e processos de fundição são obtidos com interações entre engenheiros de fundição e projetistas, e o uso de novas