Réduction de l'ordre des modèles
Commandes de réduction d'ordre des modèles
Vous pouvez dériver des modèles SISO et MIMO d'ordre réduit à l'aide des commandes présentées dans le tableau suivant.
Commandes de réduction d'ordre des modèles | |
|---|---|
hsvd | Calculer les valeurs singulières de Hankel du modèle LTI |
balred | Approximation du modèle d'ordre réduit |
minreal | Réalisation minimale (annulation des pôles/zéros) |
balreal | Calculer la réalisation entrée/sortie équilibrée |
modred | Suppression d'état dans une réalisation équilibrée en E/S |
sminreal | Réalisation structurellement minimale |
Techniques pour réduire l'ordre des modèles
Pour réduire l'ordre d'un modèle, vous pouvez effectuer l'une des actions suivantes :
Éliminez les états qui sont structurellement déconnectés des entrées ou des sorties avec
sminreal.L'élimination des états structurellement déconnectés est une bonne première étape de la réduction du modèle, car le processus est peu coûteux et n'implique aucun calcul numérique.
Calculez une approximation d'ordre inférieur de votre modèle en utilisant
balred.Éliminez l’annulation des paires pôle/zéro avec
minreal.
Exemple : Modèle de gazéificateur
Cet exemple présente le modèle d'un gazéificateur, un dispositif qui transforme des matériaux solides en gaz. Le modèle original est non-linéaire.
Chargement du modèle
Pour charger une version linéarisée du modèle, saisissez
load ltiexamples
à l'invite de commande MATLAB® ; l'exemple du gazéificateur est stocké dans la variable nommée gasf. Si vous saisissez
size(gasf)
vous obtenez en retour
Un modèle de représentation d'état avec 4 sorties, 6 entrées et 25 états.
Réduction d'ordre du modèle SISO
Vous pouvez réduire l'ordre d'une seule paire d'E/S pour comprendre le fonctionnement des outils de réduction d'ordre de modèle avant d'essayer de réduire le modèle MIMO complet comme décrit dans Réduction d'ordre de modèle MIMO.
Cet exemple se concentre sur une seule paire d'entrée/sortie du gazéificateur, l'entrée 5 vers la sortie 3.
sys35 = gasf(3,5);
Avant de tenter la réduction d'ordre du modèle, inspectez les emplacements des pôle et des zéros en tapant
pzmap(sys35)
Faites un zoom près de l'origine sur le graphique résultant en utilisant la fonction de zoom ou en saisissant
axis([-0.2 0.05 -0.2 0.2])
La figure suivante montre les résultats.
Carte de pôle-zéro du modèle de gazéificateur (zoomé)

Comme le modèle présente des chevauchements pole-zéro, il est un bon candidat pour la réduction de modèle.
Pour trouver une réduction d'ordre inférieur de ce modèle SISO, effectuez les étapes suivantes :
Sélectionnez un ordre approprié pour votre système réduit en examinant la quantité relative d'énergie par état à l'aide d'un tracé des valeurs singulières de Hankel (Hankel Singular Value, HSV). Saisissez la commande
pour créer le tracé HSV.hsvd(sys35)
Le passage à l'échelle log (en utilisant le menu clic-droit) permet d'obtenir le graphique suivant.

Les petites valeurs singulières de Hankel indiquent que les états qui leur sont associés contribuent peu au comportement des entrées/sorties. Ce graphique montre que le fait d'écarter les 10 derniers états (associés aux 10 plus petites valeurs singulières de Hankel) a peu d'impact sur l'erreur d'approximation.
Pour supprimer les 10 derniers états et créer une approximation du 15e ordre, saisissez
Vous pouvez saisirrsys35 = balred(sys35,15);
size(rsys35)pour constater que votre système réduit ne contient que 15 états.Comparez la réponse de Bode des modèles d'ordre complet et d'ordre réduit à l'aide de la commande bode :
Cette figure montre le résultat.bode(sys35,'b',rsys35,'r--')

Comme le montre le chevauchement des courbes sur la figure, le modèle réduit offre une bonne approximation du système original.
Vous pouvez essayer de réduire davantage l'ordre du modèle en répétant ce processus et en supprimant davantage d'états. Réduisez le modèle gasf aux 5e, 10e et 15e ordres en une seule fois en saisissant la commande suivante
rsys35 = balred(sys35,[5 10 15]);
bode(sys35,'b',rsys35,'r--')

Observez comment l'erreur augmente lorsque l'ordre diminue.
Réduction d'ordre de modèle MIMO
Vous pouvez estimer les modèles MIMO en utilisant les mêmes étapes que les modèles SISO comme suit :
Sélectionnez un ordre approprié pour votre système réduit en examinant la quantité relative d'énergie par état à l'aide d'un tracé des valeurs singulières de Hankel (Hankel Singular Value, HSV).
Saisissez
pour créer le tracé HSV.hsvd(gasf)

L'élimination des 8 derniers états (associés aux 8 plus petites valeurs singulières de Hankel) devrait avoir peu d'impact sur l'erreur dans le système de 17e ordre résultant.
Pour supprimer les 8 derniers états et créer un système MIMO de 17e ordre, saisissez
Vous pouvez saisirrsys=balred(gasf,17);
size(gasf)pour constater que votre système réduit ne contient que 17 états.Pour faciliter l'inspection visuelle de l'erreur d'approximation, utilisez un graphique des valeurs singulières plutôt qu'un graphique de Bode MIMO. Saisissez
pour créer un graphique des valeurs singulières comparant le système original à l'erreur de réduction.sigma(gasf,'b',gasf-rsys,'r')

L'erreur de réduction est faible par rapport au système original, de sorte que le modèle d'ordre réduit offre une bonne approximation du modèle original.
Reconnaissance
MathWorks® remercie ALSTOM® Power UK pour avoir permis l'utilisation de leur modèle de gazéificateur pour cet exemple. Ce modèle a été publié dans le cadre du Benchmark Challenge sur le contrôle des gazéificateurs de ALSTOM. Pour plus d'informations, voir Dixon, R., (1999), « Advanced Gasifier Control », Computing & Control Engineering Journal, IEE, Vol. 10, No. 3, pp. 92–96.