Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentao
Automao
Disciplina: Automao
Criado em 1990 no INRIA Institut de Recherche en Informatique et en Automatique e do ENPC - cole Nationale des Ponts et Chausses.
Scilab
Desde 1994 est disponvel na Internet de forma gratuita, software com verses pr-compiladas para vrios sistemas operacionais e cdigo fonte, open source software.
Automao
Automao
Apresentao
Automao
Apresentao
O ponto e vrgula:
Um ponto e vrgula no final da linha - o aps o fim da execuo da linha de comando, fica pronto para receber outra linha. O resultado da operao fica mascarado para o usurio
prompt inicial - smbolo --> Permite calcular e compilar programas sem salvar as alteraes
Sem ponto e vrgula no final da linha - a quebra de linha denota o fim da execuo e a exibio do resultado ao usurio
Automao
Variveis
Regras:
Automao
Menus drop down
File: New Scilab, Exec, Open, Load, Save, Change Directory, Get Current Directory, Print Setup, Print e Exit. Edit: Select All, Copy, Paste, Empty Clipboard e History. Preferences: Language, Colors, Toolbar, Files Association, Choose Fonts, Clear History, Clear Command Window e Console. Control: Resume, Abort e Interrupt. Editor Applications: Scicos, Edit Graph, m2sci e Browser Variables. ?: Scilab Help, Configure, Scilab Demos, Web Links e About.
Automao
Valores/variveis pr-definidas
Podem ser acessadas pelo comando whos e who. Exemplos: %F valor booleano false (falso) %T valor booleano true (verdadeiro) %z Polinomial (varivel complexa) %s Polinomial (varivel complexa) %nan Constante (not a numeric) %inf Constante (infinito) COMPILER String %gtk Booleana %gui Booleana %pvm Booleana ans - contm o valor da ltima expresso no-atribuda
Palavra nica At 24 caracteres No pode iniciar com nmero (Nomes invlidos 1A , b%, .C), mas pode iniciar com letra, #, $, ?, _, % Case sensitive
Automao
Valores pr-definidos
Exemplos: %tk $ %t %f %eps %io %i %e %pi Booleana Polinomial Booleana Booleana Constante Constante valor constante (imaginrio 1 ) valor constante (no de Euler = 2,7182818...) valor constante ( = 3,1415926...)
Automao
Variveis para localizao de diretrios
No prompt de comandos
Automao
Armazenagem de variveis e comandos
save: armazena em arquivo variveis criadas durante os trabalhos no ambiente. Sintaxe: save(nome_do_arquivo.dat,variveis) load: carrega os valores das variveis do arquivo load(nome_do_arquivo,variveis) clear: limpa/apaga as variveis no protegidas do ambiente diary: cria uma memria de clculo, salvando os comandos digitados em um arquivo texto diary(nome_do_arquivo); diary(0) // Fecha o comando
SCI: diretrio onde o Scilab est instalado pwd: diretrio atual que est sendo usado pelo Scilab cd ou chdir: muda o diretrio de trabalho what() lista de primitivas do scilab whos: exibe os nomes de variveis correntes, seus tipos e memria utilizada who: mostra as variveis locais e globais who(local) who(global)
Automao
Armazenagem de variveis e comandos
Exemplo: -->a=2, b=3 -->save('dados.dat',a,b) -->clear -->a,b !--error 4 undefined variable : a -->load('dados.dat') -->a,b a= 2. b= 3.
Automao
Armazenagem de variveis e comandos
Automao
Armazenagem de variveis e comandos
clear cancela todas as variveis, exceto as protegidas por predef. clear a cancela a varivel a
Normalmente, variveis protegidas so bibliotecas padres e variveis com o prefixo %. Note a sintaxe, clear a e no clear(a). Note tambm que a=[] no cancela a, mas define a como uma matriz vazia.
Automao
Comandos
O normal escrever uma instruo por linha Pode-se tambm:
Automao
Ambiente
o espao de trabalho no prompt de comando, podendose usar mais de um espao de trabalho para realizar operaes paralelas durante a execuo de um programa principal. Para adicionar um ambiente digite
Automao
Ambiente
Variveis declaradas no ambiente N so vlidas para os ambientes abaixo dele (N+1,N+2,N+3 etc.) Variveis declaradas no ambiente N so invlidas nos ambientes acima dele (N1, N2, N3 etc.)
colocar vrias instrues em uma mesma linha, desde que separadas por vrgula ou pelo ponto e vrgula, e distribuir um comando em vrias linhas, usando as reticncias (...) no final de cada linha (com exceo da ltima)
pause no workspace ou o atalho ctrlc Uma nova seta de prompt, acompanhada do cardinal correspondente hierarquia do ambiente surgir
abort interrompe a avaliao corrente e retorna ao prompt de comando clc limpa a tela, entradas e sadas, mas permite usar as setas para recuperar comandos exercutados. clc(nblines)
O retorno ao ambiente principal dado pelo comando abort e ao ambiente anterior, pelos comandos return ou resume
Automao
Operaes matemticas bsicas
Em geral, as variveis matemticas usadas no Scilab so vetores complexos. O nmero imaginrio denotado por %i e, seguindo a notao padro de um nmero complexo z = a+bi
Automao
Operaes matemticas bsicas
-->a=2;b=3; //declarando as variaveis -->a+b //soma ans = 5. -->a-b //subtracao ans = - 1. -->a*b //multiplicacao ans = 6. -->a/b //divisao ans = 0.6666667 -->a^b //exponenciacao ans = 8.
Automao
Operaes matemticas potenciao
"(A:square)^(b:scalar) Se A uma matriz quadrada e b um
escalar, ento A^b a matriz A elevada potncia b.
Operadores de:
Automao
Operaes matemticas potenciao "(A:matrix).^(b:matrix)" Se A e b so vetores (matrizes) de mesmo
tamanho A.^b o vetor A(i)^b(i) (matriz A(i,j)^b(i,j)).
Automao
Operaes matemticas com nos complexos
--> a=3+2*%i; b=96*%i; //declarando as variveis --> a+b //soma de complexos ans = 12. - 4.i --> a-b //subtrao de complexos ans = 6.+ 8.i --> a*b //multiplicao de complexos ans = 39. --> a/b //diviso de complexos ans = 0.1282051 + 0.3076923i --> sqrt(16) //raiz quadrada de nmero negativo ans = 4.i
Automao
Operaes matemticas com nos complexos
--> z=4+3*%i; //declarando a variavel complexa --> abs(z) //usando a funcao abs para calcular o modulo ans = 5. --> angulo_rad=atan(3,4) //funcao arcotangente retorna angulo_rad = //angulo em radianos 0.6435011 --> angulo_gr=angulo_rad*180/%pi //convertendo rad/graus angulo_gr = 36.869898
Exemplos:
// matriz ao cubo = A*A*A // cada valor elevado ao cubo // cada valor elevado ao cubo // cada valor elevado ao cubo // polinmio de ordem 10
Automao
elementos bsicos - parnteses
Exemplos: 3^(-1) x=poly(0,"x"); // (x+10)/2 i3=eye(3,3) // a=[1 2 3;4 5 6;7 8 9],a(1,3),a([1 3],:),a(:,3) a(:,3)=[] a(1,$)=33 a(2,[$ $-1]) a(:,$+1)=[10;11;12]
Automao
elementos bsicos - colchetes
([,]) colchetes (brackets) esquerdo e direito. Notao j:k vetor [j, j+1,...,k] (vazio se j>k) j:d:k vetor [j, j+d, ..., j+m*d] Exemplos: A(:) vetor de todos os elementos de A considerados como uma nica coluna A(:,j) j-sima coluna de A A(j:k) corresponde a [A(j),A(j+1),...,A(k)] A(:,j:k) corresponde a [A(:,j),A(:,j+1),...,A(:,k)] A(:) = w preenche a matriz A com entradas de w (tomados coluna a coluna se w uma matriz)
Automao
elementos bsicos - vrgula
(,) vrgula (comma) separador de colunas, instrues e argumentos. Vrgulas so usadas para separar parmetros em funes, ou para separar entradas em vetores linhas. Espaos vazios podem ser usados para separar entradas em um vetor linha, mas prefervel que se use vrgulas. Tambm usada para separar instrues do Scilab. (Use ; para que o resultado no seja exibido na tela). Exemplos: a=[1,2,3;4,5,6]; a=1,b=1;c=2
Automao
operadores bsicos - dois pontos
(:) operador dois pontos (colon) [a11,a12,...;a21,a22,...;...] [s1,s2,...]=func(...) Onde: a11,a12,... qualquer matriz (de reais, polinmios, razes de polinmios, lista syslin...) com dimenses apropriadas s1,s2,... qualquer nome de varivel possvel
Automao
Automao
elementos bsicos - ponto
Exemplos: //ponto decimal 1.345 //usado como parte de um operador x=[1 2 3];x.^2 .*x // um espao requerido entre 2 e o ponto // usado como marcas de continuao T=[123,.. //primeiro elemento 456] //segundo elemento a= comeo um string aqui... //mas no quero continuar aqui - e aqui eu continuo. y=12.. 45
Usados para concatenar vetores e matrizes. Para denotar lado esquerdo mltiplo para a chamada de uma funo. Espaos vazios ou vrgulas significam "concatenao de colunas e pontos-e-vrgulas ou retornos de carro "concatenao de linhas".
Automao
elementos bsicos - parnteses
( ) parnteses (parents)
Automao
Controle de fluxo
Automao
Controle de fluxo - for
O lao for para determinado ndice variando de um valor inicial at um valor final com determinado incremento, execute os comando sob o lao
Especificar ordem de avaliao dentro de expresses, Formar listas de argumentos do lado direito de uma funo. Dentro de lados direitos mltiplos, os argumentos devem ser separados por vrgula.
Selecionar elementos dentro de vetores, matrizes e listas. break palavra-chave para interromper um lao ("loop")
Automao
Controle de fluxo - while
Os comandos so executados enquanto uma condio for satisfeita clc clear close s=5; N=0; while s > 1e-5 s=s/10; N=N+1; end
Automao
Operadores lgicos
Operadores:
Automao
Operadores relacionais
Operadores relacionais: == (igual a) < (menor que) > (maior que) <= (menor ou igual) >= (maior ou igual) <> ou ~= (diferente) a==b a<b a>b a<=b a>=b a~=b ou a<>b
Automao
Operadores relacionais
Comparaes de igualdade e desigualdade: a==b, a~=b (ou de modo equivalente a<>b). Estes operadores se aplicam a quaisquer tipos de operandos.
Automao
Operadores relacionais
Se a e b so avaliados como arrays do mesmo tipo e dimenses idnticas, a comparao realizada elemento a elemento e o resultado um array de booleanos da comparao. Se a e b so avaliados como arrays do mesmo tipo, mas a ou b um array 1 por 1, o elemento comparado com cada elemento do outro array. O resultado um array de booleanos com o tamanho do operando no-escalar. Em outros casos, o resultado o booleano %f Se os tipos de dados dos operandos so diferentes, mas "compatveis", como pontos flutuantes e inteiros, uma converso de tipo realizada antes da comparao.
Automao
Operadores relacionais
Exemplos: //comparaes elemento a elemento (1:5)==3 (1:5)<=4 (1:5)<=[1 4 2 3 0] 1<[] list(1,2,3)~=list(1,3,3) //comparaes objeto a objeto (1:10)==[4,3] 'foo'==3 1==[] list(1,2,3)==1 isequal(list(1,2,3),1) isequal(1:10,1)
Comparaes de ordem: a<b, a<=b, a>b,a>=b. Estes operadores se aplicam apenas a arrays de pontos flutuantes reais e inteiros.
Automao
Operadores relacionais
Exemplos: //comparao com converso de tipo int32(1)==1 int32(1)<1.5 int32(1:5)<int8(3) p=poly(0,'s','c') p==0 p/poly(1,'s','c')==0
Automao
Operadores - prioridades
Automao
Controle de fluxo - if
O lao if caso a condio seja verdadeira, execute os comandos. Considere o exemplo, para separar os nmeros pares dos mpares N = 100; P = []; I = []; de 1 a 100 for i = 1:N if modulo(i,2)==0 P = [P i]; end if modulo(i,2)==1 I = [I i]; end end disp(P)
Automao
Controle de fluxo - if
O lao if com elseif e else if condicao_1 then sequencia_1 else sequencia_2 end N=100; P=[]; I=[]; for i=1:N if modulo(i,2)==0 P=[P i]; else I=[I i]; end end
Automao
Controle de fluxo - if
O lao if com elseif e else. Exemplo: separar os mltiplos de 7 alm dos nmeros pares e os mpares N=100; S=[]; P=[]; I=[]; for i=1:N if modulo(i,7)==0 S=[S i]; elseif modulo(i,2)==0 P=[P i]; else I=[I i]; end end
Automao
Controle de fluxo - select
Sintaxe: select expresso0, case expresso1 then instrues1, case expresso2 then instrues2, ... case expresson then instruesn, [else instrues], end
Automao
Controle de fluxo - select
Exemplo: while %t do n=round(10*rand(1,1)) select n case 0 then disp(0) case 1 then disp(1) else break end end
Automao
Polinmios
poly funo para definir polinmios. Se p=poly(a, x, ["flag"]) com o a matriz ou nmero real o x string at 4 caracteres, o nome da varivel simblica
Automao
Polinmios
Polinmios sob a mesma varivel podem ser somados, subtrados, multiplicados e divididos entre si e por nmeros complexos. O scilab disponibiliza duas variveis polinomiais especiais que NO podem ser modificadas:
Especificao de um polinmio por: 1. suas razes: P=poly([a b],'s') P=poly([a b], 's', 'r') P=poly([a b], 's', 'roots') 2. seus coeficientes: P=poly([c d], 's', 'c') P=poly([c d], 's', 'coeff') 3. s=poly(0,"s") a fonte para definir polinmios com smbolo "s"
Automao
Polinmios
Dado o polinmio p = s 3s +2 = (s 1)(s 2) --> p = poly([ 1 2 ], 's') // declarando pelas razes --> p = poly([ 2 -3 1 ], 's' , 'coeff ' ) // declarando pelos coeficientes --> p = %s^2-3*%s+2 // declarando usando a varivel s Declarando um polinmio x --> x = poly(0, 'x'); p = x^2-3*x+2 s=poly(0,"s"); p=1+s+2*s^2; A=rand(2,2); poly(A,"x") //fraes racionais h=(1+2*%s)/poly(1:4,'s','c')
Automao
Polinmios
A funo roots(P) calcula as razes da funo polinmio P. A funo horner(P, N) calcula o valor numrico da funo polinmio P Se a diviso de polinmios no for exata, obtem-se o resto e o quociente com o comando pdiv: [r q]=pdiv(P, Q); --> s=poly(0,'s'); M=[s,1/s]; --> horner(M,1) --> horner(M,%i) --> horner(M,1/s)
Automao
Polinmios
A funo coeff(P, n) retorna o coeficiente do polinmio P associado ao termo de grau n. O comando clean zera na matriz todos os elementos que so menores que a tolerncia definida pelo usurio. A sintaxe: Q=clean(P,ta,tr)
Os parmetros ta e tr so, respectivamente, as tolerncias absoluta e relativa, abaixo das quais os termos sero zerados
Automao
Polinmios
Exemplo: Criando um polinmio a partir das suas razes
Automao
Polinmios
--> p=poly([2 -3 1],'s','coeff') p= 2 2 3s + s --> roots(p) //calcula raizes ans = 1. 2. --> horner(p,2) //substitui s por 2 (uma raiz) ans = 0. --> P=poly(1:3,'x') --> horner(P,[1 2 5]) --> horner(P,[1 2 5]+%i)
Automao
Polinmios
--> p = poly([2 -3 1],'s','coeff'); // p = s 3s + 2 --> q = poly([1 0 2],'s','coeff'); // q= 2s + 1 --> p/q // no divide, apenas gera frao racional ans = 2 2 3s + s --------------2 1 + 2s -->[r,q] = pdiv(p,q) // divide calculando o r=resto q=quociente q= 0.5 r= 1.5 3s
q5 = q1 * q2 q6 = q1 / q2 pdiv(p, q)
Automao
Polinmios
Automao
Polinmios
C // The "coeff" function returns a vector containing the // coefficients of a given polynomial.
Automao
Polinmios
compute the derivative of the polynomial with the "derivat" function, which returns the derivative of the given polynomial or rational polynomial.
Onde pv a resposta, num, o polinmio numerador, den o polinmio denominador e v a faixa de valores nos quais deseja-se a avaliao do polinmio
Automao
Polinmios
Compute numerically the roots of one given polynomial with the "roots" function, which returns the vectors of roots. >> >>theroots=roots(p1)
Automao
Polinmios
The companion matrix is so that its characteristic polynomial is p. >> >>comp1=companion(p1) comp1 = 6. - 11. 1. 0. 0. 1. 6. 0. 0.
Automao
Polinmios
can check that the eigenvalues of the companion matrix of p1 are the roots of p1. >> >>roots1=spec(comp1) roots1 = 3. 2. 1.
Automao
Polinmios
One can factor a given polynomial with the "factor" function. Here the p1 polynomial can be written p1=g*(x-1)*(x-2)*(x-3) >> >>// with "g" the gain. >> >>[lnum,g]=factors(p1)
Automao
Polinmios
Rational polynomials can be defined as well. >> >>p9=(1+2*x+3*x^2)/(4+5*x+6*x^2) p9 = 2 1 + 2x + 3x ----------------2 4 + 5x + 6x
Automao
Polinmios
The derivative can be computed with "derivat", as as regular polynomial. >>p11=derivat(p9) p11 = 2 3 + 12x + 3x -------------------------2 3 4
Automao
Polinmios
Notice that polynomials and rational polynomials do not have the same type. >>typeof(p1) ans =
Automao
Polinmios
The numerator and denominator polynomials of the rational polynomial can be extracted with the "numer" and "denom" functions. numer(p9) ans = 2 1 + 2x + 3x denom(p9) ans = 2 4 + 5x + 6x
Automao
Polinmios
Rational polynomials can be simplified with the "simp" function, which returns the numerator and denominator of the given couple of polynomials.
polynomial
Automao
Vetores
A = valor_inicial:incremento:valor_final --> A=0:2:10 //incrementa de 2 em 2 A= 0. 2. 4. 6. 8. 10. --> b=0:10 //incrementa de 1 em 1 (padrao) b= 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. --> C=10:2:0 //decresce de 2 em 2 C= 10. 8. 6. 4. 2. 0.
Automao
Vetores
--> A=[4;5;6] // vetor coluna A= 4. 5. 6. --> A=[4,5,6]; B=[4 5 6]; //vetor linha --> A,B A= 4. 5. 6. B= 4. 5. 6.
Automao
Vetores
A funo length(x) retorna a dimenso de um vetor.
Transposio --> A=[1 2 3] //vetor linha A= 1. 2. 3. --> A' // transposta conjugada, vetor coluna ans = 1. 2. 3.
Automao
Vetores
ones(NumLinhas, NumCol) Gera vetor com todos os elementos iguais a 1. --> A= ones (4,1)
Automao
Matrizes
Declarao (3 Formas apresentadas) --> M=[1 2 3; 4 5 6; 7 8 9] --> M=[1, 2, 3; 4, 5, 6; 7, 8, 9] --> M=[ 1 2 3 <enter> --> 4 5 6 <enter> --> 7 8 9] --> D=[1 2;3 4]; E=[5 6;7 8]; --> F=[D E] // composio a partir de outras matrizes --> G=[D;E] // composio a partir de outras matrizes
Automao
Matrizes
Declarao --> a=[1 2 3;4 5 6] //definindo matriz 2x3 a= 1. 2. 3. 4. 5. 6. --> b=matrix(a,1,6) //modificando matriz a para 1x6 b= 1. 4. 2. 5. 3. 6. --> c=matrix(a,3,2) //modificando matriz a para 3x2 c= 1. 5. 4. 3. 2. 6.
zeros(NumLinhas, NumCol) Gera vetor com todos os elementos iguais a 0. --> B= zeros (4,1)
Automao
Matrizes
A funo size() retorna o nmero de linhas e colunas da matriz ( ' ) aspas (quote) usado para a transposta conjugada de uma matriz ( .' ) usado para a transposta no-conjugada de uma matriz Funes para gerao de matrizes: ones (m,n) matriz com todos os elementos iguais a 1 zeros(m,n) matriz nula eye(m,n) matriz identidade Onde:
Automao
Equaes diferenciais
funo dae() resolve equaes diferenciais algbricas A funo dae uma porta construda sobre as funes dassl e dasrt designada para equaes diferenciais implcitas Sintaxe y=dae(initial,t0,t,res) [y [,hd]]=dae(initial,t0,t [,rtol, [atol]],res [,jac] [,hd]) [y,rd]=dae("root",initial,t0,t,res,ng,surface) [y ,rd [,hd]]=dae("root",initial,t0,t [,rtol, [atol]],res [,jac], ng, .. surface [,hd])
Automao
Equaes diferenciais
initial vetor coluna. Pode ser igual a x0 or [x0;xdot0], onde x0 o valor de estado no tempo inicial t0 e ydot0 o valor da derivada do estado inicial ou uma estimativa dela (ver abaixo). t0 nmero real, o tempo inicial t escalar real ou vetor. Fornece instantes para os quais voc deseja uma soluo. Voc pode obter solues para cada ponto de passo de dae fazendo %DAEOPTIONS(2)=1.
Automao
Equaes diferenciais
rtol escalar real ou vetor coluna com o mesmo tamanho que x0. A tolerncia do erro relativo da soluo. Se rtol for um vetor, as tolerncias so especificadas para cada componente do estado. atol escalar real ou vetor coluna com o mesmo tamanho que x0. A tolerncia do erro absoluto da soluo. Se atol for um vetor, as tolerncias so especificadas para cada componente do estado.
Automao
Equaes diferenciais
res uma funo externa (external). Computa o valor de g(t,y,ydot). Pode ser:
Automao
Equaes diferenciais
res uma funo externa (external). Computa o valor de g(t,y,ydot). Pode ser:
Uma funo do Scilab sua seqncia de chamamento pode ser [r,ires]=res(t,x,xdot) e res deve retornar o resduo r=g(t,x,xdot) e o indicador de erro ires. ires = 0 se res obtiver sucesso ao computar r, = 1 se o resduo indefinido localmente para (t,x,xdot), = 2 se os parmetros esto fora do intervalo admissvel.
Uma lista Esta forma utilizada para passar parmetros funo. Deve ser como segue: list(res,p1,p2,...) Onde a seqncia de chamamento da funo res agora r=res(t,y,ydot,p1,p2,...) res ainda retorna o valor residual como uma funo de (t,x,xdot,x1,x2,...), e p1,p2,... so parmetros da funo.
Automao
Equaes diferenciais
res uma funo externa (external). Computa o valor de g(t,y,ydot). Pode ser:
Automao
Equaes diferenciais
res uma funo externa (external). Computa o valor de g(t,y,ydot). Um string Deve se referir ao nome subrotina C ou Fortran. A seqncia de chamamento em C deve ser C2F(<r_name>)(double *t, double *x, double *xdot, double *res, integer *ires, double *rpar, integer *ipar) onde t o valor de tempo corrente x o array de estados xdot o array das derivadas dos estados res o array de resduos ires o indicador de execuo rpar o array de valores de parmetros em ponto flutuante, necessrio, mas no pode ser definido pela funo dae
Automao
Equaes diferenciais
res uma funo externa (external). Computa o valor de g(t,y,ydot). Um string Deve se referir ao nome subrotina C ou Fortran. A seqncia de chamamento em C deve ser C2F(<r_name>)(double *t, double *x, double *xdot, double *res, integer *ires, double *rpar, integer *ipar) onde ipar o array de valores de parmetros inteiros, necessrio, mas no pode ser definido pela funo dae
Um string Deve se referir ao nome subrotina C ou Fortran. Supondo que <r_name> i o nome dado. A seqncia de chamamento em Fortran deve ser <r_name>(t,x,xdot,res,ires,rpar,ipar) double precision t,x(*),xdot(*),res(*),rpar(*) integer ires,ipar(*)
Automao
Sistema linear
syslin [sl]=syslin(dom,A,B,C [,D [,x0] ]) [sl]=syslin(dom,N,D) [sl]=syslin(dom,H) dom string ('c', 'd'), ou [] ou um escalar. A,B,C,D matrizes em representao de espao de estados (D opcional com valor padro matriz nula). para sistemas imprprios, D uma matriz de polinmios. x0 vetor (estado inicial; valor padro 0) N, D matrizes de polinmios H matriz de razes de polinmios ou representao de espao de estados linear sl tlist (lista "syslin") representando o sistema linear
Automao
Sistema linear
syslin define um sistema linear como uma lista e verifica a consistncia dos dados onde:
Automao
Sistema linear
Representao por FT sl=syslin(dom,N,D) sl=syslin(dom,H) A sada de syslin uma lista da seguinte forma: sl=tlist(['r','num','den','dt'],N,D,dom) ou sl=tlist(['r','num','den','dt'],H(2),H(3),dom).
dom='c' para um sistema de tempo contnuo, dom='d' para um sistema de tempo discreto, n para um sistema amostrado com perodo de amostragem n (em segundos). dom=[] se o domnio de tempo indefinido.
Automao
Sistema linear
Automao
Lugar das razes
Automao
Lugar das razes
evans(H [,kmax]) exemplos: --> H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c')); --> evans(H,100) --> P=3.0548543 - 8.8491842*%i; //P=ponto selecionado --> K = 1/real(horner(H,P)); --> Ns=H('num'); Ds=H('den');
H lista (sistema linear syslin) kmax real (ganho mximo desejado para o esboo)
Para obter o ganho em dado ponto do lugar geomtrico, execute a seguinte instruo e clique no ponto desejado sobre lugar geomtrico das razes --> k=-1/real(horner(h,[1,%i]*locate(1))
Automao
Lugar das razes
evans(H [,kmax]) exemplos: --> clf(); --> s=poly(0,'s'); n=1+s; d=real(poly([-1 -2 -%i %i],'s')); --> evans(n,d,100); // --> clf(); n=real(poly([0.1-%i 0.1+%i,-10],'s')); evans(n,d,80);
Automao
Definio de sistema
>>// SYSTEM DEFINITION
Automao
Definio de sistema
>>w=tf2ss(h); a == b ss2tf(w) ans = 1 ------------------ 2.500D-15 + s 1 - 8.974D-16s -------------------1.106D-14 + s + s 2 1 ----1+s 1 - 4.895D-16s -----------------2 4 + 4s + s
>> >>w=tf2ss(h);
10
Automao
Resposta temporal 2 ordem
EXAMPLE: SECOND ORDER SYSTEM ANALYSIS sl=syslin('c',1/(s*s+0.2*s+1)) sl = 1 ----------2 1 + 0.2s + s >>instants=0:0.05:20; // step response: >>y=csim('step',instants,sl); >>my_handle = scf(100001);clf(my_handle,"reset"); >>plot2d(instants,y)
Automao
Resposta temporal com atraso
deff('[in]=u(t)','if t<3 then in=0;else in=1;end'); y1=csim(u,instants,sl);plot2d(instants,y1);
Automao
Resposta temporal com atraso
>>// Impulse response;
Automao
Resposta temporal com atraso
Discretization >>dt=0.05; >>sld=dscr(tf2ss(sl),0.05); >>// Step response
Automao
Resposta temporal com atraso
// >> >>u=0*ones(instants);u(1)=1/dt; >>yy=flts(u,sld); >>my_handle = scf(100001);clf(my_handle,"reset"); >>plot(instants,yy); >>clear u; Impulse response
Automao
Resposta temporal com atraso
// system interconnexion >>w1=[w,w]; >>clean(ss2tf(w1)) ans = 1 s 1 ----2 s+s
1 ----1+s
1 s
1 ----1+s
1 1 1 ------------- --------2 2 2 4 + 4s + s s + s 4 + 4s + s
Automao
Resposta temporal com atraso
// system interconnexion (continuao)
Automao
Grficos bidimensionais
So constitudos de dois eixos, sendo necessrio dois argumentos (vetores com a mesma dimenso) de entrada para a execuo. As funes responsveis pela plotagem 2D so plot, plot2d, fplot2d e contour2d.
Automao
Grficos bidimensionais
O comando plot2d plota uma curva bidimensional. Aceita quatro especificaes (para um eixo x definido de 0 a 5): plot2d1: plotagem padro (linear) clc clear close x=0:.01:5; y=sin(x.^2); plot2d1(x,y)
Um eixo funo do outro, todas as operaes devem ser realizadas elemento a elemento.
11
Automao
Grficos bidimensionais
O comando plot2d plota uma curva bidimensional. Aceita quatro especificaes (para um eixo x definido de 0 a 5): plot2d2: plotagem discreta (histograma ou degraus) clc clear close x=0:.1:5; y=sin(x.^2); plot2d2(x,y)
Automao
Grficos bidimensionais
O comando plot2d plota uma curva bidimensional. Aceita quatro especificaes (para um eixo x definido de 0 a 5): plot2d3: plotagem em barras verticais clc clear close x=0:.05:5; y=sin(x.^2); plot2d3(x,y)
Automao
Grficos bidimensionais
O comando plot2d plota uma curva bidimensional. Aceita quatro especificaes (para um eixo x definido de 0 a 5): plot2d4: plotagem em setas clc clear close x=0:.05:5; y=sin(x.^2); plot2d4(x,y)
Automao
Grficos bidimensionais
fplot2d plota uma funo definida por function ou deff. clc clear close deff("x=s(t)",["x=2*sin(.3*t)"]); t=0:.1:16*%pi; fplot2d(t,s)
Automao
Grficos bidimensionais
polarplot plota as variveis em coordenadas polares clc clear close t= 0:.01:2*%pi; polarplot(sin(2*t),cos(5*t));
Automao
Grficos bidimensionais
Comando plot mais geral, permitindo definir vrias propriedades POSIO DOS EIXOS x=0:0.1:4*%pi; plot(x,sin(2*x)) a=gca(); // definio da janela de plotagem a.y_location ="right";// left, middle a.x_location ="top"; // bottom, origin a.isoview='on'; //posio centralizada na janela
Automao
Grficos bidimensionais
Comando plot POSIO x=0:0.1:4*%pi; DOS EIXOS plot(x,sin(2*x)) : :
Automao
Grficos bidimensionais
Comando plot POSIO DOS EIXOS x=0:0.1:4*%pi; plot(x,sin(2*x)) a=gca(); // definio da janela de plotagem a.y_location ="right; : :
Automao
Grficos bidimensionais
Comando plot POSIO DOS EIXOS x=0:0.1:4*%pi; plot(x,sin(2*x)) a=gca(); // definio da janela de plotagem a.y_location ="right";// left, middle a.x_location ="top"; // bottom, origin
12
Automao
Grficos bidimensionais
Comando plot mais geral, permitindo definir vrias propriedades x=0:0.1:4*%pi; POSIO plot(x,sin(2*x)) DOS EIXOS a=gca(); // definio da janela de plotagem a.y_location ="right";// left, middle a.x_location ="top"; // bottom, origin a.isoview='on'; //posio centralizada na janela
Automao
Grficos bidimensionais
Comando plot . PROPRIEDADES DE TRAO MARCADOR -: -. r g b c m y k w + SIGNIFICADO Solid line (default) Dashed line Dotted line Dash-dotted line Red Green Blue Cyan Magenta Yellow Black White Plus sign
Automao
Grficos bidimensionais
Comando plot. PROPRIEDADES DE TRAO MARCADOR o * . x 'square' or 's' 'diamond' or 'd' ^ v > < 'pentagram' 'none' SIGNIFICADO Circle Asterisk Point Cross Square Diamond Upward-pointing triangle Downward-pointing triangle Right-pointing triangle Left-pointing triangle Five-pointed star (pentagram) No marker (default)
Automao
Grficos bidimensionais
Comando plot. PROPRIEDADES DE TRAO. Exemplo x=0:0.1:2*%pi; plot(x,sin(2*x),'rpentagram') a=gca(); // definio da janela de plotagem a.y_location ="middle"; // left, middle a.x_location ="middle"; // bottom, origin
Automao
Grficos bidimensionais
Automao
Grficos bidimensionais
Comando plot. PROPRIEDADES DE TRAO. Exemplo x=0:0.1:2*%pi; plot(x,sin(2*x),'rpentagram') a=gca(); // definio da janela de plotagem a.y_location ="middle"; // left, middle a.x_location ="middle"; // bottom, origin
Automao
Grficos tridimensionais
Comando plot3d o mais utilizado clc clear close t=[0:0.1:2*%pi]'; z=(sin(t).*exp(t))*cos(t'); plot3d(t,t,z) size(t)
13