You are on page 1of 68

UNIVERSIDADE FEDERAL DO PAR

INSTITUTO DE TECNOLOGIA
FACULDADE DE ENGENHARIA ELTRICA
PROGRAMA DE EDUCAO TUTORIAL
CAMPUS UNIVERSITRIO DO GUAM
BELM-PAR

O SOFTWARE LIVRE SCILAB APLICADO NA SIMULAO E CONTROLE


DE SISTEMAS DINMICOS REPRESENTADOS NO ESPAO DE
ESTADOS

Autores

Prof. Dr. Orlando Fonseca Silva


Carmela Souza Oliveira
Reviso

Duaymy Bruno R. Ges

Belm PA - Maio / 2016

SUMRIO
1. Introduo ao SciLab
1.1 Matrizes e Vetores
2 Representao de Sistemas no Espao de Estado
2.1 Introduo
2.2 Conceituao
2.3 Soluo no Domnio do Tempo de Equaes de Estados Contnua
2.4 Equao de Estado Discreta
2.5 Simulao de Sistemas Dinmicos usando linhas de comando no Scilab
2.5.1 Sistema contnuo
2.5.2 Sistema discreto
2.6 Usando o ambiente Xcos
2.7 Exemplos de Sistemas Dinmicos em Malha Aberta no Xcos
2.7.1 Sistema contnuo
2.7.2 Sistema discreto
2.8 Converso do Espao de Estado Contnuo para Funo de Transferncia
2.9 Converso de uma Funo de Transferncia para Espao de Estado Contnuo
2.10 Controlabilidade, Observabilidade e Estabilidade para Sistemas Contnuos
2.11 Converso do Espao de Estado Discreto para Funo de Transferncia
2.12 Realizaes Cannicas para Sistemas Discretos
2.13 Controlabilidade, Observabilidade e Estabilidade para Sistemas Discretos
3. Aplicaes em Espao de Estados Utilizando o Silab
3.1 Problemas de Projeto de Regulador por Alocao e Polos
3.1.2 Caso contnuo: Resumo Terico
Alocao de Polos por Realimentao de Estados para Sistemas Contnuos
Projeto de Regulador Contnuo
3.1.3 Caso discreto: Resumo Terico
Posicionamento de Polos via Realimentao de Estados Discreta
Projeto de Regulador para Sistemas Discretos
3.2 Projeto de Servo sistema
3.2.1 Projeto de servo sistema quando a planta possui um integrador
3.2.1.1 Caso contnuo: Resumo Terico
Servo Sistema Contnuo quando a Planta Possui um Integrador

3.2.1.2 Caso discreto: Resumo Terico


Servo Sistema Discreto quando a Planta Possui um Integrador
3.2.2 Projeto de servossistema quando a planta no possui integrador
3.2.2.1 Caso contnuo: Resumo Terico
Servo Sistema Contnuo quando a Planta no Possui um Integrador
3.2.2.2 Caso discreto: Resumo Terico
Servo sistema Discreto quando a Planta no Possui um Integrador
3.3 Observadores de Estado: Resumo terico
3.3.1 Caso Contnuo: Resumo Terico
Observadores de Estado
3.3.1.1 Projeto de Reguladores com Observadores
3.3.1.2 Projeto de Servo Sistema com Observadores
3.3.2 Caso discreto: Resumo Terico
Observador de Estado Discreto
3.3.2.1 Projeto de Reguladores com Observadores Discretos
3.3.2.2 Projeto de Servo Sistema e Observador Discretos

REFERNCIAS
1. Digital Control of Dynamic Systems. Gene F. Franklin, J. David Powell, Michel Workman.
Addison-Wesley, 1998.
2. Introduction to Digital Control Systems. Hugh F. Vanlandingham. Macmilliam Publishing
Company, 1985.
3. Engenharia de Controle Moderno. Katsuhiko Ogata. Pearson Educatio do Brasil, 2003.
4. Campos,
F.
F.,
2010,
Fundamentos
do
Scilab.
Disponvel
em:
<http://www.ime.unicamp.br/~encpos/VIII_EnCPos/Apostila_Scilab.pdf>. Acesso em: 20/10/
2015.
5. Gadelha,
Danusio
Filho,
2015
Scilab
5.X.
Disponvel
em:
<http://euler.mat.ufrgs.br/~giacomo/Manuais-softw/SCILAB/Apostila%20de%20Scilab%20%20atualizada.pdf>. Acesso em: 24/10/2015.
6. Mariani, Viviana Cocco; Preto, Tnia Martins; Guedes, Andr Luiz Pires. Utilizao do
Maple, Matlab e Scilab nos Cursos de Engenharia. COBENGE, 2005.
7. Pires,
Introduo
ao
Scilab
Verso
3.0,
2004.
Disponvel
<http://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf>. Acesso em: 20/10/2015.

em:

8. Ronaldo, Tutorial SCICOS, Resolvendo Problemas Simples, 2015. Disponvel em:


<http://www.professores.deq.ufscar.br/ronaldo/cp1/pdf/tutorial_scicos.pdf>. Acesso em:
30/10/2015.
9. SCILAB, 2015. Disponvel em: <http://www.scilab.org>. Acesso em: 03/032016

1. Introduo ao SciLab
O Scientific Laboratory (SciLab) consiste em um ambiente de programao numrica
flexvel, que permite o desenvolvimento e implementao de algoritmos numricos em
diversas reas do conhecimento. Desenvolvido no INRIA (Institut National de Recherche
Informatique et en Automatique) e no ENPC (cole Nationale des Ponts et Chausses),
possui distribuio gratuita via internet (http://www.scilab.org) para diversas plataformas.
Dentre seus principais recursos e funcionalidades, destacam-se:
Cdigo fonte disponvel e linguagem simples;
Auxlio ao usurio (help);
Grficos bi e tri dimensionais, inclusive com animao;
Funes prontas para manipulao de matrizes e vetores;
Trabalha com polinmios, funes de transferncia e espao de estados;
Acesso a rotinas escritas nas linguagens FORTRAN ou C;
Suporte para o desenvolvimento de toolboxes, bibliotecas de funes criadas para
aplicaes especficas. Alm dos toolboxes desenvolvidos pelo Grupo Scilab, outros esto
disponveis tambm gratuitamente, como por exemplo: ANN (Artificial Neural Network
Toolbox), FISLAB (Fuzzy Logic Inference Toolbox) e o FRACLAB (Fractal, Multifractal
and Wavelet Analysis Toolbox).
Disponibilidade ao usurio de duas modalidades de programao: atravs de linhas de
comando, inseridas em sua rea de trabalho (Figura 1.1), ou por meio de diagramas de bloco,
construdos em um ambiente grfico prprio, denominado Xcos (Figura 1.2).

Figura 1.1: rea de trabalho do SciLab

Figura 1.2: Ambiente Grfico Xcos

1.1. Matrizes e Vetores


Vetor ou arranjo um conjunto de variveis homogneas (contedo do mesmo tipo)
identificadas por um mesmo nome e individualizadas por meio de um ndice. Vetores so
sempre indicados entre colchetes, sendo os elementos de uma mesma linha separados por
vrgulas ou espao em branco. Por exemplo:
-->a=[1 2 3 4]
-->a=[1,2,3,4]

Se os valores dos vetores forem igualmente espaados, ele pode ser definido usando a
seguinte sintaxe:
vetor = valor_inicial : incremento : valor_final
-->c=5:5:30

Se o incremento for igual a 1, ento, esse pode ser omitido.


-->a=1:4

Outro modo de criar um vetor de nmeros igualmente espaados num dado intervalo
usando a funo linspace:
vetor = linspace(valor_inicial, valor_final, nmero_de_elementos)
-->a=linspace(1,4,2)
-->a=linspace(1,4,1)
-->a=linspace(1,4,4)
-->a=linspace(1,4,3)

Os vetores mostrados anteriormente so vetores linhas: possuem uma linha e vrias


colunas. Para criar vetores coluna, uma coluna e vrias linhas, seus elementos so separados
por ;.
-->b=[1; 2; 3; 4]

Operador de transposio ('): Transforma um vetor linha em um vetor coluna ou viceversa. Se o vetor tem elementos complexos, a transposio obtida pelo operador (.'). O uso
simples do operador (') resultar em um complexo conjugado transposto.
-->b=a'

//transposio de um vetor real

-->v=[5+%i 2+%i*2]

//vetor com elementos complexos

-->v.'

//transposio de um vetor complexo

Vetores podem ser multiplicados e divididos por escalares, e, se forem de mesma


dimenso, podem ser somados ou subtrados. Para os exemplos apresentados abaixo, //
indica insero de comentrios, enquanto ; aps a definio de um vetor omite sua
apresentao na tela.
-->a=[2,1,4];

//definindo vetor a

-->b=[5,3,2];

//definindo vetor b

-->a+b

//soma de vetores

-->a-b

//subtrao de vetores

-->3*a

//multiplicao por uma constante

-->a/2

//dividindo por uma constante

-->norm(b)

//calcula a norma (comprimento) de um vetor

Produto entre vetores: necessrio ter um vetor linha e um vetor coluna. Para obter o
produto de a e b definidos anteriormente, encontra-se primeiro a transposta de um dos
vetores.
-->b'
-->a*b'

//transposta de b
//a vezes a transposta de b

Para construir uma matriz, os elementos de uma mesma linha devem ser separados por
espao em branco ou vrgula e as linhas por ponto e vrgula ou Enter (Return).
-->A=[1 2 3;5 6 7]

//Cria uma matriz A com duas linhas e trs colunas

Para modificar um elemento, basta index-lo no formato matriz (linha, coluna) e ento
atribuir-lhe um novo valor:
-->A(1,2)=8

//Altera o elemento da linha 1 e coluna 2

Se for atribudo um valor a um elemento no existente, ou seja, alm dos elementos da


matriz, ento o SciLab aumenta a matriz automaticamente, preenchendo-a com valores nulos
de forma que a matriz permanece retangular.
-->A(3,6)=1

//Atribui valor 1 ao elemento da linha 3 e coluna 6

As linhas comando abaixo apresentam exemplos das diversas funcionalidades para


tratamento de vetores e matrizes existentes no SciLab.
-->C=[1 2 3;4 5 6;7 8 9]

//Cria uma matriz C com trs linhas e trs colunas

-->size(C)

//Fornece o nmero de linhas e colunas de uma matriz.

-->length(C)

//Fornece o nmero de elementos da matriz.

-->sum(C) //Fornece a soma de todos os elementos da matriz.


-->prod(C) //Fornece o produto de todos os elementos da matriz.
-->max(C)

//Fornece o maior elemento da matriz.

-->min(C) //Fornece o menor elemento da matriz.


-->mean(C)

//Fornece a mdia aritmtica dos elementos da matriz.

-->diag(C) // Inclui ou obtm a diagonal de uma matriz.


-->rank(C) //Retorna o rank da matriz (nmero de filas linearmente independentes).
-->inv(C)

//Encontra a inversa da matriz. (matriz quase singular)

-->trace(C) //Soma dos elementos da diagonal principal da matriz (trao da matriz).


-->spec(C) //Calcula os autovalores de uma matriz
-->nnz(C) // Nmero de elementos no nulos de uma matriz.
-->A=[1 2 3; 4 5 6]

//Cria uma matriz A

-->B=[4 3 2; 8 3 5]

//Cria uma matriz B

-->2*A

// Multiplicao da matriz A por um escalar

-->A/2

// Diviso da matriz A por uma constante

-->A+B

// Soma as duas matrizes A e B

-->A-B

// Subtrai as duas matrizes A e B

-->A'
-->B*A'

// Calcula a transposta da matriz A


// Multiplica a matriz B com At (No colunas da 1 = No linhas da 2)

-->eye(3,3) //Cria uma matriz identidade 3 por 3


-->zeros(2,2)

//Cria uma matriz nula 2 por 2

-->ones(2,2)

//Cria uma matriz de uns 2 por 2

-->D=C(:,2)

//Extrai todos os elementos da segunda coluna de C e armazena em D

-->E=C(1:2,2)

//Extrai elementos das linhas 1 e 2 da 2a coluna de C e armazena em E

2. Representao de Sistemas no Espao de Estados


2.1. Introduo
Um sistema dinmico, linear, invariante no tempo, relaxado, a parmetros concentrados e
monovarivel pode ser descrito por uma equao diferencial, Eq. 1, onde n a ordem do
sistema e os ais e bis so nmeros reais.
n

n 1

n 1

n2

y(t ) a1 y(t ) ... an1 y(t ) an y(t ) b1 u(t ) b2 u(t ) ... bn1 u(t ) bn u(t )

(1)

Ex1: Encontrar a equao diferencial de um circuito RLC srie

di (t )

V (t ) Ri (t ) L
Vc (t )

dVc (t )
d 2Vc (t )

dt
Soluo:
LC
Vc (t )
V (t ) RC
dt
dt 2
i (t ) i (t ) C dVc (t )

dt

A Eq. 1 pode ser representada no domnio da frequncia, pelo uso da transformada de


Laplace, em termos da seguinte funo de transferncia, a Eq. 2.
n 1

n2

Y ( S ) b1 S b2 S ... bn1 S bn
G(S )
n
n 1
U (S )
S a1 S ... an1 S an

(2)

Ex2: Representar o sistema do Ex1 atravs de uma funo de transferncia, para


condies iniciais nulas
dVc (t )
d 2Vc (t )
V ( s)
1
LC
Vc (t ) c

; C.I .nulas
Soluo: V (t ) RC
2
2
dt
dt
V ( s) LCs RCs 1

A anlise do sistema, incluindo o projeto de um controlador para este, pode ser feita a
partir da Eq. 2, pelo uso de tcnicas clssicas de controle, como por exemplo: Critrio de
Routh, Lugar Geomtrico das Razes, Diagrama de Bode, Diagrama de Nyquist, etc. Por outro
lado, a Eq. 1 (sistema monovarivel) pode ainda ser representada no domnio do tempo, por
um conjunto de n equaes diferenciais de 1a ordem, Eq. 3a e 3b, onde x(t ) R n o vetor de
estados, u (t ) R m o vetor de entradas de controle (ou de ao de controle) e y R o vetor
p

de sadas (ou respostas). A n,n a matriz caracterstica do sistema (matriz de evoluo), B n,m
a matriz de entradas, C p,n a matriz de sadas e D p,m a matriz de transmisso direta.
x (t ) n,1 An,n x(t ) n,1 Bn,1 u(t )1,1

Equao de estado

(3.a)

y(t )1,1 C1,n x(t ) n,1 D1,1 u(t )1,1

Equao de sada

(3.b)

A Eq. 3a conhecida como representao de estados e toda anlise de sistemas de controle


realizada a partir dela denominada de tcnica moderna de controle. Este tipo de modelo
matemtico caracterizado por:
Permitir a descrio de modelos mais gerais: multivariveis (mltiplos sinais de entrada
ou de sada), variantes no tempo ou no lineares.
Descrever o sistema de forma completa (comportamento interno do sistema).
Ser conveniente para a simulao computacional.

Ex3: Encontrar a representao em espao de estados do sistema do Ex1


Soluo:
di(t )

V (t ) Ri (t ) L dt Vc (t )

dV
(
t
)
c
i(t ) i (t ) C

dt

X (t ) A. X (t ) B.u (t )

Y (t ) C. X (t ) D.u (t )

a)

Definindo :

x1 (t ) i (t )

x1 (t ) i (t ) [V (t ) Rx1 (t ) x 2 (t )] / L

x 2 (t ) Vc (t )

x 2 (t ) Vc (t ) x1 (t ) / C
1
R

1

L x(t ) V (t )
x(t ) L
L
1
0
0
C

y (t ) 0 1x(t )

b)

Definindo :

x1 (t ) Vc (t )

x 2 (t )

x1 (t ) x 2 (t )

dVc (t )
dt

x 2 (t ) Vc (t ) [V (t ) RCx 2 (t ) x1 (t )] / LC
1
0
0

1
R
x1 (t )
x(t ) 1 V (t )

L
LC
LC
y (t ) 1 0x(t )

y1 (t ) 1 0 x1 (t )
Se considerarmos duas sadas : Vc (t ) e i(t ) C Vc (t ), ento : Y

y 2 (t ) 0 C x 2 (t )

Definindo : x1 (t ) Vc (t ) Ri (t )

c)

x2 (t )

x1 (t ) x2 (t ) R i (t ) x2 (t ) RC x 2 (t )

dVc (t )
dt

x 2 (t ) Vc (t ) [V (t ) x1 (t )] / LC
R

R
1

x(t ) L V (t )
x(t ) L
1 0
1

LC

LC
y (t ) 1 RC x(t )

Ex4: Obter o modelo de estados para o sistema: y 6 y 11 y y 6u


Soluo:
Desenhar um diagrama de simulao

1
S

1
S

1
S

6
11

Definir as variveis de estado como sendo as sadas dos integradores:

x1 y

x2 y

x3 y

x x2
.

x 2 x3

x 3 x1 11 x2 6 x3 6u

Ento:

1
0
0
0


x 0
0 1 x 6 0 u
1 11 6
6


y 1 0 0x

x1

x x2
x
3

onde

OBS: n=3 3 variveis de estado.

2.2. Conceituao

O estado de um sistema dinmico o menor conjunto de variveis (chamadas

variveis de estado) tal que, o conhecimento destas variveis em t = t0, juntamente com a
entrada u(t) para t t0, determina completamente o comportamento do sistema (suas sadas)
para qualquer instante t t0.
Vetor de estado: um vetor contendo todas as variveis de estado.
A escolha das variveis de estado no nica, assim, um mesmo sistema pode ter mais
de uma representao de estados (Ex3 e Ex4). Em geral, so escolhidas de modo que
correspondam a quantidades fsicas mensurveis (mas no necessariamente), ou que levem a
simplificao de equaes. Em circuitos eltricos em geral so as tenses nos capacitores e as
correntes nos indutores, em sist. mecnicos so as posies e as velocidades das massas.
Espao de estados: o espao n dimensional cujos eixos de coordenadas so
constitudos pelas variveis de estado ( x1, x2,..., xn). Qualquer estado pode ser representado
por um ponto no espao de estados.
Estado em um dado instante de tempo representado por um ponto do espao de
estados. Com o tempo, o estado se modifica e novos pontos do espao de estados so
sucessivamente definidos. A evoluo desses pontos forma a trajetria de estados do
sistema.
2.3. Soluo no Domnio do Tempo de Equao de Estados Contnua
Para um sistema com estado inicial x(t 0 ) x0 representado pela Eq. 3.a, a soluo da
equao de estados dada pela Eq. 4.

x(t ) e A ( t t0 ) x0

A ( t )

B u ( ) d .

(4)

t0

t t0 = e A ( t t0 ) denominada de matriz de transio de estados


Tomando a transformada de Laplace das Eq. 3.a e 3.b, chega-se a Eq. 5 que permite
calcular a matriz transio de estados.

(t ) L1 sI A

(5)

2.4 Equao de Estados Discreta


Para a representao no espao de estados de um sistema discreto, equivalente ao sistema
contnuo das Eq. 3.a e 3.b, precedido por um segurador de ordem zero (ZOH), Fig. 2.4,
utiliza-se a Eq. 4 para u() constante e um intervalo de tempo correspondente a um perodo de
amostragem, T. Nestas condies, a soluo geral da equao de estado discreta dada pelas
Eq. 6 e 7.
u(kT) HOLD

u(t)

X = AX + Bu

X(t) C

y(kT)

Figura 2.1: Equivalente discreto no espao de estados

X (kT T ) e AT X (kT ) e A Bu(kT )d


T

(6)

y(kT ) CX (kT )

(7)

e AT

(8)

T
e A .d.B
0

(9)

O sistema discreto equivalente na forma de espao de estados dado pelas Eq. 10 e 11,
onde o perodo de amostragem e k = 0, 1, 2,.... sendo e calculados pelas Eq. 8 e 9.
X (kT T ) X (kT ) u(kT )

(10)

y(kT ) CX (kT ) Du(kT )

(11)

Tomando a transformada de Z das Eq. 6 e 7, chega-se a Eq. 12 que permite calcular a


matriz transio de estados.

(T ) Z 1 zI A

(12)

2.5 Simulao de Sistemas Dinmicos usando linhas de comando no Scilab


2.5.1

Sistema contnuo

Seja um sistema contnuo representado no espao de estados onde: u(t) um degrau


unitrio e X(0) = [1 0.5]t. Determinar via simulao digital, a resposta deste sistema no Scilab.

0 1
0
X (t ) u(t )
X (t ) A.X (t ) B.u(t )
2 3
1
y(t ) C.X (t ) 1 0X (t )

-->A = [0 1;-2 -3]; B = [0;1]; C = [1 0;0 1]; D = [0;0]; //Matrizes A, B, C e D do sistema


-->Sys=syslin('c',A,B,C,D);

//Sistema contnuo no espao de estados

-->spec(A)

//Polos dos sistema

-->t=0:0.01:5;

//Intervalo de tempo desejado para simulao

-->u=ones(t);

//Entrada degrau unitrio

-->X0=[1;0.5];

//Estado inicial no nulo

--> [y,X]=csim(u,t,Sys,X0);

//Simulao do sistema

-->plot(t',X(1,:)','colo','black','linest','-');plot(t',X(2,:)','colo','black','linest','-.') //Grficos
-->xlabel("tempo (seg.)", "fontsize", 2);
-->hl=legend(['X1';'X2']);

//Define o eixo horizontal


//Insere uma legenda no grfico

As variveis de estado x1 e x2 so mostradas na Figura 2.2.

Figura 2.2: x1 e x2 para condio inicial no nula e entrada degrau unitrio.

2.5.2

Sistema discreto

Seja um sistema contnuo com a seguinte representao de estados:

0 1
0
X (t ) u(t )
X (t ) A.X (t ) B.u(t )
2 3
1
y(t ) C.X (t ) 1 0X (t )

Adotando como perodo de amostragem dt = 0.1, e sendo u(t) um degrau unitrio, ser
comparada a resposta do sistema contnuo com a de seu equivalente discreto (segurador de
ordem zero) considerando o estado inicial nulo. As respostas resultantes so mostradas na
Figura 2.3.
A=[0 1;-2 -3]; B=[0;1]; C=[1 0;0 1]; D=[0;0];

//Matrizes do sistema contnuo

Sysc=syslin('c',A,B,C,D);

//Definio do sistema contnuo

X0=[0;0];
spec(A)
t=0:0.01:5;

//Estado inicial nulo


//Determinao dos polos do sistema contnuo
//Definio do intervalo de tempo para simulao

uc=ones(t);

//Definio da entrada degrau unitrio

[y,X]=csim(uc,t,Sysc,X0);

//Simulao do sistema

plot(t',X(1,:)','colo','black','linest','-');plot(t',X(2,:)','colo','black','linest','-.')

//Grficos

xlabel("tempo (seg.)", "fontsize", 2);

//Define o eixo horizontal

hl=legend(['X1';'X2']);

//Insere uma legenda no grfico

dt=0.1;

//Definio do perodo de amostragem

Sysd=dscr(Sysc,dt);

//Determinao do equivalente discreto

t=0:dt:5;

//Definio do intervalo de tempo para simulao

ud=ones(t);

//Definio da entrada degrau unitrio

[Xd]=ltitr(Sysd.a,Sysd.b,ud,X0);

//Resposta do sist. discreto p/ entrada


//ud e estado inicial X0

plot(t',Xd(1,:)','colo','black','linest','-', 'markstyl','diam');

//Grficos

plot(t',Xd(2,:)','colo','black','linest','-.', 'markstyl','diam');

//Grficos

Figura 2.3: x1 e x2 contnuo e discreto, para X(0) = 0 e entrada degrau unitrio.


2.6 Usando o ambiente Xcos
O Xcos ou Scicos (Scilab Connected Object Simulator) um toolbox do SciLab destinado
modelagem e simulao de sistemas dinmicos. Este ambiente fornece uma forma modular de
construir sistemas dinmicos, na qual o modelo matemtico representado por blocos de
funes, editados por um editor de diagrama de blocos. Um grande nmero de blocos j est
disponvel nas paletas do Xcos, fornecendo operaes elementares necessrias na construo
de modelos de diversos sistemas dinmicos.
O Editor do Xcos pode ser aberto pelo comando Xcos na rea de trabalho (ver Fig. 2.4). Tal
operao abre o editor e uma caixa de dilogo que inclui uma lista de paletas disponveis,
sendo as principais mostradas na Figura 2.4. Selecionando uma paleta da lista, uma nova
janela do Xcos aparece, disponibilizando diversos blocos dessa paleta (ao construir um
diagrama, simplesmente arrastam-se os blocos desejados para a janela do Editor do Xcos).
Para configurar os parmetros de um bloco, basta realizar um duplo clique sobre ele.

Figura 2.4: Editor do Xcos.


A paleta Fontes (Fig. 2.5) apresenta blocos geradores de sinais. Por exemplo, nela tm-se:
STEP_FUNCTION que gera um sinal do tipo degrau ou GENSIN_f que gera um sinal
senoidal e CLOCK_c que gerencia com que intervalo de tempo um sinal ser registrado.

Figura 2.5: Paleta Fontes


J para mostrar sinais gerados numa simulao utilizam-se blocos da paleta Receptores
(Fig. 2.6). Nesta, destaca-se o CSCOPE, cuja funo exibir o grfico destes no domnio do
tempo e cujo correto funcionamento requer a conexo de um CLOCK_c na sua entrada em

vermelho. Usando o bloco MUX, da paleta Roteamento de sinal, pode-se inserir mais de um
sinal escalar em apenas um bloco CSCOPE.

Figura 2.6: Paleta Receptores.


Nas paletas Sistemas de Tempo Contnuo e Sistemas de Tempo Discreto, exibidas
respectivamente nas figuras 2.7 e 2.8, os blocos permitem a criao e simulao de tais
sistemas. Os blocos mais usados de ambas as paletas so:
INTEGRAL_m: usado para integrar sinais no tempo. Se a sua entrada for a derivada
no tempo de uma varivel de estado, sua sada ser a prpria varivel de estado. O valor
inicial e os valores mximo e mnimo da sada do integrador podem ser especificados.
CLR permite criar uma G(s) fornecendo ao bloco os polinmios em s do numerador e
denominador da mesma.
CLSS permite criar um sistema dinmico contnuo representado na forma de espao de
estados.
DLR permite criar uma funo de transferncia fornecendo ao bloco os polinmios em
z do numerador e denominador da mesma.
DLSS permite criar um sistema dinmico discreto na forma de espao de estados.

Figura 2.7: Paleta Sistema de Tempo Contnuo.

Figura 2.8: Paleta Sistemas de Tempo Discreto.

A paleta Operaes Matemticas (Fig. 2.9) apresenta blocos que contm diversas
operaes desta natureza, dos quais se destacam: SUMMATION usado para somar ou subtrair
sinais e GAINBLK para implementar um ganho (multiplicao por uma constante).

Figura 2.9: Paleta Operaes Matemticas.


Na paleta Anotaes (Fig. 2.10) encontra-se o bloco TEXT_f que usado para adicionar
anotaes (qualquer texto) ao diagrama de blocos.

Figura 2.10: Paleta Anotaes.


Na paleta Blocos Normalmente Usados (Fig. 2.11), presente na verso 5.5, encontram-se
blocos de outras paletas comumente utilizados.

Figura 2.11: Paleta Blocos Normalmente Usados.

Uma vez selecionados os blocos a serem utilizados, necessrio realizar sua conexo,
feita clicando com o boto esquerdo do mouse na sada de um bloco e, mantendo-o
pressionado, ligando-se na entrada do bloco com o qual se deseja conectar, conforme exibido
na Figura 2.12. O Xcos apresenta dois tipos diferentes de conexes entre blocos: regular
(sinais), de cor azul e com as portas localizadas nas laterais do bloco, e de ativao (evento),
de cor vermelha e com as portas localizadas no topo ou na base do bloco.

Figura 2.12: Conexo entre os blocos.


Para simular um diagrama de blocos criado, utiliza-se o menu Simulao (Fig. 2.13) e
seleciona-se a operao Iniciar. Para parar a simulao, em qualquer instante, seleciona-se a
operao Parar. A partir desta interrupo, o usurio pode continuar a simulao, finaliz-la
ou reinici-la. Os parmetros da simulao so ajustados no item Configurao.

Figura 2.13: Menu Simulao.

2.7 Exemplos de Sistemas Dinmicos em Malha Aberta no Xcos


2.7.1

Sistema contnuo

Seja um sistema contnuo representado pela seguinte equao de estado onde u(t) um
degrau unitrio aplicado aos 5 segundos e X(0) = [1 0.5]t.

0 1
0
X (t ) u(t )
X (t ) A.X (t ) B.u(t )
2 3
1
y(t ) C.X (t ) 1 0X (t )

No SciLab este sistema representado de acordo com a Figura 2.14.

Figura 2.14: Diagrama de blocos do sistema em malha aberta.

A Figura 2.15 ilustra as especificaes utilizadas para especificar a entrada degrau, o


sistema dinmico, o gerador de grficos (scope) e os parmetros do clock. J a Figura 2.16
ilustra as variveis de estado obtidas na simulao.

Figura 2.15: Especificaes de cada bloco utilizado na simulao.

Figura 2.16: Variveis de estado x1 e x2 do sistema contnuo com estado inicial X0 = [1 0.5]t
e submetido a uma entrada degrau aplicada em 5 segundos.

2.7.2

Sistema discreto

Considerando o mesmo sistema contnuo do item 3.5.1, sob as mesmas condies, ou seja:
estado inicial X0=[1 0.5]t e submetido a uma entrada degrau aplicada em 5 segundos. Sua
resposta ser comparada com a de seu equivalente discreto (segurador de ordem zero)
adotando como perodo de amostragem Ts = 0.1.
Utilizando as linhas de comando a seguir na rea de trabalho,
-->A=[0 1;-2 -3];B=[0;1];C=[1 0;0 1];D=[0;0];
-->Sysc=syslin('c',A,B,C,D);
-->dt=0.1;
-->Sysd=dscr(Sysc,dt)

Determina-se que a representao de estados do equivalente discreto dada por:


0.9909441 0.0861067
0.0045280
X (kT T ) .X (kT ) .u(kT )
X (kT )
u(kT )
0.1722133 0.7326242
0.0861067
1 0
.X (kT )
y(kT ) C .X (kT )
0 1

O diagrama de blocos para simulao deste sistema est ilustrado na Figura 2.17, onde as
especificaes para o degrau, scope e clock foram mantidas as mesmas do item 2.7.1 e a
especificao do segurador de ordem zero (S/H) est mostrada na Figura 2.18. Os resultados
obtidos na simulao constam na Figura 2.19 de onde se observa que so os mesmos do
sistema contnuo.

Figura 2.17: Diagrama de simulao do sistema discreto.

Figura 2.18: Especificaes do bloco S/H

Figura 2.19: Variveis de estado x1 e x2 do sistema discreto com estado inicial X0=[1
0.5]t e submetido a uma entrada degrau aplicada em 5 segundos.

2.8 Converso do Espao de Estado Contnuo para Funo de Transferncia


Este problema tem soluo nica: tomando a transformada de Laplace das equaes 3.a e
3.b e considerando condies iniciais nulas, x(0) x0 0 , chega-se Eq. 13.

Y ( s)
C ( sI A) 1 B D T ( s)
U ( s)

(13)

Para o caso de sistemas SISO (uma entrada, uma sada) T(s) uma funo de
transferncia, relao entre as transformadas de Laplace dos sinais de sada e entrada do
sistema. Para sistemas MIMO, T(s) uma matriz de transferncia de dimenso p x m .
Da Eq. 13 conclui-se que o polinmio caracterstico ou Eq. caracterstica, denominador da
funo de transferncia, dado pela Eq. 14 cujas razes so os polos do sistema.
det(sI A) 0

(14)

2.9 Converso de uma Funo de Transferncia para Espao de Estado Contnuo


O objetivo obter uma representao no domnio do tempo para um sistema SISO cuja
funo de transferncia dada pela Eq. 15. No tem soluo nica, depende como se escolhe
as variveis de estado. A Tabela 2.1 mostra algumas, sendo i obtido pela Eq. 16.

b1 s n 1 b2 s n 2 bn
Y ( s)
n
U ( s)
s a1 s n 1 a 2 s n 2 a n

(15)

Tabela 2.1: Formas cannicas da representao em Espao de Estados


Forma Cannica de Controlador
a1
x c 1

0
y b1

a2
0
1
b2

a3
1

0 x c 0 u


0
0
b3 x c

Forma Cannica de Observador

a1
x o a 2

a3
y 1

Forma Cannica de Controlabilidade

x co

0
1
0

0 a3
1

0 a 2 x co 0 u
0
1 a1
2 3 x co

Forma Cannica de Observabilidade

0
x ob 0

a3
y 1

3 b1 b2

1 0
b1
0 1 x o b2 u


b3
0 0
0 0 xo

1
0
a2

1 a1
b3 0 1
0 0

0
a2
a1
1

0
1

1 xob 2 u


3
a1
0 x ob
1

(16)

2.10 Controlabilidade, Observabilidade e Estabilidade para Sistemas Contnuos


Um sistema ser dito controlvel se for possvel, por meio de um vetor de controle no
limitado, transferir o sistema de qualquer estado inicial para qualquer outro estado, em um
intervalo de tempo finito. Para tanto, necessrio que a matriz de controlabilidade (Eq. 18)
seja de posto completo, isso , possuir todas as colunas linearmente independentes.

M cont B AB ... A n-1 B

(18)

Um sistema ser dito observvel se todo estado x(t 0 ) puder ser determinado pela
observao de y (t ) durante um intervalo de tempo finito t 0 t t1 . O sistema , portanto,
completamente observvel se cada transio do estado puder afetar cada elemento do vetor de
sada. Ou seja, um sistema ser dito observvel no instante t 0 se, com o sistema no estado

x(t o ) , for possvel determinar esse estado a partir da observao da sada durante um
intervalo de tempo finito. Para tanto, necessrio que a matriz de observabilidade, definida
pela Eq. 19, seja de posto completo, isto , possua todas as linhas linearmente independentes.

M obs

CA

CA 2


CA n1

(19)

Sistemas contnuos so estveis se todos os seus polos tem parte real negativa. Assim
quando se tem um sistema contnuo representado na forma de espao de estados, sua
estabilidade pode ser avaliada a partir da determinao das razes do polinmio caracterstico
dada pela Eq. 14.

2.11 Converso do Espao de Estado Discreto para Funo de Transferncia


A soluo nica obtida tomando a transformada de Z das equaes 10 e 11.
Considerando condies iniciais nulas, x(0) x0 0 , chega-se Eq. 20.

Y ( z)
C ( zI ) 1 D T ( z )
U ( z)

(20)

Para sistemas SISO T(z) uma funo de transferncia, relao entre as transformadas Z
dos sinais de sada e entrada do sistema. Para sistemas MIMO T(z) uma matriz de
transferncia de dimenso p x m .
Da Eq. 20 conclui-se que o polinmio caracterstico dado pela Eq. 21, tambm
denominada equao caracterstica cujas razes so os polos do sistema.
det(zI ) 0

(21)

2.12 Realizaes Cannicas para Sistemas Discretos


As formas de controlador e de observador so anlogas s do caso contnuo. Para a funo
de transferncia discreta da Eq. 22, a Tabela 2.2 apresenta as duas.
b1z1 b 2 z2 b 3 z3
y( z)

U( z) 1 a1z1 a 2 z2 a 3 z3

(22)

Tabela 2.2: Formas cannicas para sistemas discretos


Forma Cannica de Controlador
x1 (kT T) a1 a 2
x (kT T) 1
0
2

x3 (kT T) 0 1
y(kT) b1

b2

a 3 x1 (kT) 1
0 x 2 (kT) 0u(kT)

0 x3 (kT) 0
x1 (kT)
b 3 x 2 (kT)
x3 (kT)

Forma cannica de observador


x1 (kT T) a1
x (kT T) a
2
2
x3 (kT T) a 3
y(kT) = 1

1
0
0
0

0 x1 (kT) b1
1 x 2 (kT) b 2 u(kT)
0 x3 (kT) b 3
x1 (kT)
0 x 2 (kT)
x3 (kT)

2.13 Controlabilidade, Observabilidade e Estabilidade para Sistemas Discretos


Um sistema discreto , de ordem n controlvel se for possvel determinar uma
sequncia de controle u(k), k = 0, 1,..., n, tal que, um ponto arbitrrio X(n) possa ser atingido a
partir de qualquer estado inicial X(0), ou ainda, se e somente se, o rank da matriz de
controlabilidade Ccont (Eq. 23) for igual a n .

Ccont = 2 ........ n1

(23)

Um sistema discreto , C de ordem n observvel se existir um k finito tal que, o


conhecimento das entradas: u(0), u(1),.....,u(k-1) e das sadas: y(0), y(1), ....., y(k-1) seja
suficiente para se determinar o estado inicial X(0) do sistema, ou ainda, se e somente se, o
rank da matriz de observabilidade Oobs for igual a n (Eq. 24).

Oobs = C C C 2 ........ C n1

(24)

Sistemas discretos so estveis se todos os seus polos tem mdulo menor ou igual a um.
Assim quando se tem um sistema discreto representado na forma de espao de estados, sua
estabilidade pode ser avaliada a partir da determinao das razes do polinmio caracterstico
dado pela Eq. 21.

Aplicaes em Espao de Estados Utilizando o SciLab


Os seguintes exemplos de problemas de sistemas de controle utilizando espao de estados

com soluo via SciLab por linha de comando ou usando o Xcos so apresentados:
Projeto de regulador por alocao de polos (Contnuo e Discreto);
Projeto de servo sistema com planta tipo um (Contnuo e Discreto);
Projeto de servo sistema com planta tipo zero (Contnuo e Discreto);
Observadores de estado (Discreto);
Projeto de sistemas reguladores com observadores;

3.1 Problemas de Projeto de Regulador por Alocao e Polos


3.1.1 Caso contnuo
________________________________________________________________________
Resumo Terico:
Alocao de Polos por Realimentao de Estados para Sistemas Contnuos
Se o sistema for controlvel, os polos de malha fechada podem ser alocados em qualquer
posio desejada do plano S, por meio de uma realimentao de estado, empregando um vetor
de ganhos apropriado. No controle clssico se realimenta normalmente apenas a sada y(t ) ,
no controle por realimentao de estados, todas as variveis de estado so ponderadas por
ganhos ki (i = 1, .., n ) e realimentadas. O vetor de ganhos dado pela Eq. 25.

K [k1

k2 kn ]

(25)

Para um sistema em malha aberta representado no espao de estados pelas Eq. 3.a e 3.b (D
=0), ao se fechar a malha com realimentao de estados, o sinal de controle u(t) dado pela
Eq. 26, onde K dado pela Eq. 25.
u(t ) Kx(t )

(26)

A equao de estado do sistema em malha fechada dada pela Eq. 27


x (t ) A BK x(t )

(27)

Assim a Eq. caracterstica de malha fechada, Eq. 28, funo dos elementos ki do vetor K.
det(sI ( A BK )) 0

(28)

Supondo que se deseje i (i = 1, ..., n ) como polos de malha fechada, ento o polinmio
caracterstico desejado de malha fechada dado pela Eq. 29.

Pd (s) s 1 s 2 s n s n an1s n1 a1s a0 0

(29)

Igualando as Eq. 28 e 29 determinam-se os elementos do vetor K .


Outra maneira de obter o vetor K usando a frmula de Ackermann (Eq. 30).
1'
K 0 0 0 11xn M Cont
Pd ( A)

(30)

Onde M Cont a matriz de controlabilidade (Eq. 18) e Pd (A) , equao 31, uma matriz
formada a partir do polinmio caracterstico desejado em malha fechada (Eq. 29), onde se
substitui a varivel s pela matriz A do sistema.

Pd ( A) An an1 An1 a1 A a0 I

(31)

Projeto de Regulador Contnuo


O problema de controle, de uma forma geral, consiste em determinar uma lei de controle
que faa o sistema atender a certas especificaes de desempenho. Um regulador tem como
finalidade manter a sada do sistema y(t) em zero diante de perturbaes externas, sendo o
sinal de referncia r(t) nulo. A Figura 3.1 ilustra um regulador com realimentao de estados.
Neste caso a representao de estados do sistema dada pelas Eq. 32 e 33 para D = 0, onde G
um vetor de elementos reais (nx1) e w(t) uma entrada de perturbao.
x(t ) A x(t ) B u(t ) Gw(t )
y(t ) C x(t )

Figura 3.1: Problema de regulao

(32)
(33)

O vetor ganho de realimentao de estados K pode ser obtido por alocao de polos:
igualando as equaes 28 e 29 ou usando a Eq. 30.
________________________________________________________________________

1
0
0

0
1 e B
Para um sistema dinmico contnuo definido por A 0
1 5 6

0
0, ser

1

determinado o ganho de realimentao de estados K tal que os polos de malha fechada sejam
1 = -2 + j4, 2 = -2 - j4 e 3=-10 para resolver o problema de regulao. Em seguida, o
sistema em malha fechada ser simulado considerando o estado inicial x(0) = [1 0 0]t e uma
perturbao externa do tipo degrau de amplitude 15 ocorrendo aos 5 segundos.
Este problema corresponde aos exemplos 12.1, 12.2 e 12.3 (OGATA, 2003) e sua soluo
por linha de comando apresentada na Tabela 3.1. O resultado obtido exibido na Fig. 3.2.
Tabela 3.1: Projeto de regulador contnuo por alocao de polos.
A=[0 1 0;0 0 1;-1 -5 -6]; B=[0;0;1];

Definio das matrizes A e B.

Q=[B A*B A^2*B];

Matriz de controlabilidade. Verificao

rank(Q)
pds=(%s+2-%i*4)*(%s+2+%i*4)*(%s+10);
pdA=A^3+14*A^2+60*A+200*eye(3,3);

se controlvel.
Eq. caracterstica desejada em malha
fechada e matriz P(A)

K=[0 0 1]*Q^-1*pdA ;

Frmula de Ackermann

Amf=(A-B*K);

Matrizes de estado em malha fechada

Bmf=[0 0 1]';
Cmf=[1 0 0;0 1 0;0 0 1];
Dmf=[0;0;0];

Utilizou-se C=I para ter disponvel


todas as variveis de estado

X0=[1 -1 0]';

Estado inicial

Sysmf=syslin('c',Amf,Bmf,Cmf,Dmf,X0);

Cria o sistema em malha fechada

t=0:0.01:15;

Intervalo de tempo de simulao

i= max(size(t)) ; j= round(i/2)

Entrada degrau de amplitude 15

u1=zeros(1:j);u2=ones(j+1:i);u=15*[u1 u2];

aplicada em 8 segundos.

X=csim(u,t,Sysmf);

Simula o sistema em malha fechada

plot(t',X(1,:)','colo','black','linest','-');

Grficos de x1 x2 e x3.

plot(t',X(2,:)','colo','black','linest','-.');
plot(t',X(3,:)','colo','black','linest',':');
xlabel("t(seg.)", "fontsize", 2);
ylabel("x1(t),x2(t),x3(t)", "fontsize", 3);

Figura 3.2: Resposta condio inicial x(0) = [1 0 0]t e degrau de amplitude 15 aplicado
aos 8 segundos usando linha de comando, caso contnuo.
Utilizando o valor obtido por linha de comando para o ganho de realimentao K, a
implementao usando o Xcos feita conforme a Fig. 3.3. Os resultados da simulao esto
na Fig. 3.4.

Figura 3.3: Problema de regulao para o caso contnuo usando o Xcos.

Figura 3.4: Resposta condio inicial x(0) = [1 0 0]t e degrau de amplitude 15 aplicado
aos 7 segundos usando o Xcos, caso contnuo.
3.1.2 Caso discreto
________________________________________________________________________
Resumo Terico:
Posicionamento de Polos via Realimentao de Estados Discreta
Se o sistema discreto controlvel, pode-se posicionar arbitrariamente seus polos de
malha fechada no plano Z, pelo uso de uma realimentao de estados ponderada por um vetor
de ganhos apropriado, de acordo com a Eq. 34.

K [k1

k2 kn ]

(34)

O clculo do vetor K pode ser feito de forma anloga s apresentadas para o caso
contnuo.
Para um sistema em malha aberta representado no espao de estados pelas equaes 10 e
11 com D = 0, ao se fechar a malha com realimentao de estados, o sinal de controle u(kT)
dado pela Eq. 35, onde K dado pela Eq. 34.
u(kT ) Kx(kT )

(35)

A equao de estado do sistema em malha fechada dada pela Eq. 36. Assim a equao
caracterstica de malha fechada dada pela Eq. 37 que funo dos elementos ki do vetor K.
x(kT T ) K x(kT )

det(zI ( K )) 0

(36)
(37)

Supondo que se deseje 1, 2, ..., n como polos de malha fechada, ento a equao
caracterstica desejada de malha fechada dada pela Eq. 38.
P ( z ) z 1 z 2 z n z n an1 z n1 a1 z a0 0
c

(38)

Igualando as Eq. 37 e 38 determina-se o vetor K . Outra maneira de obt-lo atravs da


frmula de Ackermann, Eq. 39, com Pc() = Pc(z)z=.

K [0 ... 0 1]1xn [ 2 n 1]1P ()


c

(39)

Projeto de Regulador para Sistemas Discretos


Neste caso tem-se que a referncia nula (Fig. 3.5). Substituindo a Eq. 35 na Eq. 10,
resulta na Eq. 40 para o sistema em malha fechada.

X (kT T ) X (kT ) KX (kT ) ( K ) X (kT )

(40)

w(kT)
r(kT)=0 u(kT)

G
+
+

X(kT)
z1

y(kT)

K
Figura 3.5: Regulao com realimentao de estados
Assim os polos de malha fechada so as razes do polinmio caracterstico que agora
dado pela Eq. 37. Pode-se ento usar um dos dois procedimentos descritos anteriormente para
calcular K (igualar as equaes 37 e 38 ou usar a Eq. 39).
________________________________________________________________________
O mesmo exemplo do item 3.1.1 ser resolvido considerando que se deseje uma
realimentao dos estados discretos. Ser considerado um perodo de amostragem Ts = 0.02.
A soluo apresentada na Tabela 3.2 e as respostas so mostradas na Figura 3.6.
Tabela 3.2: Projeto de regulador discreto por alocao de polos.
A=[0 1 0;0 0 1;-1 -5 -6]; B=[0;0;1];
C=[1 0 0;0 1 0;0 0 1]; D=[0;0;0];
Sysc=syslin('c',A,B,C,D);

Matrizes A, B, C e D do sistema
contnuo.
Definio do sist. em tempo contnuo.

dt=0.02;

Perodo de amostragem

Sysd=dscr(Sysc,dt);

Converso do sist. contnuo p/

F=Sysd.a;

discreto.

G=Sysd.b;

Matrizes FI e GAMA do sist. Discreto.

Cont= [G F*G F^2*G];

Matriz de controlabilidade e

rank(Cont)
p1=exp((-2+%i*4)*dt);
p2=exp((-2-%i*4)*dt); p3=exp((-10)*dt);

verificao se controlvel.
Mapeamento dos polos especificados
no plano S para o plano Z (z=esdt)

pdz=(%z-p1)*(%z-p2)*(%z-p3)

Eq. caracterstica desejada em malha

pF=F^3-2.7341639*F^2+2.4913403*F-

fechada

0.7557837*eye(3,3);

Matriz P(FI).

K=[0 0 1]*Cont^-1*pF ;

Frmula de Ackermann

Fmf=(F-G*K);

Matrizes de estado em malha fechada

Gmf=G;
Cmf=[1 0 0;0 1 0;0 0 1];
Dmf=[0;0;0];
X0=[1 -1 0]';

Estado inicial

Sysmf=syslin('d',Fmf,Gmf,Cmf,Dmf,X0);

Cria o sist. discreto em malha fechada

t=0:dt:15;

Intervalo de tempo de simulao

i= max(size(t)); j= round(i/2);

Entrada degrau de amplitude 15

u1=zeros(1:j); u2=ones(j+1:i); u=15*[u1 u2];


X=dsimul(Sysmf,u);
plot(t',X(1,:)','colo','black','linest','-');
plot(t',X(2,:)','colo','black','linest','-.');
plot(t',X(3,:)','colo','black','linest','-');
xlabel("t(seg.)", "fontsize", 2);
ylabel("x1(kTs),x2(kTs),x3(kTs)", "fontsize",
3);

aplicada em 8 segundos.
Simula o sist. discreto em malha
fechada.
Grficos de x1, x2 e x3.

Figura 3.6: Resposta condio inicial x(0) = [1 0 0]t e degrau de amplitude 15 aplicado
aos 8 segundos por linha de comando, caso discreto.
Com o valor obtido por linha de comando para o ganho de realimentao K, a
implementao usando o Xcos mostrada na Fig. 3.7 e os resultados da simulao na Fig.
3.8.

Figura 3.7: Problema de regulao para o caso discreto usando o Xcos.

Figura 3.8: Resposta condio inicial x(0) = [1 0 0]t e degrau de amplitude 15 aplicado
aos 7 segundos usando o Xcos, caso discreto.

3.2 Projeto de Servo sistema


3.2.1 Projeto de servo sistema quando a planta possui um integrador
3.2.1.1 Caso contnuo
________________________________________________________________________
Resumo Terico:
Servo Sistema Contnuo quando a Planta Possui um Integrador
Se a planta tem um integrador (planta do tipo um), utiliza-se a configurao ilustrada na
Fig. 3.9, onde necessriamente a varivel de estado x1(t) tem de ser igua a sada y(t). Assim, o
sinal de controle dado pela Eq. 41.

Figura 3.9: Configurao do servo sistema quando a planta possui um integrador.


x (t )
1

x2 (t )
kn ]

x (t )
n

