SCILAB
Dr.ª Eng.ª Mariana Santos Matos Cavalca
Eng.º Eduardo Bonci Cavalca
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
Algumas apostilas e tutoriais:
•
Scilab for Real Dummies
www.heikell.fi/downloads/scilab.ppt
•
Scilab/Xcos tutorials
https://sites.google.com/site/matlinkit/scilab
•
Introdução ao Scilab
http://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf
•
Scilab 5.x
http://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
MÓDULO 1: CONCEITOS BÁSICOS
Dr.ª Eng.ª Mariana Santos Matos Cavalca
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
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;
Área de trabalho: versão 5.3.3
MenuToolbar
Menu: Arquivo
• Executar...: Executa Scilab
scripts;
• 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: Aplicativos
SciNotes: Abre o editor detexto 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.
Toolbar
1. SciNote 2. Abrir Arquivo 3. Recortar 4. Copiar 5. Colar6. Alterar diretório atual 7. Escolher Fonte 8. Imprimir 9. ATOMS 10. XCOS 11. Demonstrações 12. Ajuda
Ajuda
Existem três principais caminhos para acessar o help do Scilab: 1. Digite help, o nome da função e pressione enter;
2. Tecle F1;
Ajuda
Selecionando 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: 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: Toolbar
1. Novo 2. Abrir 3. Abre em …/modules 4. Salvar 5. Salvar como 6. Imprimir 7. Desfazer 8. Refazer 9. Recortar 10. Copiar 11. Colar 12. Localizar/Substituir 13. Busca Incrementar 14. Executar 15. Executar e SalvarAjustando as Janelas
Clique com o botão esquerdo do mouse na barra em negrito da janela ativa e então a arraste em cima da outra janela e solte.
Ajustando as Janelas
Clique com o botão esquerdo do mouse na barra em negrito da janela ativa e 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
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 de arredondamento
round() Arredonda para o maior
número inteiro
fix()ou
int() Retorna a parte inteira floor() Arredonda para um
número inteiro menor
ceil() Arredonda para um
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)!
Dicas Adicionais:
•
Ao se pressionar a tecla “seta para cima”
podemos selecionar os comandos utilizados
recentemente;
•
Se você não lembrar do nome inteiro de
uma função, escreva o começo e pressione
tab que uma lista de funções aparecerá.
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
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 retorna
um vetor coluna e o segundo um vetor linha);
•
diag() – retorna um vetor coluna com os elementos da diagonal
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 cada
linha 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ção
Booleana;
•
gsort() – retorna uma matriz com os elementos em ordem
decrescente;
•
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().
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 Plot
Seja x=[0 0.1 0.2 0.3 … 10]. Plote o valor de y=0.5*x.*sin(2*x).
Exercício 1 : Comando Plot
Seja x=[0 0.1 0.2 0.3 … 10]. Plote o valor de y=0.5*x*sin(2*x).Gráficos
• O comando plot retorna um gráfico simples sem título, labels dos eixos ou grade; • Se você utilizar o comando
plot novamente sem fechar a janela gráfica, o novo gráfico será traçado em cima do antigo;
• Para limpar uma janela gráfica podemos utilizar o comando clf. Outros comandos interessantes são: • clear: apaga as variáveis da área de trabalho; • clc: limpa a linha de comando.
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ção
3. Endfunction
• Para executar uma função faça:
1. exec('nome_do_arquivo.sci') 2. [parametros,de,saida]=nome_da
Exercício 3: Solução de um sistema de equações
•
Resolva o seguinte sistema de equações:
x1 + 2x2 – x3 = 1 -2x1 – 6x2 + 4x3 = -2 -x1 – 3x2 + 3x3 = 1
Dica: Reescreva o problema da forma:
1 b = -2 1 1 2 –1 A = -2 –6 4 , -1 –3 3
•
Resolva o seguinte sistema de equações:
x1 + 2x2 – x3 = 1 -2x1 – 6x2 + 4x3 = -2 -x1 – 3x2 + 3x3 = 1
Dica: Reescreva o problema da forma:
1 b = -2 1 1 2 –1 A = -2 –6 4 , -1 –3 3 Solução: x1 -1 x2 = 2 x3 2
•
Explore o ambiente Scilab:
•
Menus;
•
Funções básicas;
•
Help.
MÓDULO 1: CONCEITOS BÁSICOS
Dr.ª Eng.ª Mariana Santos Matos Cavalca Obrigada!