Main Content

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Estimation de modèles avec des données du domaine fréquentiel

System Identification Toolbox™ vous permet d’utiliser des données dans le domaine fréquentiel pour identifier des modèles linéaires en ligne de commande et dans l’application System Identification. Vous pouvez estimer des modèles linéaires en temps continu et en temps discret avec des données du domaine fréquentiel. Cette rubrique propose une présentation de l’estimation de modèle dans la toolbox avec des données du domaine fréquentiel. Pour un exemple d’estimation de modèle avec des données du domaine fréquentiel, consultez Frequency Domain Identification: Estimating Models Using Frequency Domain Data.

Les données du domaine fréquentiel peuvent être de deux types :

  • Données d’entrée-sortie dans le domaine fréquentiel — Vous obtenez les données en calculant les transformées de Fourier des signaux d’entrée u(t) et de sortie y(t) dans le domaine temporel. Les données sont un ensemble de signaux d’entrée U(ω) et de sortie Y(ω) dans le domaine fréquentiel. Dans la toolbox, les données d’entrée-sortie dans le domaine fréquentiel sont représentées à l’aide d’objets iddata. Pour plus d’informations, consultez Représentation de données du domaine fréquentiel dans la toolbox.

  • Données de réponse en fréquence — Également appelées fonction de fréquence ou fonction de réponse en fréquence (FRF), les données se composent de mesures de fonction de transfert G() d’un système pour un ensemble discret de fréquences ω. Les données de réponse en fréquence à une fréquence ω vous indiquent comment un système linéaire répond à une entrée sinusoïdale de la même fréquence. Dans la toolbox, les données de réponse en fréquence sont représentées avec des objets idfrd. Pour plus d’informations, consultez Représentation de données du domaine fréquentiel dans la toolbox. Vous pouvez obtenir des données de réponse en fréquence de la manière suivante :

    • Mesurer directement des données de réponse en fréquence, par exemple avec un analyseur de spectre.

    • Réaliser l'analyse spectrale des données d’entrée-sortie dans le domaine temporel ou fréquentiel (objets iddata) avec des commandes telles que spa et spafdr.

    • Calculer de la réponse en fréquence d’un modèle linéaire identifié avec des commandes telles que freqresp, bode et idfrd.

Le workflow d’estimation de modèle avec des données dans le domaine fréquentiel est le même que pour l’estimation avec des données dans le domaine temporel. Si nécessaire, vous pouvez d’abord préparer les données pour l’identification du modèle en supprimant les valeurs aberrantes et en filtrant les données. Vous estimez ensuite un modèle paramétrique linéaire à partir des données et validez l’estimation.

Avantages de l’utilisation de données dans le domaine fréquentiel

L’utilisation de données dans le domaine fréquentiel présente les avantages suivants :

  • Compression de données — Vous pouvez compresser de longs enregistrements de données lorsque vous convertissez des données du domaine temporel dans le domaine fréquentiel. Par exemple, vous pouvez utiliser des fréquences espacées logarithmiquement.

  • Non-uniformité — Les données dans le domaine fréquentiel n’ont pas besoin d’être uniformément espacées. Vos données peuvent avoir une résolution dépendante de la fréquence afin d’utiliser davantage de points de données dans les régions de fréquence qui vous intéressent. Par exemple, les fréquences qui vous intéressent peuvent être la plage de bandes passantes d’un système ou à proximité des résonances d’un système.

  • Préfiltrage — Le préfiltrage de données dans le domaine fréquentiel devient simple. Il équivaut à attribuer différents poids à différentes fréquences de données.

  • Signal en temps continu — Vous pouvez représenter des signaux en temps continu avec des données du domaine fréquentiel et utiliser les données pour une estimation.

Représentation de données du domaine fréquentiel dans la toolbox

