WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Uebertragungsfunktion auf GUI ausgeben

 

A_MAT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 11:25     Titel: Uebertragungsfunktion auf GUI ausgeben
  Antworten mit Zitat      
Hallo

ich bin MATLAB-Anfaenger und habe ein GUI erstellt, leider funktioniert es nicht vollstaendig.

Code:
Code:

% --- Executes on button press in start.
function start_Callback(hObject, eventdata, handles)
% hObject    handle to start (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

Ks = str2num (get(handles.Ks,'String'));
Tu = str2num (get(handles.Tu,'String'));
Tg = str2num (get(handles.Tg,'String'));

k = Tu/Tg;
a = 0;
i = 1;

if (k>=0&k<=0.104)


for a=0.001:0.01:1
   
    % Array der Werte Alpha = Ts1/Ts2
    VektTU_TG(1,i) = a;
   
    % Array der Werte Tu/Tg
    VektTU_TG(2,i) = ((a^(a/(1-a)))*(a*log(a)+a^2-1)/(a-1))-1;
   
    % Array der Werte TG/Ts1
    VektTU_TG(3,i) = (a^(a/(a-1)));
    i=i+1;
end;

a = 0.001;
i = 1;

while (1),
    if (VektTU_TG(2,i)< k)
        i = i+1;
    else
        Tu_TG = VektTU_TG(2,i);
        TG_TS1 = VektTU_TG(3,i);
        alpha = VektTU_TG(1,i);
        break;
    end
end

Ts1 = Tg/(TG_TS1);
Ts2 = alpha*Ts1;

set(handles.eKs,'String',num2str(Ks));
set(handles.alpha,'String',num2str(alpha));
set(handles.Ts1,'String',num2str(Ts1));
set(handles.Ts2,'String',num2str(Ts2));

if (Tg/Tu > 10)
      set(handles.meldung,'String','Regelstecke ist gut regelbar');
elseif (3<=Tg/Tu>=10)
      set(handles.meldung,'String','Regelstecke ist noch regelbar');
else
      set(handles.meldung,'String','Regelstrecke ist schwer regelbar');
end

Strejc_A = zpk([], [-1/Ts1 -1/Ts2], Ks);

axes(handles.axes1)
step(Strejc_A)
title('Strecke')
grid on


else
    set(handles.meldung,'String','Ihr Verhaeltnis Tu/Tg ist nicht Zulaessig');
    return;
end
 


Es funktioniert alles bis auf die grafische Ausgabe der Uebertragungsfunktion. Ich weis aber nicht wo der Fehler liegt.

edit by steve: Code-Umgebung ergänzt. Bitte selbstständig dran denken!


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 11:57     Titel:
  Antworten mit Zitat      
Hallo,

ich kenn mich leider mit Regelungen überhaupt nicht aus. Sind die Werte deines Modells plausibel? Was passiert wenn du einfach ein "plot(rand(10))" an der Stelle von "step(...)" einfügst? Wird der Titel und das Grid gesetzt?

Was gibt "handles.meldung" aus?

Wird die IF-Abweisung "if (k>=0&k<=0.104)" erfolgreich ausgeführt?

Ist
Code:
for a=0.001:0.01:1

% Array der Werte Alpha = Ts1/Ts2
VektTU_TG(1,i) = a;

% Array der Werte Tu/Tg
VektTU_TG(2,i) = ((a^(a/(1-a)))*(a*log(a)+a^2-1)/(a-1))-1;

% Array der Werte TG/Ts1
VektTU_TG(3,i) = (a^(a/(a-1)));
i=i+1;
end;
so richtig? Oder müsste da überall a(i) anstelle von a stehen? (Die Schleife macht sonst wenig Sinn).

Ich glaube dass die Zeile
Code:
elseif (3<=Tg/Tu>=10)
fehlerhaft ist (ich denke mal dass soll
Code:
elseif (3<=Tg/Tu<=10)
heissen.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
A_MAT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 12:44     Titel:
  Antworten mit Zitat      
Danke fuer deine Antwort dib0r

In den Programm funktioniert alles bis auf die grafische Ausgabe der Uebertragungsfunktion.

handles.meldung gibt nur eine einfache Fehlermeldung aus, wenn k>=0&k<=0.104 nicht erfuellt ist.

Der Fehler muss an step(Strejc_A) liegen. (Dort bekomme ich beim ausfueren des GUI auch einen Fehler)

Ich weis aber nicht wie ich die Uebertragungsfunktion anders auf das GUI ausgeben soll.

Titel und das Grid werden auch nicht gesetzt.

MfG
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 13:40     Titel:
  Antworten mit Zitat      
Hallo,

welche Fehlermeldung erhälst du denn?

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
A_MAT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 14:18     Titel:
  Antworten mit Zitat      
Ich erhalte folgende Fehlermeldung


??? Error using ==> uicontextmenu
Bad value for uicontextmenu property: 'Parent'.

Error in ==> Strecke>start_Callback at 302
step(Strejc_A)

Error in ==> gui_mainfcn at 75
feval(varargin{:});

Error in ==> Strecke at 44
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

MfG
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 15:27     Titel:
  Antworten mit Zitat      
Hallo,

was passiert wenn du vor
Code:
Strejc_A = zpk([], [-1/Ts1 -1/Ts2], Ks);
Folgendes ausführst?
Code:
Ts1 = 10;
Ts2 = 20;
Ks = 100;
Funktioniert es dann?

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
A_MAT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2008, 09:43     Titel:
  Antworten mit Zitat      
Hallo

wenn ich das mache bekomme ich die gleiche Fehlermeldung.
Aber wenn ich step(Strejc_A) mit % auskommentiere bekomme ich immerhin den Grid, die Achsenwerte und den Titel ausgegeben.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.