u(t ) [ 0 k2 k3 ...

(41)

k1[r (t ) x1 (t )] KX (t ) k1r (t )

O sistema em malha fechada pode ser escrito conforme a Eq. 42.

X (t ) ( A BK ) X (t ) Bk1r (t )

(42)

Se o sistema, x Ax Bu , for controlvel, K poder ser encontrado pela tcnica de


alocao de polos igualando as Eq. 28 e 29 ou usando a Eq. 30.
________________________________________________________________________

Para um sistema dinmico contnuo dado por

Y ( s)
1
, projetar um

U ( s) s( s 1)(s 2)

controlador por realimentao de estados que rastreie uma entrada de referncia degrau

unitrio e garanta os seguintes polos de malha fechada: s 2 j 2 3 e s 10 . O projeto e


simulao por linha de comando so apresentados na Tabela 3.3. Exemplo 12.4 (OGATA,
2003).
Tabela 3.3: Projeto de servo sistema quando a planta possui integrador.
s1=[1/(%s^3+3*%s^2+2*%s+0)];

Funo de transferncia (FT)

s2=tf2ss(s1);

Converta a FT p/ espao de

A=s2(2); B=s2(3); C=[1 0 0]; D=s2(5);

estados
Matrizes do sistema representado

Q=[B A*B A^2*B];


rank(Q)
polos=[-2+%i*2*sqrt(3) -2-%i*2*sqrt(3) -10];
P=(%s-polos(1))*(%s-polos(2))*(%s-polos(3))

na forma de espao de estados


Matriz de controlabilidade. Verifica
se o sistema controlvel.
Polos

desejados

em

malha

fechada.
s+14s+56s+160
P1=A^3+14*A^2+56*A+160*eye(3,3);

Eq. caracterstica desejada em


malha fechada.

K=[0 0 1]*Q^-1*P1;

Resultado obtido para P

Aa=(A-B*K);

Matriz P(A), Equao 30

Ba=(B*K(1));

Frmula de Ackermann

Ca=[1 0 0;0 1 0;0 0 1];

Matrizes de estado, matriz de

Da=[0;0;0];

controle, matriz de sada e matriz de

Gma=syslin('c',A,B,C,D);

transmisso

t=0:0.01:5;

projetado (respectivamente)

direta

do

sistema

u=ones(t);

Cria o sistema em malha aberta

[y,X]=csim(u,t,Gma);

Intervalo de tempo de simulao


Cria uma entrada degrau unitrio
Simula o sistema

G ma

(malha

aberta) para a entrada u no intervalo


plot(t',X(1,:)','colo','black','linest','-');
plot(t',X(2,:)','colo','black','linest','-.');
plot(t',X(3,:)','colo','black','linest',':');
xlabel("t(seg.)", "fontsize", 2);
ylabel("x1(t),x2(t),x3(t)", "fontsize", 3);
Gmf=syslin('c',Aa,Ba,Ca,Da);
[ymf,Xmf]=csim(u,t,Gmf);

de tempo t e armazena suas variveis


de estado no vetor y.
Plota o grfico da resposta de
malha aberta.
Cria o sistema em malha fechada
Simula

sistema

G mf (malha

fechada) para a entrada u no intervalo


de tempo t e armazena suas variveis

plot(t',Xmf(1,:)','colo','black','linest','-');
plot(t',Xmf(2,:)','colo','black','linest','-.');
plot(t',Xmf(3,:)','colo','black','linest',':');

de estado no vetor y.
Plota o grfico da resposta em
malha fechada.

xlabel("t(seg.)", "fontsize", 2);


ylabel("x1(t),x2(t),x3(t)", "fontsize", 3);

As respostas ao degrau unitrio so dadas nas Figuras 3.10 e 3.11, para o sistema em
malha aberta e em malha fechada, respectivamente.

Figura 3.10: Resposta ao degrau unitrio em malha aberta.

Figura 3.11: Resposta ao degrau unitrio em malha fechada.

Com o valor obtido por linha de comando para o ganho de realimentao K, a


implementao usando o Xcos mostrada na Fig. 3.12 e os resultados da simulao na Fig.
3.13 (degrau de amplitude zero na referncia).

Figura 3.12: Diagrama de blocos do sistema.

Figura 3.13: Resultados da simulao

3.2.1.2 Caso discreto


________________________________________________________________________
Resumo Terico:
Servo Sistema Discreto quando a Planta Possui um Integrador
Se a planta tem integrador (tipo um), utiliza-se a configurao ilustrada na Fig. 3.14, onde
necessriamente a varivel de estado x1(t) tem de ser igua a sada y(t). Assim, o sinal de
controle dado pela Eq. 43.
r(k)

k1

+
- -

X(k+1)=X(k)+u(k)
Y(k)=CX(k)

u
-

y = CX

y = x1

k2
k3

kn

Figura 3.14: Configurao de servo sistema discreto com a planta tipo um.

u(kT ) [ 0 k2 k3 ...

x (kT )
1

x
(
kT
)

kn ] 2

x (kT )
n

(43)
k1[r (kT ) x1(kT )] KX (kT ) k1r (kT )

O sistema em malha fechada escrito conforme a Eq. 44.


X (kT T ) ( K ) X (kT ) k1r (kT )

(44)

Se o sistema, , , for controlvel, K pode ser encontrado pela tcnica de alocao


de polos: igualando as equaes 37 e 38 ou usando a Eq. 39.
________________________________________________________________________
Para o sistema dinmico dado por
equao de estado :

1
Y (s) , considerando x1 y; x 2 y , sua
Gp(s)

s(s 1) U (s)

0 1
0
. Adotando como perodo de amostragem Ts =
X (t )
X (t ) u(t )
0 1
1
y(t ) 1 0X (t )

0.1, deseja-se determinar uma realimentao de estados discreta tal que o sistema em malha

fechada rastreie uma entrada degrau unitrio e tenha os seguintes polos de malha fechada no
plano Z: p1 = p2 = 0.5. A soluo apresentada na Tabela 3.4 e as respostas so mostradas na
Figura 3.15.
Tabela 3.4: Projeto de servo sistema discreto
A=[0 1;0 1]; B=[0;1]; C=[1 0]; D=0;

Definio das matrizes do sistema

Sysc=syslin('c',A,B,C,D);

Sistema em tempo contnuo

dt=0.1;

Perodo de amostragem.

Sysd=dscr(Sysc,dt);

Sistema em tempo discreto.

FI=Sysd.a; GAMA=Sysd.b;

Matrizes Fi e Gama do equivalente

Cont= [GAMA FI*GAMA];

discreto.

rank(Cont)

Verificao se o sistema controlvel.

p1=0.5; p2=0.5;

Matriz

de

controlabilidade.

Definio dos polos desejados para

d1=[1 -p1]; d2=[1 -p2];

malha fechada e do polinmio caracterstico

d=conv(d1,d2);

desejado para malha fechada.

alfacFI=d(1)*FI*FI+d(2)*FI+d(3)*[1 0;0 1];

Eq. caracterstica desejada com z=FI.

K=[0 1]*inv(Cont)*alfacFI;

Frmula de Ackermann

k1=K(1);
Amf=[FI-GAMA*K]; Bmf = k1*GAMA;
Cmf = [1 0;0 1]; Dmf=[0;0];

Matrizes para o sistema discreto em


malha fechada

Sysmf=syslin('d',Amf,Bmf,Cmf,Dmf);

Define o sist. discreto em malha fechada

t=0:dt:5;

Intervalo de tempo de simulao

u=ones(t);

Entrada degrau unitrio

X=dsimul(Sysmf,u);

Simula o sist. para a entrada u e


armazena suas variveis de estado no vetor
X.

plot(t',X(1,:)','colo','black','linest','-');
plot(t',X(2,:)','colo','black','linest','-.');

Grficos de x1, x2 e x3.

xlabel("t(seg.)", "fontsize", 2);


ylabel("x1(kTs),x2(kTs)", "fontsize", 3);
title('Resposta a entrada degrau com
realimentao de estado discreta')

Coloca um ttulo no grfico

Figura 3.15: Rastreamento, planta tipo 1, realimentao de estado discreta, resposta ao


degrau unitrio
Com o valor obtido por linha de comando para o ganho de realimentao K, a
implementao usando o Xcos mostrada na Fig. 3.16 e os resultados da simulao na Fig.
3.17.

Figura 3.16: Diagrama de blocos do sistema.

Figura 3.17: Resposta do sistema a uma entrada degrau (yxt)

3.2.2 Projeto de servossistema quando a planta no possui integrador


3.2.2.1 Caso contnuo
________________________________________________________________________
Resumo Terico:
Servo Sistema Contnuo quando a Planta no Possui um Integrador
Se a planta no tem integrador (planta do tipo zero), o princpio bsico de projeto de um
servo sistema inserir um integrador no ramo direto entre o comparador e a planta, conforme
ilustrado na Fig. 3.18.

Figura 3.18: Configurao do servo sistema quando a planta no possui um integrador.

O sistema em malha aberta (ki = 0, K = [0 ... 0]) descrito pelas Eq. 45 a 47. Definindo
um vetor de estado aumentado conforme a Eq. 48, o sistema em malha aberta com o vetor
aumentado dado pela Eq. 49 ou Eq. 50 para r = 0, sem perda de generalidade.

X (t ) AX (t ) Bu(t )

(45)
(46)

y(t) CX (t)

(t ) r(t ) y(t ) r(t ) CX (t )


^
X (t )
X (t )

(t )

X (t ) A
C
(t )

(47)
(48)

(49)

0 X (t ) B 0

u r (t )
0 (t ) 0 1
^

X (t ) A X (t ) B u(t )

(50)

^ ^

Se < A,B > controlvel e no havendo nenhum zero na origem, pode-se usar a lei de
controle da Eq. 51 para fechar a malha. Assim, o sistema em malha fechada dado pela Eq.
52 e os polos de malha fechada so obtidos pela Eq. 53.
^ ^
X (t )
u(t ) KX (t ) ki (t ) k1 k 2 k n - ki

K
X (t )

(t )

X (t ) A BK


(t )

0
Bki X (t )
r (t ) X mf Amf X mf B mf u

^
^
^
0 (t )
1
y mf C mf X mf

det (sI Amf ) det(SI A BK ) 0

(51)

(52)

(53)

Ainda possvel utilizar a tcnica de alocao de plos para determinar o vetor de ganhos
K, sendo que, agora, deve-se especificar n+1 plos desejados de malha fechada. Segue um
algoritmo para projeto usando a frmula de Ackermann (Eq. 30):
1. Verificar se o sistema aumentado controlvel:
^
^n ^
^ 1
^ ^ ^ ^2 ^
M cont B A B A B A B C

2. Especificar o polinmio caracterstico de malha fechada desejado: Pd(s).

Pd (s) (s 1)(s 2 )(s n )(s n1) sn1 n sn n-1sn1 1s o


^

3. Calcular a matriz P ( A) (ver Eq. 31).


d

(54)

(55)

^ n 1

P( A) Pd ( A) A

^n

^ n 1

n A n -1 A

1 A o I

(56)

4. Calcular o vetor de ganhos aumentado

K usando Ackermann.
^ 1

K 0 0 1M cont Pd ( A)
^

(57)

________________________________________________________________________

Para exemplificar este caso considera-se o controle do pndulo invertido, mostrado na Fig.
3.19. Deseja-se manter, tanto quanto possvel, o pndulo invertido na vertical a partir do
movimento do carro. Supondo e pequenos, tal que sen , cos 1 e 2 0 , o
modelo linear do pndulo invertido dado por:

Ml ( M m) g u
Mx u mg

Adotando os seguintes valores numricos: M 2kg , m 0,1kg , l 0,5m . (OGATA,


2003) resulta para o modelo:

20,601 u
x 0,5u 0,4905

Definindo como variveis de estado: x1 ; x2 , x3 x e x4 x, e considerando a


posio x como a sada do sistema, tem-se que as matrizes do sistema representado no espao
de estados so:

1
0
20.601 0
A
0
0

0.4905 0

0 0
0 0
;B
0 1

0 0


0
1; C 0 0 1 0 e D 0
0

0.5

Observa-se que o sistema no possui um integrador, assim, para controlar a posio do


carro necessrio inclui-lo para que fique do tipo 1. A soluo apresentada na Tabela 3.5 e
as respostas so mostradas na Fig. 3.20.

Figura 3.19: Pndulo invertido


Tabela 3.5: Projeto de servo sistema contnuo quando a planta no possui integrador.
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0];

Definio das matrizes A, B, C e D

B=[0 -1 0 0.5]'; C=[0 0 1 0]; D=[0];

Sistema

Ahat=[A zeros(4,1); -C 0]; Bhat=[B;0];

aumentado

em

malha

aberta, Eq. 2.29.


Matriz de controlabilidade. Verifica

Q=[Bhat

Ahat*Bhat

Ahat^2*Bhat

Ahat^3*Bhat se controlvel.

Ahat^4*Bhat];
rank(Q)
polos=[-1+%i*sqrt(3) -1-%i*sqrt(3) -5 -5 -5];
P=(%s+1%i*sqrt(3))*(%s+1+%i*sqrt(3))*(%s+5)*(%s+5)*(%s+5)

Polos

desejados

em

malha

fechada.
Eq. caracterstica desejada em
malha fechada.
Eq. Caracterstica com s=A

PA=500*eye(5,5)+550*Ahat+335*Ahat*Ahat+109*
Ahat^3+17*Ahat^4+Ahat^5;

Khat=[0 0 0 0 1]*Q^-1*PA;

Ackermann, Eq. 57

k1=-Khat(1,5);

Ganho

K=Khat(1,1:4);

Aa=[A-B*K B*k1;-C 0];


Ba=[0 0 0 0 1]';

do

integrador

da

realimentao de estados Eq 51.

Matrizes de estado do sistema em


malha fechada Eq. 52

Ca=[1 0 0 0 0];
Da=[0];
Sysmf=syslin('c',Aa,Ba,Ca,Da);

Sistema em malha fechada

t=0:0.01:5;

Tempo de simulao

u=ones(t);

Entrada degrau unitrio

[ymf,Xmf]=csim(u,t,Sysmf);

Simula o sistema

para a

plot(t',Xmf(1,:)','colo','black','linest','-');

entrada u no intervalo de tempo t e

plot(t',Xmf(2,:)','colo','black','linest','-.');

armazena suas variveis de estado no

plot(t',Xmf(3,:)','colo','black','linest',':');

vetor Xmf.

plot(t',Xmf(4,:)','colo','black','linest',':');
xlabel("t(seg.)", "fontsize", 2);
ylabel("x1(t), x2(t), x3(t), x4(t)", "fontsize", 3);

Figura 3.20: Curvas de x1, x2, x3 e x4 versus t.


Com o valor obtido por linha de comando para o ganho de realimentao K, a
implementao usando o Xcos mostrada na Fig. 3.21 e os resultados da simulao na Fig.
3.22.

Figura 3.21: Diagrama de blocos do sistema.

Figura 3.22: Curvas de x1, x2, x3 e x4 versus t.

3.2.2.2 Caso discreto


________________________________________________________________________
Resumo Terico:
Servo sistema Discreto quando a Planta no Possui um Integrador
inserido um integrador, baseado no mtodo forward, aps o sinal de erro, Fig. 3.23.
r(k)

ei(k)

1
z 1

h
xi(k)

yi(k)

X(k+1)

Ki

z-1

y(k)

X(k)

K
Figura 3.23: Configurao de servo sistema discreto com a planta tipo zero
Para o integrador, tm-se as Eq. 58 e 59. Resultando no diagrama de simulao da Fig.
3.24, onde xi(k) definindo como varivel de estado.
xi(z)z - xi(z) =Ei(z)

(58)

xi(k+1) - xi(k) = ei(k)

(59)

ei(k)

xi(k+1)

z-1

xi(k)

h yi(k)

Figura 3.24: Diagrama de simulao para o integrador


Assim a equao de estado e a de sada para o integrador resultam nas Eq. 60 e 61.
xi(k+1) = xi(k) + ei(k) = xi(k) + r(k) - CX(k)

(60)

yi(k) = hxi(k)

(61)

A equao de estado e a de sada para a planta em malha aberta, ki = K = 0, so dadas


pelas Eq. 62 e 63.
X(k+1) = X(k) + u(k)

(62)

y(k) = CX(k)

(63)

Definindo o vetor de estados aumentado: X (k ) X (k ) , o sistema aumentado em malha


^

xi (k )

aberta dado pela Eq. 64 ou compactamente pela Eq. 65 (r(k) = 0).


0 X ( k )
X (k 1)
0
x (k 1) C
x (k ) 0 u (k ) 1 r (k )
1
i

i

y (k ) C 0 X (k )
y ( k ) 0 h x ( k )
i
i
^

(65)

X A X B u(k )
^

(64)

Y C X
Se o sistema aumentado em malha aberta for controlvel (determinante no nulo da matriz
de controlabilidade, Eq. 66), ento, pode-se usar a ao de controle da Eq. 67, para fechar a
malha e reposicionar os polos.
^

Cont

^ n ^
^ ^ ^
B A B A B

(66)
^

u(k) = - KX(k) + kihxi(k) = -[ K -kih][ X(k) xi(k)]t = - K [ X(k) xi(k)]t

(67)

Em malha fechada tem-se a Eq. 68.


X(k+1) = [- K]X(k) + kihxi(k)

(68)

Sendo o vetor de estados aumentado: X (k ) X (k ) em malha fechada tem-se a Eq. 69.

xi (k )

X (k 1) K
x (k 1) C
i

y (k ) C 0 X (k )
y ' ( k ) 0 h x ( k )

k i h X (k ) 0

r (k )
1 xi (k ) 1

(69)

Definindo os n+1 plos desejados de malha fechada, Eq. 70, o vetor K pode ser obtido
pela frmula de Ackermann, Eq. 71.

Pd (s) (s 1 )(s 2 )(s n )(s n1 )

(70)

K 0 0 1Cont Pd ( A)
^

(71)

________________________________________________________________________
Para exemplificar o caso discreto de rastreamento com realimentao de estados quando a
planta no tem integrador (tipo zero), ser considerado o mesmo exemplo do item 3.2.2.1, ou
seja, o pndulo invertido. A soluo apresentada na Tabela 3.6 e as respostas so mostradas
na Fig. 3.25.
Tabela 3.6: Projeto de servo sistema discreto quando a planta no possui integrador.
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0];

Definio das matrizes A, B,

B=[0 -1 0 0.5]'; C=[0 0 1 0]; D=[0];

CeD

Sysc=syslin('c',A,B,C,D);

Sist. contnuo malha aberta

dt=0.1;

Perodo de amostragem

Sysd=dscr(Sysc,dt);

Discretiza o sit. contnuo

F=Sysd.a; G=Sysd.b;

Matrizes e

Fa=[F zeros(4,1);-C 1];Ga=[G;0];Ca=[C 0;zeros(1,4)

Sist. Discreto aumentado em

dt]; Da=[0];

malha aberta Eq.64

Cont= [Ga Fa*Ga Fa^2*Ga Fa^3*Ga Fa^4*Ga];

Matriz

rank(Cont)

de

controlabilidade.

Verifica se controlvel.

ps=[-1+%i*sqrt(3) -1-%i*sqrt(3) -5 -5 -5];

Polos desejados p/ malha

pz1= exp(ps(1)*dt); pz2= exp(ps(2)*dt);

fechada

no

plano

pz3= exp(ps(3)*dt); pz4= exp(ps(4)*dt);

mapeamento p/ o plano Z.

pz5= exp(ps(5)*dt);
d1=[1 -pz1]; d2=[1 -pz2]; d3=[1 -pz3]; d4=[1 -pz4];
d5=[1 -pz5];
d12=conv(d1,d2); d34=conv(d3,d4);

Eq. caracterstica desejada p/

d1234=conv(d12,d34); d=conv(d1234,d5)

malha fechada em Z.

alfacFI=Fa^5+-3.6021895*Fa^4+5.1659692*Fa^3-

Eq. caracterstica comz=

3.680229*Fa^2+1.3013339*Fa-0.1826835*eye(5,5);
K=[0 0 0 0 1]*inv(Cont)*alfacFI;

Frmula de Ackermann

k1= -K(1,5);//ki*dt

Ganho integrador Eq.67

Amf=[[F-G*K(1,1:4)

G*k1];[-C

1]];

Bmf

=[zeros(4,1);1];
Cmf

Sist. aumentado em malha


fechada Eq. 69

[eye(4,4)

zeros(4,1);zeros(1,4)

dt];

Cria o sist. Aumentado

Dmf=zeros(5,1);
Sysmf=syslin('d',Amf,Bmf,Cmf,Dmf);
t=0:dt:5;

Tempo de simulao

u=ones(t);

Entrada degrau unitrio

X=dsimul(Sysmf,u);

Simula o sist. aumentado em

plot(t',X(1,:)','colo','black','linest','-');

malha fechada, armazena suas

plot(t',X(2,:)','colo','black','linest','-.');

variveis de estado no vetor X e

plot(t',X(3,:)','colo','black','linest','-');

traa os grficos.

plot(t',X(4,:)','colo','black','linest','-.');
xlabel("kTs(seg.)", "fontsize", 2);
ylabel("x1(kTs), x2(kTs), x3(kTs), x4(kTs)", "fontsize",
3);
title('Resposta a entrada degrau com realimentao
de estado discreta')

Figura 3.25: Curvas de x1(kT), x2(kT), x3(kT) e x4(kT) versus kT.


Com o valor obtido por linha de comando para o ganho de realimentao, K = [90.294137 -20.202162 -26.778548 -17.474932 2.2056052], a implementao usando o Xcos
mostrada na Fig. 3.26 e os resultados da simulao na Fig. 3.27.

Figura 3.26: Diagrama de blocos do sistema.

Figura 3.27: Curvas de x1(t), x2(t), x3(t) e x4(t) versus t.

3.3 Observadores de Estado


________________________________________________________________________
Resumo terico
Um observador de estado consiste num algoritmo para estimao das varveis de estado
de uma planta baseado na medida das vaiveis de sada e do sinal de entrada. til quando
todas ou algumas das variveis de estado no esto accessveis (COSTA, 2010). Se o
observador estima todas as variveis de estado, independentemente de que alguma esteja
disponvel para medio direta, ele se chama observador de ordem plena e apenas este ser
visto.
Sendo a planta definida pelas Eq. 72 e 73, o modelo do observador definido pela Eq. 74,
onde: ~
x (t ) o estado estimado, C~
x (t ) a sada estimada, y sada medida, u a entrada de
controle e K e a matriz de ganho do observador.
x(t ) A x(t ) B u(t )

(72)

y(t ) C x(t )

(73)

.
u
~
x A~
x Bu K e ( y C~
x ) ( A K eC)~
x Bu K e y ( A K e C ) ~
x B K e
y

(74)

Nota-se que o modelo do observador alm de <A,B> incorpora o erro de estimao


(diferena entre a sada medida e a estimada, y C~
x ), para compensar incertezas das matrizes

A e B e do estado inicial X(0) inicial. (OGATA, 2003).


O vetor de erro de estimao a diferena entre o vetor de estado do sistema real x , e o
x , Eq. 75.
vetor de estado estimado ~

e x~
x

(75)

Derivando a Eq. 75 e utilizando as Eq. 72 e 74, tem-se que a dinmica do erro de


estimao dada pela Eq. 76. Assim a dinmica do erro definida pelos polos de A K e C .
Tais polos devem ser escolhidos de tal forma que o comportamento dinmico do erro seja
assintoticamente estvel.
.

e x ~
x Ax A~
x K e (Cx C~
x ) ( A K e C )( x ~
x ) e ( A K e C )e

(76)

Se a planta for observvel, ento os polos do observador podem ser arbitrariamente


escolhidos. Desta forma o problema de projetar um observador se resume a especificar os

polos desejados para o mesmo e em seguida calcular a matriz K e . Um dos mtodos de


obteno da matriz K e pela frmula de Ackermann (COSTA, 2010). Para isso deve-se:
1. Formar a equao caracterstica com os polos desejados para o observador.

Pd (s) s n a1s n1 ... an1s an

(77)

2. Calcular Pd (A) , ou seja, fazer s = A na equao caracterstica desejada, Eq. 78.

Pd ( A) An a1 An1 an I

(78)

3. Calcular K e pela Eq. 2.45 sendo M obs a matriz de observabilidade

K e Pd ( A)(M obs ) 1 0 0 1
T

(79)

Definindo o vetor de estado aumentado conforme a Eq. 80 e utilizando as Eq. 72, 73 e 74,
o conjunto planta mais observador representado pela Eq. 81.

X (t )
X a (t ) ~
X (t )

X (t ) A
X a (t )
~
KC
X (t ) e
y (t ) C 0 X (t )
~
~
y (t ) 0 C X (t )

(80)

X (t ) B
~
u (t )
A K e C X (t ) B

(81)

Supondo que se use o estado estimado para realimentao, a ao de controle dada por
u(t ) Kx(t ) , passa a ser expressa pela Eq. 82. Assim, o sistema com observador mais

realimentao do estado estimado dado pela Eq. 83.


~

u (t ) K x(t )

X (t ) A
X a (t )
~
KC
X (t ) e
y (t ) C 0 X (t )
~
~
y (t ) 0 C X (t )

(82)

X (t )
~
A K e C BK X (t )

BK

(83)

Princpio da Separao
O problema de alocao de polos usando realimentao de estados e o problema de
projeto de um estimador de estados so no interativos para sistemas lineares, ou seja: o uso
~
de X (t ) , no lugar de X(t), no altera a localizao dos polos escolhidos para o sistema em
malha fechada; uma modificao nos ganhos da realimentao de estados no alteram a
localizao dos polos do estimador (VANLANDINGHAM, 1985). Assim, pode-se proceder
de forma independente, isto : projeta-se o controlador considerando o vetor de estados
disponvel, projeta-se o estimador de estados para o sistema em malha aberta e por fim utiliza~
se o estado estimado X (t ) para fazer a realimentao de estados.

3.3.1 Exemplos Caso contnuo


3.3.1.1 Projeto de Reguladores com Observadores
Para exemplificar a implementao de um regulador com observador de estados contnuo,
~

X (t ) deve ser uma boa estimativa de X(t), ser considerado um sistema dinmico definido
1
0
por: A
;B
20.6 0

0
1 ; C 1 0 e D 0 , (OGATA, 2003). Na Tabela 4.7 tem-se a

implementao por linha de comando, onde se verifica inicialmente que o sistema instvel,
assim, projeta-se um regulador, tal que os polos de malha fechada sejam: p1 = -1.8 + j2.4 e p2
= -1.8 - j2.4, supondo disponvel o vetor de estados X(t) resultando K = [29.6 3.6]. Em
seguida faz-se a simulao supondo que o vetor de estado X(t) esteja disponvel.
Supondo que apenas a varivel de estado x1 esteja disponvel, verifica-se se o sistema
observvel e projeta-se um estimador de ordem completa com polos em p1e = p2e = -8,
resultando no vetor de ganhos do estimador Ko = [16 84.6]t .
Por fim cria-se um sistema aumentado: planta, estimador mais controlador com
realimentao do estado estimado e simula-se este sistema com resultados apresentados na
Fig. 3.28.

Tabela 3.7: Projeto de regulador e do observador contnuos por alocao de polos.


A=[0 1;20.6 0]; B=[0;1];C=[1 0];

Matrizes A, B e C

spec(A)

Mostra que instvel

Q=[B A*B];

Matriz de controlabilidade e

rank(Q)

verificao se controlvel.

pds=(%s+1.8-%i*2.4)*(%s+1.8+%i*2.4)
pdA=A^2+3.6*A+9*eye(2,2);

Eq. caracterstica desejada em


malha fechada e matriz P(A)

K=[ 0 1]*Q^-1*pdA ;

Frmula de Ackermann

Amf=(A-B*K);

Matrizes do sist. em malha

Bmf=[0 1]';

fechada considerando X(t) disponvel.

Cmf=[1 0;0 1];


Dmf=[0;0];
X0=[1 -1]';

Estado inicial no nulo.

Sysmf=syslin('c',Amf,Bmf,Cmf,Dmf,X0);

Cria o sist. em malha fechada

t=0:0.01:15;

Intervalo de tempo de simulao.

u=zeros(t);

Entrada nula

X=csim(u,t,Sysmf);

Simula o sist. em malha fechada

subplot(221)

c/ realimentao de estados entrada

plot(t',X(1,:)','colo','black','linest','-');

nula, estado inicial no nulo e traa os

plot(t',X(2,:)','colo','black','linest','-.');

grficos.

xlabel("I

t(seg.)", "fontsize", 2);

ylabel("x1(t) e x2(t) exatos", "fontsize", 3);


O=[C; C*A];
rank(O)
pdes=(%s+8)*(%s+8)

Matriz de observabilidade e
verificao se observvel
Eq. Carac. desejada p/ o

pdeA=A^2+16*A+64*eye(2,2);

estimador e matriz Pe(A), Eq. 2.43 e

Ko=pdeA*((O')^-1)*[ 0 1]' ;

2.44

Abig=[[A -B*K];[Ko*C A-Ko*C-B*K]];

Frmula de Ackermann, Eq.2.45.

Bbig=zeros(4,1);

Matrizes

do

sist.

aumentado:

Cbig=eye(4,4);

Planta com realimentao de estados

Dbig=[0;0;0;0];

e observador.

X0til=[1 -1 0 0]';
Sysbig=syslin('c',Abig,Bbig,Cbig,Dbig,X0til);

Estado inicial do estimador.

Xbig=csim(u,t,Sysbig);

Sist. aumentado

subplot(222)

Simula o sist. aumentado e traa

plot(t',Xbig(3,:)','colo','black','linest','-');

os grficos de x1 e x2.

plot(t',Xbig(4,:)','colo','black','linest','-.');
xlabel("II

t(seg.)", "fontsize", 2);

ylabel("x1til(t) e x2til(t) estimados", "fontsize",


3);
subplot(223)
plot(t', X(1,:)'-Xbig(3,:)','colo','black','linest','-');
xlabel("III

t(seg.)", "fontsize", 2);

ylabel("x1(t)-x1til(t): Erro na estimativa de x1",


"fontsize", 3);
subplot(224)
plot(t',X(2,:)'-Xbig(4,:)','colo','black','linest','-');
xlabel("IV

t(seg.)", "fontsize", 2);

ylabel("x2(t)-x2til(t): Erro na estimative de x2",


"fontsize", 3);

Fig. 3.28: I) x1(t) e x2(t) exatos II) x1(t) e x2(t) estimados III) Erro na estimativa de x1 e
IV) Erro na estimativa de x2.

Com o valor obtido por linha de comando para o ganho de realimentao do estado
estimado K = [29.6 3.6] e ganho do estimador Ko = [16 84.6], a implementao usando o
Xcos mostrada na Fig. 3.29 e os resultados da simulao na Fig. 3.30.

Figura 3.29: Diagrama de simulao do controlador-observador no Xcos

Figura 3.30: Resultados da simulao usando o Xcos.

3.3.1.2 Projeto de Servo Sistema com Observadores


Para um sistema dinmico contnuo dado por

Y ( s)
1
, projetar um

U ( s) s( s 1)(s 2)

estimador de estados com polos: p1 = p2 = p3 = -8, bem como um controlador por


realimentao do estado estimado, que rastreie uma entrada de referncia degrau unitrio e
garanta os seguintes polos de malha fechada: s 2 j 2 3 e s 10 . O projeto do
controlador o mesmo do item 3.2.1.1 que resultou em K = [160 54 11]. O projeto do
observador consta na Tabela 3.8 e resulta em Ke = [21 127 89]t.

Tabela 3.8: Projeto de servo sistema com observador de estados.


s1=[1/(%s^3+3*%s^2+2*%s+0)];

Funo de transferncia FT

s2=tf2ss(s1);

Converta a FT p/ espao de estados

A=s2(2); B=s2(3); C=[1 0 0]; D=s2(5);

Matrizes do sist. espao de estados

O=[C;C*A;C*A^2];

Matriz de observabilidade

rank(O)

Verifica se observvel

poloso=[-8 -8 -8];

Polos desejados p/ o observador.

Po=(%s-poloso(1))*(%s-poloso(2))*(%s-

Eq. carac. desejada p/o observador

poloso(3))
P2=A^3+24*A^2+192*A+512*eye(3,3);
Ke=P2*((O')^-1)*[0 0 1]';

Ackermann p/ o observador

Com os valores obtidos K e Ke, a implementao usando o Xcos mostrada na Fig. 3.31 e
os resultados da simulao na Fig. 3.32 (degrau unitrio na referncia).

Figura 3.31: Diagrama de blocos do sistema.

Figura 3.32: Resultados da simulao


3.3.2 Caso discreto
_______________________________________________________________
Resumo Terico
Observador de Estado Discreto
Observadores de estado so utilizados para estimar o vetor de estados X(kT), de um
sistema, a partir das medidas da entrada, u(kT) e sada y(kT). Considerando o sistema discreto
^

das Eq. 10 e 11, o observador definido pelas Eq. 84 e 85, onde X (kT ) o vetor de estado
^

estimado, y(kT ) a sada estimada e L um vetor de ganhos a ser especificado.

X (kT T ) X (kT ) .u(kT ) L[ y(kT ) y(kT )] LC X (kT ) .u(kT ) Ly(kT )


^

(84)

y(kT ) C X (kT )

(85)

Definindo o erro no estado estimado pela Eq. 86, sua dinmica dada pela Eq. 87, ou seja,
por LC. Logo, se esta matriz corresponde a um sistema estvel e rpido, o erro convergir
para zero de uma maneira satisfatria ainda que os valores de e do estimador sejam
ligeiramente diferentes dos da planta.
^

E(kT ) X (kT ) X (kT )

(86)

E(kT T ) LC E(kT )

(87)

Para determinar L especificam-se os polos de malha fechada desejados i para o


estimador, ou ainda, o polinmio caracterstico de malha fechada desejado para o estimador, e

este deve ser igualado a det[zI + LC] (Eq. 88) ou pode-se utilizar a frmula de
Ackermann (Eq. 89) onde e()= e(z)z= .

det(zI LC) ( z 1)(z 2)...(z n) e ( z)


C

L e (). C 2

1
C

(88)

0

0


0




1

(89)

A condio necessria e suficiente para que se possa obter um observador de estados,


que o sistema seja observvel. A Fig. 3.33 ilustra uma planta e o observador.
X(kT)

u(kT)

-1

z
+

y(kT)

C
PLANTA

+
+

^
-1 X(kT)

z
+

^
y(kT)

COMPUTADOR
ANALGICO OU
DIGITAL

L
Figura 3.33: Estimador de estados discreto
Da mesma forma que no caso contnuo, tambm no caso discreto vlido o princpio da
separao, permitindo que se faa o projeto do controlador por realimentao de estados
independentemente do projeto do observador de estados.
________________________________________________________________
3.3.2.1 Projeto de Reguladores com Observadores Discretos
Para exemplificar a implementao de um regulador com observador de estados discreto
ser

considerado

1
0
A
;B
20.6 0

mesmo

sistema

definido

no

item

3.3.1.1,

ou

seja:

0
1 ; C 1 0 e D 0 . Considerando um perodo de amostragem Ts =

0.1, na Tabela 3.9 tm-se as linhas de comando para projetar um regulador discreto, com
polos de malha fechada: p1 = -1.8 + j2.4 e p2 = -1.8 - j2.4 (plano s), supondo disponvel o
vetor de estados X(t) o que resulta em K = [27.974234 4.2970655]. Em seguida projeta-se um
estimador discreto de ordem completa com polos em p1e = p2e = -8 (plano s), resultando no
vetor de ganhos do estimador L = [1.3109028 6.2835918]t.
Com os valores obtidos por linha de comando para o ganho de realimentao do estado
estimado K e ganho do estimador L, a implementao usando o Xcos mostrada na Fig. 3.34
e os resultados da simulao na Fig. 3.35. Na simulao considerou-se o estado inicial do
sistema contnuo X(0)=[1 0] e o do estimador Xest(0)=[0 0].
Tabela 3.9: Projeto de regulador e observador discretos por alocao de polos.
A=[0 1;20.6 0]; B=[0;1];C=[1 0];D=0;

Definio das matrizes A, B e C.

Sysc=syslin('c',A,B,C,D);

Cria o sist. contnuo

dt=0.1;

Perodo de amostragem

Sysd=dscr(Sysc,dt);

Calcula o equivalente discreto ZOH

FI=Sysd.a; GAMA=Sysd.b;

Matrizes FI e GAMA do sist.

Cont= [GAMA FI*GAMA];


rank(Cont)
p1s=complex(-1.8,2.4); p2s=complex(-1.8,-2.4);

discreto
Matriz de controlabilidade e
verificao se controlvel.

p1z=exp(p1s*dt); p2z=exp(p2s*dt);

Polos desejados no plano s

d1=[1 -p1z]; d2=[1 -p2z];

Polos desejados no plano z

dc=conv(d1,d2);
alfacFI=dc(1)*FI*FI+dc(2)*FI+dc(3)*[1 0;0 1];
K=[0 1]*inv(Cont)*alfacFI;

Eq. caracterstica desejada em


malha fechada e matriz P(), Eq. 2.62
Ackermann, Eq. 2.63

O=[C; C*FI];
rank(O)
pdos1=-8; pdos2=-8;
p1oz=exp(pdos1*dt); p2oz=exp(pdos2*dt);
d1o=[1 -p1oz]; d2o=[1 -p2oz];
deo=conv(d1o,d2o);
alfaoFI=deo(1)*FI*FI+deo(2)*FI+deo(3)*[1 0;0 1];
L=alfaoFI*((O)^-1)*[ 0 1]' ;

Matriz de observabilidade e
verificao se observvel
Polos desejados para o estimador
no plano s e no plano z
Eq. Carac. desejada p/ o estimador
e matriz e( )
Ackermann

Figura 3.34: Diagrama de simulao do controlador-observador discretos no Xcos.

Figura 3.35: x1(t) e x2(t) obtidos com estimador e controlador discretos.


3.3.2.2 Projeto de Servo Sistema e Observador Discretos
Para exemplificar a implementao de um servo sistema e observador de estados, ambos
discretos, ser considerado o sistema
equao de estado :

1
Y (s) . Considerando x1 y; x 2 y , sua
Gp(s)

s(s 1) U (s)

0 1
0
. Adotando um perodo de amostragem Ts =
X (t )
X (t ) u(t )
0 1
1
y(t ) 1 0X (t )

0.1, a Tabela 3.10 mostra as linhas de comando para projetar o servo sistema discreto, com

polos de malha fechada: p1 = p2 = 0.5 (plano z), supondo disponvel o vetor de estados X(t) o
que resulta em K = [23.77083 9.3395962]. Tambm mostra o projeto de um estimador
discreto de ordem completa com polos em p1e = p2e = -0.8 (plano z), resultando no vetor de
ganhos do estimador L = [0.5051709 0.8855042]t.
Com os valores obtidos por linha de comando para o ganho de realimentao do estado
estimado K e ganho do estimador L, a implementao usando o Xcos mostrada na Fig. 3.36
e os resultados da simulao na Fig. 3.37. Na simulao considerou-se o estado inicial do
sistema contnuo X(0)=[1 0] e o do estimador Xest(0)=[0 0].
Tabela 3.10: Projeto de servo sistema com observador discreto
A=[0 1;0 1]; B=[0;1]; C=[1 0]; D=0;

Definio das matrizes do sistema

Sysc=syslin('c',A,B,C,D);

Sistema em tempo contnuo

dt=0.1;

Perodo de amostragem.

Sysd=dscr(Sysc,dt);

Sistema em tempo discreto.

FI=Sysd.a; GAMA=Sysd.b;

Matrizes

Fi

do

Matriz

de

Cont= [GAMA FI*GAMA];

equivalente

rank(Cont)

controlabilidade. Verifica se o sist.

p1=0.5; p2=0.5;

controlvel.

d1=[1 -p1]; d2=[1 -p2];

discreto.

Gama

Polos desejados p/ malha fechada

d=conv(d1,d2);

no

plano

do

alfacFI=d(1)*FI*FI+d(2)*FI+d(3)*[1 0;0 1];

caracterstico

K=[0 1]*inv(Cont)*alfacFI;

fechada. Eq. carac. desejada c/ z=Fi.

desejado

polinmio
p/

malha

k1=K(1);

Ackermann

O=[C; C*FI];

Matriz de observabilidade

rank(O)

Verifica se observvel

pde1=0.8; pde2=0.8;

Polos desejados p/ o estimador no

d1o=[1 -pde1]; d2o=[1 -pde2];


deo=conv(d1o,d2o);
alfaoFI=deo(1)*FI*FI+deo(2)*FI+deo(3)*[1 0;0 1];
L=alfaoFI*((O)^-1)*[ 0 1]' ;

plano z
Eq. Carac. desejada p/ o
estimador e matriz e( )
Ackermann

Figura 3.36: Rastreamento com realimentao de estado e estimador discretos,

Figura 3.37: Resposta ao degrau unitrio do sistema.

You might also like