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!

"rograma#$o%

&r'ficos%

Ambiente SC(C)S e

(nterfaceamento com Fortran e C.


Objetivos

*sar o Scilab para resolver problemas de

Controle e

"rocessamento de sinais.
Sumrio
+. (ntrodu#$o
2. ,ipos de dados
-. "rograma#$o
4. &r'ficos
.. Aplica#/es
..+. Controle autom'tico
..2. "rocessamento de sinais
0. )utras aplica#/es
1. Coment'rios finais
1. Introduo

) 2ue 3 o Scilab4

Ferramenta para o desenvolvimento de sistemas de


controle autom'tico e processamento de sinais.

Criado e mantido pelo (56(A.


Destaques do Scilab

Diversos ob7etos

Matri8es polin9mios ra8/es de polin9mios fun#/es de


transfer:ncia e2ua#/es de estados etc.

(n;meras fun#/es primitivas b'sicas

<lgebra linear solu#$o de =D)s otimi8a#$o controle


autom'tico processamento de sinais etc.

Ambiente de programa#$o 2ue permite a cria#$o


de novas fun#/es ou bibliotecas pelo usu'rio.

Ambiente gr'fico SC(C)S.

(nterface com fun#/es escritas em C e Fortran.


Observaes gerais

Software gr'tis com c>digo fonte aberto.

?ers$o 2.1 dispon@vel em http!AAscilabsoft.inria.frA.

Bin'rios dispon@veis para diversas plataformas!

Diversas vers/es de *niC e Dindows.

Documenta#$o

,amb3m dispon@vel no site http!AAscilabsoft.inria.frAdoc.html


Comentrios sobre o uso

Scilab

Software com c>digo livre e distribui#$o gratuita.

Scilab Consortium! inten#$o de eCpans$o.

Matlab

Software comercial e pago EFFFG.

"adr$o no meio acad:mico Eensino e pes2uisaG e ind;stria.

6ela#$o de compromisso

*so legali8ado para ensino e para pes2uisa.

5a pes2uisa poder comunicarHse com outros grupos.


E!eri"ncia !essoal

*FSC

*so de software livre recomendado.

"ro7eto Disciplina Livre do &*FSC I grupo de usu'rios de


software livre da *FSC.

*so ainda consider'vel do Matlab em pes2uisa.

CM*

Matlab com licen#as distintas para ensino e para pes2uisa.

Dois epis>dios de modifica#$o dos termos da licen#a.

=Cperi:ncia com os desenvolvedores do ChecJMate.


#ma sesso inicial

(ntrodu#$o K interface.

B'sico de manipula#$o de n;meros e matri8es.

Manipula#$o de polin9mios e fun#/es de


transfer:ncia.

Sistemas lineares.

Fun#/es definidas na linha de comando.

(nterface com o sistema e programas em C.

Solu#$o de =D) e manipula#$o de fun#/es.

Ar2uivos de script sessao0i.sce iL+...0.


$. %i!os de dados

Constantes especiais Econstantes_especiais.sceG.

=scalares ?etores e Matri8es Ematrizes.sceG.

"olin9mios Epolinomios.sceG.

Sistemas lineares Esistema_linear.sceG.

Algumas especificidades!

Mistas Elistas.sceG.

Matri8es de booleanos e inteiros Eboolean,sce


inteiro.sceG.

?etores 5Hdimensionais Evetores_n.sceG.

(ndeCa#$o de matri8es e listas Eindexacao.sceG.


&. 'rogramao

) Scilab fornece ao usu'rio a possibilidade de


criar e usar novas fun#/es.

"ermite o desenvolvimento de programas


especiali8ados 2ue podem se integrar no pacote
do Scilab de forma simples e modular
EbibliotecasG.
(erramentas de !rogramao

)peradores ==, <, >, <=, >= e <>.

Ma#o for e la#o while.

Condicionais if-then-else e select-case.

=Cemplo! programacao.sce
Estrutura de uma )uno

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

xi s$o os argumentos de entrada.

yj s$o os argumentos de sa@da.


De)inio de )unes

As fun#/es podem ser definidas in line ou em


ar2uivos EeCtens$o .sciG.

*m ar2uivo pode conter diversas fun#/es.

As fun#/es s$o ob7etos do Scilab.

Comandos getf exec e exists.


Eem!lo* )atorial

(mplementa#$o do c'lculo do fatorial de n!


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

(mplementa#$o recursiva!
fatorial n=nfatorial n+ n+
fatorial n=+ n+
n!=nn+2+
Eem!lo* Clculo do determinante

=Cpans$o em cofatores e menores!

+ 2 -
4 . 0
1 N O

=+
++
+

. 0
N O

+
+2
2

4 0
1 O

+
+-
-

4 .
1 N

+. ,ani!ulao de gr)icos

&r'ficos 2D gen3ricos
plot2d(x, y [, opt])

x ! vetor coluna com valores para o eiCo hori8ontal.

y ! vetor coluna ou matri8 com valores para o eiCo vertical.

=Cemplo

Desenhar o gr'fico de P L C.senECG para C entre H.0 e .0.

Desenhar tamb3m as linhas P L C e P L HC.


Escala e estilo do gr)ico

Comandos opcionais plot2di!

i = 1 ! logar@tmico

i = 2 ! constante por partes

i = 3 ! barras

i = 4 ! setas

=Cemplo! graficos_plot2di.sce

=stilo de ponto

"arQmetro style define cores Estyle R 0G e marcas Estyle S 0G


diferentes

(dentifica#$o de cores e marcas com CsetEG

=Cemplo! graficos_estilos2d.sce
,olduras- legendas- divises e
subdivises dos eios

=stilos de eiCo

axesflag = 5 Epar de eiCos passando por E00GG

Megendas para as curvas


leg = curva1@curva2@...

Mimites do gr'fico
rect = [ xmin, ymin, xmax, ymax]

5;mero de divis/es e subdivis/es


nax = [ nx, Nx, ny, Ny]

=Cemplo! graficos_legendas2d.sce
Cabeal.os e a!resentao

&rade
xgrid()

,@tulo do gr'fico
xtitle(Grfico,Eixo x,Eixo y)

A7uste dos parQmetros do gr'fico


xset()

,@tulo ao fundo do gr'fico


titlepage(Ttulo)

=Cemplo! graficos_cabecalhos2d.sce
/r)icos* generalidades

=Cporta#$o de gr'ficos para outros formatos!

Ma,eT

Tfig

&if

)utros eCemplos

&r'ficos para controle! graficos_controle.sce.

&r'ficos -D! graficos_exemplos3di.sce com i=1,...,4.

Mais detalhes

ntroduction to Scilab e manuais.


Eem!lo* S0rie de (ourier !ara a onda
quadrada

n! n;mero de termos da s3rie

w! fre2U:ncia em radAs Ew L 2A,G


! t =sin"t sin
-"t
-
sin
."t
.
sin
2n+"t
2n+
1.1. 2!licao* controle automtico

Solu#$o de e2ua#/es diferenciais ordin'rias


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

y0 ! condi#/es iniciais para P

t0 ! tempo inicial

fc ! fun#$o eCterna ou lista informa as derivadas

[tipo] ! m3todo de solu#$o

adams! nonHstiff predictor corrector Adams method Epadr$oG

stiff! stiff bacJward differentiation formula EBDFG Epadr$oG

rk! 6unge Vutta adaptativo de ordem 4

rkf! 6unge Vutta 4 e .

)utros! fix root e discrete.


Sintae de )c

