Introdução ao Scilab

Cap Carrilho Fevereiro de 2004

Objetivos

Conhecer o software Scilab como ferramenta de CASD. Manipular algumas funcionalidades importantes do Scilab, a saber:
– – – –

Programação; Gráficos; Ambiente SCICOS, e Interfaceamento com Fortran e C.

Objetivos

Usar o Scilab para resolver problemas de
– –

Controle e Processamento de sinais.

Sumário
1. Introdução 2. Tipos de dados 3. Programação 4. Gráficos 5. Aplicações
5.1. Controle automático 5.2. Processamento de sinais

6. Outras aplicações 7. Comentários finais

.1. Criado e mantido pelo INRIA. Introdução ● O que é o Scilab? – – Ferramenta para o desenvolvimento de sistemas de controle automático e processamento de sinais.

razões de polinômios. ● ● . Álgebra linear. otimização. equações de estados etc. solução de EDOs. polinômios.Destaques do Scilab ● Diversos objetos – Matrizes. Interface com funções escritas em C e Fortran. ● Inúmeras funções primitivas básicas – ● Ambiente de programação que permite a criação de novas funções ou bibliotecas pelo usuário. funções de transferência. Ambiente gráfico SCICOS. controle automático. processamento de sinais etc.

inria. Diversas versões de Unix e Windows.7 disponível em http://scilabsoft. – Versão 2.inria.Observações gerais ● Software grátis com código fonte aberto. Também disponível no site http://scilabsoft.html ● Binários disponíveis para diversas plataformas: – ● Documentação – .fr/.fr/doc.

Padrão no meio acadêmico (ensino e pesquisa) e indústria. poder comunicar-se com outros grupos. Software comercial e pago ($$$). Uso legalizado para ensino e para pesquisa. ● Matlab – – ● Relação de compromisso – – . Scilab Consortium: intenção de expansão. Na pesquisa.Comentários sobre o uso ● Scilab – – Software com código livre e distribuição gratuita.

Experiência com os desenvolvedores do CheckMate. Dois episódios de modificação dos termos da licença. Matlab com licenças distintas para ensino e para pesquisa. ● CMU – – – . Uso ainda considerável do Matlab em pesquisa.Experiência pessoal ● UFSC – – – Uso de software livre recomendado. Projeto Disciplina Livre do GUFSC – grupo de usuários de software livre da UFSC.

.sce i=1. ● ● ● ● ● . Manipulação de polinômios e funções de transferência... Básico de manipulação de números e matrizes..6. Sistemas lineares.Uma sessão inicial ● ● ● Introdução à interface. Arquivos de script sessao0i. Interface com o sistema e programas em C. Solução de EDO e manipulação de funções. Funções definidas na linha de comando.

