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

Tableau 1. Table résumant les opérations prédéfinies disponibles dans Flux
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.