Sistemas de Controle  0.5
Biblioteca matematica de Controle
Métodos Públicos | Métodos Privados | Atributos Privados | Lista de todos os Membros
Referência da Template de Classe StateSpace< UsedType >

Classe concreta de modelos para representar equações diferenciais em espaço de estados. Mais...

#include <statespace.h>

Diagrama de Hierarquia para StateSpace< UsedType >:
Inheritance graph
Diagrama de colaboração para StateSpace< UsedType >:
Collaboration graph

Métodos Públicos

 StateSpace (Matrix< UsedType > A, Matrix< UsedType > B, Matrix< UsedType > C, Matrix< UsedType > D)
 Construtor padrão da biblioteca de Equações diferenciais em espaço de estados. Mais...
 
void print ()
 Método que imprime no prompt de comando o conteúdo de cada matriz (A,B,C,D). Mais...
 
void c2d (UsedType SampleTime)
 Método cujo objetivo é converter as equações em espaço de estados da forma contínua para a forma discreta. Mais...
 
void setInitialState (Matrix< UsedType > X0)
 Método cuja responsabilidade é receber uma matriz que representará o estado inicial para simulação do sistema em espaço de estados. Mais...
 
Matrix< UsedType > getA ()
 Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz A do espaço de estados. Mais...
 
Matrix< UsedType > getB ()
 Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz B do espaço de estados. Mais...
 
Matrix< UsedType > getC ()
 Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz C do espaço de estados. Mais...
 
Matrix< UsedType > getActualState ()
 Método cuja responsabilidade é retornar uma matriz com os valores atuais do estado calculados na função sim. Mais...
 
Matrix< UsedType > getD ()
 Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz D do espaço de estados. Mais...
 
UsedType sim (UsedType u)
 Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial. Mais...
 
UsedType sim (UsedType u, UsedType y)
 Método não implementado. Mais...
 
Matrix< UsedType > sim (Matrix< UsedType > u)
 Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial. Mais...
 
Matrix< UsedType > sim (Matrix< UsedType > u, Matrix< UsedType > y)
 Método não implementado. Mais...
 
Matrix< UsedType > sim (UsedType lmim, UsedType lmax, UsedType step)
 Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial. Mais...
 
- Métodos Públicos herdados de Model< UsedType >
 Model ()
 Construtor padrão da biblioteca modelos matemáticos. Mais...
 
UsedType diff (UsedType x)
 Método que realiza a derivada de uma função de maneira numérica. Mais...
 
void setStep (UsedType step)
 Método que insere na variável step um valor determinado. Mais...
 
void setInstance (Model< UsedType > *m)
 Método que insere na variável instance uma instância do objeto do tipo model. Mais...
 
void setModelCoef (Matrix< UsedType > coef)
 Método que insere na variável ModelCoef os coeficientes do modelo que será simulado. Mais...
 
void setIO (Matrix< UsedType > in, Matrix< UsedType > out)
 Método que insere nas variáveis Input e Output os valores de entrada e saída de um modelo, ou função. Mais...
 
Matrix< UsedType > getModelCoef ()
 Método que retorna a variável ModelCoef, os coeficientes do modelo. Mais...
 
Matrix< UsedType > getInputMatrix ()
 Método que retorna as variável Input os valores de entrada do um modelo, ou função. Mais...
 
UsedType getOutput ()
 Método que retorna a variável output, o valore de saída do modelo, ou função. Mais...
 
Matrix< UsedType > getOutputMatrix ()
 Método que retorna a variável Output, os valores de saída do um modelo, ou função. Mais...
 
Matrix< UsedType > getLinearMatrixA ()
 Método cuja responsabilidade é retornar a Matrix A do sistema linear AX = b. Mais...
 
Matrix< UsedType > getLinearEqualityB ()
 Método cuja responsabilidade é retornar a Matrix b do sistema linear AX = b. Mais...
 
Matrix< UsedType > getLinearVectorPhi ()
 Método cuja responsabilidade é retornar uma linha da Matrix A do sistema linear AX = b. Mais...
 

Métodos Privados

UsedType factorial (unsigned n)
 Método para calcular o fatorial de um número. Mais...
 
void c2dConversion ()
 Método para realizar a conversão de um sistema em espaço de estados na forma contínua para a forma discreta. Mais...
 