Avant d’effectuer une estimation de modèle, vous spécifiez les données du domaine fréquentiel en tant qu’objets dans la toolbox. Vous pouvez spécifier des données du domaine fréquentiel en temps continu et en temps discret.

  • Données d’entrée-sortie dans le domaine fréquentiel — Spécifiez-les en tant qu’objet iddata. Dans l’objet, vous enregistrez U(ω), Y(ω) et le vecteur de fréquence ω. La propriété Domain de l’objet est 'Frequency' pour préciser que l’objet contient des signaux dans le domaine fréquentiel. Si U(ω), Y(ω) sont des transformées de Fourier à temps discret de signaux à temps discret, échantillonnées avec un pas d’échantillonnage Ts, indiquez le pas d’échantillonnage dans l’objet iddata. Si U(ω), Y(ω) sont des transformées de Fourier de signaux à temps continu, spécifiez Ts égal à 0 dans l’objet iddata.

    Pour tracer les données en ligne de commande, utilisez la commande plot.

    Par exemple, vous pouvez tracer la phase et l’amplitude des données d’entrée-sortie dans le domaine fréquentiel.

    Chargez les données d’entrée-sortie du domaine temporel.

    load iddata1 z1

    Les entrées u et sorties y du domaine temporel sont enregistrées dans z1, un objet iddata dont la propriété Domain est définie par 'Time'.

    Calculez la transformée de Fourier des données pour obtenir des données d’entrée-sortie dans le domaine fréquentiel.

    zf = fft(z1);

    La propriété Domain de zf est définie par 'Frequency', indiquant qu’il s’agit de données dans le domaine fréquentiel.

    Tracez l’amplitude et la phase des données d’entrée-sortie dans le domaine fréquentiel.

    plot(zf)

    Figure contains 4 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents zf. Axes object 2 contains an object of type line. This object represents zf. Axes object 3 with title u1 contains an object of type line. This object represents zf. Axes object 4 contains an object of type line. This object represents zf.

  • Données de réponse en fréquence — Spécifiez-les en tant qu’objet idfrd. Si vous avez accès à Control System Toolbox™, vous pouvez également spécifier les données en tant qu’objet frd (Control System Toolbox).

    Pour tracer les données en ligne de commande, utilisez la commande bode.

    Par exemple, vous pouvez tracer la réponse en fréquence d’un modèle de fonction de transfert.

    Créez un modèle de fonction de transfert de votre système.

    sys = tf([1 0.2],[1 2 1 1]);

    Calculez la réponse en fréquence du modèle de fonction de transfert sys en 100 points de fréquence. Spécifiez la plage des fréquences de 0,1 rad/s à 10 rad/s.

    freq = logspace(-1,1,100);
    frdModel = idfrd(sys,freq);

    Tracez la réponse en fréquence du modèle.

    bode(frdModel)

    Figure contains 2 axes objects. Axes object 1 contains an object of type line. This object represents frdModel. Axes object 2 contains an object of type line. This object represents frdModel.

Pour plus d’informations sur les types de données dans le domaine fréquentiel et comment les spécifier, consultez Frequency-Domain Data Representation.

Vous pouvez également transformer des données dans le domaine fréquentiel en données dans le domaine temporel et inversement à l’aide des commandes suivantes.

Format de données originalEn données dans le domaine temporel
(objet iddata)
En données dans le domaine fréquentiel
(objet iddata)
En données de réponse en fréquence
(objet idfrd)
Données dans le domaine temporel
(objet iddata)
N/AUtilisez fft
  • Utilisez etfe, spa ou spafdr.

  • Estimez un modèle paramétrique linéaire à partir de l’objet iddata et utilisez idfrd pour calculer les données de réponse en fréquence.

Données dans le domaine fréquentiel
(objet iddata)
Utilisez ifft (fonctionne uniquement pour les données du domaine fréquentiel régulièrement espacées).N/A
  • Utilisez etfe, spa ou spafdr.

  • Estimez un modèle paramétrique linéaire à partir de l’objet iddata et utilisez idfrd pour calculer les données de réponse en fréquence.

Données de réponse en fréquence
(objet idfrd)
Non supportéUtilisez iddata. Le software crée un objet iddata dans le domaine fréquentiel qui a le même rapport entre la sortie et l’entrée que les données de réponse en fréquence de l’objet idfrd original.
  • Utilisez spafdr. Le software calcule les données de réponse en fréquence avec une résolution différente (nombre et espacement des fréquences) des données originales.

Pour plus d’informations sur la transformation entre les types de données dans l’application ou en ligne de commande, consultez la page de catégorie Transform Data.

Données dans le domaine fréquentiel en temps continu et en temps discret

Contrairement aux données dans le domaine temporel, le pas d’échantillonnage Ts des données du domaine fréquentiel peut être nul. Les données dans le domaine fréquentiel avec un Ts nul sont appelées données en temps continu. Les données dans le domaine fréquentiel avec un Ts supérieur à zéro sont appelées données en temps discret.

Vous pouvez obtenir des données dans le domaine fréquentiel en temps continu (Ts = 0) de la manière suivante :

  • Générez des données à partir d’expressions analytiques en temps continu connues.

    Par exemple, supposons que vous savez que la réponse en fréquence de votre système est G(ω)=1/(b+jω), où b est une constante. Supposons également que les entrées dans le domaine temporelle de votre système sont u(t)=eatsinw0t, où a est une constante supérieure à zéro et u(t) est nulle à chaque fois que t est inférieur à zéro. Vous pouvez calculer la transformée de Fourier de u(t) pour obtenir

    U(ω)=ω0/[(a+jω)2+w02]

    Avec U(ω) et G(ω), vous pouvez alors obtenir l’expression dans le domaine fréquentiel des sorties :

    Y(ω)=G(ω)U(ω)

    Vous pouvez maintenant évaluer les expressions analytiques de Y(ω) et U(ω) sur une grille de valeurs de fréquence (ωgrid=ω1,ω2,...,ωn) et obtenir un vecteur de valeurs de données d’entrée-sortie dans le domaine fréquentiel (Ygrid,Ugrid). Vous pouvez packager les données d’entrée-sortie en tant qu’objet iddata à temps continu en spécifiant un pas d’échantillonnage Ts nul.

    Ts = 0;
    zf = iddata(Ygrid,Ugrid,Ts,'Frequency',wgrid)
  • Calculez la réponse en fréquence d’un système linéaire en temps continu sur une grille de fréquences.

    Par exemple, dans le code suivant, vous générez des données de réponse en fréquence à temps continu FRDc à partir d’un modèle de fonction de transfert à temps continu sys pour une grille de fréquences freq.

    sys = idtf(1,[1 2 2]);
    freq = logspace(-2,2,100);
    FRDc = idfrd(sys,freq);
  • Mesurez les amplitudes et les phases d’une expérimentation sinusoïdale où le système de mesure utilise des filtres antirepliement. Vous mesurez la réponse du système aux entrées sinusoïdales à différentes fréquences et packagez les données en tant qu’objet idfrd. Par exemple, les données de réponse en fréquence mesurées avec un analyseur de spectre sont en temps continu.

    Vous pouvez également effectuer une expérimentation en utilisant des signaux à temps continu périodiques (ondes sinusoïdales multiples) comme entrées de votre système et en mesurant la réponse de votre système. Ensuite, vous pouvez packager les données d’entrée et de sortie en tant qu’objet iddata.

Vous pouvez obtenir des données dans le domaine fréquentiel en temps discret (Ts > 0) de la manière suivante :

  • Transformez les valeurs mesurées dans le domaine temporel avec une transformée de Fourier discrète.

    Par exemple, dans le code suivant, vous calculez la transformée de Fourier discrète des données dans le domaine temporel y qui sont mesurées à des instants discrets avec un pas d’échantillonnage de 0,01 seconde.

    t = 0:0.01:10;
    y = iddata(sin(2*pi*10*t),[],0.01);
    Y = fft(y);
  • Calculez la réponse en fréquence d’un système linéaire à temps discret.

    Par exemple, dans le code suivant, vous générez des données de réponse en fréquence à temps discret FRDd à partir d’un modèle de fonction de transfert à temps discret sys. Vous spécifiez un pas d’échantillonnage non nul pour créer le modèle à temps discret.

    Ts = 1;
    sys = idtf(1,[1 0.2 2.1],Ts);
    FRDd = idfrd(sys,logspace(-2,2,100));

Vous pouvez utiliser des données dans le domaine fréquentiel à temps continu pour identifier uniquement des modèles à temps continu. Vous pouvez utiliser des données dans le domaine fréquentiel à temps discret pour identifier à la fois des modèles à temps discret et à temps continu. Cependant, l’identification de modèles à temps continu à partir de données à temps discret requiert de connaître le comportement des données entre les échantillons. Pour plus d’informations, consultez Estimation de modèles à temps continu et à temps discret.

Remarque

Pour les données à temps discret, le logiciel ignore les données dans le domaine fréquentiel supérieur à la fréquence de Nyquist pendant l’estimation.

Prétraitement des données dans le domaine fréquentiel pour l’estimation du modèle

Après avoir représenté vos données dans le domaine fréquentiel avec des objets iddata ou idfrd, vous pouvez préparer les données pour l’estimation en supprimant les données erronées et en filtrant les données.

Pour visualiser les données erronées, tracez les données dans l’application ou utilisez la commande plot (pour les objets iddata) ou bode (pour les objets idfrd). Après avoir identifié les données erronées dans le tracé, vous pouvez les supprimer. Par exemple, si vous voulez supprimer les points de données 20–30 de zf, un objet iddata dans le domaine fréquentiel, utilisez la syntaxe suivante :

zf(20:30) = [];

Comme les données dans le domaine fréquentiel n’ont pas besoin d’être spécifiées avec un espacement uniforme, vous n’avez pas besoin de remplacer les valeurs aberrantes.

Vous pouvez également préfiltrer le bruit haute fréquence dans vos données. Vous pouvez préfiltrer les données dans le domaine fréquentiel dans l’application ou utiliser idfilt en ligne de commande. Le préfiltrage des données permet également de supprimer les déviations qui sont des perturbations basse fréquence. En plus de minimiser le bruit, le préfiltrage permet de focaliser votre modèle sur des bandes de fréquence spécifiques. La plage de fréquences d'intéret correspond souvent à une bande passante sur les points de rupture d'un diagramme de Bode. Par exemple, si vous modélisez un système physique pour des applications de design de système de contrôle, vous pouvez préfiltrer les données pour améliorer les fréquences autour de la bande passante en boucle fermée souhaitée.

Pour plus d’informations, consultez Filtering Data.

Estimation de modèles paramétriques linéaires

Après avoir prétraité les données dans le domaine fréquentiel, vous pouvez les utiliser pour estimer des modèles à temps continu et à temps discret.

Types de modèles supportés

Vous pouvez estimer les modèles paramétriques linéaires suivants à l’aide de données dans le domaine fréquentiel. La composante de bruit des modèles n’est pas estimée, sauf pour les modèles ARX.

Type de modèleInformations supplémentairesCommandes pour l'estimationEstimation dans l’application
Transfer Function Models Consultez Estimate Transfer Function Models in the System Identification App.
State-Space ModelsLa matrice K estimée du modèle de représentation d’état est nulle.Consultez Estimate State-Space Models in System Identification App.
Process ModelsLe modèle de perturbation n’est pas estimé.Consultez Estimate Process Models Using the App.
Input-Output Polynomial ModelsVous pouvez estimer uniquement des modèles à erreur de sortie et ARX.
Consultez Estimate Polynomial Models in the App.
Linear Grey-Box ModelsLes paramètres du modèle qui ne sont pas liés à la matrice de bruit K ne sont pas estimés.L’estimation du modèle boîte grise n’est pas disponible dans l’application.
Correlation Models
(modèles de réponse impulsionnelle)
 Consultez Estimate Impulse-Response Models Using System Identification App.
Frequency-Response Models
(estimés en tant qu’objets idfrd)
 Consultez Estimate Frequency-Response Models in the App.

Avant d’effectuer l’estimation, vous pouvez spécifier les options d’estimation, comme la manière dont le logiciel traite les conditions initiales des données d’estimation. Pour ce faire, en ligne de commande, utilisez l’ensemble d’options d’estimation correspondant à la commande d’estimation. Par exemple, supposons que vous vouliez estimer un modèle de fonction de transfert à partir de données dans le domaine fréquentiel zf et que vous vouliez également estimer les conditions initiales des données. Utilisez l’ensemble d’options tfestOptions pour spécifier les options d’estimation, puis estimez le modèle.

opt = tfestOptions('InitialCondition','estimate');
sys = tfest(zf,opt);