=2ua#/es do tipo

fc 3 uma fun#$o do Scilab 2ue define a derivada.

=Cemplo

A fun#$o fica definida como!


function dy = f(t,y)
dy = 2*y^2 + t*sin(y)
endfunction
#=f #
#=2#
2
tsin#
Sintae de )c 3cont.4

=2ua#/es do tipo

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


fun#$o do Scilab 2ue define as derivadas e ui s$o fun#/es
do Scilab 2ue definem as entradas para f.

=Cemplo

=2ua#$o diferencial

=ntrada
#=f # $ u
#=2#
2
#ut
ut =.sin 4t
Sintae de )c 3cont.4

As fun#/es s$o 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

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


Eem!los

6esolver a e2ua#$o diferencial abaiCo para


t [0,] com PE0G L 0.

6esolver a e2ua#$o diferencial abaiCo para


t [0,1W com uEtG L sen E.tG e CE0G L X+ 0WY.
#=#% #sint cost
[
!
+
!
2
]
=
[
+ +
0 2
]

[
!
+
!
2
]

[
+
+
]
u
(unes de Controle Clssico

*m sistema linear 3 definido por sua fun#$o de


transfer:ncia ou suas matri8es de espa#o de
estados!
[s1] = syslin(dom, A, B, C[, D[, x0]])
[s1] = syslin(dom, num, den)
[s1] = syslin(dom, H)

=Cemplo
&s=
02s
2
0-s+
s
2
04s+s0.
2nlise clssica

Mostrar p>los e 8eros


trfmod(s1[, job])

,ra#a o root locus


evans(s1)

,ransforma#$o em espa#o de estados e viceHeH


versa

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

Autovalores da matri8 do espa#o de estados do


sistema Ep>losG
spec(s2.A)
5es!osta tem!oral

Simula#$o Eresposta temporalG de um sistema


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

u 3 a entrada de controle 2ue pode ser

uma fun#$o [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


2nlise no dom6nio da )req7"ncia

C'lculo da resposta em fre2U:ncia


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

Diagrama de Bode

Amplitude em dB e fase da resposta em fre2U:ncia


bode(s1)

Margem de ganho e margem de fase

g_margin(s1)
p_margin(s1)
2nlise no dom6nio da )req7"ncia
3cont.4

