add_block
Ajouter des blocs à un modèle
Description
permet de spécifier des options avec un ou plusieurs arguments nom-valeur en plus des arguments en entrée dans la syntaxe précédente. Par exemple, pour ajouter un bloc Gain qui multiplie l’entrée par 5, définissez h
= add_block(___,Name=Value
)Gain
à "5"
.
Exemples
Vous pouvez ajouter un bloc à partir d’une bibliothèque au moyen de la fonction add_block
avec les arguments d’entrée suivants :
Chemin d’accès du bloc de bibliothèque depuis le niveau supérieur de l’arborescence de l’explorateur de bibliothèques jusqu’au bloc de bibliothèque que vous souhaitez ajouter, par exemple
"Simulink/Math Operations/Gain"
Chemin d’accès complet du bloc depuis le niveau supérieur de la hiérarchie du modèle jusqu’à l’endroit où vous souhaitez ajouter le nouveau bloc, par exemple
"myModel/mySubsystem/myblock"
Les deux chemins d’accès doivent se terminer par un nom de bloc.
Dans cet exemple, vous ajoutez un cadran circulaire personnalisable au sous-système Controller
dans le modèle f14
.
Ouvrez l'exemple. Chargez ensuite ou ouvrez le modèle de destination.
open_system("f14")
Supposons que vous ne connaissiez pas le nom exact du bloc nécessaire à la réalisation de cette tâche ou l'emplacement du bloc dans l'arborescence de l'explorateur de bibliothèques. Pour obtenir le chemin d’accès du bloc de bibliothèque, procédez à une recherche par mot clé dans l'explorateur de bibliothèques. Ouvrez l'explorateur de bibliothèques. Dans la zone de recherche, saisissez gauge
, puis appuyez sur Entrée.
Dans les résultats de la recherche, faites une pause sur l'icône du cadran circulaire. Une infobulle indique le chemin d’accès du bloc de bibliothèque.
Ajoutez le bloc Cadran circulaire au sous-système Controller
. Attribuez au bloc le nom myGauge
.
Le chemin d’accès du bloc de bibliothèque est
"simulink_hmi_customizable_blocks/Circular Gauge"
.Le chemin d’accès complet du bloc est
"f14/Controller/myGauge"
.
add_block("simulink_hmi_customizable_blocks/Circular Gauge","f14/Controller/myGauge");
Pour afficher le bloc, dans le modèle f14
, accédez au sous-système Controller
.
open_system("f14/Controller")
Ajouter la copie d’un bloc du modèle f14
au modèle vdp
.
Chargez ou ouvrez le modèle de destination.
open_system("vdp");
Ajoutez le bloc Modèle d'actionneur du modèle f14
au modèle vdp
.
add_block("f14/Actuator Model","vdp/Actuator Model");
Ajouter un bloc Scope de la bibliothèque Simulink® au modèle vdp
. Comme le modèle vdp
contient déjà un bloc nommé Scope, utilisez l’option MakeNameUnique
pour créer un nom unique pour le nouveau bloc.
Chargez ou ouvrez le modèle de destination.
open_system("vdp");
Ajoutez le bloc Scope de la bibliothèque Simulink® Sinks au modèle vdp
. Définissez MakeNameUnique
à "on"
.
add_block("simulink/Sinks/Scope","vdp/Scope",MakeNameUnique="on")
Ajouter un bloc d’une bibliothèque vers un modèle, puis définissez les paramètres au moyen d’un argument nom-valeur.
Chargez ou ouvrez le modèle de destination.
open_system("vdp");
Ajoutez un bloc Gain de la bibliothèque au modèle vdp
. Définissez ensuite la valeur Gain sur 5
.
add_block("simulink/Math Operations/Gain","vdp/Five",Gain="5")
La façon d’ajouter un bloc pour un port dépend de l’objectif visé. Il est possible d’ajouter un bloc pour un port nouveau ou existant. Vous pouvez également dupliquer un bloc qui correspond à un port d’entrée.
Ajouter des blocs pour de nouveaux ports
Créez et ouvrez un modèle nommé PortBlockCreation
.
mdl = "PortBlockCreation";
new_system(mdl);
open_system(mdl);
Pour créer des ports identifiés par leur numéro, ajoutez des blocs In1 et Out1. Par défaut, l’ajout d’un bloc In1 ou Out1 crée un port.
add_block("simulink/Ports & Subsystems/In1",... "PortBlockCreation/In1") add_block("simulink/Ports & Subsystems/Out1",... "PortBlockCreation/Out1")
Pour créer des ports identifiés par leur nom, ajoutez des blocs In Bus Element et Out Bus Element. Par défaut, les nouveaux blocs In Bus Element et Out Bus Element correspondent aux ports respectivement nommés InBus
et OutBus
. Ces ports ont également un numéro. Si vous le souhaitez, spécifiez un nom personnalisé pour le port avec le paramètre de bloc PortName
.
add_block("simulink/Ports & Subsystems/In Bus Element",... "PortBlockCreation/InBusElement") add_block("simulink/Ports & Subsystems/Out Bus Element",... "PortBlockCreation/OutBusElement")
Pour créer un port lorsque vous ajoutez un bloc In Bus Element ou Out Bus Element, définissez CreateNewPort
à "on"
.
add_block("simulink/Ports & Subsystems/In Bus Element",... "PortBlockCreation/InBusElement1",CreateNewPort="on") add_block("simulink/Ports & Subsystems/Out Bus Element",... "PortBlockCreation/OutBusElement1",CreateNewPort="on")
Si vous ne définissez pas CreateNewPort
à "on"
, le comportement varie.
Supposons que vous ayez des ports nommés
InBus
etOutBus
. Le bloc ajouté correspond à l’un de ces ports. Si vous spécifiez un nom de port lorsque vous ajoutez le bloc, le software renomme le portInBus
ouOutBus
avec le nom spécifié.Supposons que vous ayez uniquement des ports portant un nom personnalisé. Le bloc ajouté correspond à un nouveau port. Si vous spécifiez un nom de port lorsque vous ajoutez le bloc, le nouveau port utilise le nom spécifié.
Ajouter des blocs pour de nouveaux éléments de port
Les blocs In Bus Element et Out Bus Element permettent de sélectionner plusieurs éléments d’un port d’entrée et de connecter plusieurs éléments à un port de sortie.
Pour ajouter un élément à un bloc In Bus Element, copiez un bloc existant qui correspond au port et spécifiez un nom unique pour le nouvel élément.
add_block("PortBlockCreation/InBusElement",... "PortBlockCreation/InBusElement2",Element="signal2")
Pour ajouter un élément à un bloc Out Bus Element, copiez un bloc existant qui correspond au port. Si vous le souhaitez, spécifiez un nom d’élément unique.
add_block("PortBlockCreation/OutBusElement",... "PortBlockCreation/OutBusElement2")
Dupliquer des blocs pour les ports d’entrée
Plusieurs blocs d’un schéma bloc peuvent utiliser la même entrée d’un port d’entrée. La duplication d’un bloc qui correspond à un port d’entrée peut simplifier le routage de ligne.
Pour dupliquer un bloc In1, copiez-le à partir du schéma bloc et définissez CopyOption
à "duplicate"
.
add_block("PortBlockCreation/In1",... "PortBlockCreation/In1Dup",CopyOption="duplicate")
Pour dupliquer un bloc In Bus Element, copiez-le.
add_block("PortBlockCreation/InBusElement",... "PortBlockCreation/InBusElementDup")
Les blocs dupliqués utilisent le même numéro de port que ceux d’origine. Pour les ports basés sur le nom, le bloc sélectionne le même élément du même port que le bloc d’origine.
Arguments d'entrée
Bloc à copier, indiqué sous la forme du chemin d’accès du bloc. Pour plus d’informations sur les chemins d’accès des blocs, consultez Get Handles and Paths.
Pour copier un bloc à partir d’un modèle, spécifiez le chemin d’accès du bloc. Le nouveau bloc a les mêmes paramètres de configuration.
Exemple : add_block("vdp/Mu","mymodel/Mu")
Pour copier un bloc à partir d’une bibliothèque, spécifiez le chemin d’accès du bloc de bibliothèque. Pour obtenir le chemin d’accès du bloc de bibliothèque, passez le curseur sur le bloc dans l’explorateur de bibliothèques. Vous pouvez également ouvrir la bibliothèque, sélectionner le bloc puis saisir gcb
sur la ligne de commande. Pour ouvrir la bibliothèque, dans Library Browser, faites un clic droit sur son nom dans la liste des bibliothèques et sélectionnez Open library_name
library.
Exemple : add_block("simulink/Math Operations/Gain","mymodel/Gain")
Pour créer un bloc d’un certain type, spécifiez le type de bloc avec 'built-in/
, où blocktype
'
est le nom programmatique du bloc. Pour obtenir la valeur du paramètre blocktype
BlockType
d’un bloc, consultez Common Block Properties. Les blocs ajoutés avec 'built-in/
peuvent avoir une configuration différente de celle des blocs de bibliothèque.blocktype
'
Exemple : add_block("built-in/Gain","mymodel/Gain")
Plusieurs blocs de bibliothèque ont SubSystem
comme BlockType
. Lorsque vous spécifiez un bloc source avec "built-in/SubSystem"
, le nouveau bloc représente un sous-système avec une entrée et une sortie. Pour les autres sous-systèmes et les blocs masqués, utilisez le chemin d’accès du bloc de bibliothèque au lieu de la valeur BlockType
.
Nom et emplacement du nouveau bloc, indiqués sous la forme du chemin d’accès du bloc.
Exemple : add_block("simulink/Math Operations/Gain","f14/Controller/MyNewBlock")
Arguments nom-valeur
Spécifiez des paires d’arguments facultatifs avec Name1=Value1,...,NameN=ValueN
, où Name
est le nom de l’argument et Value
est la valeur correspondante. Les arguments nom-valeur doivent figurer avant les autres arguments mais l’ordre des paires n’a pas d’importance.
Exemple : add_block("simulink/Math Operations/Gain","mymodel/Gain",Gain="5")
ajoute un bloc Gain qui multiplie l’entrée par 5.
Pour la fonction add_block
, spécifiez les valeurs des paramètres et des propriétés du bloc sous forme d’arguments nom-valeur. Pour plus d’informations sur les paramètres et les propriétés des blocs, consultez Programmatically Specify Block Parameters and Properties.
Nom de bloc unique, spécifié comme "off"
ou "on"
.
Pour créer un nom unique pour le bloc ajouté, définissez MakeNameUnique
à "on"
. Si le nom de bloc spécifié existe déjà, le software ajoute un nombre à la fin du nom ou incrémente le nombre déjà présent.
Exemple : add_block("simulink/Math Operations/Gain","mymodel/Gain",MakeNameUnique="on")
Option de copie, spécifiée comme ""
, "nolink"
ou "duplicate"
.
"nolink"
: aucun lien n’est créé entre le nouveau bloc et la bibliothèque personnalisée qui contient le bloc source."duplicate"
: le nouveau bloc duplique un bloc de port d’entrée et a le même numéro de port que le bloc source. Pour raccorder un signal à partir d’un port d’entrée sans créer de port ni ajouter de lignes, dupliquez le bloc qui correspond au port d’entrée. Pour plus d’informations, consultez Create Duplicate Inport Blocks.
Exemple : add_block("myLibrary/CustomBlock","myModel/CustomBlock",CopyOption="nolink")
Exemple : add_block("myModel/mySubsystem/Inport","myModel/mySubsystem/InportDup",CopyOption="duplicate")
Nouveau port d’élément de bus, spécifié comme "off"
ou "on"
. Le bloc source doit être un bloc In Bus Element ou Out Bus Element.
Pour ajouter un bloc pour un nouveau port, définissez CreateNewPort
à "on"
. Si vous le souhaitez, spécifiez le nom du nouveau port avec le paramètre PortName
. Par défaut, le nom du nouveau port se compose du nom de port du bloc copié et d’un nombre. Si le nom de port du bloc copié se termine déjà par un nombre, ce dernier est incrémenté de manière à être unique.
La définition de CreateNewPort
à "off"
n’empêche pas la création du port. Par exemple, le premier bloc In Bus Element ou Out Bus Element que vous ajoutez à votre modèle crée un port. L’ajout d’un bloc en spécifiant un nom de port unique avec PortName
peut également créer un port.
Lorsque vous définissez CreateNewPort
à "off"
, vous autorisez le bloc ajouté à correspondre à un port existant. Par exemple, lorsque vous copiez un bloc In Bus Element ou Out Bus Element à partir de votre modèle, vous pouvez faire en sorte que le nouveau bloc représente un nouvel élément du port en spécifiant le nom de l’élément avec le paramètre Element
.
Pour plus d’informations sur la création de ports d’éléments de bus de manière programmatique, consultez Programmatically Create Bus Element Ports.
Exemple : add_block("simulink/Ports & Subsystems/In Bus Element","myModel/InBusElement1",CreateNewPort="on")
Arguments en sortie
Nouveau bloc retourné en tant que handle.
Pour plus d’informations sur les handles de bloc, consultez Get Handles and Paths.
Conseils
Pour éviter que des blocs ne se chevauchent, spécifiez la position du nouveau bloc avec la propriété de bloc Position
. Pour plus d’informations, consultez Programmatically Specify Block Parameters and Properties.
Historique des versions
Introduit avant R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- 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)