sys est le modèle de fonction de transfert estimé. Pour des informations sur l’extraction des valeurs des paramètres estimées à partir du modèle, consultez Extracting Numerical Model Data. Après l’estimation, vous pouvez valider le modèle estimé.

Remarque

Une condition initiale nulle pour les données du domaine temporel n’implique par une condition initiale nulle pour les données du domaine fréquentiel correspondantes. Pour des données du domaine temporel, des conditions initiales nulles signifient que l’on suppose le système au repos avant le début de la collecte de données. Dans le domaine fréquentiel, les conditions initiales peuvent être ignorées uniquement si les données collectées sont de nature périodique. Ainsi, si vous avez des données dans le domaine temporel collectées avec des conditions initiales nulles et que vous les convertissez en données dans le domaine fréquentiel, vous devez estimer aussi les conditions initiales. Vous ne pouvez pas les spécifier comme nulles (zéro).

Vous ne pouvez pas effectuer les estimations suivantes avec des données du domaine fréquentiel :

Estimation de modèles à temps continu et à temps discret

Vous pouvez estimer tous les modèles linéaires supportés comme modèles à temps discret, sauf pour les modèles de processus. Les modèles de processus sont uniquement définis en temps continu. Pour l’estimation de modèles à temps discret, vous devez utiliser des données en temps discret.

Vous pouvez estimer tous les modèles linéaires supportés comme des modèles en temps continu, sauf pour les modèles de corrélation (consultez impulseest). Vous pouvez estimer des modèles en temps continu à l’aide de données en temps continu et en temps discret. Pour des informations sur les données en temps continu et en temps discret, consultez Données dans le domaine fréquentiel en temps continu et en temps discret.

Si vous estimez un modèle en temps continu à l’aide de données en temps discret, vous devez spécifier le comportement entre les échantillons des données. La spécification du comportement entre les échantillons dépend du type de données du domaine fréquentiel.

  • Données d’entrée-sortie en temps discret dans le domaine fréquentiel (objet iddata) — Spécifiez le comportement entre les échantillons du signal d’entrée dans le domaine temporel u(t) dont vous avez calculé la transformée de Fourier pour obtenir le signal d’entrée dans le domaine fréquentiel U(ω).

  • Données de réponse en fréquence en temps discret (objet idfrd) — Les données sont générées en calculant la réponse en fréquence d’un modèle en temps discret. Spécifiez le comportement entre les échantillons car la méthode de discrétisation suppose de calculer le modèle en temps discret à partir d’un modèle en temps continu sous-jacent. Pour un exemple, voir Spécifier le comportement entre les échantillons pour des données de réponse en fréquence à temps discret.

Vous pouvez spécifier le comportement entre les échantillons comme une fonction constante par morceaux (bloqueur d'ordre zéro), interpolée linéairement entre les échantillons (bloqueur du premier ordre) ou à bande limitée. Si vous spécifiez les données en temps discret de votre système comme étant à bande limitée (c’est-à-dire il n'y a aucune puissance au-dessus de la fréquence de Nyquist), le software traite les données comme des données en temps continu en définissant un pas d’échantillonnage nul. Le software estime ensuite un modèle à temps continu à partir des données. Pour plus d’informations, consultez Effect of Input Intersample Behavior on Continuous-Time Models.

Spécifier le comportement entre les échantillons pour des données de réponse en fréquence à temps discret

Cet exemple montre l’effet du comportement entre les échantillons sur l’estimation de modèles en temps continu à l’aide de données de réponse en fréquence à temps discret.

Générez des données de réponse en fréquence à temps discret. Pour ce faire, construisez d’abord un modèle de fonction de transfert à temps continu sys. Ensuite, convertissez-le en modèle en temps discret sysd à l’aide de la commande c2d et de la méthode du bloqueur du premier ordre. Utilisez le modèle en temps discret sysd pour générer des données de réponse en fréquence aux fréquences spécifiées freq.

sys = idtf([1 0.2],[1 2 1 1]);
sysd = c2d(sys,1,c2dOptions('Method','foh'));
freq = logspace(-1,0,10);
FRdata = idfrd(sysd,freq);

FRdata sont des données en temps discret. Le software règle la propriété InterSample de FRdata sur 'foh', qui est la méthode de discrétisation qui a été utilisée pour obtenir sysd à partir de sys.

