Você está na página 1de 40

Introduo ao Scilab

Cap Carrilho
Fevereiro de 2004

Objetivos

Conhecer o software Scilab como ferramenta de


CASD.
Manipular algumas funcionalidades importantes do
Scilab, a saber:

Programao;

Grficos;

Ambiente SCICOS, e

Interfaceamento com Fortran e C.

Objetivos

Usar o Scilab para resolver problemas de

Controle e

Processamento de sinais.

Sumrio
1. Introduo
2. Tipos de dados
3. Programao
4. Grficos
5. Aplicaes
5.1. Controle automtico
5.2. Processamento de sinais

6. Outras aplicaes
7. Comentrios finais

1. Introduo

O que o Scilab?

Ferramenta para o desenvolvimento de sistemas de


controle automtico e processamento de sinais.

Criado e mantido pelo INRIA.

Destaques do Scilab

Diversos objetos

Inmeras funes primitivas bsicas

Matrizes, polinmios, razes de polinmios, funes de


transferncia, equaes de estados etc.
lgebra linear, soluo de EDOs, otimizao, controle
automtico, processamento de sinais etc.

Ambiente de programao que permite a criao


de novas funes ou bibliotecas pelo usurio.

Ambiente grfico SCICOS.

Interface com funes escritas em C e Fortran.

Observaes gerais

Software grtis com cdigo fonte aberto.

Binrios disponveis para diversas plataformas:

Verso 2.7 disponvel em http://scilabsoft.inria.fr/.


Diversas verses de Unix e Windows.

Documentao

Tambm disponvel no site http://scilabsoft.inria.fr/doc.html

Comentrios sobre o uso

Scilab

Software com cdigo livre e distribuio gratuita.

Scilab Consortium: inteno de expanso.

Matlab

Software comercial e pago ($$$).

Padro no meio acadmico (ensino e pesquisa) e indstria.

Relao de compromisso

Uso legalizado para ensino e para pesquisa.

Na pesquisa, poder comunicar-se com outros grupos.

Experincia pessoal

UFSC

Uso de software livre recomendado.

Projeto Disciplina Livre do GUFSC grupo de usurios de


software livre da UFSC.

Uso ainda considervel do Matlab em pesquisa.

CMU

Matlab com licenas distintas para ensino e para pesquisa.

Dois episdios de modificao dos termos da licena.

Experincia com os desenvolvedores do CheckMate.

Uma sesso inicial

Introduo interface.

Bsico de manipulao de nmeros e matrizes.

Manipulao de polinmios e funes de


transferncia.

Sistemas lineares.

Funes definidas na linha de comando.

Interface com o sistema e programas em C.

Soluo de EDO e manipulao de funes.

Arquivos de script sessao0i.sce i=1,...,6.

2. Tipos de dados

Constantes especiais (constantes_especiais.sce).

Escalares, Vetores e Matrizes (matrizes.sce).

Polinmios (polinomios.sce).

Sistemas lineares (sistema_linear.sce).

Algumas especificidades:

Listas (listas.sce).

Matrizes de booleanos e inteiros (boolean,sce,


inteiro.sce ).

Vetores N-dimensionais (vetores_n.sce).

Indexao de matrizes e listas (indexacao.sce).

3. Programao

O Scilab fornece ao usurio a possibilidade de


criar e usar novas funes.
Permite o desenvolvimento de programas
especializados que podem se integrar no pacote
do Scilab de forma simples e modular
(bibliotecas).

Ferramentas de programao

Operadores ==, <, >, <=, >= e <>.

Lao for e lao while.

Condicionais if-then-else e select-case.

Exemplo: programacao.sce

Estrutura de uma funo

Sintaxe
function [y1,...,yn] = foo (x1,...,xm)
...
endfunction

xi so os argumentos de entrada.

yj so os argumentos de sada.

Definio de funes

As funes podem ser definidas in line ou em


arquivos (extenso .sci).

Um arquivo pode conter diversas funes.

As funes so objetos do Scilab.

Comandos getf, exec e exists.

Exemplo: fatorial
n!=nn121

Implementao do clculo do fatorial de n:


k=1
Para i de 1 at n faa k = k.i
fatorial(n) = k

Implementao recursiva:
fatorial n=nfatorial n1 n1
fatorial n=1 n1

Exemplo: Clculo do determinante

Expanso em cofatores e menores:

1 2 3
5 6
4 6
4 5
11
1122
1133
4 5 6 =1 1
8 9
7 9
7 8
7 8 9

4. Manipulao de grficos

Grficos 2D genricos

plot2d(x, y [, opt])

: vetor coluna com valores para o eixo horizontal.

: vetor coluna ou matriz com valores para o eixo vertical.

Exemplo

Desenhar o grfico de y = x.sen(x) para x entre -50 e 50.

Desenhar tambm as linhas y = x e y = -x.

Escala e estilo do grfico

Comandos opcionais plot2di:

i = 1

: logartmico

i = 2

: constante por partes

i = 3

: barras

i = 4

: setas

Exemplo: graficos_plot2di.sce

Estilo de ponto

Parmetro style define cores (style > 0) e marcas (style < 0)


diferentes

Identificao de cores e marcas com xset()

Exemplo: graficos_estilos2d.sce

Molduras, legendas, divises e


subdivises dos eixos

Estilos de eixo

rect = [ xmin, ymin, xmax, ymax]

Nmero de divises e subdivises

leg = curva1@curva2@...

Limites do grfico

(par de eixos passando por (0,0))

Legendas para as curvas

axesflag = 5

nax = [ nx, Nx, ny, Ny]

Exemplo: graficos_legendas2d.sce

Cabealhos e apresentao

Grade

Ttulo do grfico

xset()

Ttulo ao fundo do grfico

xtitle(Grfico,Eixo x,Eixo y)

Ajuste dos parmetros do grfico

xgrid()

titlepage(Ttulo)

Exemplo: graficos_cabecalhos2d.sce

Grficos: generalidades

Exportao de grficos para outros formatos:

LaTeX

Xfig

Gif

Outros exemplos

Grficos para controle: graficos_controle.sce .

Grficos 3D: graficos_exemplos3di.sce com i=1,...,4.

Mais detalhes

Introduction to Scilab e manuais.

Exemplo: Srie de Fourier para a onda


quadrada
2 n1wt
3 wt
5 wt
x t =sin wt sin
sin
sin
3
5
2 n1

n: nmero de termos da srie

w: freqncia em rad/s (w = 2/T)

5.1. Aplicao: controle automtico

Soluo de equaes diferenciais ordinrias

y = ode([tipo,] y0, t0, t, fc)

y0 : condies iniciais para y

t0 : tempo inicial

fc : funo externa ou lista, informa as derivadas

[tipo] : mtodo de soluo

adams: non-stiff predictor corrector Adams method (padro)

stiff: stiff backward differentiation formula (BDF) (padro)

rk: Runge Kutta adaptativo de ordem 4

rkf: Runge Kutta 4 e 5

Outros: fix, root e discrete.

Sintaxe de fc

Equaes do tipo y =f y

fc uma funo do Scilab que define a derivada.

Exemplo
2

y =2y tsin y

A funo fica definida como:


function dy = f(t,y)
dy = 2*y^2 + t*sin(y)
endfunction

Sintaxe de fc (cont.)

Equaes do tipo y =f y , u

fc uma lista list(f,u1,u2,...,un) onde f uma


funo do Scilab que define as derivadas e ui so funes
do Scilab que definem as entradas para f.

Exemplo

Equao diferencial

y =2y 2yu t

Entrada

u t =5sin4 t

Sintaxe de fc (cont.)

As funes so definidas como


function dy = f(t,y,u)
dy = y^2 + y*u(t);
endfunction
function uc = u(t)
uc = 5*sin(4*t);
endfunction

E a chamada de fc fica sendo list(f,u).

Exemplos

Resolver a equao diferencial abaixo para


t com y(0) = 0.
y =y ysin t cos t

Resolver a equao diferencial abaixo para


t ] com u(t) = sen (5t) e x(0) = [1 0]'.

[ ][

][ ] [ ]

x1 = 1 1 x 1 1 u
0 2 x 2
1
x 2

Funes de Controle Clssico

Um sistema linear definido por sua funo de


transferncia ou suas matrizes de espao de
estados:

[s1] = syslin(dom, A, B, C[, D[, x0]])

[s1] = syslin(dom, num, den)

[s1] = syslin(dom, H)

Exemplo
2

0,2s 0,3s1
H s= 2
s 0,4s1s0,5

Anlise clssica

Mostrar plos e zeros

Traa o root locus

evans(s1)

Transformao em espao de estados e vice-eversa

trfmod(s1[, job])

s2 = tf2ss(s1) e s3 = ss2tf(s2)

Autovalores da matriz do espao de estados do


sistema (plos)

spec(s2.A)

Resposta temporal

Simulao (resposta temporal) de um sistema


linear

[ y[, x] ] = csim( u, t, s1[, x0])

u a entrada de controle que pode ser

uma funo [inputs] = u (t)

uma lista list(u1, p1, p2, ...), onde [inputs]


= u ( t, p1, p2, ...)

A palavra impuls para a resposta ao impulso

A palavra step para a resposta ao degrau

Anlise no domnio da freqncia

Clculo da resposta em freqncia

[x] = freq(A, B, C[, D], f)

[x] = freq(num, den, f)

Diagrama de Bode

Amplitude em dB e fase da resposta em freqncia


bode(s1)

Margem de ganho e margem de fase

g_margin(s1)

p_margin(s1)

Anlise no domnio da freqncia


(cont.)

Diagrama de Nyquist

Parte real versus parte imaginria da resposta em


freqncia
nyquist(s1)

Carta de Nichols

black(s1)

Projeto de controladores

Locao de plos para realimentao total de


estados

Controlador LQR

ppol(s1.A, s1.B, polos)

lqr2stan(s1, Q, R)

Controlador timo pelo critrio da norma H2

lqr(s1)

5.2. Aplicao: processamento de


sinais

Diversas funes para processamento de sinais.

Exemplo: FFT

Uso da FFT para anlise de sinais estocsticos no


domnio da freqncia
Definir sinal senoidal

t = (0:0.1:20)';

x = sin(3*t)/2;

Criar sinal de rudo usando nmeros aleatrios

r = rand(x);

Adicione o rudo ao sinal x

xr = x + r;

Exemplo: FFT (cont.)

Completar xr para 1024 pontos (sinal xrf) e tomar a


transformada de Fourier

Xrf = fft(xrf, 1)

Observar o pico correspondente ao sinal senoidal

6. Outras aplicaes

Controle Automtico

LMI, controle robusto, modelagem ARMA, identificao etc.

Processamento de sinais

Communications Toolbox, arquivos de som etc.

Otimizao

Interface com programas C e Fortran.

Tradutor para programas e toolboxes do Matlab.

Metanet: manipulao de grafos.

Scicos: diagramas de blocos e simulao.

7. Concluses

O Scilab uma ferramenta para o projeto de


sistemas em controle automtico e processamento
de sinais.
um software livre.
Diversas funcionalidades somadas possibilidade
de expanso na forma de bibliotecas.
Opo ao uso do Matlab tanto no meio acadmico
quanto na indstria.

Muito Obrigado!

Contato:
aecc@epq.ime.eb.br

Você também pode gostar