Main Content

Conversion de la fréquence du modèle

Convertir des modèles à temps continu en modèles à temps discret et inversement, et rééchantillonner les modèles dans Live Editor

Depuis R2019b

Description

La fonction Convert Model Rate vous permet de convertir de manière interactive un modèle LTI à temps continu en un modèle LTI à temps discret et inversement. Vous pouvez l’utiliser également pour rééchantillonner un modèle à temps discret. La tâche génère automatiquement un code MATLAB® pour votre live script.

Pour prendre en main la tâche Convert Model Rate, sélectionnez le modèle à convertir. Vous pouvez également spécifier le pas d’échantillonnage, la méthode de conversion et d’autres paramètres. La tâche génère le modèle converti dans l’espace de travail MATLAB et peut générer un tracé de réponse grâce auquel vous pourrez contrôler la correspondance entre le modèle d’origine et le modèle converti alors que vous testerez les paramètres de conversion.

Fonctions connexes

La fonction Convert Model Rate génère un code à l'aide des fonctions suivantes.

Convert Model Rate task in Live Editor

Ouvrir la tâche

Pour ajouter la tâche Convert Model Rate à un live script dans MATLAB Editor :

  • Dans l'onglet Live Editor, sélectionnez Task > Convert Model Rate.

  • Dans un bloc de code de votre script, tapez un mot clé utile, tel que convert, rate ou c2d. Sélectionnez Convert Model Rate parmi les complétions de commande suggérées.

Exemples

développer tout

Dans Live Editor, la tâche Convert Model Rate vous permet de convertir de manière interactive un modèle à temps continu en un modèle à temps discret et inversement. Testez différents tracés de réponse, options et méthodes. La tâche génère automatiquement un code sur la base de vos sélections. Ouvrez cet exemple afin d’afficher un script préconfiguré contenant la tâche Convert Model Rate.

Créez un modèle de fonction de transfert à temps continu.

G = tf([1 -50 300],[1 3 200 350]);

Pour discrétiser ce modèle, ouvrez la tâche Convert Model Rate dans Live Editor. Dans l’onglet Live Editor, sélectionnez Task > Convert Model Rate. Dans la tâche, sélectionnez G en tant que modèle à convertir.

La tâche discrétise automatiquement le modèle en appliquant le pas d’échantillonnage par défaut, à savoir 0,2 s, et la méthode de conversion par défaut, Zero-order hold. Elle crée également un diagramme de Bode qui vous permet de comparer les réponses du modèle d’origine et du modèle converti.

La ligne verticale sur le tracé indique la fréquence de Nyquist associée au pas d’échantillonnage par défaut. Supposons que vous souhaitiez utiliser un pas d’échantillonnage de 0,15 s. Modifiez le pas d’échantillonnage en saisissant la nouvelle valeur dans le champ Sample Time. Le tracé de la réponse se met automatiquement à jour avec le nouveau pas d’échantillonnage.

Si la dynamique précise de la résonance est importante dans votre contexte d’utilisation, vous pouvez améliorer la correspondance du domaine fréquentielle en utilisant une autre méthode de conversion. Dans la tâche, testez différentes méthodes et observez leur incidence sur le tracé de réponse.

La méthode Tustin permet d’obtenir une meilleure correspondance dans le domaine fréquentiel que la méthode par défaut, zero-order hold. (Consultez Continuous-Discrete Conversion Methods.) Dans Select Conversion Method, sélectionnez Bilinear (Tustin) approximation. Au départ, la correspondance obtenue dans le domaine fréquentiel est plus médiocre qu’avec la méthode zero-order hold.

Vous pouvez améliorer la correspondance en utilisant un préwarping de fréquence. Cette option fait en sorte que la réponse à temps discret corresponde à la fréquence que vous définissez. La résonance des pics G est d’env. 14 rad/s. Saisissez cette valeur pour le préwarping de fréquence. La correspondance s’améliore autour de la résonance. Pour autant, la résonance est très proche de la fréquence de Nyquist pour le pas d’échantillonnage de 0,15 s qui limite l’exactitude de la correspondance.

La tâche Convert Model Rate peut générer d'autres types de tracés de réponse. Par exemple, pour comparer les réponses dans le domaine temporel du modèle d’origine et du modèle converti, dans Output Plot, sélectionnez step ou impulse.

La tâche génère un code dans votre live script. Le code généré reflète les paramètres et options que vous sélectionnez, et comprend le code permettant de générer le tracé de réponse que vous indiquez. Pour consulter le code généré, cliquez sur Show code au bas de la zone des paramètres de la tâche. La tâche s’agrandit afin de pouvoir afficher le code généré.