Estimez une fonction de transfert en temps continu du troisième ordre à partir de données en temps discret.

model1 = tfest(FRdata,3,1)
model1 =
        s + 0.2
  -------------------
  s^3 + 2 s^2 + s + 1
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 3   Number of zeros: 1
   Number of free coefficients: 5
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                   
Estimated using TFEST on frequency response data "FRdata".
Fit to estimation data: 100%                              
FPE: 2.223e-31, MSE: 6.619e-32                            
 

model1 est un modèle à temps continu estimé à l’aide de données de réponse en fréquence à temps discret. La dynamique en temps continu sous-jacente du modèle du troisième ordre original sys est récupérée dans model1 car le comportement correct entre les échantillons est spécifié dans FRdata.

Maintenant, spécifiez le comportement entre les échantillons comme un bloqueur d’ordre zéro et estimez un modèle de fonction de transfert du troisième ordre.

FRdata.InterSample = 'zoh';
model2 = tfest(FRdata,3,1)
model2 =
          -15.49 s - 3.294
  ---------------------------------
  s^3 - 30.03 s^2 - 6.825 s - 17.04
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 3   Number of zeros: 1
   Number of free coefficients: 5
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                   
Estimated using TFEST on frequency response data "FRdata".
Fit to estimation data: 94.71%                            
FPE: 0.004856, MSE: 0.001619                              
 

model2 ne rend pas compte de la dynamique du modèle original sys. Ainsi, des erreurs liées à l’échantillonnage sont introduites dans l’estimation du modèle lorsque le comportement entre les échantillons n’est pas spécifié correctement.

Convertir un modèle de données de réponse en fréquence en fonction de transfert

Cet exemple montre comment convertir un modèle de données de réponse en fréquence (FRD) en modèle de fonction de transfert. Traitez le modèle FRD comme des données d’estimation, puis estimez la fonction de transfert.

Obtenez un modèle FRD.

Par exemple, utilisez bode pour obtenir les données de réponse en amplitude et en phase du système du cinquième ordre suivant :

G(s)=s+0.2s5+s4+0.8s3+0.4s2+0.12s+0.04

Utilisez 100 points de fréquence entre 0,1 rad/s et 10 rad/s pour obtenir le modèle FRD. Utilisez frd pour créer un objet de modèle de réponse en fréquence.

freq = logspace(-1,1,100);
sys0 = tf([1 0.2],[1 1  0.8  0.4  0.12  0.04]);
[mag,phase] = bode(sys0,freq);
frdModel = frd(mag.*exp(1j*phase*pi/180),freq);

Obtenez la meilleure approximation du troisième ordre de la dynamique du système en estimant une fonction de transfert avec 3 zéros et 3 pôles.

np = 3;
nz = 3;
sys = tfest(frdModel,np,nz);

sys est la fonction de transfert estimée.

Comparez la réponse du modèle FRD et le modèle de fonction de transfert estimé.

bode(frdModel,sys,freq(1:50));

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. These objects represent frdModel, sys. Axes object 2 contains 2 objects of type line. These objects represent frdModel, sys.

Le modèle FRD est généré à partir du système du cinquième ordre sys0. Alors que la fonction sys, une approximation du troisième ordre, ne rend pas compte de la réponse complète de sys0, elle rend correctement compte de la réponse jusqu’à environ 0,6 rad/s.

Valider le modèle estimé

Après avoir estimé un modèle pour votre système, vous pouvez valider s’il reproduit le comportement du système dans des limites acceptables. Il est recommandé d’utiliser des jeux de données distincts pour estimer et valider votre modèle. Vous pouvez utiliser des données dans le domaine temporel ou dans le domaine fréquentiel pour valider un modèle estimé à l’aide de données du domaine fréquentiel. Si vous utilisez des données de validation d’entrée-sortie pour valider le modèle estimé, vous pouvez comparer la réponse du modèle simulé aux données de validation mesurées en sortie. Si vos données de validation sont des données de réponse en fréquence, vous pouvez les comparer à la réponse en fréquence du modèle. Par exemple, pour comparer la sortie d’un modèle estimé sys aux données de validation mesurées zv, utilisez la syntaxe suivante :

