Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Matlab-Aufgabe (Simulink) - Wieso löst man das so? (https://www.delphipraxis.net/106046-matlab-aufgabe-simulink-wieso-loest-man-das-so.html)

Matze 4. Jan 2008 11:43


Matlab-Aufgabe (Simulink) - Wieso löst man das so?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

da man mit Matlab etwas ähnliches wie Programmieren macht, schreibe ich das mal hier hin. Ich bin mal gespannt, ob das hier jemand weiß. ;)

Ich habe Aufgaben, bei denen ich Differenzialgleichungen simulieren muss und habe dabei schon ein Problem mit der Simulink-Schaltung. Die Musterlösung kann ich nicht ganz nachvollziehen.

Beispielsweise sollen wir die Sprungantwort der DGL T*y' + y = Sprungfkt. sigma(t) mit T = 4 Sekunden mittels eines Integralglieds simulieren.
Um das mit Simulink lösen zu können, muss ich die DGL meines Wissens nach der höchsten Ableitung auflösen: y' = (sigma(t) - y) / T

Ich dachte mir dann, die Schaltung müsste aussehen wie im Anhang. Die Musterlösung ist darunter abgebildet.

Kann mir bitte jemand erklären

- wieso das Verstärkerglied vor der Abzweigung zum Summierglied zu plazieren ist? Ich hätte gedacht, die Verstärkung wäre der letzte Schritt. Einerseits wenn ich das direkt nach dem Integrationsglied verstärke, dann wäre es halbwegs logisch, da es sich dabei um eine Integrationskonstante handelt, doch laut der Formel wäre es für mich anders einleuchtender.

- wieso die Schaltung überhaupt so aussehen muss (ganz allgemein)?
Wir haben das ab und zu so gelöst, doch die Erklärungen habe ich nie richtig verstanden.

Für mich sieht das folgendermaßen aus:
Man geht davon aus, dass die Sprungfunktion die erste Ableitung y' sei, integriert das, um auf y zu kommen und zieht das verstärkte y dann über das Summierglied von der Sprungfunktion ab, was mir etwas weit hergeholt zu sein scheint.

Grüße, Matze

Muetze1 4. Jan 2008 15:35

Re: Matlab-Aufgabe (Simulink) - Wieso löst man das so?
 
Du ziehst das Ergebnis vor dem Gain raus, somit hast du (wie du schon richtig schreibst) dort y. Du ziehst also y ab.

vor dem Abziehen hast du folgendes:
= y'
= ( sigma(t) - y ) / T

nach dem Abziehen hast du:
= y' - y
= ( ( sigma(t) - y ) / T ) - y

Du hast also die falsche Basis um y ab zu ziehen. Aber nach dem Gain, der ja 1/T berechnet, da hättest du dann halt nicht mehr y sondern y/T, und das kannst du gut abziehen.

= y' - y / T
= ( ( sigma(t) - y ) / T ) - ( y / T ) = sigma(t) / T

Matze 4. Jan 2008 22:50

Re: Matlab-Aufgabe (Simulink) - Wieso löst man das so?
 
Hallo,

das hast du schön erklärt, danke. Dann ist Matlab also nicht so schlau und bildet selbst den Hauptnenner, sondern das muss man selbst machen. :mrgreen:

Was mir aber noch unklar ist: Wird diese Zurückführung zum Addierer nur ein einziges Mal durchlaufen? Vielleicht denke ich zu sehr programmiertechnisch, doch ich hätte nun gedacht, das wäre eine Art Endlosschleife.

Grüße

Muetze1 5. Jan 2008 02:50

Re: Matlab-Aufgabe (Simulink) - Wieso löst man das so?
 
Zitat:

Zitat von Matze
Was mir aber noch unklar ist: Wird diese Zurückführung zum Addierer nur ein einziges Mal durchlaufen? Vielleicht denke ich zu sehr programmiertechnisch, doch ich hätte nun gedacht, das wäre eine Art Endlosschleife.

Nein, ständig. Dein Scope gibt dir ja auch ständig einen neuen Wert aus und nicht nur einen. Das ganze wird über LGS gelöst - aber die Solver kannst du ja entsprechend im Matlab Projekt einstellen.

Matze 5. Jan 2008 09:29

Re: Matlab-Aufgabe (Simulink) - Wieso löst man das so?
 
Hi,

das ist relativ komplex, muss ich sagen. So eine simple Schaltung und es steckt ganz schön viel dahinter. Aber vielen Dank. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz