Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
However, this page did not exist in the previous stable version.

Ajuda Scilab >> Funções Elementares > Signal processing > bloc2exp

bloc2exp

retorna a avaliação simbólica de um diagrama de blocos

Seqüência de Chamamento

[str]=bloc2exp(blocd)
[str,names]=bloc2exp(blocd)

Parâmetros

blocd

lista

str

string

names

string

Descrição

Dada uma representação em diagrama de blocos de um sistema linear bloc2exp retorna sua avaliação simbólica. O primeiro elemento da lista blocd deve ser o string (cadeia de caracteres) 'blocd'. Cada outro elemento desta lista (blocd(2),blocd(3),...) é, por si mesmo, uma lista de um dos seguintes tipos :

list('transfer','nome_do_sistema_linear')
list('link','nome_da_ligação',
               [número_de_caixa_de_fluxo_superior,porta_da_caixa_de_fluxo_superior],
               [caixa_de_fluxo_inferior_1,número_de_porta_da_caixa_inferior_1],
               [caixa_de_fluxo_inferior_2,número_de_porta_da_caixa_inferior_2],
               ...)

Os strings 'transfer' e 'link' são palavras-chaves as quais indicam o tipo de elemento no diagrama de blocos ("transfer"=transferência, "link"= ligação).

Caso 1: o segundo parâmetro da lista é um string que pode se referir (para uma possível avaliação posterior) ao nome Scilab de um sistema linear dado em representação de estado-espaço (listasyslin )ou em forma de trasnferência (matriz de razões de polinômios).

A cada bloco de transferência é associado um inteiro. A cada entrada e saída de um bloco de transferência, também é associado seu número, um inteiro (ver exemplos).

Caso 2: O segundo tipo de elemento em uma representação de diagrama de blocos é um link. Um link liga uma saída de um bloco representado pelo par [ número_de_caixa_de_fluxo_superior,porta_da_caixa_de_fluxo_superior] , a diferentes entradas de outros blocos. Cada tal entrada é representada pelo par [caixa_de_fluxo_inferior_i,número_de_porta_da_caixa_inferior_i] .

Os diferentes elementos de um diagrama de blocos podem ser definidos em ordem arbitrária.

Por exemplo:

[1] S1*S2 com feedback (resposta) de unidade.

Há 3 transferências S1 (número n_s1=2) , S2 (número n_s2=3) e um adicionador ("adder") (número n_add=4) com função de transferência simbólica ['1','1'].

Há 4 ligações. O primeiro (de nome 'U') liga a entrada (porta 0 de bloco fictício -1, omitido) à porta 1 do adicionador. Os segundo e terceiro ligam respectivamente a porta (de saída) 1 do adicionador à porta (de entrada) 1 do sistema S1, e a porta (de saída) 1 de S1 à porta (de entrada) 1 de S2. A quarta ligação (de nome 'Y') liga a porta (de saída) 1 de S2 à saída (porta 0 do bloco fictício -1, omitido) e à porta (de entrada) 2 do adicionador.

//Inicialização
syst=list('blocd'); l=1;
//
//Sistemas
l=l+1;n_s1=l;syst(l)=list('transfer','S1');  //Sistema 1
l=l+1;n_s2=l;syst(l)=list('transfer','S2');  //Sistema 2
l=l+1;n_adder=l;syst(l)=list('transfer',['1','1']);  //adicionador
//
//Links
// Entradas  -1 --> entrada 1
l=l+1;syst(l)=list('link','U',[-1],[n_adder,1]);
// Internal 
l=l+1;syst(l)=list('link',' ',[n_adder,1],[n_s1,1]);
l=l+1;syst(l)=list('link',' ',[n_s1,1],[n_s2,1]);
// Saídas // -1 -> saída 1
l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
//Chamada de avaliação
w=bloc2exp(syst);

O resultado é o string: w=-(s2*s1-eye())\s2*s1.

Perceba que, chamado com dois agumentos de saída, [str,names]= blocd(syst) retorna em names a lista de nomes simbólicos dos links nomeados. Isto é útil para definir nomes de entradas e saídas.

[2] segundo exemplo

//Inicialização
syst=list('blocd'); l=1;

//Sistema (planta de blocos 2x2)
l=l+1;n_s=l;syst(l)=list('transfer',['P11','P12';'P21','P22']);  

//Controlador
l=l+1;n_k=l;syst(l)=list('transfer','k'); 

//Links
l=l+1;syst(l)=list('link','w',[-1],[n_s,1]);
l=l+1;syst(l)=list('link','z',[n_s,1],[-1]);
l=l+1;syst(l)=list('link','u',[n_k,1],[n_s,2]);
l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);

//Chamada de avaliação
w=bloc2exp(syst);

Neste caso, o resultado é uma fórmula equivalente à usual:

P11+P12*invr(eye()-K*P22)*K*P21;

Ver Também

  • bloc2ss — conversão de diagrama de blocos para espaço de estados

Autores

S. S., F. D. (INRIA)

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:39:43 CEST 2012