sce ). Polinômios (polinomios.sce). Indexação de matrizes e listas (indexacao.sce). Vetores N-dimensionais (vetores_n.sce). Tipos de dados ● Constantes especiais (constantes_especiais. Algumas especificidades: – – – – ● ● ● ● Listas (listas. inteiro.sce.sce).sce). Escalares.sce). Sistemas lineares (sistema_linear.sce). Vetores e Matrizes (matrizes. Matrizes de booleanos e inteiros (boolean.2. .

● . Permite o desenvolvimento de programas especializados que podem se integrar no pacote do Scilab de forma simples e modular (bibliotecas). Programação ● O Scilab fornece ao usuário a possibilidade de criar e usar novas funções.3.

>.Ferramentas de programação ● Operadores ==. Laço for e laço while. <. <=. Exemplo: programacao. >= e <>.sce ● ● ● . Condicionais if-then-else e select-case.

endfunction ● xi são os argumentos de entrada..xm) ...yn] = foo (x1..Estrutura de uma função ● Sintaxe function [y1..... yj são os argumentos de saída... ● .

● ● ● . Comandos getf.Definição de funções ● As funções podem ser definidas in line ou em arquivos (extensão . As funções são objetos do Scilab. exec e exists. Um arquivo pode conter diversas funções.sci).

i fatorial(n) = k ● Implementação recursiva: fatorial n=n⋅fatorial n−1 n1 fatorial n=1 n1 .Exemplo: fatorial n!=n⋅n−1⋅⋅2⋅1 ● Implementação do cálculo do fatorial de n: k=1 Para i de 1 até n faça k = k.

Exemplo: Cálculo do determinante ● Expansão em cofatores e menores: 1 2 3 5 6 4 6 4 5 11 −112⋅2⋅ −113⋅3⋅ 4 5 6 =−1 ⋅1⋅ 8 9 7 9 7 8 7 8 9 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ .

: vetor coluna ou matriz com valores para o eixo vertical.sen(x) para x entre -50 e 50. Manipulação de gráficos ● Gráficos 2D genéricos – – – plot2d(x. ● Exemplo – – Desenhar o gráfico de y = x.4. opt]) x y : vetor coluna com valores para o eixo horizontal. Desenhar também as linhas y = x e y = -x. . y [.

Escala e estilo do gráfico ● Comandos opcionais plot2di: – – – – i = 1 i = 2 i = 3 i = 4 : logarítmico : constante por partes : barras : setas – ● Exemplo: graficos_plot2di.sce Parâmetro style define cores (style > 0) e marcas (style < 0) diferentes Identificação de cores e marcas com xset() Estilo de ponto – – – Exemplo: graficos_estilos2d.sce .

ymax] ● Número de divisões e subdivisões – nax = [ nx.” ● Limites do gráfico – rect = [ xmin. ny. Nx. divisões e subdivisões dos eixos ● Estilos de eixo – axesflag = 5 (par de eixos passando por (0. Ny] ● Exemplo: graficos_legendas2d. legendas.Molduras.0)) ● Legendas para as curvas – leg = “curva1@curva2@.. xmax. ymin..sce .

”Eixo x”.sce .Cabeçalhos e apresentação ● Grade – xgrid() ● Título do gráfico – xtitle(“Gráfico”.”Eixo y”) ● Ajuste dos parâmetros do gráfico – xset() ● Título ao fundo do gráfico – titlepage(“Título”) ● Exemplo: graficos_cabecalhos2d.

4.sce . Gráficos 3D: graficos_exemplos3di.. ● Outros exemplos – – ● Mais detalhes – ..Gráficos: generalidades ● Exportação de gráficos para outros formatos: – – – LaTeX Xfig Gif Gráficos para controle: graficos_controle. Introduction to Scilab e manuais.sce com i=1...

Exemplo: Série de Fourier para a onda quadrada 2 n−1wt 3 wt 5 wt x t =sin wt sin sin sin 3 5 2 n−1 ● n: número de termos da série w: freqüência em rad/s (w = 2π /T) ● .

t0.5. informa as derivadas [tipo] : método de solução ● ● ● ● ● adams: non-stiff predictor corrector Adams method (padrão) stiff: stiff backward differentiation formula (BDF) (padrão) rk: Runge Kutta adaptativo de ordem 4 rkf: Runge Kutta 4 e 5 Outros: fix. root e discrete. Aplicação: controle automático ● Solução de equações diferenciais ordinárias – – – – – y = ode([tipo.1. . t.] y0. fc) y0 : condições iniciais para y t0 : tempo inicial fc : função externa ou lista.

Sintaxe de fc ● ˙ Equações do tipo y =f  y  – fc é uma função do Scilab que define a derivada.y) dy = 2*y^2 + t*sin(y) endfunction . ● Exemplo y =2⋅y t⋅sin y ˙ 2 ● A função fica definida como: function dy = f(t.

. Equação diferencial ● Exemplo – y =2⋅y 2y⋅u t  ˙ – Entrada u t =5⋅sin4 t  .un) onde f é uma função do Scilab que define as derivadas e ui são funções do Scilab que definem as entradas para f.) ● ˙ Equações do tipo y =f  y . u  – fc é uma lista list(f.u2.Sintaxe de fc (cont....u1.

endfunction ● E a chamada de fc fica sendo list(f. endfunction function uc = u(t) uc = 5*sin(4*t).u) dy = y^2 + y*u(t).) ● As funções são definidas como function dy = f(t. .y.Sintaxe de fc (cont.u).

Exemplos ● Resolver a equação diferencial abaixo para t  com y(0) = 0. ˙ y =y² −y⋅sin t cos t Resolver a equação 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 ][ ] [ ] .

5 2 .Funções de Controle Clássico ● Um sistema linear é definido por sua função de transferência ou suas matrizes de espaço de estados: – – – [s1] = syslin(dom. D[.3⋅s1 H s= 2 s 0. C[. A. num. B. x0]]) [s1] = syslin(dom. den) [s1] = syslin(dom.4⋅s1⋅s0.2⋅s 0. H) ● Exemplo 0.

A) .Análise clássica ● Mostrar pólos e zeros – trfmod(s1[. job]) ● Traça o root locus – evans(s1) ● Transformação em espaço de estados e vice-eversa – s2 = tf2ss(s1) e s3 = ss2tf(s2) ● Autovalores da matriz do espaço de estados do sistema (pólos) – spec(s2.

onde [inputs] = u ( t.. x] ] = csim( u.Resposta temporal ● Simulação (resposta temporal) de um sistema linear – [ y[. . p2. t..)... x0]) uma função [inputs] = u (t) uma lista list(u1. s1[. p1. p2. p1. .) A palavra impuls para a resposta ao impulso A palavra step para a resposta ao degrau ● u é a entrada de controle que pode ser – – – – .

C[. den. f) [x] = freq(num.Análise no domínio da freqüência ● Cálculo da resposta em freqüência – – [x] = freq(A. f) Amplitude em dB e fase da resposta em freqüência bode(s1) ● Diagrama de Bode – – ● Margem de ganho e margem de fase – – g_margin(s1) p_margin(s1) . B. D].

Análise no domínio da freqüência (cont.) ● Diagrama de Nyquist – – Parte real versus parte imaginária da resposta em freqüência nyquist(s1) ● Carta de Nichols – black(s1) .

A.B.Projeto de controladores ● Locação de pólos para realimentação total de estados – ppol(s1. Q. R) ● Controlador ótimo pelo critério da norma H2 – lqr(s1) . s1. polos) ● Controlador LQR – lqr2stan(s1.

Aplicação: processamento de sinais ● Diversas funções para processamento de sinais.2.5. .

● Criar sinal de ruído usando números aleatórios – r = rand(x). x = sin(3*t)/2. .1:20)'.Exemplo: FFT ● Uso da FFT para análise de sinais estocásticos no domínio da freqüência Definir sinal senoidal – – ● t = (0:0. ● Adicione o ruído ao sinal x – xr = x + r.

Exemplo: FFT (cont. 1) ● Observar o pico correspondente ao sinal senoidal .) ● Completar xr para 1024 pontos (sinal xrf) e tomar a transformada de Fourier – Xrf = fft(xrf.

controle robusto. Metanet: manipulação de grafos. Tradutor para programas e toolboxes do Matlab. Outras aplicações ● Controle Automático – LMI.6. arquivos de som etc. modelagem ARMA. identificação etc. Communications Toolbox. . Scicos: diagramas de blocos e simulação. ● Processamento de sinais – ● ● ● ● ● Otimização Interface com programas C e Fortran.

7. Opção ao uso do Matlab tanto no meio acadêmico quanto na indústria. Conclusões ● O Scilab é uma ferramenta para o projeto de sistemas em controle automático e processamento de sinais. ● ● ● . Diversas funcionalidades somadas à possibilidade de expansão na forma de bibliotecas. É um software livre.

Muito Obrigado! Contato: aecc@epq.br .eb.ime.

Sign up to vote on this title
UsefulNot useful