void d2cConversion ()
 Método para realizar a conversão de um sistema em espaço de estados na forma discreta para a forma contínua. Mais...
 

Atributos Privados

bool Continuous
 
unsigned nDiscretization
 
UsedType SampleTime
 
UsedType TimeSimulation
 
Matrix< UsedType > A
 
Matrix< UsedType > B
 
Matrix< UsedType > C
 
Matrix< UsedType > D
 
Matrix< UsedType > Ad
 
Matrix< UsedType > Bd
 
Matrix< UsedType > X
 
Matrix< UsedType > initialState
 

Outros membros herdados

- Atributos Protegidos herdados de Model< UsedType >
Model< UsedType > * instance
 
UsedType input
 
UsedType output
 
UsedType lmin
 
UsedType lmax
 
UsedType step
 
Matrix< UsedType > Input
 
Matrix< UsedType > Output
 
Matrix< UsedType > EstOutput
 
Matrix< UsedType > ModelCoef
 
Matrix< UsedType > LinearVectorPhi
 
Matrix< UsedType > LinearMatrixA
 
Matrix< UsedType > LinearEqualityB
 

Descrição Detalhada

template<class UsedType>
class StateSpace< UsedType >

Classe concreta de modelos para representar equações diferenciais em espaço de estados.

O objetivo principal dessa classe é ser uma equação diferencial em espaço de estados, permitindo a sua simulação.

Parâmetros
ContinuousVariável que quando setada em true permitirá que a equação diferencial esteja no domínio contínuo e quando setada em false, no domínio discreto.
nDiscretizationVariável que representa a precisão com a qual o sistema em espaço de estados será discretizado. A discretização do sistema é realizada utilizando série de Taylor e o nDiscretization representa quantos termos da série de taylor serão utilizados para transformar o sistema em espaço de estados de contínuo para discreto.
SampleTimeVariável que representa o período de amostragem que será utilizado para a discretização do sistema.
TimeSimulationEssa variável representa a quantidade de tempo de simulação será utilizada na função sim.
AVariável que representa a dinâmica dos polos do sistema. Ela está diretamente relacionada a estabilidade da equação.
BVariável que representa o ganho do sinal de controle.
CVariável que seleciona qual estado ou combinação de estados será apresentada na saída da equação diferencial.
DVariável que está associada à transmissão direta de energia da entrada para a saída.
AdVariável que representa a dinâmica dos polos do sistema. Ela está diretamente relacionada a estabilidade da equação. Neste caso a variável está no domínio discreto.
BdVariável que representa o ganho do sinal de controle. Neste caso a variável está no domínio discreto.
XVariável que representa o estado atual da equação em espaço de estados.
initialStateVariável que representa o estado inicial do sistema em espaço de estados.

Definição na linha 27 do arquivo statespace.h.

Construtores & Destrutores

template<class UsedType>
StateSpace< UsedType >::StateSpace ( Matrix< UsedType >  A,
Matrix< UsedType >  B,
Matrix< UsedType >  C,
Matrix< UsedType >  D 
)

Construtor padrão da biblioteca de Equações diferenciais em espaço de estados.

O construtor padrão da biblioteca de simulação inicializa o objeto StateSpace com um período de amostragem padrão de 0,1 e com os valores de A, B, C, e D dados pelo usuário. Inicializa também Contínuos como true, nDiscretization = 4, e TimeSimulation = 10.

Ex1:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.print();
return 0;
}

Resultado:

A =
1.000 0.000
-2.000 -1.000
B =
0.000
1.000
C =
0.000 1.000
D =
0.000

Ex2:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
Model<double> *model = &SS;
model->print();
return 0;
}

Resultado:

A =
1.000 0.000
-2.000 -1.000
B =
0.000
1.000
C =
0.000 1.000
D =
0.000

Ex3:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
model->print();
return 0;
}

Resultado:

A =
1.000 0.000
-2.000 -1.000
B =
0.000
1.000
C =
0.000 1.000
D =
0.000

Ver também:

Veja também
print(), sim();

Métodos

template<class UsedType>
void StateSpace< UsedType >::c2d ( UsedType  SampleTime)

Método cujo objetivo é converter as equações em espaço de estados da forma contínua para a forma discreta.

A responsabilidade deste método utilizar os métodos privados de conversão contínuo para discreto e converter as matrizes A e B para a forma discreta.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.print();
SS.c2d(0.1);
SS.print();
return 0;
}

Resultado:

A =
1.000 0.000
-2.000 -1.000
B =
0.000
1.000
C =
0.000 1.000
D =
0.000
Ad =
1.105 0.000
-0.200 0.905
Bd =
0.000
0.095
C =
0.000 1.000
D =
0.000

Ver também:

Veja também
print(), getA(), getB(), getC(), getD();
template<class UsedType>
void StateSpace< UsedType >::c2dConversion ( )
private

Método para realizar a conversão de um sistema em espaço de estados na forma contínua para a forma discreta.

Este método utiliza a expansão em série de taylor para encontrar e^At que é Ad e para encontrar Bd (Bd = (A^-1)*(Ad - (I))*B).

Ver também:

Veja também
d2cConversion();
template<class UsedType>
void StateSpace< UsedType >::d2cConversion ( )
private

Método para realizar a conversão de um sistema em espaço de estados na forma discreta para a forma contínua.

Este método utiliza uma transformação obtendo a matriz A, sabendo que ela foi obtida de Ad utilizando uma certa quantidade de termos da série de taylor. B = (((A^-1)*(Ad - I))^-1)*Bd;

Ver também:

Veja também
c2dConversion();
template<class UsedType>
UsedType StateSpace< UsedType >::factorial ( unsigned  n)
private

Método para calcular o fatorial de um número.

Este método auxilia a função de discretização (que usa a expansão em série de taylor).

Ver também:

Veja também
c2dConversion(), c2d();
template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::getA ( )

Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz A do espaço de estados.

A responsabilidade deste método é retornar uma Matrix contendo os valores de A. Caso o sistema esteja no domínio discreto a matriz apresentada será Ad.

Ex1:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.getA().print();
return 0;
}

Resultado:

1.000 0.000
-2.000 -1.000

Ex2:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.c2d(0.1);
SS.getA().print();
return 0;
}

Resultado:

1.105 0.000
-0.200 0.905

Ver também:

Veja também
print(), getB(), getC(), getD();
template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::getActualState ( )

Método cuja responsabilidade é retornar uma matriz com os valores atuais do estado calculados na função sim.

A responsabilidade deste método é retornar a Matrix X. A cada iteração uma matriz X de estados é calculada, e, a partir dela são obtidas as saídas da equação.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
X0 = "0;0";
StateSpace<double> SS(A,B,C,D);
SS.setInitialState(X0);
SS.getActualState().print();
return 0;
}

Resultado:

0.000
0.000

Ver também:

Veja também
print();
template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::getB ( )

Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz B do espaço de estados.

A responsabilidade deste método é retornar uma Matrix contendo os valores de B. Caso o sistema esteja no domínio discreto será apresentado Bd.

Ex1:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.getB().print();
return 0;
}

Resultado:

0.000
1.000

Ex2:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.c2d(0.1);
SS.getB().print();
return 0;
}

Resultado:

0.000
0.095

Ver também:

Veja também
print(), getA(), getC(), getD();
template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::getC ( )

Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz C do espaço de estados.

A responsabilidade deste método é retornar uma Matrix contendo os valores de C. Este método independe do sistema estar no domínio contínuo ou discreto.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.getC().print();
return 0;
}

Resultado:

0.000 1.000

Ver também:

Veja também
print(), getA(), getB(), getD();
template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::getD ( )

Método cuja responsabilidade é retornar uma matriz contendo os valores da matriz D do espaço de estados.

A responsabilidade deste método é retornar uma Matrix contendo os valores de D. Este método independe do sistema estar no domínio contínuo ou discreto.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.getD().print();
return 0;
}

Resultado:

0.000 1.000

Ver também:

Veja também
print(), getA(), getB(), getC();
template<class UsedType>
void StateSpace< UsedType >::print ( )

Método que imprime no prompt de comando o conteúdo de cada matriz (A,B,C,D).

A responsabilidade deste método é apresentar os valores das matrizes da equação.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.print();
return 0;
}

Resultado:

A =
1.000 0.000
-2.000 -1.000
B =
0.000
1.000
C =
0.000 1.000
D =
0.000

