Sistemas de Controle
0.5
Biblioteca matematica de Controle
|
Classe concreta para os modelos ARX (Modelos AutoRecursivos com entradas exógenas). Mais...
#include <arx.h>
Métodos Públicos | |
ARX (unsigned nInputpar, unsigned nOutputpar, unsigned delay=0, unsigned qdtInputVar=1, unsigned qdtOutputVar=1) | |
Construtor da biblioteca de modelos ARX. Mais... | |
void | setLinearVectorPhiEstimation () |
Método cuja responsabilidade é montar uma linha do sistema linear AX = b. Mais... | |
void | setLinearVectorPhi () |
Método cuja responsabilidade é montar uma linha do sistema linear AX = b. Mais... | |
void | setLinearModel (Matrix< UsedType > Input, Matrix< UsedType > Output) |
Método cuja responsabilidade é montar o sistema linear AX = b. Mais... | |
UsedType | sim (UsedType input) |
Método cuja responsabilidade é simular os valores futuros da saída de um modelo. Mais... | |
UsedType | sim (UsedType input, UsedType output) |
Método cuja responsabilidade é simular os valores futuros da saída de um modelo a partir de duas entradas de dados, o Input (entrada exógena) e o Output (saída passada). Mais... | |
Matrix< UsedType > | sim (Matrix< UsedType > x) |
Método cuja responsabilidade é simular os valores futuros da saída do modelo ARX. Mais... | |
Matrix< UsedType > | sim (Matrix< UsedType > x, Matrix< UsedType > y) |
Método não implementado. Mais... | |
Matrix< UsedType > | sim (UsedType lsim, UsedType lmax, UsedType step) |
Método não implementado. Mais... | |
![]() | |
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... | |
Atributos Privados | |
unsigned | nInputpar |
unsigned | nOutputpar |
unsigned | delay |
unsigned | qdtInputVar |
unsigned | qdtOutputVar |
unsigned | nSample |
unsigned | maxnInOut |
Outros membros herdados | |
![]() | |
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 |
Classe concreta para os modelos ARX (Modelos AutoRecursivos com entradas exógenas).
Há diversas formas de representar modelos lineares. Uma das mais utilizadas é a forma de funções de transferência definida como a transformada da resposta ao impulso do sistema modelado, para condições iniciais nulas. Se a resposta ao impulso for contínua no tempo, então, utiliza-se a transformada de Laplace. Se a resposta ao impulso for discreta no tempo, a respectiva função de transferência é, por definição, a transformada Z (Aguirre, 2007).
Nas representações a seguir definiremos ,
conforme as equações 1 e 2 respectivamente.
1
2
Isto significa que os polinômios e
representam sistemas discretos no tempo. Sendo eles polinômios arbitrários, o modelo ARX assume a forma da equação 3.
3
Em que:
y(k) | É o sinal de saída, calculado pelo do modelo matemático |
u(k) | É o sinal de entrada, que significa uma força externa a um sistema físico qualquer. |
v(k) | É um ruído branco com média nula (Ruído branco gaussiano). |
O modelo ARX (AutoRegressive with eXogenous inputs) apresentado no diagrama de blocos da figura 1, pode ser obtido a partir de um modelo polinomial linear mais geral de entradas e saídas resultando na equação 3 (Aguirre, 2007).
Para o caso multivariável, podemos representar o modelo ARX conforme a seguinte equação na forma vetorial.
Equação 4
Em que:
nu | Na classe é representado por: |
nInputpar | Ou seja, o número de atrasos nas entradas do sistema. |
ny | Na classe é representado por: |
nOutputpar | Ou seja, o número de atrasos nas saídas do sistema. |
d | Na classe é representado por: |
delay | Ou seja, o número de atrasos de transporte do sistema. |
qi | Na classe é representado por: |
qdtInputVar | Ou seja, o número entradas aplicadas no sistema. |
qo | Na classe é representado por: |
qdtOutputVar | Ou seja, o número de saídas do sistema. |
Como é possível perceber, o objetivo desta classe é "ser" um modelo ARX, ou seja, os cálculos e estruturas aqui calculadas seguirão o padrão do modelo da equação 4. Para isso, são definidas, ainda as seguintes variáveis:
maxnInOut | É uma variável para cuidar do tamanho do vetor ![]() |
nSample | É o período de amostragem do sistema. |
ARX< UsedType >::ARX | ( | unsigned | nInputpar, |
unsigned | nOutputpar, | ||
unsigned | delay = 0 , |
||
unsigned | qdtInputVar = 1 , |
||
unsigned | qdtOutputVar = 1 |
||
) |
Construtor da biblioteca de modelos ARX.
O construtor da biblioteca de modelos ARX faz parte do bloco de classes que herdam de Model. Nele, todas as variáveis são setadas como mostrado a seguir:
maxnInOut | É inicializado com o maior valor entre o número de atrasos na entrada e o número de atrasos na saída. |
nInputpar | É inicializado com os parâmetros setados pelo usuário. |
nOutputpar | É inicializado com os parâmetros setados pelo usuário. |
delay | É inicializado com os parâmetros setados pelo usuário. Caso não seja setado pelo usuário o seu valor será automaticamente iniciado com 0 (zero). |
qdtInputVar | É inicializado com os parâmetros setados pelo usuário. Caso não seja setado pelo usuário o seu valor será automaticamente iniciado com 1 (um). |
qdtOutputVar | É inicializado com os parâmetros setados pelo usuário. Caso não seja setado pelo usuário o seu valor será automaticamente iniciado com 1 (um). |
Input | (da classe model) É inicializado com zeros, em que Input será uma matriz de nInputpar linhas e qdtInputVar colunas. |
Output | (da classe model) É inicializado com zeros, em que Output será uma matriz de nOutputpar linhas e qdtOutputVar colunas. |
EstOutput | (da classe model) É inicializado com zeros e o mesmo tamanho de Output. |
nSample | É inicializado com o valor de delay + maxnInOut + 1. |
:
Resultado:
:
Resultado:
Ver também:
void ARX< UsedType >::setLinearModel | ( | Matrix< UsedType > | Input, |
Matrix< UsedType > | Output | ||
) |
Método cuja responsabilidade é montar o sistema linear AX = b.
Algumas classes que herdam de model possuem uma implementação para montar um sistema linear (No caso os modelos ARX, ARMAX, AR, MA, ARMA, FIR). Essa montagem será importante para as bibliotecas de otimização e possíveis simulações externas.
Ex:
Resultado:
Ver também: sim(), setStep(), setIO(), getOutputMatrix();
void ARX< UsedType >::setLinearVectorPhi | ( | ) |
Método cuja responsabilidade é montar uma linha do sistema linear AX = b.
Algumas classes que herdam de model possuem uma implementação para montar um sistema linear (No caso os modelos ARX, ARMAX, AR, MA, ARMA, FIR). Essa montagem será importante para as bibliotecas de otimização e possíveis simulações externas.
Para esse caso específico a linha do sistema linear é montada utilizando os valores reais e não os dados estimados e que são colocados na matriz EstOutput.
Ex:
Resultado:
Ver também: sim(), setLinearModel(), Matrix, print(), getLinearVectorPhi();
void ARX< UsedType >::setLinearVectorPhiEstimation | ( | ) |
Método cuja responsabilidade é montar uma linha do sistema linear AX = b.
Algumas classes que herdam de model possuem uma implementação para montar um sistema linear (No caso os modelos ARX, ARMAX, AR, MA, ARMA, FIR). Essa montagem será importante para as bibliotecas de otimização e possíveis simulações externas.
Para esse caso específico a linha do sistema linear é montada utilizando as estimativas e não os dados inseridos em Output.
Ex:
Resultado:
Ver também: sim(), setLinearModel(), Matrix, print(), getLinearVectorPhi();
|
virtual |
Método cuja responsabilidade é simular os valores futuros da saída de um modelo.
A responsabilidade deste método é retornar um escalar com o valor correspondente a simulação de um modelo ARX.
Ex:
Resultado:
Ver também:
Implementa Model< UsedType >.
|
virtual |
Método cuja responsabilidade é simular os valores futuros da saída de um modelo a partir de duas entradas de dados, o Input (entrada exógena) e o Output (saída passada).
A responsabilidade deste método é retornar um escalar com o valor correspondente a simulação de um modelo ARX.
Ex:
Resultado:
Ver também:
Implementa Model< UsedType >.
Método cuja responsabilidade é simular os valores futuros da saída do modelo ARX.
A responsabilidade deste método é receber uma matriz (como sinal de entrada do modelo) e retornar uma matriz com a resposta do sistema para aquele conjunto de entradas determinadas.
Ex:
Resultado:
Ver também:
Implementa Model< UsedType >.
|
virtual |
Método não implementado.
Implementa Model< UsedType >.
|
virtual |
Método não implementado.
Implementa Model< UsedType >.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |