La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
tf
Modèle de fonction de transfert
Description
Utilisez tf
pour créer des modèles de fonction de transfert à valeurs réelles ou complexes, ou pour convertir des modèles de systèmes dynamiques en modèles de fonction de transfert.
Les fonctions de transfert sont une représentation du domaine fréquentiel des systèmes linéaires invariants dans le temps. Par exemple, considérons un système dynamique SISO en temps continu représenté par la fonction de transfert sys(s) = N(s)/D(s)
, où s = jw
, N(s)
et D(s)
sont appelés respectivement les polynômes numérateur et dénominateur. L’objet de modèle tf
peut représenter des fonctions de transfert SISO ou MIMO en temps continu ou discret.
Vous pouvez créer un objet de modèle de fonction de transfert en spécifiant directement ses coefficients ou en convertissant un modèle d’un autre type (tel qu’un modèle de représentation d’état ss
) en modèle de fonction de transfert. Pour plus d’informations, consultez Fonctions de transfert.
Vous pouvez également utiliser tf
pour créer des modèles de représentation d’état généralisés (genss
) ou incertains (uss
(Robust Control Toolbox)).
Création
Syntaxe
Description
crée un modèle de fonction de transfert en temps continu en définissant les propriétés sys
= tf(numerator
,denominator
)Numerator
et Denominator
. Par exemple, considérons un système dynamique SISO en temps continu représenté par la fonction de transfert sys(s) = N(s)/D(s)
. Les arguments en entrée numerator
et denominator
sont respectivement les coefficients de N(s)
et D(s)
.
crée un modèle de fonction de transfert en temps discret en définissant les propriétés sys
= tf(numerator
,denominator
,ts
)Numerator
, Denominator
et Ts
. Par exemple, considérons un système dynamique SISO en temps discret représenté par la fonction de transfert sys(z) = N(z)/D(z)
. Les arguments en entrée numerator
et denominator
sont respectivement les coefficients de N(z)
et D(z)
. Pour ne pas spécifier le pas d’échantillonnage, définissez l’argument ts
en entrée à -1
.
crée un modèle de fonction de transfert avec les propriétés héritées du modèle de système dynamique sys
= tf(numerator
,denominator
,ltiSys
)ltiSys
, y compris le pas d’échantillonnage.
s = tf('s')
crée une variable spéciale s
que vous pouvez utiliser dans une expression rationnelle pour créer un modèle de fonction de transfert en temps continu. Il est parfois plus aisé et plus intuitif de recourir à une expression rationnelle plutôt que de spécifier des coefficients polynomiaux.
Arguments en entrée
numerator
— Coefficients du numérateur de la fonction de transfert
vecteur ligne | cell array Ny
par Nu
de vecteurs ligne
Coefficients du numérateur de la fonction de transfert, spécifiés sous les formes suivantes :
Vecteur ligne de coefficients polynomiaux.
Cell array
Ny
parNu
de vecteurs ligne servant à spécifier une fonction de transfert MIMO oùNy
désigne le nombre de sorties etNu
, le nombre d’entrées.
Lorsque vous créez la fonction de transfert, spécifiez les coefficients du numérateur dans l’ordre des puissances décroissantes. Par exemple, si le numérateur de la fonction de transfert est 3s^2-4s+5
, spécifiez numerator
en tant que [3 -4 5]
. Dans le cas d’une fonction de transfert en temps discret dotée du numérateur 2z-1
, définissez numerator
sur [2 -1]
.
Définissez également une propriété de l’objet tf
. Pour plus d’informations, consultez Numerator.
denominator
— Coefficients du dénominateur de la fonction de transfert
vecteur ligne | cell array Ny
par Nu
de vecteurs ligne
Coefficients du dénominateur spécifiés sous les formes suivantes :
Vecteur ligne de coefficients polynomiaux.
Cell array
Ny
parNu
de vecteurs ligne servant à spécifier une fonction de transfert MIMO oùNy
désigne le nombre de sorties etNu
, le nombre d’entrées.
Lorsque vous créez la fonction de transfert, spécifiez les coefficients du dénominateur dans l’ordre des puissances décroissantes. Par exemple, si le dénominateur de la fonction de transfert est 7s^2+8s-9
, spécifiez denominator
en tant que [7 8 -9]
. Dans le cas d’une fonction de transfert en temps discret dotée du dénominateur 2z^2+1
, définissez denominator
sur [2 0 1]
.
Définissez également une propriété de l’objet tf
. Pour plus d’informations, consultez Denominator.
ts
— Pas d’échantillonnage
scalaire
Pas d’échantillonnage spécifié en tant que scalaire. Définissez également une propriété de l’objet tf
. Pour plus d’informations, consultez Ts.
ltiSys
— Système dynamique
modèle de systèmes dynamiques | tableau de modèles
Système dynamique spécifié en tant que modèle de système dynamique SISO or MIMO ou en tant que tableau de modèles de systèmes dynamiques. Parmi les systèmes dynamiques que vous pouvez utiliser, citons :
Modèles LTI numériques en temps continu ou discret, tels que les modèles
tf
,zpk
,ss
oupid
.Modèles LTI généralisés ou incertains tels que les modèles
genss
ouuss
(Robust Control Toolbox). (Pour pouvoir utiliser les modèles incertains, le software Robust Control Toolbox™ est nécessaire.)La fonction de transfert résultante s'appuie sur
les valeurs actuelles des composants réglables pour les blocs de design de systèmes de contrôle réglables.
les valeurs de modèle nominales pour les blocs de design de systèmes de contrôle incertains.
Modèles LTI identifiés tels que les modèles
idtf
(System Identification Toolbox),idss
(System Identification Toolbox),idproc
(System Identification Toolbox),idpoly
(System Identification Toolbox) etidgrey
(System Identification Toolbox). Pour sélectionner la composante du modèle identifié à convertir, spécifiezcomponent
. Si vous ne spécifiez pascomponent
,tf
convertit la composante mesurée du modèle identifié par défaut. (Pour pouvoir utiliser les modèles identifiés, le software System Identification Toolbox™ est nécessaire)
m
— Gain statique
scalaire | matrice
Gain statique spécifié en tant que scalaire ou matrice. Le gain statique ou le gain à l'état stable d’un système représente le rapport sortie/entrée en présence d’un état stable.
component
— Composante du modèle identifié
'measured'
(par défaut) | 'noise'
| 'augmented'
Composante du modèle identifié à convertir, spécifiée sous l’une des formes suivantes :
'measured'
: convertit la composante mesurée desys
.'noise'
: convertit la composante de bruit desys
'augmented'
: convertit à la fois la composante mesurée et la composante de bruit desys
.
component
ne s’applique que lorsque sys
est un modèle LTI identifié.
Pour plus d’informations sur les modèles LTI identifiés et leurs composantes mesurée et de bruit, voir Identified LTI Models.
Arguments en sortie
sys
— Modèle de système en sortie
Objet de modèle tf
| Objet de modèle genss
| Objet de modèle uss
Modèle de système en sortie renvoyé sous la forme suivante :
Objet de modèle de fonction de transfert (
tf
) où les arguments en entréenumerator
etdenominator
sont des tableaux numériques.Objet de modèle de représentation d’état généralisé (
genss
) lorsque l’argument en entréenumerator
oudenominator
comprend des paramètres réglables, tels que les paramètresrealp
ou les matrices généralisées (genmat
). Pour un exemple, voir Filtre passe-bas réglable.Objet de modèle de représentation d’état incertain (
uss
) lorsque l‘argument en entréenumerator
oudenominator
comprend des paramètres incertains. Pour pouvoir utiliser les modèles incertains, le software Robust Control Toolbox est nécessaire. Pour un exemple, voir Transfer Function with Uncertain Coefficients (Robust Control Toolbox).
Propriétés
Numerator
— Coefficients du numérateur
vecteur ligne | cell array Ny
par Nu
de vecteurs ligne
Coefficients du numérateur spécifiés sous les formes suivantes :
Vecteur ligne de coefficients polynomiaux organisé par ordre de puissances décroissantes (pour les valeurs
Variable
's'
,'z'
,'p'
ou'q'
) ou par ordre de puissances croissantes (pour les valeursVariable
'z^-1'
ou'q^-1'
).Cell array
Ny
parNu
de vecteurs ligne servant à spécifier une fonction de transfert MIMO oùNy
désigne le nombre de sorties etNu
, le nombre d’entrées. Chaque élément du cell array spécifie les coefficients du numérateur pour une paire entrée/sortie donnée. Si vous spécifiezNumerator
etDenominator
en tant que cell arrays, ils doivent présenter les mêmes dimensions.
Les coefficients du Numerator
peuvent présenter des valeurs réelles ou complexes.
Denominator
— Coefficients du dénominateur
vecteur ligne | cell array Ny
par Nu
de vecteurs ligne
Coefficients du dénominateur spécifiés sous les formes suivantes :
Vecteur ligne de coefficients polynomiaux par ordre de puissances décroissantes (pour les valeurs
Variable
's'
,'z'
,'p'
, ou'q'
) ou par ordre de puissances croissantes (pour les valeursVariable
'z^-1'
ou'q^-1'
).Cell array
Ny
parNu
de vecteurs ligne servant à spécifier une fonction de transfert MIMO oùNy
désigne le nombre de sorties etNu
, le nombre d’entrées. Chaque élément du cell array spécifie les coefficients du numérateur pour une paire entrée/sortie donnée. Si vous spécifiezNumerator
etDenominator
en tant que cell arrays, ils doivent présenter les mêmes dimensions.
Si toutes les entrées SISO d’une fonction de transfert MIMO présentent le même dénominateur, vous pouvez spécifier Denominator
en tant que vecteur ligne tout en spécifiant Numerator
en tant que cell array.
Les coefficients du Denominator
peuvent présenter des valeurs réelles ou complexes.
Variable
— Variable d’affichage de la fonction de transfert
's'
(par défaut) | 'z'
| 'p'
| 'q'
| 'z^-1'
| 'q^-1'
Variable d’affichage de la fonction de transfert spécifiée sous l’une des formes suivantes :
's'
: valeur par défaut des modèles en temps continu'z'
: valeur par défaut des modèles en temps discret'p'
: équivalent de's'
'q'
: équivalent de'z'
'z^-1'
: inverse de'z'
'q^-1'
: équivalent de'z^-1'
La valeur de Variable
apparaît dans l'affichage et affecte également l'interprétation des vecteurs de coefficient Numerator
et Denominator
pour les modèles en temps discret.
Pour les valeurs
Variable
's'
,'z'
,'p'
ou'q'
, les coefficients sont classés dans l’ordre des puissances décroissantes de la variable. Par exemple, considérons le vecteur ligne[ak ... a1 a0]
. L’ordre polynomial est spécifié sous la forme .Pour les valeurs
Variable
'z^-1'
ou'q^-1'
, les coefficients sont classés dans l’ordre des puissances croissantes de la variable. Par exemple, considérons le vecteur ligne[b0 b1 ... bk]
. L’ordre polynomial est spécifié sous la forme .
Pour consulter des exemples, voir Spécification de l’ordre polynomial dans la fonction de transfert en temps discret, Modèle de fonction de transfert utilisant une expression rationnelle et Modèle de fonction de transfert en temps discret utilisant une expression rationnelle.
IODelay
— Retard de transport
0
(par défaut) | scalaire | Tableau Ny
par Nu
Retard de transport spécifié sous l’une des formes suivantes :
Scalaire : spécifiez le retard de transport pour un système SISO ou le même retard de transport pour toutes les paires entrée/sortie d'un système MIMO.
Tableau
Ny
parNu
: spécifiez des retards de transport distincts pour chaque paire entrée/sortie d'un système MIMO. Ici,Ny
désigne le nombre de sorties etNu
, le nombre d’entrées.
Pour les systèmes en temps continu, spécifiez les retards de transport dans l'unité temporelle spécifiée par la propriété TimeUnit
. Pour les systèmes en temps discret, spécifiez les retards de transport en tant qu’entiers multiples du pas d’échantillonnage, Ts
.
InputDelay
— Retard en entrée
0
(par défaut) | scalaire | Vecteur Nu
par 1
Retard en entrée pour chaque canal d’entrée spécifié sous l’une des formes suivantes :
Scalaire : spécifiez le retard en entrée pour un système SISO ou le même retard pour toutes les entrées d'un système à entrées multiples.
Vecteur
Nu
par 1 : spécifiez des retards d’entrée distincts pour l’entrée d’un système à entrées multiples oùNu
désigne le nombre d’entrées.
Pour les systèmes en temps continu, spécifiez les retards en entrée dans l'unité temporelle spécifiée par la propriété TimeUnit
. Pour les systèmes en temps discret, spécifiez les retards en entrée en tant qu’entiers multiples du pas d’échantillonnage, Ts
.
Pour plus d’informations, consultez Time Delays in Linear Systems.
OutputDelay
— Retard en sortie
0
(par défaut) | scalaire | Vecteur Ny
par 1
Retard en sortie pour chaque canal de sortie spécifié sous l’une des formes suivantes :
Scalaire : spécifiez le retard en sortie pour un système SISO ou le même retard pour toutes les sorties d'un système à sorties multiples.
Vecteur
Ny
par 1 : spécifiez des retards de sortie distincts pour la sortie d’un système à sorties multiples oùNy
désigne le nombre de sorties.
Pour les systèmes en temps continu, spécifiez les retards en sortie dans l'unité temporelle spécifiée par la propriété TimeUnit
. Pour les systèmes en temps discret, spécifiez les retards en sortie en tant qu’entiers multiples du pas d’échantillonnage, Ts
.
Pour plus d’informations, consultez Time Delays in Linear Systems.
Ts
— Pas d’échantillonnage
0
(par défaut) | scalaire positif | -1
Pas d’échantillonnage spécifié en tant que :
0
pour les systèmes en temps continu.Scalaire positif représentant la période d’échantillonnage d’un système en temps discret. Spécifiez
Ts
dans l'unité temporelle définie par la propriétéTimeUnit
.-1
pour un système en temps discret avec un pas d’échantillonnage non spécifié.
TimeUnit
— Unités temporelles variables
'seconds'
(par défaut) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...
Unités temporelles variables spécifiées sous l’une des formes suivantes :
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
La modification de TimeUnit
n’a aucune incidence sur les autres propriétés mais change l’ensemble du comportement du système. Utilisez chgTimeUnit
pour faire des conversions entre les unités temporelles sans modifier le comportement du système.
InputName
— Noms des canaux en entrée
''
(par défaut) | vecteur de caractères | cell array de vecteurs de caractères
Noms des canaux en entrée spécifiés sous l'une des formes suivantes :
Vecteur de caractères pour les modèles à entrée unique.
Cell array de vecteurs de caractères pour les modèles à entrées multiples.
''
, pas de nom spécifié pour les canaux en entrée.
Sinon, vous pouvez attribuer des noms aux entrées pour les modèles à entrées multiples au moyen de l'expansion vectorielle automatique. Par exemple, si sys
est un modèle à deux entrées, saisissez ce qui suit :
sys.InputName = 'controls';
Les noms en entrée s’étendent automatiquement à {'controls(1)';'controls(2)'}
.
Vous pouvez utiliser la notation abrégée u
pour faire référence à la propriété InputName
. Par exemple, sys.u
est équivalent à sys.InputName
.
Utilisez InputName
pour :
Identifier des canaux sur l’affichage et les tracés du modèle.
Extraire des sous-systèmes de systèmes MIMO.
Spécifier des points de connexion au moment d’interconnecter les modèles.
InputUnit
— Unités des canaux en entrée
''
(par défaut) | vecteur de caractères | cell array de vecteurs de caractères
Unités des canaux en entrée spécifiées sous l’une des formes suivantes :
Vecteur de caractères pour les modèles à entrée unique.
Cell array de vecteurs de caractères pour les modèles à entrées multiples.
''
, pas d'unité spécifiée pour les canaux en entrée.
Utilisez InputUnit
pour spécifier les unités des signaux en entrée. InputUnit
n'a aucune incidence sur le comportement du système.
InputGroup
— Groupes de canaux en entrée
structure
Groupes de canaux en entrée spécifiés en tant que structure. Utilisez InputGroup
pour attribuer les canaux en entrée des systèmes MIMO à des groupes et faire référence à chaque groupe par son nom. Les noms des champs de InputGroup
correspondent aux noms des groupes tandis que les valeurs des champs sont les canaux en entrée pour chaque groupe. Par exemple, saisissez ce qui suit pour créer des groupes d’entrée nommés controls
et noise
comprenant respectivement les canaux d’entrée 1
, 2
, 3
et 5
.
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
Vous pouvez alors extraire le sous-système des entrées controls
vers toutes les sorties en utilisant la commande suivante.
sys(:,'controls')
Par défaut, InputGroup
est une structure dépourvue de champs.
OutputName
— Noms des canaux en sortie
''
(par défaut) | vecteur de caractères | cell array de vecteurs de caractères
Noms des canaux en sortie spécifiés sous l’une des formes suivantes :
Vecteur de caractères pour les modèles à sortie unique.
Cell array de vecteurs de caractères pour les modèles à sorties multiples.
''
, pas de nom spécifié pour les canaux en sortie.
Sinon, vous pouvez attribuer des noms de sortie pour les modèles à sorties multiples au moyen de l'expansion vectorielle automatique. Par exemple, si sys
est un modèle à deux sorties, saisissez ce qui suit :
sys.OutputName = 'measurements';
Les noms de sortie s’étendent automatiquement à {'measurements(1)';'measurements(2)'}
.
Vous pouvez également utiliser la notation abrégée y
pour faire référence à la propriété OutputName
. Par exemple, sys.y
est équivalent à sys.OutputName
.
Utilisez OutputName
pour :
Identifier des canaux sur l’affichage et les tracés du modèle.
Extraire des sous-systèmes de systèmes MIMO.
Spécifier des points de connexion au moment d’interconnecter les modèles.
OutputUnit
— Unités des canaux en sortie
''
(par défaut) | vecteur de caractères | cell array de vecteurs de caractères
Unités des canaux en sortie spécifiées sous l’une des formes suivantes :
Vecteur de caractères pour les modèles à sortie unique.
Cell array de vecteurs de caractères pour les modèles à sorties multiples.
''
, pas d'unité spécifiée pour les canaux en sortie.
Utilisez OutputUnit
pour spécifier les unités des signaux en sortie. OutputUnit
n'a aucune incidence sur le comportement du système.
OutputGroup
— Groupes de canaux en sortie
structure
Groupes de canaux en sortie spécifiés en tant que structure. Utilisez OutputGroup
pour attribuer les canaux en sortie des systèmes MIMO à des groupes et faire référence à chaque groupe par son nom. Les noms des champs de OutputGroup
correspondent aux noms des groupes tandis que les valeurs des champs sont les canaux en sortie pour chaque groupe. Par exemple, créez des groupes de sortie nommés temperature
et measurement
et comprenant respectivement les canaux de sortie 1
, 3
et 5
.
sys.OutputGroup.temperature = [1]; sys.OutputGroup.measurement = [3 5];
Vous pouvez alors extraire le sous-système de toutes les entrées vers les sorties measurement
en utilisant la commande suivante.
sys('measurement',:)
Par défaut, OutputGroup
est une structure dépourvue de champs.
Name
— Nom du système
''
(par défaut) | vecteur de caractères
Nom du système spécifié en tant que vecteur de caractères. Par exemple, 'system_1'
.
Notes
— Texte spécifié par l’utilisateur
{}
(par défaut) | vecteur de caractères | cell array de vecteurs de caractères
Texte spécifié par l’utilisateur, que vous souhaitez associer au système, spécifié en tant que vecteur de caractères ou cell array de vecteurs de caractères. Par exemple, 'System is MIMO'
.
UserData
— Données spécifiées par l’utilisateur
[]
(par défaut) | tout type de données MATLAB®
Données spécifiées par l’utilisateur, que vous souhaitez associer au système, spécifié en tant que type de données MATLAB.
SamplingGrid
— Grille d’échantillonnage pour tableaux de modèles
tableau de structures
Grille d’échantillonnage pour les tableaux de modèles, spécifiés en tant que structure array.
Utilisez SamplingGrid
pour effectuer le suivi des valeurs variables associées à chaque modèle dans un tableau de modèles, y compris les tableaux de modèles linéaires identifiés fixes dans le temps (IDLTI).
Définissez les noms des champs de la structure sur les noms des variables d'échantillonnage. Définissez les valeurs des champs sur les valeurs variables échantillonnées associées à chaque modèle du tableau. Toutes les variables d'échantillonnage doivent être des scalaires numériques et tous les tableaux de valeurs échantillonnées doivent correspondre aux dimensions du tableau de modèles.
Par exemple, vous pouvez créer un tableau 11 par 1 de modèles linéaires, sysarr
, en prenant des snapshots d'un système linéaire variant dans le temps à des moments t = 0:10
. Le code suivant stocke les pas d’échantillonnage avec les modèles linéaires.
sysarr.SamplingGrid = struct('time',0:10)
De la même manière, vous pouvez créer un tableau de modèles 6 par 9, M
, en échantillonnant indépendamment deux variables, zeta
et w
. Le code suivant fait correspondre les valeurs (zeta,w)
à M
.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
Lorsque vous affichez M
, chaque entrée du tableau comprend les valeurs zeta
et w
correspondantes.
M
M(:,:,1,1) [zeta=0.3, w=5] = 25 -------------- s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25 ---------------- s^2 + 3.5 s + 25 ...
Pour les tableaux de modèles générés par linéarisation d'un modèle Simulink® à valeurs de paramètres ou points de fonctionnement multiples, le software remplit automatiquement SamplingGrid
avec les valeurs de variables qui correspondent à chaque entrée du tableau. Par exemple, les commandes Simulink Control Design™ linearize
(Simulink Control Design) et slLinearizer
(Simulink Control Design) remplissent automatiquement SamplingGrid
.
Par défaut, SamplingGrid
est une structure dépourvue de champs.
Fonctions d'objet
Les listes suivantes contiennent un sous-ensemble représentatif des fonctions que vous pouvez utiliser avec les modèles tf
. En règle générale, toute fonction applicable à Modèles de systèmes dynamiques est applicable à un objet tf
.
Analyse linéaire
step | Step response of dynamic system |
impulse | Impulse response plot of dynamic system; impulse response data |
lsim | Plot simulated time response of dynamic system to arbitrary inputs; simulated response data |
bode | Bode plot of frequency response, or magnitude and phase data |
nyquist | Nyquist plot of frequency response |
nichols | Nichols chart of frequency response |
bandwidth | Frequency response bandwidth |
Analyse de stabilité
Transformation des modèles
Interconnexion des modèles
Conception de contrôleurs
pidtune | PID tuning algorithm for linear plant model |
rlocus | Tracé des lieux des racines d’un système dynamique |
lqr | Design d'un régulateur linéaire quadratique (LQR, Linear Quadratic Regulator) |
lqg | Linear-Quadratic-Gaussian (LQG) design |
lqi | Linear-Quadratic-Integral control |
kalman | Design Kalman filter for state estimation |
Exemples
Modèle de fonction de transfert SISO
Pour cet exemple, considérons le modèle de fonction de transfert SISO suivant :
Spécifiez les coefficients du numérateur et du dénominateur classés dans l’ordre des puissances décroissantes de s
, et créez le modèle de fonction de transfert.
numerator = 1; denominator = [2,3,4]; sys = tf(numerator,denominator)
sys = 1 --------------- 2 s^2 + 3 s + 4 Continuous-time transfer function.
Modèle de fonction de transfert SISO en temps discret
Pour cet exemple, considérons le modèle de fonction de transfert SISO en temps discret suivant :
Spécifiez les coefficients du numérateur et du dénominateur classés dans l’ordre des puissances décroissantes de z
, et un pas d’échantillonnage de 0,1 s. Créez le modèle de fonction de transfert en temps discret.
numerator = [2,0]; denominator = [4,0,3,-1]; ts = 0.1; sys = tf(numerator,denominator,ts)
sys = 2 z --------------- 4 z^3 + 3 z - 1 Sample time: 0.1 seconds Discrete-time transfer function.
Fonction de transfert de deuxième ordre issue de l’amortissement et de la fréquence naturelle
Pour cet exemple, considérons un modèle de fonction de transfert qui représente un système de deuxième ordre avec la fréquence naturelle et l’amortissement connus.
Voici la fonction de transfert d’un système de deuxième ordre, exprimée en fonction de son amortissement et de la fréquence naturelle :
Sur la base d'un amortissement = 0,25 et d’une fréquence naturelle = 3 rad/s, créez la fonction de transfert de deuxième ordre.
zeta = 0.25; w0 = 3; numerator = w0^2; denominator = [1,2*zeta*w0,w0^2]; sys = tf(numerator,denominator)
sys = 9 --------------- s^2 + 1.5 s + 9 Continuous-time transfer function.
Examinez la réponse de cette fonction de transfert à une entrée indicielle.
stepplot(sys)
Le tracé indique l’appel en aval attendu d’un système de deuxième ordre avec un faible amortissement.
Modèle de fonction de transfert MIMO en temps discret
Créez une fonction de transfert pour le modèle MIMO en temps discret :
avec un pas d’échantillonnage de ts = 0.2
secondes.
Spécifiez les coefficients du numérateur sous la forme d’une matrice 2 par 2.
numerators = {1 [1 0];[-1 2] 3};
Spécifiez les coefficients du dénominateur commun en tant que vecteur ligne.
denominator = [1 0.3];
Créez le modèle de fonction de transfert MIMO en temps discret.
ts = 0.2; sys = tf(numerators,denominator,ts)
sys = From input 1 to output... 1 1: ------- z + 0.3 -z + 2 2: ------- z + 0.3 From input 2 to output... z 1: ------- z + 0.3 3 2: ------- z + 0.3 Sample time: 0.2 seconds Discrete-time transfer function.
Pour plus d'informations sur la création de fonctions de transfert MIMO, voir Fonctions de transfert MIMO.
Concaténation de fonctions de transfert SISO dans un modèle de fonction de transfert MIMO
Dans cet exemple, vous créez un modèle de fonction de transfert MIMO en concaténant des modèles de fonction de transfert SISO. Considérons la fonction de transfert SISO suivante :
Spécifiez le modèle de fonction de transfert MIMO en concaténant les entrées SISO.
sys1 = tf([1 -1],[1 1]); sys2 = tf([1 2],[1 4 5]); sys = [sys1;sys2]
sys = From input to output... s - 1 1: ----- s + 1 s + 2 2: ------------- s^2 + 4 s + 5 Continuous-time transfer function.
Pour plus d'informations sur la création de fonctions de transfert MIMO, voir Fonctions de transfert MIMO.
Modèle de fonction de transfert utilisant une expression rationnelle
Pour cet exemple, créez un modèle de fonction de transfert en temps continu avec des expressions rationnelles. Il est parfois plus aisé et plus intuitif de recourir à une expression rationnelle plutôt que de spécifier les coefficients polynomiaux du numérateur et du dénominateur.
Considérons le système suivant :
Pour créer le modèle de fonction de transfert, commencez par spécifier s
en tant qu’objet tf
.
s = tf('s')
s = s Continuous-time transfer function.
Créez le modèle de fonction de transfert en utilisant s dans l’expression rationnelle.
sys = s/(s^2 + 2*s + 10)
sys = s -------------- s^2 + 2 s + 10 Continuous-time transfer function.
Modèle de fonction de transfert en temps discret utilisant une expression rationnelle
Pour cet exemple, créez un modèle de fonction de transfert en temps discret au moyen d’une expression rationnelle. Il est parfois plus aisé et plus intuitif de recourir à une expression rationnelle plutôt que de spécifier des coefficients polynomiaux.
Considérons le système suivant :
Pour créer le modèle de fonction de transfert, commencez par spécifier z
en tant qu’objet tf
et le pas d’échantillonnage Ts
.
ts = 0.1;
z = tf('z',ts)
z = z Sample time: 0.1 seconds Discrete-time transfer function.
Créez le modèle de fonction de transfert en utilisant z
dans l’expression rationnelle.
sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys = z - 1 ------------------ z^2 - 1.85 z + 0.9 Sample time: 0.1 seconds Discrete-time transfer function.
Modèle de fonction de transfert aux propriétés héritées
Pour cet exemple, créez un modèle de fonction de transfert avec les propriétés héritées d’un autre modèle du même type. Considérons les deux fonctions de transfert suivantes :
Pour cet exemple, créez sys1
en configurant les propriétés TimeUnit
et InputDelay
en minutes
.
numerator1 = [2,0]; denominator1 = [1,8,0]; sys1 = tf(numerator1,denominator1,'TimeUnit','minutes','InputUnit','minutes')
sys1 = 2 s --------- s^2 + 8 s Continuous-time transfer function.
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
{'minutes'} {'minutes'}
Créez le deuxième modèle de fonction de transfert avec les propriétés héritées de sys1
.
numerator2 = [1,-1]; denominator2 = [7,2,0,0,9]; sys2 = tf(numerator2,denominator2,sys1)
sys2 = s - 1 ----------------- 7 s^4 + 2 s^3 + 9 Continuous-time transfer function.
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
{'minutes'} {'minutes'}
Comme vous pouvez le constater, le modèle de fonction de transfert sys2
comporte les mêmes propriétés que sys1
.
Tableau des modèles de fonction de transfert
Vous pouvez utiliser une boucle for
pour spécifier un tableau de modèles de fonction de transfert.
Commencez par pré-attribuer le tableau des fonctions de transfert avec des zéros.
sys = tf(zeros(1,1,3));
Les deux premiers indices représentent le nombre de sorties et d'entrées pour les modèles, tandis que le troisième indice correspond au nombre de modèles figurant dans le tableau.
Créez le tableau de modèles de fonction de transfert en utilisant une expression rationnelle dans la boucle for
.
s = tf('s'); for k = 1:3 sys(:,:,k) = k/(s^2+s+k); end sys
sys(:,:,1,1) = 1 ----------- s^2 + s + 1 sys(:,:,2,1) = 2 ----------- s^2 + s + 2 sys(:,:,3,1) = 3 ----------- s^2 + s + 3 3x1 array of continuous-time transfer functions.
Conversion d’un modèle de représentation d’état en fonction de transfert
Pour cet exemple, calculez la fonction de transfert du modèle de représentation d’état suivant :
Créez le modèle de représentation d’état au moyen des matrices de représentation d’état.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Convertissez le modèle de représentation d’état ltiSys
en une fonction de transfert.
sys = tf(ltiSys)
sys = From input 1 to output: s ------------- s^2 + 4 s + 5 From input 2 to output: s^2 + 5 s + 8 ------------- s^2 + 4 s + 5 Continuous-time transfer function.
Extraction des fonctions de transfert d’un modèle identifié
Pour cet exemple, extrayez la composante mesurée et la composante de bruit d’un modèle polynomial identifié vers deux fonctions de transfert distinctes.
Chargez le modèle polynomial de Box-Jenkins ltiSys
dans identifiedModel.mat
.
load('identifiedModel.mat','ltiSys');
ltiSys
est un modèle identifié en temps discret du type : où représente la composante mesurée et , la composante de bruit.
Extrayez la composante mesurée et la composante de bruit en tant que fonctions de transfert.
sysMeas = tf(ltiSys,'measured')
sysMeas = From input "u1" to output "y1": -0.1426 z^-1 + 0.1958 z^-2 z^(-2) * ---------------------------- 1 - 1.575 z^-1 + 0.6115 z^-2 Sample time: 0.04 seconds Discrete-time transfer function.
sysNoise = tf(ltiSys,'noise')
sysNoise = From input "v@y1" to output "y1": 0.04556 + 0.03301 z^-1 ---------------------------------------- 1 - 1.026 z^-1 + 0.26 z^-2 - 0.1949 z^-3 Input groups: Name Channels Noise 1 Sample time: 0.04 seconds Discrete-time transfer function.
La composante mesurée peut servir de modèle de système physique tandis que la composante de bruit peut être utilisée en tant que modèle de perturbations pour le design du système de contrôle.
Spécification des noms des entrées et des sorties pour un modèle de fonction de transfert MIMO
Les objets de modèle de fonction de transfert comportent des données de modèle qui vous aident à assurer le suivi de ce que représente le modèle. Par exemple, vous pouvez attribuer des noms aux entrées et sorties de votre modèle.
Considérons le modèle de fonction de transfert MIMO en temps continu suivant :
Le modèle comporte une entrée et deux sorties , le couple et la vitesse angulaire.
Commencez par spécifier les coefficients du numérateur et du dénominateur du modèle.
numerators = {[1 1] ; 1}; denominators = {[1 2 2] ; [1 0]};
Créez le modèle de fonction de transfert en spécifiant le nom de l'entrée et les noms des sorties.
sys = tf(numerators,denominators,'InputName','Current',... 'OutputName',{'Torque' 'Angular Velocity'})
sys = From input "Current" to output... s + 1 Torque: ------------- s^2 + 2 s + 2 1 Angular Velocity: - s Continuous-time transfer function.
Spécification de l’ordre polynomial dans la fonction de transfert en temps discret
Pour cet exemple, spécifiez l’ordre polynomial dans la fonction de transfert en temps discret au moyen de la propriété Variable
.
Considérons les fonctions de transfert en temps discret suivantes avec un pas d’échantillonnage de 0,1 s :
Créez la fonction de transfert en temps discret en spécifiant les coefficients z
.
numerator = [1,0,0]; denominator = [1,2,3]; ts = 0.1; sys1 = tf(numerator,denominator,ts)
sys1 = z^2 ------------- z^2 + 2 z + 3 Sample time: 0.1 seconds Discrete-time transfer function.
Les coefficients de sys1
sont classés dans l’ordre des puissances décroissantes de z
.
tf
change de convention sur la base de la valeur de la propriété Variable
. Étant donné que sys2
est le modèle de fonction de transfert inverse de sys1
, spécifiez Variable
en tant que z^-1
et utilisez les mêmes coefficients pour le numérateur et le dénominateur.
sys2 = tf(numerator,denominator,ts,'Variable','z^-1')
sys2 = 1 ------------------- 1 + 2 z^-1 + 3 z^-2 Sample time: 0.1 seconds Discrete-time transfer function.
Les coefficients de sys2
sont à présent classés dans l’ordre des puissances croissantes de z^-1
.
Sur la base des différentes conventions, vous pouvez spécifier l’ordre polynomial dans les modèles de fonction de transfert au moyen de la propriété Variable
.
Filtre passe-bas réglable
Dans cet exemple, vous allez créer un filtre passe-bas avec un seul paramètre réglable, a :
Étant donné que les coefficients du numérateur et du dénominateur d’un bloc tunableTF
sont indépendants, vous ne pouvez pas utiliser tunableTF
pour représenter F
. Au lieu de cela, construisez F
avec l’objet de paramètre réel réglable realp
.
Créez un paramètre réglable réel avec une valeur initiale de 10
.
a = realp('a',10)
a = Name: 'a' Value: 10 Minimum: -Inf Maximum: Inf Free: 1 Real scalar parameter.
Utilisez tf
pour créer le filtre passe-bas réglable F
.
numerator = a; denominator = [1,a]; F = tf(numerator,denominator)
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 1 states, and the following blocks: a: Scalar parameter, 2 occurrences. Type "ss(F)" to see the current value and "F.Blocks" to interact with the blocks.
F
est un objet genss
doté du paramètre réglable a
dans sa propriété Blocks
. Vous pouvez connecter F
avec d’autres modèles réglables ou numériques afin de créer des modèles de systèmes de contrôle plus complexes. Pour un exemple, voir Control System with Tunable Components.
Modèles de fonction de transfert MIMO à gain statique
Dans cet exemple, vous allez créer un modèle de fonction de transfert MIMO à gain statique.
Considérons la matrice de gain statique suivante à deux entrées et deux sorties m
:
Spécifiez la matrice de gain et créez le modèle de fonction de transfert à gain statique.
m = [2,4;...
3,5];
sys1 = tf(m)
sys1 = From input 1 to output... 1: 2 2: 3 From input 2 to output... 1: 4 2: 5 Static gain.
Vous pouvez utiliser le modèle de fonction de transfert à gain statique sys1
obtenu précédemment et l’organiser en cascade avec un autre modèle de fonction de transfert.
Pour cet exemple, créez un autre modèle de fonction de transfert à deux entrées et deux sorties, et utilisez la fonction series
pour connecter les deux modèles.
numerators = {1,[1,0];[-1,2],3}; denominator = [1,0.3]; ts = 0.2; sys2 = tf(numerators,denominator,ts)
sys2 = From input 1 to output... 1 1: ------- z + 0.3 -z + 2 2: ------- z + 0.3 From input 2 to output... z 1: ------- z + 0.3 3 2: ------- z + 0.3 Sample time: 0.2 seconds Discrete-time transfer function.
sys = series(sys1,sys2)
sys = From input 1 to output... 3 z^2 + 2.9 z + 0.6 1: ------------------- z^2 + 0.6 z + 0.09 -2 z^2 + 12.4 z + 3.9 2: --------------------- z^2 + 0.6 z + 0.09 From input 2 to output... 5 z^2 + 5.5 z + 1.2 1: ------------------- z^2 + 0.6 z + 0.09 -4 z^2 + 21.8 z + 6.9 2: --------------------- z^2 + 0.6 z + 0.09 Sample time: 0.2 seconds Discrete-time transfer function.
Limitations
Les modèles de fonction de transfert sont mal adaptés aux calculs numériques. Une fois créés, convertissez-les en modèles de représentation d’état avant de les associer à d'autres modèles ou de les transformer. Vous pouvez alors reconvertir les modèles obtenus en fonctions de transfert à des fins d’inspection
Un modèle non linéaire identifié ne peut pas être converti directement en modèle de fonction de transfert au moyen de
tf
. Pour obtenir un modèle de fonction de transfert :Convertissez le modèle non linéaire identifié en un modèle LTI identifié au moyen de
linapp
(System Identification Toolbox), deidnlarx/linearize
(System Identification Toolbox) ou deidnlhw/linearize
(System Identification Toolbox).Convertissez ensuite le modèle obtenu en un modèle de fonction de transfert au moyen de
tf
.
Historique des versions
Introduit avant R2006a
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)