Main Content

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

Identification de modèles linéaires à l’aide de l’application System Identification

Introduction

Objectifs

Estimer et valider des modèles linéaires à partir de données d'entrée unique/sortie unique (SISO) pour trouver celui qui décrit le mieux la dynamique du système.

À la fin de ce tutoriel, vous serez capable d’accomplir les tâches suivantes avec l’application System Identification :

  • Importer des matrices de données depuis l’espace de travail MATLAB® dans l’application.

  • Tracer les données.

  • Traiter les données en supprimant les décalages des signaux d’entrée et de sortie.

  • Estimer, valider et comparer des modèles linéaires.

  • Exporter des modèles dans l’espace de travail MATLAB.

Remarque

Le tutoriel utilise des données dans le domaine temporel pour montrer comment estimer des modèles linéaires. Le même workflow s’applique à l’ajustement de données dans le domaine fréquentiel.

Ce tutoriel est basé sur l’exemple de la section 17.3 de System Identification : Theory for the User, deuxième édition, de Lennart Ljung, Prentice Hall PTR, 1999.

Description des données

Ce tutoriel utilise le fichier de données dryer2.mat, qui contient des données dans le domaine temporel à entrée unique/sortie unique (SISO) issues du Process Trainer PT326 de Feedback. Les signaux d’entrée et de sortie contiennent chacun 1 000 échantillons de données.

Ce système chauffe l’air en entrée à l’aide d’un maillage de fils résistifs, comme un sèche-cheveux. L’entrée est la puissance fournie aux fils résistifs et la sortie est la température de l’air en sortie.

Préparer les données pour l'application System Identification

Charger les données dans l'espace de travail MATLAB

Chargez les données de dryer2.mat en saisissant la commande suivante dans la fenêtre de commande MATLAB :

load dryer2

Cette commande charge les données dans l’espace de travail MATLAB sous forme de deux vecteurs colonnes, respectivement u2 et y2. La variable u2 est la donnée d’entrée et y2 est la donnée de sortie.

Ouvrir l’application System Identification

Pour ouvrir l’application System Identification, saisissez la commande suivante dans la fenêtre de commande MATLAB :

systemIdentification

Le nom de session par défaut Untitled apparaît dans la barre de titre.

Importer des tableaux de données dans l’application System Identification

Vous pouvez importer les données à entrée unique/sortie unique (SISO) d’un fichier de données d’échantillon dryer2.mat dans l’application depuis l’espace de travail MATLAB.

Vous devez avoir déjà chargé les données d'échantillon dans MATLAB, comme décrit dans Charger les données dans l'espace de travail MATLAB, et ouvert l’application System Identification, comme décrit dans Ouvrir l’application System Identification.

Si vous n’avez pas effectué ces étapes, cliquez ici pour les compléter.

