Fonction Objective
Introduction
Dans le champ Fonction objective à optimiser, une opération à appliquer sur la fonction objective doit être choisit, cette opération peut être définie soit dans la liste des Opérations prédéfinies, ou alors par le biais d'une fonction personnalisée avec Compose.
La table ci-dessous résume les opérations prédéfinies disponibles dans Flux.
Opérations prédéfinies
Fonction | Formule |
---|---|
Réponse de design (optimisation globale des arguments) | |
Moyenne des réponses (AVG) | |
Moyenne de la valeur absolue des réponses (AVGABS) | |
Maximum des réponses (MAX) | |
Maximum de la valeur absolue des réponses (MAXABS) | |
Minimum des réponses (MIN) | |
Minimum de la valeur absolue des réponses (MINABS) | |
Valeur moyenne quadratique des réponses (RMS) | |
Résultantes quadratiques des réponses (RSS) | |
Somme des carrés des réponses (SSQ) | |
Somme des réponses (SUM) | |
Somme des valeurs absolues des réponses (SUMABS) |
Fonction Compose
Une opération personnalisée peut également être faite via une fonction Compose, cette fonction doit retourner une valeur scalaire. Un exemple de cette fonction est donnée ci-dessous :
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Objective function %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
function [rresp, dresp, udata] = Obj_Func(iparam, rparam, nparam, iresp, rresp, dresp, nresp, isens, udata)
% iparam - vector of ints
% rparam - vector of doubles
% nparam - size of input vector
% iresp - vector of ints
% rresp - output parameter (vector of ints)
% dresp - output parameter (matrix of MxN dimension)
% nresp - size of output vector
% isens - sensitivity flag
% udata - userdata
Torque = rparam(1:nparam); % This variable contains all the values of the reponses for all the time steps,
% In this function, it contains the torque for each time step over an electrical period
Tr = mean(Torque) % Custom function based on the response previouly defined in Flux, computation of the torque ripple
rresp(1) = Tr % The mean value of the torque is used as an objective function
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Constraint function %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Lower and upper bounds of the constraint function are setted Flux
function [rresp, dresp, udata] = Cons(iparam, rparam, nparam, iresp, rresp, dresp, nresp, isens, udata)
% iparam - vector of ints
% rparam - vector of doubles
% nparam - size of input vector
% iresp - vector of ints
% rresp - output parameter (vector of ints)
% dresp - output parameter (matrix of MxN dimension)
% nresp - size of output vector
% isens - sensitivity flag
% udata - userdata
Torque = rparam(1:nparam); % This variable contains all the values of the reponses for all the time steps,
% In this function, it contains the torque for each time step over an electrical period
Tr = ( ( max(Torque) - min(Torque) ) / mean(Torque) ) *100 % Custom function based on the response previouly defined in Flux, computation of the torque ripple rate
rresp(1) = Tr
end
ATTENTION : Les variables rparam,
rrpesp(1) et le nom de la fonction ne doivent pas être
changés.
Le fichier OML doit être dans le même fichier que le projet .FLU.