Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos
Conhecer o software Scilab como ferramenta de CASD. Manipular algumas funcionalidades importantes do Scilab, a saber:
Objetivos
Sumrio
1. Introduo 2. Tipos de dados 3. Programao 4. Grficos 5. Aplicaes
5.1. Controle automtico 5.2. Processamento de sinais
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.
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
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
Documentao
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
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
Sintaxe
function [y1,...,yn] = foo (x1,...,xm) ... endfunction
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 recursiva:
fatorial n=nfatorial n1 n1 fatorial n=1 n1
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.
i = 1 i = 2 i = 3 i = 4
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
Estilos de eixo
axesflag = 5
leg = curva1@curva2@...
Limites do grfico
Exemplo: graficos_legendas2d.sce
Cabealhos e apresentao
Grade
xgrid()
Ttulo do grfico
xtitle(Grfico,Eixo x,Eixo y)
xset()
titlepage(Ttulo)
Exemplo: graficos_cabecalhos2d.sce
Grficos: generalidades
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
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
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.)
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
][ ] [ ]
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)
Anlise clssica
trfmod(s1[, job])
evans(s1)
s2 = tf2ss(s1) e s3 = ss2tf(s2)
spec(s2.A)
Resposta temporal
[ 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
[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
g_margin(s1) p_margin(s1)
Diagrama de Nyquist
Carta de Nichols
black(s1)
Projeto de controladores
Controlador LQR
lqr2stan(s1, Q, R)
lqr(s1)
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;
r = rand(x);
xr = x + r;
Xrf = fft(xrf, 1)
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