compare(zv,sys);

Vous pouvez également effectuer une analyse des résidus. Pour plus d’informations, consultez Validating Models After Estimation.

Résolution des problèmes d’identification dans le domaine fréquentiel

Lorsque vous estimez un modèle à l’aide de données dans le domaine fréquentiel, l’algorithme d’estimation minimise une fonction (de coût) de perte. Par exemple, si vous estimez un modèle linéaire SISO à partir de données de réponse en fréquence f, l’algorithme d’estimation minimise la fonction de perte des moindres carrés suivante :

minimizeG(ω)k=1Nf|W(ωk)(G(ωk)f(ωk))|2

Ici, W est un poids dépendant de la fréquence que vous spécifiez, G est le modèle linéaire qui doit être estimé, ω est la fréquence et Nf est le nombre de fréquences auxquelles les données sont disponibles. La quantité (G(ωk)f(ωk)) est l’erreur de réponse en fréquence. Pour les données d’entrée-sortie dans le domaine fréquentiel, l’algorithme minimise la norme pondérée de l’erreur de sortie au lieu de l’erreur de réponse en fréquence. Pour plus d’informations, consultez Loss Function and Model Quality Metrics. Pendant l’estimation, une dynamique erronée ou non prise en compte dans vos données peut affecter la fonction de perte (loss) et donner lieu à une estimation du modèle insatisfaisante.

  • Dynamique erronée imprévue — Généralement observée lorsque des régions de données de grande amplitude ont un rapport signal à bruit faible. L’erreur d’ajustement autour de ces ensembles de données contribue fortement à la fonction de perte. Par conséquent, l’algorithme d’estimation peut surajuster (overfit) et attribuer une dynamique imprévue au bruit dans ces régions. Pour résoudre ce problème :

    • Améliorez le rapport signal à bruit — Vous pouvez recueillir plusieurs jeux de données et en faire une moyenne. Si vous avez des données d’entrée-sortie dans le domaine fréquentiel, vous pouvez combiner plusieurs jeux de données à l’aide de la commande merge. Utilisez ces données pour l’estimation afin d’obtenir un meilleur résultat. Sinon, vous pouvez filtrer le jeu de données et l’utiliser pour l’estimation. Par exemple, utilisez un filtre de moyenne mobile sur les données pour lisser la réponse mesurée. Appliquez le filtre de lissage uniquement dans les régions de données dans lesquelles vous êtes sûr que l’irrégularité est due au bruit et non à la dynamique du système.

    • Réduisez l’impact de certaines parties des données sur la fonction de perte — Vous pouvez spécifier un poids dépendant de la fréquence. Par exemple, si vous estimez un modèle de fonction de transfert, spécifiez le poids dans l’option WeightingFilter de l’ensemble des options pour l'estimation tfestOptions. Spécifiez un poids faible dans les régions de fréquence où existe la dynamique erronée. Sinon, utilisez moins de points de données autour de cette région de fréquence.

  • Dynamique non prise en compte — Généralement, ce problème est observé lorsque la dynamique dont vous voulez rendre compte a une faible amplitude par rapport au reste des données. Comme un mauvais ajustement aux données d’amplitude faible contribue moins à la fonction de perte, l’algorithme pourrait ignorer cette dynamique pour réduire les erreurs à d’autres fréquences. Pour résoudre ce problème :

    • Spécifiez un poids dépendant de la fréquence — Spécifiez un poids important pour la région de fréquence dans laquelle vous voulez rendre compte de la dynamique.

    • Utilisez plus de points de données autour de cette région.

Pour un exemple de ces techniques de résolution de problèmes, consultez Troubleshoot Frequency-Domain Identification of Transfer Function Models.

Si vous n’obtenez pas un modèle satisfaisant à l’aide de ces techniques de résolution de problèmes, essayez une structure de modèle ou un algorithme d’estimation différents.

Étapes suivantes après l’identification d’un modèle

Après avoir estimé un modèle, vous pouvez effectuer des transformations de modèle et extraire des paramètres du modèle, ainsi que simuler et prédire la réponse du modèle. Les tâches que vous pouvez effectuer sont notamment :

Sujets associés