Diagrama de 5P2uist

"arte real versus parte imagin'ria da resposta em


fre2U:ncia
nyquist(s1)

Carta de 5ichols
black(s1)
'rojeto de controladores

Moca#$o de p>los para realimenta#$o total de


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

Controlador MZ6
lqr2stan(s1, Q, R)

Controlador >timo pelo crit3rio da norma [


2
lqr(s1)
1.$. 2!licao* !rocessamento de
sinais

Diversas fun#/es para processamento de sinais.


Eem!lo* ((%

*so da FF, para an'lise de sinais estoc'sticos no


dom@nio da fre2U:ncia

Definir sinal senoidal


t = (0:0.1:20)';
x = sin(3*t)/2;

Criar sinal de ru@do usando n;meros aleat>rios


r = rand(x);

Adicione o ru@do ao sinal C


xr = x + r;
Eem!lo* ((% 3cont.4

Completar Cr para +024 pontos Esinal CrfG e tomar a


transformada de Fourier
Xrf = fft(xrf, 1)

)bservar o pico correspondente ao sinal senoidal


8. Outras a!licaes

Controle Autom'tico

MM( controle robusto modelagem A6MA identifica#$o etc.

"rocessamento de sinais

Communications ,oolboC ar2uivos de som etc.

)timi8a#$o

(nterface com programas C e Fortran.

,radutor para programas e toolboCes do Matlab.

Metanet! manipula#$o de grafos.

Scicos! diagramas de blocos e simula#$o.


9. Concluses

) Scilab 3 uma ferramenta para o pro7eto de


sistemas em controle autom'tico e processamento
de sinais.

\ um software livre.

Diversas funcionalidades somadas K possibilidade


de eCpans$o na forma de bibliotecas.

)p#$o ao uso do Matlab tanto no meio acad:mico


2uanto na ind;stria.
,uito Obrigado:
Contato!
aecc]ep2.ime.eb.br

Você também pode gostar