# bloc2ss

conversão de diagrama de blocos para espaço de estados

## Seqüência de Chamamento

    [sl]=bloc2ss(blocd)

## Parâmetros

blocd

  lista

sl

  lista

## Descrição

Dada uma representação em diagrama de blocos de um sistema linear, `bloc2ss` converte esta representação em um sistema linear de espaço de estados. O primeiro elemento da lista `blocd` deve ser o string (cadeia de caracteres) `'blocd'`. Cada outro elemento desta lista é, por si mesmo, uma lista de um dos seguintes tipos :

    list('transfer','nome_do_sistema_linear')

    list('link','nome_do_link', [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 `'links'` 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 espaço de estados (lista `syslin`) 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 saida 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 exmeplo:

[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 links. 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`. O quarto link (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','U1',[-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]);

Com `s=poly(0,'s');S1=1/(s+1);S2=1/s;` o resultado da avaliação de chamada `sl=bloc2ss(syst);` é uma representação em estado-espaço para `1/(s^2+s-1)`.

[2] exemplo da transformação linear fracional (TLF e, em inglês LFT):

    //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]);

Com

    A=[0,1;0,0];
    B=[1;1];
    C=[1,1];
    D=poly(0,'s');
    P=syslin('c',A,B,C,D);

`bloc2exp(syst)` retorna a avaliação de TLF de `P` e `K`.

## Ver Também

- bloc2exp

## Autores

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