Sistemas de Controle  0.5
Biblioteca matematica de Controle
Tipos Públicos | Métodos Públicos | Atributos Privados | Lista de todos os Membros
Referência da Classe simFunction

Classe cuja responsabilidade é simular funções criadas externamente. Mais...

#include <simfunction.h>

Diagrama de colaboração para simFunction:
Collaboration graph

Tipos Públicos

typedef double(* FunctionCall) (double)
 Acessa o ponteiro da função retornando-o para ser utilizado por outra função. Mais...
 

Métodos Públicos

 simFunction ()
 Construtor padrão da biblioteca de simulação. Mais...
 
 simFunction (Matrix< double > in, Matrix< double > out)
 Sobrecarga do construtor padrão da biblioteca de simulação. Mais...
 
 simFunction (double(*FunctionToCall)(double), double lMin, double lMax, double step)
 Sobrecarga do construtor padrão da biblioteca de simulação. Mais...
 
double FunctionCalculation (double input)
 Calcula a saida de dados a partir de uma função. Mais...
 
void GenerateDataFunction ()
 Calcula os dados de saída a partir dos parâmetros lMin, lMax, step. Mais...
 
double normalize (double input, double xUp, double xDown, double yUp, double yDown)
 Calcula a saida de dados a partir de uma função e normaliza-os em uma faixa de interesse em x e em y. Mais...
 
void SetDataStep (double step)
 Insere um valor para a variável step. Mais...
 
void SetDataLimits (double lMin, double lMax)
 Insere um valor para as variáveis lMin e lMax. Mais...
 
void SetInputData (Matrix< double > input)
 Insere um valor para a variável input. Mais...
 
void SetOutputData (Matrix< double > Output)
 Insere um valor para a variável Output. Mais...
 
void SetFunctionCall (double(*FunctionToCall)(double))
 Insere um valor para o ponteiro da função que chamará a função criada pelo usuário. Mais...
 
Matrix< double > GetInputData ()
 Acessa os dados de entrada da função retornando-os na forma de uma matriz. Mais...
 
Matrix< double > GetOutputData ()
 Acessa os dados de saída da função retornando-os na forma de uma matriz. Mais...
 
double GetDataStep ()
 Acessa a variável step retornando-a na forma de um escalar. Mais...
 
double GetDataMinLimit ()
 Acessa a variável lMin retornando-a na forma de um escalar. Mais...
 
double GetDataMaxLimit ()
 Acessa a variável lMax retornando-a na forma de um escalar. Mais...
 
FunctionCall GetFunctionCall ()
 
void simulate ()
 

Atributos Privados

Matrix< double > input
 
Matrix< double > output
 
double(* FunctionToCall )(double)
 
double(* lMin )
 
double(* lMax )
 
double(* step )
 

Descrição Detalhada

Classe cuja responsabilidade é simular funções criadas externamente.

Muitas outras partes desta biblioteca necessitam simular uma função, estabelecer limites, normalizar a sua saída. Por isso, vários métodos foram agrupados de maneira a permitir e facilitar a utilização de funções.

Parâmetros
inputDados de entrada que serão inseridos na função (cujo ponteiro é passado no construtor) para obter os dados de saída.
outputDados de saída obtidos a partir da inserção dos dados de entrada na função passada como ponteiro.
(*FunctionToCall)(double)Ponterio que aponta para uma função criada para obter os dados de saída, a partir dos dados de entrada.
lMinLimite mínimo, ou seja, o menor valor que será utilizado como entrada para a simulação da função.
lMaxLimite máximo, ou seja, o maior valor que será utilizado como entrada para a simulação da função.
steppasso que gerará os pontos que serão simulados juntamente com lMin e lMax da seguinte maneira: lMin:step:lMax.

Definição na linha 17 do arquivo simfunction.h.

Definições de Tipos

typedef double(* simFunction::FunctionCall) (double)

Acessa o ponteiro da função retornando-o para ser utilizado por outra função.

Definição na linha 272 do arquivo simfunction.h.

Construtores & Destrutores

simFunction::simFunction ( )

Construtor padrão da biblioteca de simulação.

O construtor padrão da biblioteca de simulação inicializa o objeto simFunction com todos os parâmetros internos a classe nulos.

    Ex:
int main(int argc, char *argv)
{
return 0;
}
    Resultado:

    Obs: O exemplo não apresenta resultados em tela

     Ver também: \sa simFunction(Matrix<double> in, Matrix<double> out)
simFunction::simFunction ( Matrix< double >  in,
Matrix< double >  out 
)

Sobrecarga do construtor padrão da biblioteca de simulação.

Nessa sobrecarga do construtor da biblioteca de simulação é possível inserir diretamente os valores de entrada e saída que serão utilizados na apresentação gráfica, por exemplo.

Parâmetros
inValores de entrada que serão utilizados para obter os outputs, caso a função seja inserida. Neste caso, como serão inseridas as entrada e saída, não será necessário realizar a simulação.
outValores de saída que serão utilizados para obter os gráficos de saída.

Ex:

int main(int argv, char *argc[])
{
Matrix<double> In, Out;
In = "0,1,2,3,4,5,6,7,8,9,10;0,1,2,3,4,5,6,7,8,9,10;0,1,2,3,4,5,6,7,8,9,10";
Out = "0,1,2,3,4,5,6,7,8,9,10;0,2,4,8,16,25,36,48,64,81,100;0,2,4,6,8,10,12,14,16,18,20";
simFunction S(In,Out);
GlView *f = new grafics(prop, S);
f->setInstance(f);
f->startFramework(argv,argc);
return 0;
}
    Resultado:

    \image <PNG> <Exemplo> ‘‘Exemplo da apresentação do gráfico’’

    Ver também: \sa simFunction()