Ver também: sim(UsedType u);

template<class UsedType>
void StateSpace< UsedType >::setInitialState ( Matrix< UsedType >  X0)

Método cuja responsabilidade é receber uma matriz que representará o estado inicial para simulação do sistema em espaço de estados.

A responsabilidade deste método é preparar o sistema para realizar a simulação, caso os estado iniciais não sejam nulos.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
X0 = "0.2;1";
u = "1,1,1,1,1,1,1,1,1,1,1,1,1";
StateSpace<double> SS(A,B,C,D);
SS.setInitialState(X0);
SS.sim(u).print();
return 0;
}

Resultado:

1.000 0.960 0.919 0.878 0.836 0.792 0.745 0.697 0.645 0.589 0.530 0.446 0.396

Ver também:

Veja também
print(), sim(Matrix<UsedType> u);
template<class UsedType>
UsedType StateSpace< UsedType >::sim ( UsedType  u)
virtual

Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial.

A responsabilidade deste método é retornar um escalar com o valor correspondente a simulação da equação diferencial.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
for(int i = 0; i < 10; i++)
{
std::cout << SS.sim(1) << std::endl;
SS.setInitialState(SS.getActualState());
}
return 0;
}

Resultado:

0
0.0951667
0.181277
0.259192
0.329692
0.393483
0.451203
0.50343
0.550687
0.593447

Ver também:

Veja também
print();

Implementa Model< UsedType >.

template<class UsedType>
UsedType StateSpace< UsedType >::sim ( UsedType  u,
UsedType  y 
)
virtual

Método não implementado.

Implementa Model< UsedType >.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::sim ( Matrix< UsedType >  u)
virtual

Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial.

A responsabilidade deste método é receber uma matriz (como sinal de entrada da equação diferncial) e retornar uma matriz com a resposta do sistema para aquele conjunto de entradas determinadas.

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
X0 = "0;0";
u = "1,1,1,1,1,1,1,1,1,1,1,1";
StateSpace<double> SS(A,B,C,D);
SS.setInitialState(X0);
SS.sim(u).print();
return 0;
}

Resultado:

0.000 0.095 0.181 0.259 0.330 0.393 0.451 0.503 0.551 0.593 0.632 0.667

Ver também:

Veja também
print();

Implementa Model< UsedType >.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::sim ( Matrix< UsedType >  u,
Matrix< UsedType >  y 
)
virtual

Método não implementado.

Implementa Model< UsedType >.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::sim ( UsedType  lmim,
UsedType  lmax,
UsedType  step 
)
virtual

Método cuja responsabilidade é simular os valores futuros da saída da equação diferencial.

A responsabilidade deste método é simular a equação diferencial a partir de um sinal de entrada contido em um dado intervalo. Em que:

Parâmetros
lminé o limite mínimo da entrada da equação diferencial
lmaxé o limite máximo da entrada da equação diferencial
stepé o valor incremental da entrada da equação diferencial

Ex:

int main(int argc, char *argv)
{
A = "1,0;-2,-1";
B = "0;1";
C = "0,1";
D = "0";
StateSpace<double> SS(A,B,C,D);
SS.sim(0,5,1).print();
return 0;
}

Resultado:

0.000 0.000 0.095 0.276 0.536 0.865

Ver também:

Veja também
print();

Implementa Model< UsedType >.

Atributos

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::A
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::Ad
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::B
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::Bd
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::C
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
bool StateSpace< UsedType >::Continuous
private

Definição na linha 30 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::D
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::initialState
private

Definição na linha 33 do arquivo statespace.h.

template<class UsedType>
unsigned StateSpace< UsedType >::nDiscretization
private

Definição na linha 31 do arquivo statespace.h.

template<class UsedType>
UsedType StateSpace< UsedType >::SampleTime
private

Definição na linha 32 do arquivo statespace.h.

template<class UsedType>
UsedType StateSpace< UsedType >::TimeSimulation
private

Definição na linha 32 do arquivo statespace.h.

template<class UsedType>
Matrix<UsedType> StateSpace< UsedType >::X
private

Definição na linha 33 do arquivo statespace.h.


A documentação para esta classe foi gerada a partir do seguinte arquivo: