scilab modulo 1 - udesc - cct · national de recherche en informatique et en automatique ) e do...

Post on 15-Sep-2018

226 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

top related