Par défaut, le code généré utilise sysConverted en tant que nom de la variable de sortie, qui correspond au modèle converti. Pour indiquer un autre nom de variable de sortie, saisissez le nouveau nom dans la ligne de résumé située en haut de la tâche. Par exemple, changez son nom en sys_d.

La tâche met à jour le code généré afin de refléter le nouveau nom de variable et le nouveau modèle converti sys_d apparaît dans l’espace de travail MATLAB. Vous pouvez utiliser le modèle pour une analyse ultérieure ou pour le design de contrôle, comme vous le feriez avec n’importe quel autre objet de modèle. Par exemple, simulez la réponse du système converti à une saisie d’onde carrée. Appliquez le pas d’échantillonnage que vous avez défini dans la tâche.

[u,t] = gensig('square',4,10,0.15);
lsim(sys_d,u,t)

Paramètres

développer tout

Sélectionnez un modèle LTI. La liste contient tous les modèles de système dynamique à temps continu ou discret qui conviennent dans l’espace de travail MATLAB, notamment :

  • Modèles LTI numériques tels que tf, ss ou zpk.

  • Modèles LTI identifiés tels que idss et idtf. (Pour pouvoir utiliser des modèles identifiés, vous devez posséder une licence System Identification Toolbox™.)

Vous pouvez convertir des modèles SISO ou MIMO, avec ou sans retards, même si certaines méthodes de conversion ne sont disponibles que pour les modèles SISO (consultez la description des paramètres Method). Vous ne pouvez pas utiliser la tâche Convert Model Rate pour convertir des modèles LTI généralisés tels que genss ou uss, les modèles de données de réponse fréquentielle tels que frd ou les modèles de processus (idproc).

Indiquez le pas d’échantillonnage du modèle converti exprimé en 1/TimeUnit, où TimeUnit désigne la propriété TimeUnit du modèle d’entrée.

  • Pour discrétiser un modèle à temps continu ou rééchantillonner u modèle à temps discret, saisissez le pas d’échantillonnage cible.

  • Pour convertir un modèle à temps discret en temps continu, saisissez 0.

Choisissez une méthode de conversion de la fréquence. Les méthodes disponibles sont les suivantes :

  • Zero-order hold

  • First-order hold

  • Impulse-invariant discretization (conversion du temps continu au temps discret des modèles SISO uniquement)

  • Bilinear (Tustin) approximation

  • Zero-pole matching method

  • Least-squares method (conversion du temps continu au temps discret des modèles SISO uniquement)

Pour plus d’informations sur le choix d’une méthode de conversion, consultez Continuous-Discrete Conversion Methods.

Lorsque vous convertissez la fréquence d’un modèle qui présente un retard, les méthodes Bilinear (Tustin) approximation ou Zero-pole matching method arrondissent le retard au multiple entier le plus proche du pas d’échantillonnage. Cet arrondi peut nuire à la précision de la dynamique, en particulier à proximité de la fréquence de Nyquist.

Définissez Delay Order sur un entier non nul afin que la tâche Convert Model Rate estime la partie fractionnaire du retard au moyen d’un filtre de Thiran plutôt que d’effectuer un arrondi. Utilisez la plus petite valeur qui permet d'obtenir une dynamique convertie en fréquence suffisamment précise pour votre contexte d’utilisation. Pour plus d'informations sur les filtres de Thiran, consultez thiran.

Lors de la discrétisation d'un modèle à temps continu, si vous souhaitez préserver la dynamique clé de votre système à une fréquence spécifique lors de la conversion, il est conseillé d'employer la méthode de Bilinear (Tustin) approximation avec préwarping de fréquence. Cette méthode assure une correspondance entre la réponse d’origine et la réponse convertie à la fréquence préalablement ajustée (prewarp) spécifiée. Consultez Continuous-Discrete Conversion Methods.

La tâche Convert Model Rate génère automatiquement un tracé de réponse qui vous aide à vérifier que les dynamiques importantes dans votre contexte d’utilisation sont conservées. Spécifiez l’un des types de tracé de réponse suivants pour comparer les réponses du modèle d’origine et du modèle converti pendant que vous testez les paramètres de conversion.

  • Bode

  • Step

  • Impulse

  • Pole-Zero

Le code généré par la tâche comprend un code permettant de créer le tracé de réponse sélectionné. Pour omettre le tracé de réponse, sélectionnez None.

Historique des versions

Introduit dans R2019b