2010-11-23 7 views
1

Ich bin nicht sicher, ob ich hier eine solche Frage stellen können, da diese mit Kontrolle und Design zu tun hat ..Verwenden Sie MATLAB, um eine Reaktion eines geschlossenen Systems auf einen Schritteingang oder eine Einheitsrampe aufzuzeichnen?

Wie auch immer, im Versuch, eine Antwort von Closed-Loop-System zu einer Einheit Rampe und Schritt-Eingabe mit Matlab zum Plotten , aber im nicht sicher, wie dies getan zu bekommen ..

Meine Übertragungsfunktion ist: G = 13/(s * (n + 3) * (n + 1)) und K = 8

Irgendwelche Ideen ?

danke!

Antwort

2

Angenommen, Sie haben die Steuerungssystem-Toolbox. Machen wir es für G (s) = 1/(s + 1).

G = tf(1, [1 1]); 
CL = feedback(G, 1); 
step(CL) % Step response 
t = 0:.01:5; 
lsim(CL,t,t) % Ramp response 

Für Ihr Beispiel alles, was Sie ändern müssen, ist die defininition von G (Hilfe tf für die Details), und vielleicht die Zeit Vektor t wollen den Zeitbereich Sie einstellen.

+0

Vielen Dank für Ihre Antwort! – NLed

+0

Hmm Ich fragte den Vortragenden heute, und er sagte, dass die Verwendung von lsim der richtige Weg ist. Er sagte, dass G/(1 + K * G) falsch ist, da der Vorwärtspfad GK enthalten muss, also verwende ich besser Feedback (G * K, 1) und schreite dann stattdessen diese Antwort ... Danke Alejandro! – NLed

+0

Entschuldigung für die Irreführung; Ich nahm an, dass Sie, wenn Sie G und K separat geliefert haben, K ohne Rückfrage im Feedback-Pfad waren. :) Natürlich wird CL = (G * K/(1 + G * K)) immer noch funktionieren! – kwantam

2

Die Steuerungssystem-Toolbox ist noch bequemer als Alejandro Sie glauben gemacht hat!

s = tf('s'); 
K = 8; 
G = 13/(s*(s+3)*(s+1)); 
CL = G/(1+K*G); 
step(CL); % step response 
step(CL/s); % ramp response 

Denken Sie daran, dass die Rampenantwort das Integral der Sprungantwort ist. Sie können also die Sprungantwort mit 1/s multiplizieren und erhalten die Rampe.

+0

Das ist genau das, was ich brauchte, danke !! – NLed

+0

Danke für die zusätzliche Erklärung :) – NLed

Verwandte Themen