Bojour,
j'aimerai savoir comment afficher une fonction de transfert dans mon
interface. J'ai beaucoup cherché, mais enfin rien.
j'ai essayé printsys, elle donne pas de résultat
SVP aidez-moi j'en ai vraiment besoin
merci d'avance
Bojour,
j'aimerai savoir comment afficher une fonction de transfert dans mon
interface. J'ai beaucoup cherché, mais enfin rien.
j'ai essayé printsys, elle donne pas de résultat
SVP aidez-moi j'en ai vraiment besoin
merci d'avance
Bonjour,
Pourrais-tu nous montrer ce que tu as codé et nous expliquer plus précisément ce qui te pose problème?
Bonne journée,
Duf
Simulink & Embedded Coder
Au boulot : Windows 7 , MATLAB r2016b
A la maison : ArchLinux mais pas MATLAB
La fonction que tu cherche à afficher, sous forme de graphe ou chiffre ou comment ?
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
Bonjour.
Qu'as-tu mis dans printsys ?
Un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 proc=tf([1],[5,1]) printsys(proc.num{1},proc.den{1})
Bonjou r,
mon code sert à définir une fonction de transfert par la fonction tf et j'utilise un bouton poussoir pour l'afficher dans une zone de texte!!! c'est par le choix de l'utilisateur et si ce possible de la modifie depuis cette zone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 h=tf(1,conv([1.5 1],[0.7 1])); setappdata(0,'me',h); . . function pushbutton1_Callback(hObject, eventdata, handles) mans(hObject,handles); h=getappdata(0,'me'); set(handles.text1,'string',h)je veux l'afficher sous cette forme:Envoyé par MATLAB
je me demande alors comment l'afficher et si ce possible comment l'éditer depuis cette zoneTransfer function:
1
--------------------
1.05 s^2 + 2.2 s + 1
merci d'avance
Bonjour.
Un premier pas :
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function pushbutton1_Callback(hObject, eventdata, handles) h=tf(1,conv([1.5 1],[0.7 1])); b=h.num{1}; a=h.den{1}; set(handles.Ftext,'string',['FT : den : ' num2str(b(1:3)) ' num : ' num2str(a(1:3))]);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function pushbutton1_Callback(hObject, eventdata, handles) h=tf([1 2],[1 1 10]); b=num2str(h.num{1}); a=num2str(h.den{1}); set(handles.Ftext,'String',['FT : ' '[' b ']' ' / ' '[' a ']'])
Bonjour.
Question particulièrement difficile à résoudre. Une solution :comment l'afficher et si ce possible comment l'éditer depuis cette zone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function pushbutton1_Callback(hObject, eventdata, handles) h=tf([1 2],[1 1 0]); [num1,den1] = tfdata(h) [snum,dlen] = poly2str(num1{1},'s'); [sden,dlen] = poly2str(den1{1},'s'); ft1(1)={'Fonction de transfert : '}; ft1(2)={snum}; ft1(3)={'-----------'}; ft1(4)={sden}; set(handles.Ftext,'String', ft1)
Bonjour
merci pour la réponse, j'ai utilisé le même principe mais je cherche une solution meilleur car ma fonction de transfert est variable et d'ou l'utilisation d'un trait statique me pose problème, j'ai essayé de le dimensionner dynamiquement et je croix que c'est pas pratique
ce une faille de matlab ou quoi?!!!
est ce qu'on peut ajouter une fonction à matlab qui fait ce travail?
Une version un peu plus optimisée au niveau de l'affichage :
A tester car je ne dispose pas des fonctions nécessaires pour faire les tests moi-même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 function pushbutton1_Callback(hObject, eventdata, handles) h = tf([1 2],[1 1 0]); [num1,den1] = tfdata(h); snum = poly2str(num1{1},'s'); sden = poly2str(den1{1},'s'); [nchar,idx] = max([numel(snum) numel(sden)]); ft1{1} = 'Fonction de transfert : '; ft1{3} = repmat('-',1,nchar); if idx == 1 ft1{2} = snum; nspaces = ceil((nchar-numel(sden))/2); ft1{4} = [repmat(' ',1,nspaces) sden]; else ft1{4} = sden; nspaces = ceil((nchar-numel(snum))/2); ft1{2} = [repmat(' ',1,nspaces) snum]; end set(handles.Ftext,'String', ft1)
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonjour.
C'est bon Dut.
Je ferais le trait un peu plus long :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ft1{3} = repmat('-',1,nchar+10);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager