Hi, ich habe eine Übertragungsfunktion in ZPK-Darstellung in der Form (1-exp(-a*s))/(1-exp(-b*s)) und würde diese gerne in Matlab eingeben. Matlab verweigert dies jedoch und verweist mich auf die SS-Darstellung, die der Darstellung im Zustandsraum entspricht. Nun würde ich meiner Gleichung also gerne umformen. Blöderweise finde ich dafür keine Literatur. Weiß da wer weiter, bzw. kennt einen Trick wie ich die Gleichung für Matlabs ZPK-Darstellung umformen kann? gruß Marcel
Hm, ich weiß nicht, ob sich Totzeitglieder und Zustandsraumdarstellung vertragen....
Für Totzeitglieder gibt es in Matlab einen gesonderten Block (in Simulink) bzw eine gesonderte Funktion
In Simulink ist das einfach der delay Block. In Matlab direkt kannst du das z.B. so realisieren: %Totzeit von 0.5s in sys1 set(sys1,’iodelaymatrix’,0.5); %Totzeit von 4 Abtastschritten in sys2d set(sys2d,’iodelaymatrix’,4); oder eben: systot=zpk(0.5,[-1,-2],2.5,’iodelaymatrix’,0.75); systotd=zpk(0.5,[-1,-2],2.5,4,’iodelaymatrix’,2); Achtung, im zeitdiskreten Fall ist die Totzeit die Anzahl der Abtastschritte - also auch bei Simulink!!!
Die Eingabe der Totzeit ist ansich kein Problem. Vielmehr verzweifel ich daran, wie ich meine Gleichung eingeben soll, da dort zwei Totzeiten dividiert werden. Gebe ich beide Gleichungen einzeln ein und dividiere sie anschließend, verweigert dies Matlab mit der Meldung, das das System dann nichtmehr Kausal wäre. Gehe ich hin und erstelle mir zunächst ein s mittels s=zpk('s'); und gebe die Gleichung anschließend in algebraischer Form ein, verweist mich Matlab auf die Zustandsraumdarstellung.
Matlab hat damit ja auch völlig recht. Die Gleichung als solche ist nicht gerade sinnvoll. Wo kommt die denn her? Was beschreibt diese? Woher kommt die Totzeit im Nenner?
Die leite ich als Übertragungsfunktion her. Ich habe ein System, das auf eine Anregung eines Impulses mit einer Impulsbreite von 0 bis t1, ein für die Zeitdauer von 0 bis t2, abfallendes Exponentialsignal erzeugt. Beide Signale habe ich zur Beschreibung mittels Laplacetransformion transformiert und anschließend gemäß Definition der Übertragungsfunktion dividiert. Exponentialsignal: G1 = a/(s+b)*(1-exp(-(b+s)*t1)) Rechtecksignal: G2 = d/s * (1-exp(t2*s))
Zeig mal bitte jeweils ein Bild deiner Signale. Ich denke du hast eher einen Fehler bei der Identifikation deiner Signale. Also bitte mehr Informationen... PS: Aus der Sprungantwort folgt direkt die Übergangsfunktion und daraus die Übertragungsfunktion. http://de.wikipedia.org/wiki/Sprungantwort Das heißt, dass dein Rechtecksignal auch falsch ist und die Division erst recht. Natürlich nur in der Annahme, das dein Rechtecksignal ein Sprung ist. Das sehe ich erst aus den hoffentlich bald folgenden Bildern.
Für die Art der Signale, siehe Anhang. Reaktionen auf andere Testsignale kenne ich leider nicht und können derzeit auch nicht getestet werden.
Was ist jetzt was? Wenn ich jetzt mal davon ausgehe, das blau der Einheitssprung von 50s (ich nehme mal an es ist eine Zeitachse in Sekunden) ist und grün die Reaktion des Systems darauf ist, dann fällt schon mal auf, dass das System auf den negativen Sprung nicht reagiert, was ich für sehr fragwürdig halte. Ich denke eher, dass du die Signale "zusammen kopiert" hast. Was hier benötigt wird, ist die exakte Darstellung beider Signale (Ein- und Ausgangssignal) in der richtigen zeitlichen Anordnung. Zudem fällt auf, dass der Einheitssprung viel zu kurz ist. Das System scheint ja extrem träge zu sein. Soll heißen, der Einheitssprung darf erst wieder "weggenommen" werden, wenn keine markante Reaktion mehr vom System kommt. Du musst dem System ja schließlich Zeit geben in den Endwert zu laufen.
Ich glaube du hast mich missverstanden, da niemals von einem Einheitssprung geredet habe. Die Signale habe ich mir nur zusammenkopiert, das ist richtig. Die zeitliche Darstellung ist ebenfalls nicht maßstabsgetreu. Echte Testsignale kann ich an der Stelle nicht fahren, da derzeit der Prototyp nicht funktioniert. Die fehlende Reaktion auf die negative Flanke hatte ich mir immer so erklärt, das die eingekoppelte Rechteckimpuls fast dem Diracimpuls entspricht. Die Impulsbreite des Rechteckimpulses sowie Amplitude finden sich im Ausgangssignal wieder. Meine erste Idee, dort eine Grenzwertbetrachtung zu machen, um die Übertragungsfunktion zu erhalten, führte auf eine einfache Exponentialfunktion. Diese beschreibt jedoch mein System nicht, weswegen ich es mit der genaueren Beschreibung von Ein- und Ausgangssignal probierte.
Marcel schrieb: > Ich glaube du hast mich missverstanden, da niemals von einem > Einheitssprung geredet habe. Marcel schrieb: > Rechtecksignal: > G2 = d/s * (1-exp(t2*s)) Ein Rechtecksignal ist ein Sprung. Nur eben einmal in positiver und danach in negativer Richtung. Marcel schrieb: > Die Impulsbreite des Rechteckimpulses sowie Amplitude finden > sich im Ausgangssignal wieder. Das ist auch nicht ersichtlich, da 1. Der Sprung viel zu kurz ist 2. keine Zeitrelation zwischen den Signalen zu erkennen ist 3. Ich nicht weiß, wie das Ausgangssignal vor dem Sprung aussah 4. Keine Reaktion auf einen negativen Sprung zu erkennen ist Mach erst mal den Prototypen fertig, bevor du mit so etwas anfängst. Wenn der Prototyp nicht funktioniert, steht natürlich auch die Frage im Raum - Woher kommen die Signale? Remote One schrieb: > Zudem fällt auf, dass der Einheitssprung viel zu kurz ist. Das System > scheint ja extrem träge zu sein. Soll heißen, der Einheitssprung darf > erst wieder "weggenommen" werden, wenn keine markante Reaktion mehr vom > System kommt. Du musst dem System ja schließlich Zeit geben in den > Endwert zu laufen. Nimm dir das zu Herzen und miss nochmal richtig (zumindest wenn du kannst). Das was du hier anbietest reicht zumindest nicht im Geringsten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.