Post on 15-Sep-2018
SCILAB
Dr.ª Eng.ª Mariana Santos Matos CavalcaEng.º Eduardo Bonci Cavalca
Scilab 5.3.3
Principais objetivos:
• Primeiro contato com o software livre SCILAB para apoio à projetos
de engenharia de controle.
• Software disponível para download em:
http://www.scilab.org/products/scilab/download
• Versão atual: 5.3.3 (disponível para Linux, Windows e Mac OS X)
Algumas apostilas e tutoriais:
• Scilab for Real Dummieswww.heikell.fi/downloads/scilab.ppt
• Scilab/Xcos tutorials https://sites.google.com/site/matlinkit/scilab
• Introdução ao Scilabhttp://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf
• Scilab 5.xhttp://euler.mat.ufrgs.br/~giacomo/Manuais-softw/SCILAB/Apostila%20de%20Scilab%20-%20atualizada.pdf
• http://wiki.scilab.org/Tutorials
Agenda do Minicurso
1. Módulo 1 – Conceitos Básicos
2. Módulo 2 – Programação
3. Módulo 3 – Ferramentas Gráficas
4. Módulo 4 – Sistemas de Controle
5. Módulo 5 – Xcos
MÓDULO 1: CONCEITOS BÁSICOSDr.ª Eng.ª Mariana Santos Matos Cavalca
Baseado em www.heikell.fi/downloads/scilab.ppt
Sobre Scilab
• É um software livre de apoio à projeto engenharia que se assemelha a
linha de atuação do Matlab;
• Desenvolvido desde 1990 pelos pesquisadores do INRIA (Institut
National de Recherche en Informatique et en Automatique) e do ENPC
(École Nationale des Ponts et Chaussées), atualmente é mantido e
desenvolvido pelo Consórcio Scilab desde sua criação em maio de
2003 . É distribuído gratuitamente via internet desde 1994;
• A versão atual inclui o módulo Xcos que se assemelha ao Simulink do
Matlab.
Scilab x Matlab
• Linguagem semelhante, com enfoque matricial inclusive;
• SCILAB é livre e atualmente tem sido alvo de atualizações;
• Diversos módulos específicos tem sido desenvolvidos, inclusive
ferramentas específicas para área de controle;
• Desenvolvimento do ambiente Xcos, que possui funcionalidade
similar ao Simulink/Matlab;
• Dificuldades no help e documentação.
Scilab.org
Área de trabalho: versão 5.3.3
MenuToolbar
Linha de Comando
Área de trabalho: versão 5.4 beta 2
Menu: Arquivo
• Executar...: Executa Scilabscripts;
• Abrir um arquivo…: Abre um arquivo Scilab;
• Alterar diretório atual/ Exibir diretório atual: o diretório atual deve ser o mesmo onde se encontram os arquivos que você está trabalhando.
Menu: Editar
Menu: Preferências
Menu: Controle
Menu: Aplicativos
SciNotes: Abre o editor de texto do Scilab;
Xcos: Abre Xcos;
Tradutor de Matlab para Scilab:converte um arquivo em .m (Matlab) para um arquivo em .sci (Scilab);
Atoms: Abre o gerenciador de módulos;
Navegador de variáveis: Abre uma lista de variáveis atuais;
Histórico de comandos: Abre uma lista com os comandos utilizados.
Menu: ?
Toolbar
1. SciNote2. Abrir Arquivo3. Recortar4. Copiar5. Colar6. Alterar diretório atual7. Escolher Fonte8. Imprimir9. ATOMS10.XCOS11.Demonstrações12.Ajuda
AjudaExistem três principais caminhos para acessar o help do Scilab:
1. Digite help, o nome da função e pressione enter;2. Tecle F1;3. Utilize a aba ?: Ajuda do Scilab.
Ajuda
AjudaSelecionando o botão Play no examplo, os comandos são executados.
SciNotes
• O editor de texto é o ambiente no qual scripts são desenvolvidos, “debugados” e executados;
• São arquivos Scilab: *.sce (default) ou *.sci ;
• Uma grande vantagem do SciNote é a possibilidade de salvar códigos e reutilizá-los.
SciNotes: Arquivo
SciNotes: Editar
SciNotes: Buscar
SciNotes: Preferences
SciNotes: Window
SciNotes: Executar
Existem três opções para execução de arquivos:
... file with no echo: comando de execução básico;
... file with echo: executa o script e o mostra no console;
... until the caret, with echo: executa até o ponto do cursor.
SciNotes: ?
SciNotes: Toolbar
1. Novo2. Abrir 3. Abre em …/modules4. Salvar5. Salvar como6. Imprimir7. Desfazer8. Refazer9. Recortar10.Copiar11.Colar12.Localizar/Substituir13. Busca Incrementar14.Executar15.Executar e Salvar
Ajustando as JanelasClique com o botão esquerdo do mouse na barra em negrito da janela ativae então a arraste em cima da outra janela e solte.
Ajustando as JanelasClique com o botão esquerdo do mouse na barra em negrito da janela ativae então a arraste em cima da outra janela e solte.
Comandos de usuário:
O Scilab tem dois tipos de comandos definidos pelo usuário:
• Scripts : Um conjunto de comandos utilizado para automaticamente
realizar alguma simulação numérica;
• Funções (macros): Programas pequenos que tipicamente envolvem
variáveis de saída e de entrada. As funções definidas pelo usuário
podem ser locais ou globais.
Funções matemáticas comuns
sin(), cos(), tan(), cotg() Funções trigonométricas, exemplo: sin(.2*%pi)asin(), acos(), atan()
sinh(), cosh(), tanh(), coth()Funções hiperbólicas
asinh(), acosh(), atanh()
sqrt(), exp() Raiz quadrada e exponencial (e^)
sum() Somatório
min(), max() Valor mínimo e máximo
abs(), sign() Valor absoluto, sinal
real(), imag()Partes real e imaginária de um número complexo.
Variáveis pré-definidas e Constantes
%i i = √-1
%pi π = 3.1415927….
%e e = 2.7182818….
%eps ε = 2.22 · 10-16
%inf Infinito
%nan “Not a Number”
%s s
%z z
%t, %T true
%f, %F false
Operadores
; Fim de uma expressão, separador de linhas
, Separador de instruções, argumentos ou colunas
'Matriz conjugada transposta, delimitador de uma string*
. ' Matriz não-conjugada transposta
[] Concatenação de vetores e matrizes
()Argumento, modificar ordem de execução de operadores, dentre outros
+ , - Adição e Subtração
* , .* Multiplicação e multiplicação elemento por elemento
* É possivel definir uma string com aspas simples ‘’ ou dupla “”.
Operadores
/ , ./Divisão à direita, divisão à direita elemento por elemento
\ , .\Divisão à esquerda, divisão à esquerda elemento por elemento
^ or ** , .^ Potência, potência elemento por elemento
| OR
& AND
~ NOT
==, >=, <=, >, <,< >, ~=
Igual a, maior ou igual que, menor ou igual que, maior que, menor que, diferente de (tanto <> quanto ~=)
Funções matemáticas básicas
Funções matemáticas básicas
Funções matemáticas básicas
Funções matemáticas básicas
Funções de arredondamento
round() Arredonda para o maiornúmero inteiro
fix()ouint() Retorna a parte inteira
floor() Arredonda para um número inteiro menor
ceil() Arredonda para um número inteiro menor
Lista de Variáveis
Lista de variáveis
• O comando browsevar abre o
navegador de variáveis que
informa as variáveis definidas no
momento bem como seu tipo,
tamanho e nível de visibilidade
(local ou global).
Precisão computacional
Cuidado com erros de precisão(arredondamentos)!
Mostrando gráficos
Dicas Adicionais:
• Ao se pressionar a tecla “seta para cima”podemos selecionar os comandos utilizadosrecentemente;
• Se você não lembrar do nome inteiro deuma função, escreva o começo e pressionetab que uma lista de funções aparecerá.
Quebrando linhas de comando longas
Polinômios
� Para declarar o polinômio P(s)=s^2-3s+2=(s-1)(s-2), existem quatro formas:
� Pelas raízes: p = poly([ 1 2 ], 's')� Pelos coeficientes: p = poly([ 2 3 1 ], 's' , 'coeff ' )(os coeficiente devem ser colocados do menor grau para
o maior);� Criando a variável: s = poly(0, ‘s’);
p = s^2-3*s+2� Utilizando a variável %s: p = %s^2-3*%s+2
Polinômios
Matrizes e Vetores
Matrizes e Vetores• Operações soma, subtração, multiplicação, divisão e concatenação
de matrizes conforme o Matlab (cuidado com as dimensões!);
• inv() – calcula o inverso de uma matriz;
• det() – calcula o determinante de uma matriz
• ones(l,c) e zeros(l,c ) – gera matrizes de l linhas e c colunas com elementos 1 ou 0;
• [l,c]=size() – retorna o número de linhas e colunas;
• sum() – retorna a soma de todos os elementos da matriz;
• sum(A,’c’) e sum(A,’r’) - retorna a soma das linhas e das colunas de uma matriz A respectivamente (é invertido porque o primeiro retornaum vetor coluna e o segundo um vetor linha);
• diag() – retorna um vetor coluna com os elementos da diagonal principal da matriz.
Matrizes e Vetores• min(), max(), mean() – retorna o valor minimo, máximo ou a
média dos elementos de uma matriz;
• min(A,’c’), min(A,’r’), max(A,’c’), max(A,’r’), mean( A,’c’),mean(A,’r’), - retorna o menor/maior valor ou média de cadalinha e/ou coluna de uma matriz A;
• find() – identifica e retorna a localização em linha dos elementos de uma matriz que atendem uma condiçãoBooleana;
• gsort() – retorna uma matriz com os elementos em ordemdecrescente;
• Para gerar uma sequência de números faça Nini: Passo: Nfin ;
• $ - reference ao último valor de uma matriz.
Strings
• Strings podem ser definidos por aspas simples ou duplas:
‘Isto é uma string , e isto também
• disp(), string() – mostra uma mensagem de texto na linha de
comando. Variáveis devem ser convertidas para string com a
função string().
• a = input (“Digite o valor de a: “);
deff(): define uma função online
solve(): Solucionador simbólico de sistemas lineares
Substitui em w os valores de a, x e y definidos no workspace.
fsolve(): encontra o zero de um sistema não-linear
Retorna apenas o zero mais próximo do valor inicial.
Para obter as duas raízes, neste caso podemos forçar uma condição inicial negativa.
Exercício 1: Comando PlotSeja x=[0 0.1 0.2 0.3 … 10]. Plote o valor de y=0.5*x.*sin(2*x).
Dicas: Para definir o vetor x, faça x = [0:.1:10]. Verifique o help do comando plot
Exercício 1 : Comando PlotSeja x=[0 0.1 0.2 0.3 … 10]. Plote o valor de y=0.5*x*sin(2*x).
Dicas: Para definir o vetor x, faça x = [0:.1:10]. Verifique o help do comando plot.
Gráficos• O comando plot retorna um
gráfico simples sem título,labels dos eixos ou grade;
• Se você utilizar o comandoplot novamente sem fechara janela gráfica, o novográfico será traçado emcima do antigo;
• Para limpar uma janelagráfica podemos utilizar ocomando clf. Outroscomandos interessantessão:
• clear: apaga asvariáveis da área detrabalho;
• clc: limpa a linha decomando.
Gráficos
• Para incluir detalhes em um
gráfico utilize os comandos:
• Legend(‘xxx’)
• Xgrid()
• Xtitle(‘xxx’)
• Xlabel(‘xxx’)
• ylabel(‘xxx’)
Exercício 2: Bingo
1: Crie uma função que retorna um número aleatório de 1-99.
Dicas: • Utilize o comando rand na opção uniform
(0-1) e normalize para 1-99. • Para definir uma função faça:
1. function [x1, ..., xn] = nomeDaFunção (p1, ...,pn)
2. Código da função3. Endfunction
• Para executar uma função faça:1. exec('nome_do_arquivo.sci') 2. [parametros,de,saida]=nome_da
_funcao(parametros,de,entrada);
Exercício 3: Solução de um sistema de equações
• Resolva o seguinte sistema de equações:
x1 + 2x 2 – x 3 = 1-2x 1 – 6x 2 + 4x 3 = -2
-x 1 – 3x 2 + 3x 3 = 1
Dica: Reescreva o problema da forma:
1b = -2
1
1 2 –1A = -2 –6 4 ,
-1 –3 3
• Resolva o seguinte sistema de equações:
x1 + 2x 2 – x 3 = 1-2x 1 – 6x 2 + 4x 3 = -2
-x 1 – 3x 2 + 3x 3 = 1
Dica: Reescreva o problema da forma:
1b = -2
1
1 2 –1A = -2 –6 4 ,
-1 –3 3
Solução:
x1 -1x2 = 2x3 2
Exercício 3: Solução de um sistema de equações
• Explore o ambiente Scilab:
• Menus;
• Funções básicas;
• Help.
Exercício Extra:
MÓDULO 1: CONCEITOS BÁSICOSDr.ª Eng.ª Mariana Santos Matos Cavalca
Obrigada!