Prévia do material em texto
Lista de Comandos Básicos - Scilab
1
Universidade Tecnológica Federal do Paraná – UTFPR
Campus Campo Mourão – CM
Coordenação de Engenharia Eletrônica – COELE
BR 369, km 0,5 – Caixa Postal: 271,
CEP 87301-006, Campo Mourão - PR – Brasil
Lista de Comandos Básicos - Controle 1 - Scilab
Scilab é um ambiente voltado para o desenvolvimento de software para
resolução de problemas numéricos. Segue uma lista com alguns dos comandos básicos
para uso na disciplina de Controle 1, desenvolvida pela monitora Natalia S. Andreazi
Matsushita sob a supervisão do professor Leandro Castilho Brolin.
Variáveis Fixas
%i – Número imaginário;
%pi – π (3,1415926...);
%e – Número de Euler (2,7182818...);
%inf – Infinito (∞);
%s – Variável complexa de polinômios (Transformada de Laplace (s = jω));
%z – Variável complexa de polinômios (Transformada z);
%T – Variável Booleana TRUE;
%F – Variável Booleana FALSE.
OBS.: O Scilab diferencia maiúsculas e minúsculas.
OBS.2: Ao criar uma variável o Scilab aceita apenas uma única palavra, com até 24
caracteres e que não inicie com um número.
Comandos com números reais e complexos
abs(x) – Calcula módulo do número complexo;
atan(x) – Calcula o ângulo em radianos;
imag(x) – Mostra a parte imaginária de um complexo;
real(x) – Mostra a parte real de um complexo;
modulo(x, y) – Mostra o resto da divisão entre x e y;
Lista de Comandos Básicos - Scilab
2
round(x) – Arredonda para o valor inteiro mais próximo;
floor(x) – Arredonda para menor inteiro;
ceil(x) – Arredonda para o maior inteiro;
sqrt(x) – Calcula a raiz quadrada de x;
Criando Polinômios
poly(0, ‘x’) – Define x como variável do polinômio;
roots(x) – Calcula as raízes da função;
horner(x, 1) – Calcula o valor da função polinômio;
pdiv(p, q) – Efetua a divisão e calcula quociente e resto;
Exemplo 1:
a = 3 + 2*%i; //Define o valor de A como 3+2i
ang = atan(2/3); //Calcula o valor do ângulo de A
mod = abs(A); //Calcula o valor do módulo de A
ang_graus = ang*180/%pi; //Converte o ângulo de radianos para graus
Exemplo 2:
x = poly(0, ‘x’); //Define a variável x.
p1 = poly([1 2], ‘x’); //Define um polinômio por suas raízes, no caso 1 e 2.
p2 = poly([2 -3 1], ‘x’, ‘coeff’); //Define um polinômio por seus coeficientes em
ordem crescente, ou seja, do menor coeficiente para
o maior.
p3 = x^2-3*x+2; //Define x como variável.
x1 = roots(p3); //Atribui a x1 as raízes do polinômio p3.
x2 = horner(p3, 1) //Calcula o valor de p3 para x = 1.
div_rac = p1/p3 //Divide os dois polinômios apenas racionalmente
[r, q] = pdiv(p1, p3) //Divide os dois polinômios e atribui a r o resto e a q o
quociente.
Lista de Comandos Básicos - Scilab
3
OBS: Um polinômio pode ser definido por suas raízes, por seus coeficientes ou
declarando a variável e escrevendo a equação.
OBS.2: As operações básicas para polinômios são quase todas as mesma, menos a
divisão. A operação p/q não efetua a divisão de polinômios, apenas gera a fração
racional.
Criando e Configurando Gráficos:
figure(n) – Determina em qual janela o gráfico da função inferior deve ser representado,
sendo ‘n’ o número da janela;
xset(‘window’, n) – Da mesma forma que o figure(n), o xset determina em qual janela o
gráfico é representado. A diferença é que ele representa o gráfico da função superior ao
comando.
plot(x, y, <LineSpec>, <GlobalPropertie>) – esboça o gráfico de x e y em 2D. Os
parâmetros <LineSpec> e <GlobalPropertie> são opcionais.
Exemplo 3:
x = [0:0.1:2*%pi]; //Inicia x.
y = sin(x); //Define a variável y.
z = cos(x); //Define a variável z.
plot(x, y, x, z); //Plota os gráficos x-y e x-z.
xset(‘window’, 0); //Atribui o gráfico á janela 0.
Exemplo 4:
x = [0:0.1:2*%pi]; //Inicia x.
y = sin(x); //Define a variável y.
z = cos(x); //Define a variável z.
figure( 0); //Atribui o gráfico á janela 0.
plot(x, y, x, z); //Plota os gráficos x-y e x-z.
Lista de Comandos Básicos - Scilab
4
De forma genérica:
plot(x1, y1, <LineSpec>, x2, y2, <LineSpec2>, ..., xn, yn, <LineSpec>,
<GlobalPropertie1>, <GlobalPropertie2>, …, <GlobalPropertien>);
Line Spec – Especifica um modo de desenhar uma linha. As Tabela.1 e Tabela.2
mostram os tipo que podem ser utilizados com plot().
Tabela.1 Comandos para tipos de linha
Comando Estilo de Linha
- Padrão (contínua)
-- Tracejada
: Pontilhada
-. Tracejada - Pontilhada
Tabela.2 Comandos para determinar cor de linha
Comando Cor de Linha
r vermelho
g verde
b azul
c ciano
m magenta
y amarelo
k preto
w branco
Exemplo 5:
x = [0:0.1:2*%pi]; //Inicia x.
y = sin(x); //Define a variável y.
z = cos(x); //Define a variável z.
plot(x, y, ‘b-’, x ,z ,’k-.’); //Plota os gráficos x-y (na cor azul e com linha contínua) e
x-z (na cor preta e com linha tracejada-pontilhada).
xset(‘window’, 0); //Atribui o gráfico á janela 0.
OBS: A Figura.1 em anexo mostra o gráfico que o exercício 5 gera.
Lista de Comandos Básicos - Scilab
5
xgrid – comando que inclui as linhas no gráfico.
x_location – Define a posição do eixo x. É dividido em: “bottom” (abaixo), “top”
(acima), “middle” (meio) e “origin” (origem).
y_location- Define a posição do eixo y. Assim como no x_location, é dividido em:
“left” (esquerda), “right” (direita), “middle” (meio) e “origin” (origem).
OBS: Para utilizar o x_location e o y_location é necessário manipular a entidade Axe.
Subplot (m, n, p) – Junta dois ou mais gráficos em uma única janela. Os parâmetros ‘m’
e ‘n’ indicam o tamanho da matriz onde estão as imagens, enquanto que o ‘p’ indica
onde deve estar a figura em questão.
Exemplo 6:
x = [0:0.1:2*%pi]; //Inicia x.
y = sin(x); //Define a variável y.
z = cos(x); //Define a variável z.
plot(x, y, x ,z); //Plota os gráficos x-y e x-z.
xset(‘window’, 0); //Atribui o gráfico á janela 0.
a = gca(); //Manipula a entidade Axes.
a.x.location = “middle”; //Centra o eixo x na origem.
a.y.location = “middle”; //Centra o eixo y na origem.
xgrid
OBS: A Figura.2 em anexo mostra o gráfico que o exercício 6 gera.
Lista de Comandos Básicos - Scilab
6
sqrt(x) – Calcula a raiz quadrada de x;
title(<axes_handle>, ‘texto’, <property>) – Cria um título para uma janela gráfica com
parâmetros. Onde property consiste num argumento opcional e representa duas
declarações {propertyName, propertyValue} e axes_handle obrida o título a aparecer
nos eixos definidos por ele.
Diagrama de Bode:
bode(<sl>, <freqmin>, <freqmax>): Esta função gera o Diagrama de Bode. <sl>
determina a equação como linear, <freqmin> determina a frequência mínima do gráfico
e <freqmax> indica a máxima.
Exemplo 7:
subplot(221); //Define a posição do gráfico plot3d.
plot3d(); //Esboço de um gráfico 3d.
subplot(222); //Define a posição do gráfico plot2d.
plot2d(); //Esboço de um gráfico 2D.
subplot(223); //Define a posição do gráfico de uma curva parametrizada.
param3d(); //Esboço de um gráfico de uma curvaparametrizada.
subplot(224); //Define a posição do gráfico de um histograma 3d.
hist3d(); //Esboço de um histograma 3D.
OBS: A Figura.3 em anexo mostra o gráfico que o exercício 7 gera.
Exemplo 8:
x = [0:0.1:2*%pi]; //Inicia x.
y = sin(x); //Define a variável y.
z = cos(x); //Define a variável z.
title('Gráfico','color','blue'); //Cria o título do gráfico como "Gráfico" na cor azul.
plot(x, y, x ,z); //Plota os gráficos x-y e x-z.
Lista de Comandos Básicos - Scilab
7
Root Locus (Lugar das raízes):
evans(H, max): Esta função gera o root locus. <H> é o sistema linear e <kmax>
determina o ganho máximo.
Exemplo 9:
s=poly(0,'s') //Indica “s” como uma variável
h=syslin('c',(s^2+2*0.9*10*s+100)/(s^2+2*0.3*10.1*s+102.01)) //Lineariza a equação “h”
bode(h,0.01,100); //Gera o Diagrama de Bode com os parâmetros designados
Exemplo 11:
s = poly(0, 's');
Ft = ((s+8)*(s+45))/((s+3)*(s+6)*(s+10));
y = syslin('c', Ft); //Lineariza a função de transferência em malha aberta
evans(y); //Root Locus sistema não discretizado
Lista de Comandos Básicos - Scilab
8
Anexo de Figuras
Figura.1 Gráfico obtido no exemplo 5.
Lista de Comandos Básicos - Scilab
9
Figura.2 Gráfico obtido no exemplo 6.
Lista de Comandos Básicos - Scilab
10
Figura.3 Gráfico obtido no exemplo 7.