MATLAB: Quand la cellule Simulink.Bus.object a-t-elle changé

J’ai un script qui analyse un signal de bus Simulink. J’utilise Simulink.Bus.objectToCell pour obtenir les informations sur les signaux uniques dans le bus. Malheureusement, quelque part entre R2007b et R2012b, le tableau de cellules renvoyé a changé. Dans R2007b, les éléments uniques étaient à l’index de cellule 4, tandis que dans R2012b, les éléments de cellule ont deux nouveaux champs « étendue de données » et « alignement », et les éléments uniques sont à l’index de cellule 6. Comme mon script doit fonctionner avec n’importe quel Matlab version à partir de 2007b, est-ce que quelqu’un sait à quelle version exactement le changement a été introduit? Je n’ai pas les versions entre R2007b et R2012b, et je n’ai trouvé aucune information à ce sujet dans les notes de version officielles.

Meilleure réponse

  • J’ai trouvé quelqu’un sur lequel les versions pertinentes de Matlab ont été installées. Voici donc la réponse:
    – Jusqu’au R2010b, les cellules avaient 4 champs: Nom, fichier d’en-tête, description, éléments de bus.
    – Dans R2011a, les cellules avaient 5 champs: nom, fichier d’en-tête, description, étendue des données, éléments de bus.
    – De R2011b à aujourd’hui (R2016a), les cellules ont 6 champs: Nom, fichier d’en-tête, description, étendue des données, alignement, éléments de bus.
  • MATLAB: sortie de simulation Simulink à zéro seconde de doute

    J’ai fait le modèle simulink suivant. L’un avec l’addition directe de blocs constants et l’autre avec un délai unitaire entre les deux. Dans le premier cas, la sortie (2) est disponible dans la 0e seconde, mais le bloc avec retard unitaire la sortie est disponible à 0,2 seconde, mais je m’attendais à 1 à 0e seconde. pourquoi il n’y a pas de sortie à la 0e seconde. Veuillez aider. Je suis un débutant.

    Meilleure réponse

  • J’ai exécuté votre modèle et il montre la valeur 1 à 0 sec. De plus, la sortie est toujours disponible, même lorsqu’elle est égale à 0. Zéro est une valeur.
  • MATLAB: insertion de bloc automatisée pour les modèles Simulink via console ou api

    Salut,
    est-il possible d’insérer un bloc dans un modèle simulink sans ouvrir matlab et utiliser l’interface graphique simulink? J’ai différents modèles et je veux insérer mon bloc fonction s dans le modèle et le placer «  entre  » deux blocs existants, c’est-à-dire que je veux l’insérer dans le flux de données entre ces deux blocs. Le bloc fonction s est censé alimenter les données pendant la simulation et envoyer un «ping» lorsque le code généré est exécuté sur mon matériel. Existe-t-il une sorte d’interface pour simulink pour manipuler des modèles afin que je puisse automatiser l’insertion de bloc?
    Je vous remercie! À la vôtre, Jens

    Meilleure réponse

  • Salut,
    regardez add_block:
    http://www.mathworks.com/help/releases/R2011b/toolbox/simulink/slref/add_block.html
  • MATLAB: J’utilise matlab au travail. Dois-je associer cette licence à ce compte pour obtenir de l’aide, poser des questions, participer au wiki, etc.

    J’utilise matlab au travail. 1) Dois-je associer cette licence à ce compte pour le support, poser des questions, participer au wiki, etc.? 2) Existe-t-il des nuances selon que la licence est flottante ou verrouillée sur un nœud?

    Meilleure réponse

  • Bien sûr, pourquoi pas?
    L’association d’une licence fait trois choses:
    1) Détermine la documentation que vous avez le droit de voir, en fonction de l’état de votre maintenance logicielle (les personnes dont la maintenance a expiré peuvent ne pas avoir accès à la documentation des versions précédentes; les personnes qui n’ont pas acheté certains produits peuvent ne pas voir leur documentation)
    2) Il associe le compte à un contrat de support, ce qui lui permet potentiellement d’être utilisé pour ouvrir des cas de support technique (si l’utilisateur est autorisé par les administrateurs de licence)
    3) Il permet de contrôler les licences, telles que l’autorisation et la suppression de l’autorisation des ordinateurs, si l’utilisateur est l’un des administrateurs de licence
    Cela ne fait aucune différence de poser des questions sur les réponses MATLAB, de publier dans le groupe de discussion ou de participer au Wiki.
    La seule nuance concernant le type de licence est qu’avec les licences flottantes, il devient moins probable que vous soyez un administrateur autorisé pour la licence afin d’accéder au support technique ou au centre de licence.
  • MATLAB: Quel est le problème avec la deuxième boucle ‘IF’? Le programme se termine après être entré dans la boucle.

    Je peux entrer dans le deuxième « IF » mais le programme simulink se termine après l’exécution des lignes dans la deuxième condition « IF ». Simulink s’exécute pendant le temps requis sans la deuxième condition « IF ».
     

    function [Out] = LMAImplementation_Motor(In)
    persistent eWithNoChange eWithDeltaL eWithDeltaK
    e = In(1);
    L = In(2);
    K = In(3);
    Clock = In(4);
    if (0.0000 <= Clock) && (Clock <= 0.9999)
    deltaK = 0; deltaL = 0;
    eWithNoChange(end+1) = e;
    [m,n] = size(eWithNoChange);
    end
    if n == 30001 %THIS LINE WAS BOLD
    eWithNoChange(:,1) = [];
    sizeofeWithNoChange = size(eWithNoChange)
    end
    if (1.0000 <= Clock) && (Clock <= 1.9999)
    deltaL = L*0.1; deltaK = 0;
    eWithDeltaL(end+1) = e;
    end
    Out = [deltaL,deltaK,Clock];

     

    MATLAB: modification inconnue du résultat sur le bloc d’ajout

    Salut,
    J’utilise un modèle relativement simple qui comporte quatre cas, dont un ne sera vrai que tous les autres. Lorsque le cas est faux, il renvoie une valeur nulle. Ces quatre cas sont connectés à un bloc ADD afin que la réponse, qui provient du seul vrai cas et soit non nulle.
    Le problème que j’ai, c’est que le résultat d’un cas vrai change d’un côté du bloc d’ajout à l’autre sans raison apparente!
    Quelqu’un a-t-il déjà rencontré ce problème ou sait-il comment le résoudre?
    Merci d’avance, Sean

    Meilleure réponse

  • Cela peut sembler être un problème numérique lié au type de données de signal / au paramètre de type de données de bloc. Par exemple. le bloc d’ajout peut être défini sur un arrondi ou le bloc fonctionne de manière inattendue lorsque vous entrez logique.
    Vous pouvez également envisager d’utiliser les blocs appropriés de la bibliothèque « Logic and Bit Operations » au lieu du bloc add.
  • MATLAB: Harmoniques dans les caractéristiques de couple lors du contrôle de la vitesse par le contrôleur de réseau Neural

    J’ai développé un modèle dynamique d’entraînement de moteur à induction avec le modèle d-q et analysé les performances de l’entraînement de moteur à induction en utilisant un contrôleur conventionnel, flou, adaptatif flou et Neuro. J’obtiens de bons résultats avec le flou conventionnel, flou et adaptatif. Mais avec le contrôleur Neuro, j’obtiens des distorsions / harmoniques en couple et en forme d’onde de courant après 2,5 secondes. J’ai utilisé un réseau à deux couches. Veuillez fournir la solution.

    Meilleure réponse

  • Tout le monde peut aider
  • MATLAB: Comment définir des paramètres dans le bloc fonction MATLAB dans Simulink

    J’ai un modèle Simulink vierge et je veux placer un bloc fonction MATLAB et pouvoir y éditer les paramètres via Simulink.
    Comment fait-on ça?

    Meilleure réponse

  • Dans le modèle Simulink, placez un bloc fonction MATLAB.
    Double-cliquez dessus pour ouvrir la fonction dans MATLAB Editor et ajouter des paramètres supplémentaires, par ex. « param1 » à la signature de la fonction. Ensuite, dans l’onglet Editeur sous le sous-onglet Simulink, cliquez sur « Modifier les données » afin d’ouvrir le gestionnaire de ports et de données. Cliquez sur le nouveau paramètre, et dans l’onglet Général changez la portée pour être « Paramètre », et cliquez sur « Appliquer » pour l’enregistrer
    Then back in Simulink right click Mask > Create Mask, open « Parameters & Dialog » tab. On the left pane it shows « Controls », choose « Edit » control and drag it to « Dialog box » in the middle pane.
    Remplacez le nom de ce contrôle par le nom du paramètre, par ex. « param1 ». Définissez ensuite la valeur par défaut et l’invite, par ex. 1 et « Paramètre 1 ». Cliquez sur « OK » en bas de la fenêtre pour enregistrer ce masque.
    Maintenant, si vous double-cliquez sur le bloc Fonction, cela permettra de changer la valeur par défaut du paramètre utilisé dans le bloc. Vous pouvez revenir au code source du bloc en cliquant sur la flèche dans le coin inférieur gauche, si vous souhaitez apporter d’autres modifications à la fonction elle-même.
    Pour plus d’informations sur l’ajout d’arguments de paramètres, consultez la page de documentation dans https://www.mathworks.com/help/simulink/ug/parameter-arguments-in-matlab-function-block-functions.html.
    Un exemple « function_block_parameters.slx » a été joint à cette réponse et la capture d’écran du modèle est présentée ci-dessous.
  • MATLAB: importer des données dans un modèle Simulink autonome

    Salut! Savez-vous comment je peux importer des données dans un modèle Simulink autonome (c’est-à-dire compilé avec Simulink Coder) par ex. à partir d’un fichier TXT ou MAT?
    J’ai essayé de le faire, mais Simulink Coder semble incorporer les données dans le modèle et la même sortie est toujours donnée même si le fichier TXT / MAT d’entrée est modifié (même supprimé).
    Toute aide serait appréciée.
    Merci, Ioannis

    Meilleure réponse

  • Bonjour Sarris,
    L’exemple de documentation iciénumère les étapes d’importation d’un fichier MAT pour des simulations rapides.
    En outre, vous pouvez également importer des paramètres à partir d’une structure de données, comme indiqué dans l’exemple sur ce page de documentation.
    Cordialement,
    Sainath.
  • MATLAB: Boîte à outils de partage (fonctions intégrées) avec deux versions différentes de Matlab

    Bonjour,
    J’ai accès à deux versions différentes de Matlab. J’ai besoin d’utiliser la boîte à outils d’optimisation dans Simulink. Le problème est que la version de Matlab qui a Simulink ne comprend pas de boîte à outils d’optimisation. Celui qui inclut la boîte à outils d’optimisation n’a pas installé Simulink. Je me demandais s’il y avait un moyen d’utiliser la boîte à outils d’optimisation d’une version de Matlab d’une autre. Je suis particulièrement intéressé par l’utilisation des fonctions « lsqnonneg () » et « lsqnonlin () » de la boîte à outils d’optimisation de Simulink. Merci d’avance.
    Ernur

    Meilleure réponse

  • You can run one Matlab version as an automation server, such that it can controlled remotely from the other version. See in the docs: External interface->MATLAB COM Automation server support and MATLAB COM client support.