Contenu principal

Transfer Fcn

Modéliser un système linéaire avec une fonction de transfert

  • Transfer Fcn block

Bibliothèques :
Simulink / Continuous

Description

Le bloc Transfer Fcn permet de modéliser un système linéaire avec une fonction de transfert du système en fonction de la variable de Laplace s. Ce bloc peut modéliser des systèmes à entrée unique et sortie unique (SISO) et à entrée unique et sorties multiples (SIMO).

Conditions d’utilisation du bloc

Le bloc Transfer Fcn suppose les conditions suivantes :

  • La fonction de transfert a la forme suivante :

    H(s)=y(s)u(s)=num(s)den(s)=num(1)snn1+num(2)snn2++num(nn)den(1)snd1+den(2)snd2++den(nd),

    u et y sont respectivement l’entrée et les sorties du système et nn et nd sont respectivement le nombre de coefficients de numérateur et de dénominateur. num(s) et den(s) contiennent les coefficients du numérateur et du dénominateur en puissances décroissantes de s.

  • L’ordre du dénominateur doit être supérieur ou égal à celui du numérateur.

  • Pour un système à sorties multiples, toutes les fonctions de transfert ont le même dénominateur et tous les numérateurs sont du même ordre.

Modéliser un système à sortie unique

Pour un système à sortie unique, l’entrée et la sortie du bloc sont des signaux temporels scalaires. Pour modéliser ce système :

  1. Saisissez un vecteur contenant les coefficients de numérateur de la fonction de transfert dans le champ Numerator coefficients.

  2. Saisissez un vecteur contenant les coefficients de dénominateur de la fonction de transfert dans le champ Denominator coefficients.

Modéliser un système à sorties multiples

Pour un système à sorties multiples, l’entrée du bloc est un scalaire et la sortie est un vecteur dont chaque élément est une sortie du système. Pour modéliser ce système :

  1. Saisissez une matrice dans le champ Numerator coefficients.

    Chaque ligne de cette matrice contient les coefficients de numérateur d’une fonction de transfert qui détermine l’une des sorties du bloc.

  2. Saisissez un vecteur contenant les coefficients de dénominateur communs à toutes les fonctions de transfert du système dans le champ Denominator coefficients.

Spécifier les conditions initiales

Une fonction de transfert décrit la relation entre l’entrée et la sortie dans le domaine (fréquentiel) de Laplace. Plus précisément, on la définit comme la transformée de Laplace de la réponse (sortie) d’un système à une impulsion d’entrée avec des conditions initiales nulles.

Les opérations telles que la multiplication et la division de fonctions de transfert reposent sur un état initial nul. Par exemple, vous pouvez décomposer une seule fonction de transfert complexe en une série de fonctions de transfert plus simples. Appliquez-les de manière séquentielle pour obtenir une réponse équivalente à celle de la fonction de transfert d’origine. Cette méthode ne sera pas correcte si l’une des fonctions de transfert suppose un état initial non nul. Par ailleurs, une fonction de transfert a un nombre infini de réalisations dans le domaine temporel, dont l’état n’a dans la plupart des cas aucune signification physique.

C’est pourquoi Simulink® prédéfinit des conditions initiales nulles pour le bloc Transfer Fcn. Pour spécifier des conditions initiales pour une fonction de transfert donnée, convertissez-la dans sa représentation d’état canonique contrôlable avec tf2ss. Utilisez ensuite le bloc State-Space. L’utilitaire tf2ss fournit les matrices A, B, C et D pour le système.

Pour plus d’informations, saisissez help tf2ss ou consultez la documentation Control System Toolbox™.

Affichage de la fonction de transfert sur le bloc

Le bloc Transfer Fcn affiche la fonction de transfert en fonction de la façon dont vous spécifiez les paramètres du numérateur et du dénominateur.

  • Si vous spécifiez chaque paramètre sous forme d’expression ou de vecteur, le bloc affiche la fonction de transfert avec les coefficients spécifiés pour les puissances de s. Si vous spécifiez une variable entre parenthèses, le bloc évalue la variable.

    Par exemple, si vous spécifiez le paramètre Numerator coefficients avec la valeur [3 2 1] et le paramètre Denominator coefficients avec la valeur (den), où den est une variable d’espace de travail ayant la valeur [7 5 3 1], le bloc affiche l’équation avec les valeurs spécifiées.

    Transfer Fcn block that displays the numerator and denominator of the transfer function both as a polynomial function of s.

    Conseil

    Lorsque le bloc est de trop petite taille pour afficher le numérateur ou le dénominateur en entier, l’icône du bloc affiche num(s) pour le numérateur et den(s) pour le dénominateur.

    A Transfer Fcn block that is not wide enough to display the equation.

    Si vous voulez que le bloc affiche l’équation de la fonction de transfert implémentée, redimensionnez-le en faisant glisser un coin.

    A pointer is positioned to drag the lower-right corner of the Transfer Fcn block, resizing the block so it is wide enough to display the equation that represents the transfer function.

  • Si vous spécifiez chaque paramètre sous forme de variable, le bloc affiche le nom de la variable suivi de (s).

    Par exemple, si vous définissez le paramètre Numerator coefficients à num et le paramètre Denominator coefficients à den, l’icône du bloc affiche num(s) pour le numérateur de la fonction de transfert et den(s) pour le dénominateur.

    Transfer Fcn block with the Numerator coefficients parameter specified as num and the Denominator coefficients parameter specified as den.

Exemples

Ports

Entrée(s)

développer tout

Signal d’entrée, spécifié en tant que scalaire avec le type de données double.

Ce port n’est en traversée directe (direct feedthrough) que si le numérateur de la fonction de transfert est 0.

Types de données : double

Sortie(s)

développer tout

Signal de sortie, généré en tant que scalaire ou vecteur avec le type de données double.

  • Pour un système à sortie unique, l’entrée et la sortie du bloc sont des signaux temporels scalaires.

  • Pour un système à sorties multiples, l’entrée est un scalaire et la sortie est un vecteur dont chaque élément est une sortie du système.

Types de données : double

Paramètres

développer tout

Définissez les coefficients de numérateur de la fonction de transfert.

  • Pour un système à sortie unique, saisissez un vecteur contenant les coefficients de numérateur de la fonction de transfert.

  • Pour un système à sorties multiples, saisissez une matrice. Chaque ligne de cette matrice contient les coefficients de numérateur d’une fonction de transfert qui détermine l’une des sorties du bloc.

Utilisation programmatique

Paramètre de bloc : Numerator
Type : vecteur de caractères, chaîne de caractères
Valeurs : vecteur | matrice
Par défaut : '[1]'

Définissez le vecteur ligne de coefficients de dénominateur.

  • Pour un système à sortie unique, saisissez un vecteur contenant les coefficients de dénominateur de la fonction de transfert.

  • Pour un système à sorties multiples, saisissez un vecteur contenant les coefficients de dénominateur communs à toutes les fonctions de transfert du système.

Utilisation programmatique

Paramètre de bloc : Denominator
Type : vecteur de caractères | chaîne de caractères
Valeurs : vecteur
Par défaut : '[1 1]'

Niveau de réglage des coefficients de numérateur et de dénominateur pour les modes de simulation accélérée et les simulations déployées avec Simulink Compiler™. Définissez ce paramètre à Auto pour que Simulink choisisse le niveau approprié de réglage des paramètres.

Définissez ce paramètre à Optimized pour générer une représentation optimisée des coefficients de numérateur et de dénominateur dans le code généré pour les simulations accélérées et déployées afin que celles-ci soient plus performantes.

Définissez ce paramètre à Unconstrained pour générer une représentation entièrement réglable (entre les simulations) des coefficients de numérateur et de dénominateur dans le code généré pour les simulations accélérées et déployées. Pour que Simulink détermine le niveau de réglage approprié, sélectionnez Auto.

Utilisation programmatique

Paramètre de bloc : ParameterTunability
Type : vecteur de caractères, chaîne de caractères
Valeurs : 'Auto' | 'Optimized' | 'Unconstrained'
Par défaut : 'Auto'

Les solveurs à pas variable utilisent des tolérances absolues et relatives lors du choix de la taille de pas pour déterminer si l’erreur des calculs d’état est acceptable.

Pour que la tolérance absolue soit héritée du paramètre de configuration Absolute tolerance, spécifiez la valeur auto ou -1 pour ce paramètre.

Pour spécifier pour ce bloc une tolérance absolue qui remplace la valeur du paramètre de configuration Absolute tolerance :

  • Saisissez une valeur scalaire réelle positive à utiliser pour le calcul de tous les états du bloc.

  • Saisissez un vecteur réel dont les dimensions correspondent à celles des états continus du bloc.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Pour obtenir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction get_param.

Paramètre : AbsoluteTolerance
Valeurs : 'auto' (par défaut) | '-1' | positive real scalar number | vector of positive real scalar numbers
Types de données : char | string

Exemple : set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

Utilisez ce paramètre pour attribuer des noms aux états de ce bloc, si vous le souhaitez. Les noms que vous attribuez ne s’appliquent qu’aux états de ce bloc.

  • Pour utiliser les noms d’état par défaut, laissez ce champ vide ('').

  • Pour attribuer un seul nom à un seul état, saisissez le nom entre guillemets. Par exemple, pour attribuer le nom position à un seul état, saisissez 'position'.

  • Pour attribuer des noms à plusieurs états, spécifiez la valeur du paramètre sous forme de cell array de vecteurs de caractères. Chaque nom du cell array doit être unique. Par exemple, pour attribuer les noms a, b et c, saisissez {'a','b','c'}.

  • Pour spécifier les noms avec une variable MATLAB, saisissez le nom de la variable sans guillemets. Par exemple, pour utiliser la variable names pour spécifier les noms d’état, saisissez names.

Vous pouvez spécifier un nombre de noms inférieur au nombre d’états du bloc. Dans ce cas, les noms d’état sont utilisés pour plusieurs états et le nombre d’états doit pouvoir être réparti uniformément entre le nombre de noms d’état. Par exemple, si vous spécifiez deux noms pour un bloc ayant quatre états, le premier nom est utilisé pour les deux premiers états et le second nom est utilisé pour les deux derniers états.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Pour obtenir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction get_param.

Paramètre : ContinuousStateAttributes
Valeurs : '' (par défaut) | valid MATLAB variable name
Types de données : char | string | cell

Exemple : set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

Caractéristiques des blocs

Types de données

double

Traversée directe

nona

Signaux multidimensionnels

non

Signaux de taille variable

non

Détection des passages à zéro

non

a Les caractéristiques de traversée (feedthrough) directe de ce bloc dépendent des valeurs des paramètres du bloc.

Capacités étendues

développer tout

Historique des versions

Introduit avant R2006a