You are on page 1of 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

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

Inmeras funes primitivas bsicas

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.

Verso 2.7 disponvel em http://scilabsoft.inria.fr/. Diversas verses de Unix e Windows. Tambm disponvel no site http://scilabsoft.inria.fr/doc.html

Binrios disponveis para diversas plataformas:

Documentao

Comentrios sobre o uso

Scilab

Software com cdigo livre e distribuio gratuita. Scilab Consortium: inteno de expanso. Software comercial e pago ($$$). Padro no meio acadmico (ensino e pesquisa) e indstria. Uso legalizado para ensino e para pesquisa. Na pesquisa, poder comunicar-se com outros grupos.

Matlab

Relao de compromisso

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. Matlab com licenas distintas para ensino e para pesquisa. Dois episdios de modificao dos termos da licena. Experincia com os desenvolvedores do CheckMate.

CMU

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]) x y

: 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 i = 2 i = 3 i = 4

: logartmico : constante por partes : barras : setas

Exemplo: graficos_plot2di.sce
Parmetro style define cores (style > 0) e marcas (style < 0) diferentes Identificao de cores e marcas com xset()

Estilo de ponto

Exemplo: graficos_estilos2d.sce

Molduras, legendas, divises e subdivises dos eixos

Estilos de eixo

axesflag = 5

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

Legendas para as curvas

leg = curva1@curva2@...

Limites do grfico

rect = [ xmin, ymin, xmax, ymax]

Nmero de divises e subdivises

nax = [ nx, Nx, ny, Ny]

Exemplo: graficos_legendas2d.sce

Cabealhos e apresentao

Grade

xgrid()

Ttulo do grfico

xtitle(Grfico,Eixo x,Eixo y)

Ajuste dos parmetros do grfico

xset()

Ttulo ao fundo do grfico

titlepage(Ttulo)

Exemplo: graficos_cabecalhos2d.sce

Grficos: generalidades

Exportao de grficos para outros formatos:


LaTeX Xfig Gif Grficos para controle: graficos_controle.sce . Grficos 3D: graficos_exemplos3di.sce com i=1,...,4. Introduction to Scilab e manuais.

Outros exemplos

Mais detalhes

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 y =2y tsin y


2

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

Exemplo

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

[ ][

x 1 = 1 1 x 1 1 u 0 2 x 2 1 x2

][ ] [ ]

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 0,2s 0,3s1 H s= 2 s 0,4s1s0,5


2

Anlise clssica

Mostrar plos e zeros

trfmod(s1[, job])

Traa o root locus

evans(s1)

Transformao em espao de estados e vice-eversa

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

u a entrada de controle que pode ser


Anlise no domnio da freqncia

Clculo da resposta em freqncia


[x] = freq(A, B, C[, D], f) [x] = freq(num, den, f) Amplitude em dB e fase da resposta em freqncia bode(s1)

Diagrama de Bode

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

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

Controlador LQR

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. Communications Toolbox, arquivos de som etc.

Processamento de sinais

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

You might also like