Pour importer des tableaux de données dans l’application System Identification :

  1. Sélectionnez Import data > Time domain data. Cette action ouvre la boîte de dialogue Import Data (Importer des données).

  2. Dans la boîte de dialogue Import Data, spécifiez les options suivantes :

    • Input — Saisissez u2 comme nom de la variable d’entrée.

    • Output — Saisissez y2 comme nom de la variable de sortie.

    • Data name — Remplacez le nom par défaut par data. Ce nom labélise les données dans l’application System Identification après l’opération d’importation.

    • Starting time — Saisissez 0 comme temps de début. Cette valeur représente la valeur au début de l’axe du temps sur les tracés effectués en fonction du temps.

    • Sample Time — Saisissez 0.08 comme intervalle de temps en secondes entre les échantillons successifs. Cette valeur représente le pas d’échantillonnage de l’expérimentation.

    La boîte de dialogue Import Data ressemble maintenant à la figure suivante.

  3. Dans le champ Data Information, cliquez sur More pour développer la boîte de dialogue et spécifiez les options suivantes :

    Input Properties

    • Intersample — Acceptez la valeur par défaut zoh (bloqueur d'ordre zéro) pour indiquer que le signal d’entrée était constant par morceaux entre les échantillons pendant l’acquisition de données. Ce paramètre spécifie le comportement des signaux d’entrée entre les échantillons lorsque vous transformez les modèles résultants des représentations à temps discret en représentations à temps continu.

    • Period — Acceptez la valeur par défaut inf pour spécifier une entrée non périodique.

      Remarque

      Pour une entrée périodique, saisissez le nombre entier de périodes du signal d’entrée dans votre expérimentation.

    Channel Names

    • Input — Saisissez power.

      Conseil

      L’attribution de noms aux canaux vous aide à identifier les données sur les tracés. Pour des signaux d’entrée et de sortie à plusieurs variables, vous pouvez spécifier les noms des canaux Input et Output individuels, séparés par des virgules.

    • Output — Saisissez temperature.

    Physical Units of Variables

    • Input — Saisissez W pour les unités de puissance.

      Conseil

      Lorsque vous avez plusieurs entrées et sorties, saisissez une liste d'unités d'Input et d'Output correspondant à chaque canal, séparées par des virgules.

    • Output — Saisissez ^oC pour les unités de température.

    Notes — Saisissez des commentaires sur l’expérimentation ou les données. Par exemple, vous pouvez saisir le nom de l’expérimentation, la date et une description des conditions expérimentales. Lorsque vous estimez des modèles à partir de ces données, ces modèles héritent de vos notes.

    La boîte de dialogue Import Data (Importer des données) développée ressemble maintenant à la figure suivante.

  4. Cliquez sur Import pour ajouter les données à l’application System Identification. L’application affiche une icône représentant les données.

  5. Cliquez sur Close pour fermer la boîte de dialogue Import Data.

Tracer et traiter les données

Dans cette partie du tutoriel, vous allez évaluer les données et les traiter pour l'identification de système. Vous allez découvrir comment :

  • Tracer les données.

  • Supprimer les décalages dans les données en soustrayant les valeurs moyennes de l’entrée et de la sortie.

  • Diviser les données en deux parties afin d’utiliser une partie pour l’estimation du modèle et l’autre partie pour la validation du modèle.

La raison pour laquelle vous soustrayez les valeurs moyennes de chaque signal est que, généralement, vous construisez des modèles linéaires qui décrivent les réponses aux déviations par rapport à un équilibre physique. Avec des données à l’état stationnaire, il est raisonnable de supposer que les niveaux moyens des signaux correspondent à cet équilibre. Ainsi, vous pouvez rechercher des modèles autour de zéro sans modéliser les niveaux absolus d’équilibre en unités physiques.

Vous devez avoir déjà importé les données dans l’application System Identification, comme décrit dans Importer des tableaux de données dans l’application System Identification.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Pour tracer et traiter les données :

  1. Sélectionnez la case à cocher Time plot pour ouvrir la fenêtre Time Plot présentant un tracé en fonction du temps. Si le graphique est vide, cliquez sur l’icône data dans l’application System Identification.

    Les axes supérieurs montrent les données de sortie (température) et les axes inférieurs montrent les données d’entrée. Les données d’entrée et de sortie ont des valeurs moyennes non nulles.

  2. Soustrayez la valeur d’entrée moyenne des données d’entrée et la valeur de sortie moyenne des données de sortie. Dans l’application System Identification, sélectionnez <--Preprocess > Remove means.

    Cette action ajoute un nouveau jeu de données à l’application System Identification avec le nom par défaut datad (le suffixe d signifie detrend=redressement) et met à jour la fenêtre Time Plot pour afficher les données originales et redressées. Les données redressées ont une valeur moyenne nulle.

  3. Spécifiez que les données redressées doivent être utilisées pour l’estimation de modèles. Faites glisser le jeu de données datad dans le rectangle Working Data.

    Sinon, faites un clic droit sur l’icône datad pour ouvrir la boîte de dialogue Data/model Info.

    Sélectionnez la case à cocher Use as Working Data. Cliquez sur Apply, puis sur Close. Cette action ajoute datad au rectangle Working Data.

  4. Divisez les données en deux parties et spécifiez la première partie pour l’estimation du modèle et la deuxième pour la validation du modèle.

    1. Sélectionnez <--Preprocess > Select range pour ouvrir la fenêtre Select Range.

    2. Dans la fenêtre Select Range, créez un jeu de données contenant les 500 premiers échantillons. Dans le champ Samples, spécifiez 1 500.

      Conseil

      Vous pouvez également sélectionner des échantillons de données avec la souris en cliquant sur une région rectangulaire sur le graphique et en la faisant glisser. Si vous sélectionnez des échantillons sur les axes des canaux d’entrée, la région correspondante est également sélectionnée sur les axes des canaux de sortie.

    3. Dans le champ Data name, saisissez le nom data_est.

    4. Cliquez sur Insert pour ajouter à l’application System Identification ces nouvelles données à utiliser pour l’estimation du modèle.

    5. Répétez ce processus pour créer un deuxième jeu de données contenant un sous-ensemble de données à utiliser pour la validation. Dans la fenêtre Select Range, spécifiez les 500 derniers échantillons dans le champ Samples. Saisissez le nom data_val dans le champ Data name. Cliquez sur Insert pour ajouter ce nouveau jeu de données à l’application System Identification.

    6. Cliquez sur Close pour fermer la fenêtre Select Range.

  5. Dans l’application System Identification, faites glisser et déposez data_est dans le rectangle Working Data et faites glisser et déposez data_val dans le rectangle Validation Data.

  6. Pour obtenir des informations sur un jeu de données, faites un clic droit sur son icône. Par exemple, faites un clic droit sur l’icône data_est pour ouvrir la boîte de dialogue Data/model Info.

    Vous pouvez également modifier certaines valeurs dans la boîte de dialogue Data/model Info, notamment :

    • Modifier le nom du jeu de données dans le champ Data name.

    • Modifier la couleur de l’icône des données dans le champ Color. Vous pouvez spécifier des couleurs à l’aide de valeurs RGB (quantités relatives de rouge, vert et bleu). Chaque valeur est comprise entre 0 et 1. Par exemple, [1,0,0] indique que seul le rouge est présent et que le vert et le bleu ne sont pas mélangés à la couleur globale.

    • Visualiser ou modifier les commandes exécutées sur ce jeu de données dans l'espace Diary and Notes. Cet espace contient les ligne de commandes équivalentes au traitement que vous effectuez en utilisant l’application System Identification. Par exemple, comme le montre la fenêtre Data/model Info, le jeu de données data_est est le résultat de l’importation des données, du redressement des valeurs moyennes et de la sélection des 500 premiers échantillons de données.

       % Import   data          
       datad = detrend(data,0)  
       data_est = datad([1:500])

      Pour plus d'informations sur ces commandes et d’autres commandes de la toolbox, consultez les pages de référence correspondantes.

La boîte de dialogue Data/model Info affiche le nombre total d’échantillons et le pas d’échantillonnage, ainsi que les noms et les unités des canaux de sortie et d’entrée. Ces informations ne sont pas modifiables.

Conseil

Comme autre raccourci, vous pouvez sélectionner Preprocess > Quick start dans l’application System Identification pour effectuer toutes les étapes du traitement des données de ce tutoriel.

En savoir plus.  Pour des informations sur les opérations de traitement de données supportées, telles que le rééchantillonnage et le filtrage, consultez Preprocess Data.

Enregistrer la session

Après avoir traité les données comme décrit dans Tracer et traiter les données, vous pouvez supprimer dans la fenêtre les jeux de données dont vous n’avez plus besoin pour l’estimation et la validation, puis enregistrer votre session. Vous pouvez ouvrir cette session ultérieurement et l’utiliser comme point de départ pour l’estimation et la validation de modèles sans répéter ces étapes préparatoires.

Vous devez avoir déjà traité les données dans l’application System Identification, comme décrit dans Tracer et traiter les données.

Pour supprimer des jeux de données spécifiques d’une session et enregistrer la session :

  1. Dans l’application System Identification :

    1. Faites glisser et déposez le jeu de données data dans Trash.

    2. Faites glisser et déposez le jeu de données datad dans Trash.

    Sinon, vous pouvez appuyer sur la touche Delete de votre clavier pour déplacer les jeux de données dans Trash.

    Remarque

    Les éléments ne sont pas supprimés lorsqu’ils sont déplacés dans Trash. Pour supprimer définitivement des éléments, sélectionnez Options > Empty trash.

    La figure suivante montre l’application System Identification après le déplacement des éléments dans Trash.

  2. Faites glisser et déplacez les jeux de données data_est et data_val pour remplir les rectangles vides, comme le montre la figure suivante.

  3. Sélectionnez File > Save session as pour ouvrir la boîte de dialogue Save Session et naviguez jusqu’au dossier dans lequel vous voulez enregistrer le fichier de la session.

  4. Dans le champ File name, saisissez le nom de la session dryer2_processed_data et cliquez sur Save. Le fichier résultant a l’extension .sid.

Conseil

Vous pouvez ouvrir une session enregistrée lorsque vous démarrez l’application System Identification en saisissant la commande suivante dans l'invite de commande MATLAB :

systemIdentification('dryer2_processed_data')

Pour plus d’informations sur la gestion des sessions, consultez Starting and Managing Sessions.

Estimer des modèles linéaires avec Quick Start

Comment estimer des modèles linéaires avec Quick Start

Vous pouvez utiliser la fonctionnalité Quick Start de l’application System Identification pour estimer des modèles linéaires. Quick Start peut produire les modèles linéaires finaux que vous déciderez d’utiliser ou vous fournir les informations nécessaires pour configurer l'estimation des modèles paramétriques précis, comme les constantes de temps, les retards d’entrée et les fréquences de résonance.

Vous devez avoir déjà traité les données pour l’estimation, comme décrit dans Tracer et traiter les données.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Dans l’application System Identification, sélectionnez Estimate > Quick start.

Cette action génère des tracés de la réponse indicielle, de la réponse en fréquence, ainsi que de la sortie des modèles polynomiaux et de représentation d’état. Pour plus d'informations sur ces tracés, consultez Valider des modèles Quick Start.

Types de modèles linéaires Quick Start

Quick Start estime les quatre types de modèles suivants et les ajoute à l’application System Identification avec des noms par défaut :

  • imp — Réponse indicielle sur une période de temps avec l’algorithme impulseest.

  • spad — Réponse en fréquence sur une plage de fréquences avec l’algorithme spa. La réponse en fréquence est la transformée de Fourier de la réponse en impulsion d’un système linéaire.

    Par défaut, le modèle est évalué à 128 valeurs de fréquence allant de 0 à la fréquence de Nyquist.

  • arxqs — Modèle autorégressif de quatrième ordre (ARX) avec l’algorithme arx.

    Le modèle est paramétrique et a la structure suivante :

    y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+e(t)

    y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, na est le nombre de pôles, nb est le nombre de paramètres b (égal au nombre de zéros plus 1), nk est le nombre d’échantillons avant que l’entrée affecte la sortie du système (appelé le retard ou temps mort du modèle) et e(t) est la perturbation du bruit blanc. System Identification Toolbox™ estime les paramètres a1an et b1bn à partir des données d’entrée et de sortie du jeu de données d’estimation.

    Dans arxqs, na=nb=4 et nk est estimé à partir du modèle de réponse indicielle imp.

  • n4s3 — Modèle de représentation d’état calculé avec n4sid. L’algorithme sélectionne automatiquement l’ordre du modèle (dans ce cas, 3).

    Le modèle est paramétrique et a la structure suivante :

    dxdt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

    y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, x est le vecteur d’état et e(t) est la perturbation du bruit blanc. Le produit System Identification Toolbox estime les matrices de représentation d'état A, B, C, D et K.

Remarque

L’option Quick Start ne crée pas de modèle de fonction de transfert ni de modèle de processus qui peuvent également être de bons types de modèles de départ.

Valider des modèles Quick Start

Quick Start génère les tracés suivants pendant l’estimation des modèles pour vous aider à valider la qualité des modèles :

  • Tracé de la réponse indicielle

  • Tracé de réponse fréquentielle

  • Tracé de la sortie du modèle

Vous devez avoir déjà estimé des modèles dans Quick Start pour générer ces tracés, comme décrit dans Comment estimer des modèles linéaires avec Quick Start.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Tracé de la réponse indicielle.  Le tracé de la réponse indicielle suivant montre une concordance entre les différentes structures de modèle et les données mesurées, ce qui signifie que toutes ces structures ont des dynamiques similaires.

Conseil

Si vous avez fermé la fenêtre du graphique, sélectionnez la case à cocher Transient resp pour rouvrir cette fenêtre. Si le graphique est vide, cliquez sur les icônes de modèle dans la fenêtre de l’application System Identification pour afficher les modèles sur le graphique.

Réponse indicielle pour imp, arxqs et n4s3

Conseil

Vous pouvez utiliser le tracé de la réponse indicielle pour estimer le temps mort des systèmes linéaires. Par exemple, le tracé de réponse indicielle précédent montre un retard d’environ 0,25 s avant que le système réponde à l’entrée. Ce retard de réponse ou temps mort est égal à environ trois échantillons, car le pas d’échantillonnage est de 0.08 s pour ce jeu de données.

Tracé de réponse en fréquence.  Le graphique de réponse en fréquence suivant montre une concordance entre les différentes structures de modèle et les données mesurées, ce qui signifie que toutes ces structures ont des dynamiques similaires.

Conseil

Si vous avez fermé cette fenêtre de graphique, sélectionnez la case à cocher Frequency resp pour rouvrir cette fenêtre. Si le graphique est vide, cliquez sur les icônes de modèle dans la fenêtre de l’application System Identification pour afficher les modèles sur le graphique.

Réponse en fréquence pour les modèles imp, spad, arxqs et n4s3

Tracé de la sortie du modèle.  La fenêtre Model Output montre une concordance entre les différentes structures de modèle et la sortie mesurée dans les données de validation.

Conseil

Si vous avez fermé la fenêtre Model Output, sélectionnez la case à cocher Model output pour rouvrir cette fenêtre. Si le graphique est vide, cliquez sur les icônes de modèle dans la fenêtre de l’application System Identification pour afficher les modèles sur le graphique.

Sortie mesurée et sortie du modèle pour les modèles imp, arxqs et n4s3

Le tracé de la sortie du modèle montre la réponse du modèle par rapport à l’entrée dans les données de validation. Les valeurs ajustées pour chaque modèle sont résumées dans le champ Best Fits de la fenêtre Model Output (Sortie du modèle). Les modèles de la liste Best Fits sont classés du meilleur (haut de la liste) au moins bon. L’ajustement entre les deux courbes est calculé de sorte que 100 signifie une correspondance parfaite et 0 indique une correspondance médiocre (c’est-à-dire que la sortie du modèle correspond autant à la sortie mesurée que la moyenne des sorties mesurées).

Dans cet exemple, la sortie des modèles correspond à la sortie des données de validation, ce qui indique que les modèles semblent rendre compte de la dynamique principale du système et que la modélisation linéaire suffit.

Conseil

Pour comparer la sortie prédite du modèle au lieu de la sortie simulée, sélectionnez cette option dans le menu Options de la fenêtre Model Output (Sortie de modèle).

Estimer des modèles linéaires

Stratégie d’estimation de modèles précis

Les modèles linéaires que vous avez estimés dans Estimer des modèles linéaires avec Quick Start montraient qu’un modèle linéaire représentait suffisamment bien la dynamique du système.

Dans cette partie du tutoriel, vous allez obtenir des modèles paramétriques précis en effectuant les tâches suivantes :

  1. Identification des ordres et retards initiaux du modèle à partir de vos données en utilisant une structure de modèle polynomial simple (ARX).

  2. Exploration de structures plus complexes avec des ordres et des retards proches des valeurs initiales que vous avez trouvées.

Les modèles résultants sont des modèles à temps discret.

Estimations des ordres possibles des modèles

Pour identifier des modèles boîte noire, vous devez spécifier l’ordre des modèles. Cependant, comment connaître les ordres des modèles à spécifier pour vos modèles boîte noire ? Pour répondre à cette question, vous pouvez estimer des modèles polynomiaux simples (ARX) pour une plage d’ordres et de retards et comparer les performances de ces modèles. Vous choisissez les ordres et les retards qui correspondent au meilleur ajustement de modèle comme estimation initiale pour une modélisation plus précise en utilisant différentes structures de modèle, telles que des modèles de fonction de transfert et de représentation d’état.

À propos des modèles ARX.  Pour un système à entrée unique/sortie unique (SISO), la structure de modèle ARX est :

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+e(t)

y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, na est le nombre de pôles, nb est le nombre de zéros plus 1, nk est le retard en entrée, soit le nombre d’échantillons avant que l’entrée affecte la sortie du système (appelé retard ou temps mort du modèle) et e(t) est la perturbation du bruit blanc.

Vous spécifiez les ordres des modèles na, nb et nk pour estimer les modèles ARX. System Identification Toolbox estime les paramètres a1an et b1bn à partir des données.

Comment estimer les ordres des modèles

  1. Dans l’application System Identification, sélectionnez Estimate > Polynomial Models pour ouvrir la boîte de dialogue Polynomial Models (Modèles polynomiaux).

  2. Dans la liste Structure, sélectionnez ARX: [na nb nk]. Il s’agit de la sélection par défaut.

  3. Modifiez le champ Orders pour essayer toutes les combinaisons de pôles, zéros et retards avec chaque valeur de 1 à 10 :

    [1:10 1:10 1:10]

  4. Cliquez sur Estimate pour ouvrir la fenêtre ARX Model Structure Selection (Sélection de la structure de modèle ARX) qui affiche les performances du modèle pour chaque combinaison de paramètres.

    Vous pouvez utiliser ce graphique pour sélectionner le modèle avec le meilleur ajustement.

    • L’axe horizontal est le nombre total de paramètres — na + nb.

    • L’axe vertical, appelé Unexplained output variance (in %), est la partie de la sortie non expliquée par le modèle, à savoir l’erreur de prédiction du modèle ARX pour le nombre de paramètres indiqué sur l’axe horizontal.

      L’erreur de prédiction est la somme des carrés des différences entre la sortie des données de validation et la sortie prédite du modèle un pas avant.

    • nk est le retard.

    Trois rectangles sont surlignés sur le graphique en vert, bleu et rouge. Chaque couleur indique un type de critère de meilleur ajustement, comme suit :

    • Rouge — Le meilleur ajustement minimise la somme des carrés des différences entre la sortie des données de validation et la sortie du modèle. Ce rectangle indique le meilleur ajustement global.

    • Vert — Le meilleur ajustement minimise le critère MDL de Rissanen.

    • Bleu — Le meilleur ajustement minimise le critère AIC d’Akaike.

    Dans ce tutoriel, la valeur Unexplained output variance (in %) reste approximativement constante pour le nombre combiné de paramètres de 4 à 20. Une telle constance indique que les performances du modèle ne s’améliorent pas aux ordres supérieurs. Ainsi, les modèles d’ordre inférieur pourraient correspondre tout aussi bien aux données.

    Remarque

    Lorsque vous utilisez les mêmes données pour l’estimation et la validation, utilisez les critères MDL et AIC pour sélectionner les ordres des modèles. Ces critères compensent le surajustement (overfitting) qui résulte de l’utilisation de trop nombreux paramètres. Pour plus d'informations sur ces critères, consultez la page de référence selstruc.

  5. Dans la fenêtre ARX Model Structure Selection (Sélection de la structure de modèle ARX), cliquez sur la barre rouge (correspondant à 15 sur l’axe horizontal), puis cliquez sur Insert. Cette sélection insère na=6, nb=9 et nk=2 dans la boîte de dialogue Polynomial Models (Modèles polynomiaux) et effectue l’estimation.

    Cette action ajoute le modèle arx692 à l’application System Identification et met à jour les graphiques pour inclure la réponse du modèle.

    Remarque

    Le nom par défaut du modèle paramétrique contient le type de modèle et le nombre de pôles, de zéros et de retards. Par exemple, arx692 est un modèle ARX avec na=6, nb=9 et un retard de deux échantillons.

  6. Dans la fenêtre ARX Model Structure Selection, cliquez sur la troisième barre correspondant à 4 paramètres sur l’axe horizontal (l’ordre le plus faible qui donne encore un bon ajustement), puis cliquez sur Insert.

    • Cette sélection insère na=2, nb=2 et nk=3 (un retard de trois échantillons) dans la boîte de dialogue Polynomial Models (Modèles polynomiaux) et effectue l’estimation.

    • Le modèle arx223 est ajouté à l’application System Identification et les graphiques sont mis à jour pour inclure sa réponse et sa sortie.

  7. Cliquez sur Close pour fermer la fenêtre ARX Model Structure Selection.

  8. Cliquez sur Close pour fermer la boîte de dialogue Polynomial Models.

Identification des modèles de fonction de transfert

En estimant des modèles ARX pour différentes combinaisons d’ordres comme décrit dans Estimations des ordres possibles des modèles, vous avez identifié les nombres de pôles, de zéros et de retards qui offrent un bon point de départ pour explorer systématiquement différents modèles.

Le meilleur ajustement global pour ce système correspond à un modèle avec six pôles, neuf zéros et un retard de deux échantillons. Il est également ressorti qu’un modèle d’ordre inférieur avec na = 2 (deux pôles), nb = 2 (un zéro) et nk = 3 (retard entrée-sortie) offre également un bon ajustement. Ceci signifie que vous devriez examiner des ordres de modèle proches de ces valeurs.

Dans cette partie du tutoriel, vous allez estimer un modèle de fonction de transfert.

À propos des modèles de fonction de transfert.  La structure générale de modèle de fonction de transfert est :

Y(s)=num(s)den(s)U(s)+E(s)

Y(s), U(s) et E(s) représentent respectivement les transformées de Laplace de la sortie, de l’entrée et de l’erreur. num(s) et den(s) représentent les polynômes numérateur et dénominateur qui définissent la relation entre l’entrée et la sortie. Les racines du polynôme dénominateur sont appelées pôles du modèle. Les racines du polynôme numérateur sont appelées zéros du modèle.

Vous devez spécifier le nombre de pôles et de zéros pour estimer un modèle de fonction de transfert. System Identification Toolbox estime les polynômes numérateur et dénominateur, ainsi que les retards entrée/sortie à partir des données.

La structure de modèle de fonction de transfert est un bon choix pour une estimation rapide, car elle exige que vous spécifiiez seulement 2 paramètres pour commencer : np est le nombre de pôles et nz est le nombre de zéros.

Comment estimer des modèles de fonction de transfert

  1. Dans l’application System Identification, sélectionnez Estimate > Transfer Function Models pour ouvrir la boîte de dialogue Transfer Functions (Fonctions de transfert).

  2. Dans la boîte de dialogue Transfer Functions, spécifiez les options suivantes :

    • Number of poles — Laissez la valeur par défaut 2 pour spécifier une fonction de second ordre, pour deux pôles.

    • Number of zeros — Laissez la valeur par défaut 1.

    • Continuous-time — Ne changez pas la sélection.

  3. Cliquez sur Delay pour développer le champ de spécification du retard en entrée/sortie.

    En estimant des modèles ARX pour différentes combinaisons d’ordre comme décrit dans Estimations des ordres possibles des modèles, vous avez identifié un retard de 3 échantillons (nk = 3). Ce retard se traduit par un retard à temps continu de (nk-1)*Ts , qui est égal à 0,16 seconde.

    Spécifiez un Delay de 0.16 secondes. Laissez la case Fixed cochée.

    Utilisez les options d’estimation par défaut. Par défaut, l’application attribue le nom tf1 au modèle. La boîte de dialogue doit ressembler à la figure suivante.

  4. Cliquez sur Estimate pour ajouter un modèle de fonction de transfert appelé tf1 à l’application System Identification. Vous pouvez visualiser la sortie de l’estimation du modèle de fonction de transfert par rapport aux estimations d’autres modèles dans la fenêtre Model Output (Sortie des modèles).

    Conseil

    Si vous avez fermé la fenêtre Model Output, vous pouvez la générer à nouveau en sélectionnant la case à cocher Model output dans l’application System Identification. Si le nouveau modèle n’apparaît pas sur le graphique, cliquez sur l’icône du modèle dans l’application System Identification pour activer le modèle.

  5. Cliquez sur Close pour fermer la boîte de dialogue Transfer Functions (Fonctions de transfert).

En savoir plus.  Pour en savoir plus sur l’identification des modèles de fonction de transfert, consultez Transfer Function Models.

Identification des modèles de représentation d'état

En estimant des modèles ARX pour différentes combinaisons d’ordres comme décrit dans Estimations des ordres possibles des modèles, vous avez identifié les nombres de pôles, de zéros et de retards qui offrent un bon point de départ pour explorer systématiquement différents modèles.

Le meilleur ajustement global pour ce système correspond à un modèle avec six pôles, neuf zéros et un retard de deux échantillons. Il est également ressorti qu’un modèle d’ordre inférieur avec na=2 (deux pôles), nb=2 (un zéro) et nk=3 (retard entrée-sortie) offrait aussi un bon ajustement. Ceci signifie que vous devriez examiner des ordres de modèle proches de ces valeurs.

Dans cette partie du tutoriel, vous estimez un modèle de représentation d’état.

À propos des modèles de représentation d'état.  La structure générale des modèles de représentation d’état (forme innovation) est :

dxdt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, x(t) est le vecteur d’état à l’instant t et e(t) est la perturbation du bruit blanc.

Vous devez spécifier un nombre entier unique comme ordre du modèle (dimension du vecteur d’état) pour estimer un modèle de représentation d’état. System Identification Toolbox estime les matrices de représentation d'état A, B, C, D et K à partir des données.

La structure de modèle de représentation d'état est un bon choix pour une estimation rapide, car elle exige que vous spécifiiez seulement le nombre d’états (qui est égal au nombre de pôles). Vous pouvez éventuellement spécifier les retards et le comportement de traversée (feedthrough).

Comment estimer des modèles de représentation d'état

  1. Dans l’application System Identification, sélectionnez Estimate > State Space Models pour ouvrir la boîte de dialogue State Space Models (Modèles de représentation d’état).

  2. Dans le champ Specify value de l’onglet Model Structure, spécifiez l’ordre du modèle. Saisissez 6 pour créer un modèle de représentation d’état de sixième ordre.

    Ce choix est basé sur le fait que le modèle ARX avec le meilleur ajustement a six pôles.

    Conseil

    Bien que ce tutoriel estime un modèle de représentation d’état de sixième ordre, vous pouvez vouloir examiner si un modèle d’ordre inférieur représente de manière adéquate la dynamique du système.

    La boîte de dialogue doit ressembler à la figure suivante :

  3. Sélectionnez l’onglet Estimation Options pour afficher des options supplémentaires.

  4. Remplacez Estimation Focus par Simulation pour optimiser le modèle à utiliser pour une simulation de sortie.

    La boîte de dialogue State Space Models ressemble à la figure suivante.

  5. Cliquez sur Estimate pour ajouter un modèle de représentation d'état appelé ss1 à l’application System Identification.

    Vous pouvez visualiser la sortie de l’estimation du modèle de représentation d'état par rapport aux estimations d’autres modèles dans la fenêtre Model Output.

    Conseil

    Si vous avez fermé la fenêtre Model Output, vous pouvez la générer à nouveau en sélectionnant la case à cocher Model output dans l’application System Identification. Si le nouveau modèle n’apparaît pas sur le graphique, cliquez sur l’icône du modèle dans l’application System Identification pour activer le modèle.

  6. Cliquez sur Close pour fermer la boîte de dialogue State Space Models.

En savoir plus.  Pour en savoir plus sur l’identification des modèles de représentation d'état, consultez State-Space Models.

Identification des modèles ARMAX

En estimant des modèles ARX pour différentes combinaisons d’ordres comme décrit dans Estimations des ordres possibles des modèles, vous avez identifié les nombres de pôles, de zéros et de retards qui offrent un bon point de départ pour explorer systématiquement différents modèles.

Le meilleur ajustement global pour ce système correspond à un modèle avec six pôles, neuf zéros et un retard de deux échantillons. Il est également ressorti qu’un modèle d’ordre inférieur avec na=2 (deux pôles), nb=2 (un zéro) et nk=3 offrait également un bon ajustement. Ceci signifie que vous devriez examiner des ordres de modèle proches de ces valeurs.

Dans cette partie du tutoriel, vous estimez un modèle polynomial d’entrée-sortie ARMAX.

À propos des modèles ARMAX.  Pour un système à entrée unique/sortie unique (SISO), la structure de modèle polynomial ARMAX est :

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+         e(t)+c1e(t1)++cnce(tnc)

y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, na est le nombre de pôles du modèle dynamique, nb est le nombre de zéros plus 1, nc est le nombre de pôles du modèle de perturbation, nk est le nombre d’échantillons avant que l’entrée affecte le système (appelé retard ou temps mort du modèle) et e(t) est la perturbation du bruit blanc.

Remarque

Le modèle ARMAX est plus flexible que le modèle ARX, car la structure ARMAX contient un polynôme supplémentaire pour modéliser la perturbation additionnelle.

Vous devez spécifier les ordres des modèles pour estimer des modèles ARMAX. System Identification Toolbox estime les paramètres des modèles a1an, b1bn et c1cn à partir des données.

Comment estimer des modèles ARMAX

  1. Dans l’application System Identification, sélectionnez Estimate > Polynomial Models pour ouvrir la boîte de dialogue Polynomial Models (Modèles polynomiaux).

  2. Dans la liste Structure, sélectionnez ARMAX: [na nb nc nk] pour estimer un modèle ARMAX.

  3. Dans le champ Orders, réglez les ordres na, nb, nc et nk sur les valeurs suivantes :

    [2 2 2 2]

    L’application attribue un nom au modèle amx2222, par défaut, visible dans le champ Name.

  4. Cliquez sur Estimate pour ajouter le modèle ARMAX à l’application System Identification.

  5. Répétez les étapes 3 et 4 avec des Orders 3 3 2 2 supérieurs. Ces ordres donnent lieu à un modèle qui correspond aux données presque aussi bien que le modèle ARX arx692 d’ordre supérieur.

    Conseil

    Si vous avez fermé la fenêtre Model Output, vous pouvez la générer à nouveau en sélectionnant la case à cocher Model output dans l’application System Identification. Si le nouveau modèle n’apparaît pas sur le graphique, cliquez sur l’icône du modèle dans l’application System Identification pour activer le modèle.

  6. Cliquez sur Close pour fermer la boîte de dialogue Polynomial Models.

En savoir plus.  Pour en savoir plus sur l’identification de modèles polynomiaux d’entrée-sortie, comme ARMAX, consultez Input-Output Polynomial Models.

Choix du meilleur modèle

Vous pouvez comparer les modèles pour choisir celui avec les meilleures performances.

Vous devez avoir déjà estimé les modèles, comme décrit dans Estimer des modèles linéaires.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Résumé des modèles.  La figure suivante montre l’application System Identification comprenant tous les modèles estimés dans Estimer des modèles linéaires.

Examen de la sortie du modèle.  Examinez le tracé de la sortie du modèle pour voir dans quelle mesure la sortie du modèle correspond à la sortie mesurée dans le jeu de données de validation. Un bon modèle est le modèle le plus simple qui décrit le mieux la dynamique et simule ou prédit avec succès la sortie pour différentes entrées. Les modèles sont listés par leur nom dans le champ Best Fits du graphique de la sortie des modèles. Notez que l’un des modèles les plus simples, amx3322, produit un ajustement similaire au modèle d’ordre le plus élevé que vous avez créé, arx692.

Conseil

Si vous avez fermé la fenêtre Model Output, vous pouvez la générer à nouveau en sélectionnant la case à cocher Model output dans l’application System Identification. Si le nouveau modèle n’apparaît pas sur le graphique, cliquez sur l’icône du modèle dans l’application System Identification pour activer le modèle.

Pour valider vos modèles à l’aide d’un jeu de données différent, vous pouvez faire glisser et déposer ce jeu de données dans le rectangle Validation Data de l’application System Identification. Si vous remplacez les données de validation par des données dans le domaine fréquentiel, le tracé de la sortie des modèles se met à jour pour afficher la comparaison des modèles dans le domaine fréquentiel.

Pour observer de plus près dans quelle mesure ces modèles correspondent aux données, grossissez une partie du tracé en cliquant et en faisant glisser la souris pour former un rectangle autour de la région qui vous intéresse, comme le montre la figure suivante.

Lorsque vous relâchez le bouton de la souris, cette région s’agrandit et montre que la sortie de tous les modèles correspond bien aux données de validation.

Visualiser les paramètres du modèle

Visualiser les valeurs des paramètres du modèle

Vous pouvez visualiser les valeurs numériques des paramètres pour chaque modèle estimé.

Vous devez avoir déjà estimé les modèles, comme décrit dans Estimer des modèles linéaires.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Pour visualiser les valeurs des paramètres du modèle amx3322, faites un clic droit sur l’icône du modèle dans l’application System Identification. La boîte de dialogue Data/model Info s’ouvre.

La zone non modifiable de la boîte de dialogue Data/model Info liste les valeurs des paramètres correspondant à l’équation aux différences suivante pour votre système :

y(t)1.502y(t1)+0.7193y(t2)0.1179y(t3)=       0.003956u(t2)+0.06245u(t3)+0.02673u(t4)+e(t)0.5626e(t1)+0.2355e(t2)

Remarque

Le coefficient de u(t-2) n’est pas très différent de zéro. Ce manque de différence explique pourquoi les valeurs de retard de 2 et 3 donnent de bons résultats.

Les valeurs des paramètres apparaissent dans le format suivant :

A(z)=1+a1z1++anaznaB(z)=b1znk++bnbznbnk+1C(z)=1+c1z1++cncznc

Les paramètres apparaissent dans la structure de modèle ARMAX comme suit :

A(q)y(t)=B(q)u(t)+C(q)e(t)

ce qui correspond à cette équation aux différences générale :

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+         e(t)+c1e(t1)++cnce(tnc)

y(t) représente la sortie à l’instant t, u(t) représente l’entrée à l’instant t, na est le nombre de pôles du modèle dynamique, nb est le nombre de zéros plus 1, nc est le nombre de pôles du modèle de perturbation, nk est le nombre d’échantillons avant que l’entrée affecte le système (appelé retard ou temps mort du modèle) et e(t) est la perturbation du bruit blanc.

Visualiser les incertitudes des paramètres

Vous pouvez visualiser les incertitudes des paramètres des modèles estimés.

Vous devez avoir déjà estimé les modèles, comme décrit dans Estimer des modèles linéaires.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter. Pour visualiser les valeurs des paramètres du modèle amx3322, faites un clic droit sur l’icône du modèle dans l’application System Identification. La boîte de dialogue Data/model Info s’ouvre.

Pour visualiser les incertitudes des paramètres, cliquez sur Present dans la boîte de dialogue Data/model Info et visualisez les informations des modèles dans la fenêtre de commande MATLAB.

amx3322 =                                                                     
Discrete-time ARMAX model:  A(z)y(t) = B(z)u(t) + C(z)e(t)                    
                                                                              
  A(z) = 1 - 1.502 (+/- 0.05982) z^-1 + 0.7193 (+/- 0.0883) z^-2             
                                   - 0.1179 (+/- 0.03462) z^-3                
                                                                              
                                                                              
  B(z) = 0.003956 (+/- 0.001551) z^-2 + 0.06245 (+/- 0.002372) z^-3           
                                 + 0.02673 (+/- 0.005651) z^-4                
                                                                              
                                                                              
  C(z) = 1 - 0.5626 (+/- 0.07322) z^-1 + 0.2355 (+/- 0.05294) z^-2            
                                                                              
Name: amx3322                                                                 
Sample time: 0.08 seconds                                                     
                                                                              
Parameterization:                                                             
   Polynomial orders:   na=3   nb=3   nc=2   nk=2                             
   Number of free coefficients: 8                                             
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
                                                                              
Status:                                                                       
Termination condition: Near (local) minimum, (norm(g) < tol).                 
Number of iterations: 5, Number of function evaluations: 11                   
                                                                              
Estimated using POLYEST on time domain data "data_est".                       
Fit to estimation data: 95.3% (prediction focus)                              
FPE: 0.001596, MSE: 0.001546                                                   
More information in model's "Report" property. 

L’incertitude de 1 écart-type des paramètres du modèle est entre parenthèses à côté de chaque valeur de paramètre.

Exportation du modèle dans l’espace de travail MATLAB

Les modèles que vous créez dans l’application System Identification ne sont pas automatiquement disponibles dans l’espace de travail MATLAB. Pour rendre un modèle disponible pour les autres toolboxes, Simulink® et les commandes System Identification Toolbox, vous devez exporter votre modèle de l’application System Identification dans l’espace de travail MATLAB. Par exemple, si le modèle est un système physique nécessitant un contrôleur, vous pouvez importer le modèle depuis l’espace de travail MATLAB dans Control System Toolbox™.

Vous devez avoir déjà estimé les modèles, comme décrit dans Estimer des modèles linéaires.

Si vous n’avez pas effectué cette étape, cliquez ici pour la compléter.

Pour exporter le modèle amx3322, faites-le glisser dans le rectangle To Workspace de l’application System Identification. Sinon, cliquez sur Export dans la boîte de dialogue Data/model Info.

Le modèle apparaît dans le navigateur de l’espace de travail MATLAB.

Remarque

Ce modèle est un objet de modèle idpoly.

Une fois que le modèle est dans l’espace de travail MATLAB, vous pouvez effectuer d’autres opérations sur le modèle. Par exemple, si vous avez installé Control System Toolbox, vous pouvez transformer le modèle en un objet de représentation d’état à l’aide de :

ss_model=ss(amx3322)

Exportation du modèle dans Linear System Analyzer

Si vous avez installé Control System Toolbox, le rectangle To Linear System Analyzer apparaît dans l’application System Identification.

Linear System Analyzer est une interface utilisateur graphique permettant de visualiser et de manipuler les tracés de réponse des modèles linéaires. Il affiche les graphiques suivants :

  • Réponse indicielle et réponse impulsionnelle

  • Bode, Nyquist et Nichols

  • Valeurs singulières de réponse fréquentielle

  • Pôle/zéro

  • Réponse aux signaux d’entrée généraux

  • Réponse non forcée à partir d’états initiaux donnés (uniquement pour les modèles de représentation d’état)

Pour tracer un modèle dans Linear System Analyzer, faites glisser et déposez l’icône du modèle dans le rectangle To Linear System Analyzer de l’application System Identification. Sinon, cliquez sur Show in Linear System Analyzer dans la boîte de dialogue Data/model Info.

Pour plus d’informations sur l’utilisation des graphiques dans Linear System Analyzer, consultez Linear System Analyzer Overview (Control System Toolbox).