simFunction::simFunction ( double(*)(double)  FunctionToCall,
double  lMin,
double  lMax,
double  step 
)

Sobrecarga do construtor padrão da biblioteca de simulação.

Nessa sobrecarga do construtor da biblioteca de simulação é possível inserir diretamente os valores de entrada e saída que serão utilizados na apresentação gráfica, por exemplo.

Parâmetros
FunctionToCallPonteiro da função que apontará para a função criada pelo usuário
lMinLimite mínimo, ou seja, o menor valor que será utilizado como entrada para a simulação da função.
lMaxLimite máximo, ou seja, o maior valor que será utilizado como entrada para a simulação da função.
steppasso que gerará os pontos que serão simulados juntamente com lMin e lMax da seguinte maneira: lMin:step:lMax.

Ex:

#define PI 3.14
double funcaoExemplo(double f){
double a = 90, b = 0, g = 0;// f = 15;//graus
double Kp = 1.9;
// double x;
a = PI*a/180;
b = PI*b/180;
g = PI*g/180;
f = PI*f/180;
double x = (pow(sin(a+f),2))/((pow(sin(a),2))*sin(a-g)*pow(1-sqrt((sin(f+g)*sin(f-b))/(sin(a-g)*sin(a+b))),2)) - Kp;
return (x);
}
int main(int argv, char *argc[])
{
simFunction S(funcaoExemplo, 0,2*3.14,3.14/100);
GlView *f = new grafics(prop, S);
f->setInstance(f);
f->startFramework(argv,argc);
return 0;
}
    Resultado:

    \image <PNG> <Exemplo2> ‘‘Exemplo da apresentação do gráfico’’

    Ver também: \sa simFunction()

Métodos

double simFunction::FunctionCalculation ( double  input)

Calcula a saida de dados a partir de uma função.

A responsabilidade desse método é receber uma entrada, chamar a função passada como ponteiro, e retornar um valor de saída real.

Parâmetros
inputEntrada do dado que será utilizado no cálculo da função

Ex:

int main(int argv, char *argc[])
{
simFunction S(sin, 0,2*3.14,3.14/100);
std::cout << S.FunctionCalculation(M_PI) << std::endl;
return 0;
}
    Resultado:

    1.22461e-16

    Ver também: \sa GenerateDataFunction()
void simFunction::GenerateDataFunction ( )

Calcula os dados de saída a partir dos parâmetros lMin, lMax, step.

A responsabilidade desse método é calcular todas as saídas da função na faixa determinada entre lMin e lMax com espaçamento de step.

Ex:

    Resultado:

    Ver também: \sa FunctionCalculation()
double simFunction::GetDataMaxLimit ( )

Acessa a variável lMax retornando-a na forma de um escalar.

double simFunction::GetDataMinLimit ( )

Acessa a variável lMin retornando-a na forma de um escalar.

double simFunction::GetDataStep ( )

Acessa a variável step retornando-a na forma de um escalar.

FunctionCall simFunction::GetFunctionCall ( )
Matrix<double> simFunction::GetInputData ( )

Acessa os dados de entrada da função retornando-os na forma de uma matriz.

Matrix<double> simFunction::GetOutputData ( )

Acessa os dados de saída da função retornando-os na forma de uma matriz.

double simFunction::normalize ( double  input,
double  xUp,
double  xDown,
double  yUp,
double  yDown 
)

Calcula a saida de dados a partir de uma função e normaliza-os em uma faixa de interesse em x e em y.

A responsabilidade desse método é receber uma entrada, chamar a função passada como ponteiro, retornar um valor de saída real e normalizar na faixa determinada.

Parâmetros
inputentrada de dados para obter o resultado da função
xUpmaior valor de x da escala atual dos dados
xDownmenor valor de x para a escala atual dos dados
yUpmaior valor de y para a escala de destino (normalizada)
yDownmenor valor de y para a escala de destino (normalizada)

Ex:

int main(int argv, char *argc[])
{
simFunction S(sin, 0,2*3.14,3.14/100);
std::cout << S.normalize(M_PI,0,2*M_PI,1,0) << std::endl;
return 0;
}
    Resultado:

    0.5

    Ver também: \sa FunctionCalculation()
void simFunction::SetDataLimits ( double  lMin,
double  lMax 
)

Insere um valor para as variáveis lMin e lMax.

void simFunction::SetDataStep ( double  step)

Insere um valor para a variável step.

void simFunction::SetFunctionCall ( double(*)(double)  FunctionToCall)

Insere um valor para o ponteiro da função que chamará a função criada pelo usuário.

void simFunction::SetInputData ( Matrix< double >  input)

Insere um valor para a variável input.

void simFunction::SetOutputData ( Matrix< double >  Output)

Insere um valor para a variável Output.

void simFunction::simulate ( )

Atributos

double(* simFunction::FunctionToCall) (double)
private

Definição na linha 21 do arquivo simfunction.h.

Matrix<double> simFunction::input
private

Definição na linha 20 do arquivo simfunction.h.

double(* simFunction::lMax)
private

Definição na linha 21 do arquivo simfunction.h.

double(* simFunction::lMin)
private

Definição na linha 21 do arquivo simfunction.h.

Matrix<double> simFunction::output
private

Definição na linha 20 do arquivo simfunction.h.

double(* simFunction::step)
private

Definição na linha 21 do arquivo simfunction.h.


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