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

Kontinuierlich vs. Fixed Step

 

Elektromotor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2009, 18:31     Titel: Kontinuierlich vs. Fixed Step
  Antworten mit Zitat      
Hallo Zusammen,

was ist eigentlich der Unterschied zwischen dem Solver Discrete und einem Fixed Step Solver (z.B. Euler)? Wenn ich ein System mit Blöcken aus "Continuous" aufbaue und dann aber diskretisieren will, reicht einfach die StepSise von dem Eiler gleich dem Diskretisierungsschritt zu setzen, oder?

Wie sieht Ihr das?


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.10.2009, 21:53     Titel:
  Antworten mit Zitat      
Hallo,

der Solver "discrete" ist nur dann geeignet, wenn keine kontinuierlichen Blöcke, z.B. Integratoren im System enthalten sind.
Andere fixed-step Löser werden vor allem eingesetzt, wenn man später Code aus seinem Modell generieren möchte. Dabei sollte man aber mit Hilfe von variable step Lösern die Lösung überprüfen und sehen, ob mit dem fixed step Löser genau genug simuliert wird.
Warum willst du denn diskretisieren?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Elektromotor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2009, 22:59     Titel:
  Antworten mit Zitat      
Hallo,

danke für dein Antwort.

Ich diskretisiere in zwei Fällen: 1. wie du gesagt hast, wenn ich ein Code generieren will, z.B. für dSpace. 2. ist genau umgekehrt, wenn ich ein diskretes system simulieren will. Z.B ein Regler im µC oder eine Steuerung.

Ich habe aber immer noch nicht verstanden, welche Vorteile der Solver "discrete" hat. Matlab help ist da auch nich besonders hilfreich. Selbst wenn ich keine kontinuierlichen Blöcke habe, kann ich trotzdem andere Fixed Step Solver benutzen. Matlab sagt folgendes dazu:
Warning: The model 'untitled' does not have continuous states, hence
using the solver 'FixedStepDiscrete' instead of solver 'ode3'. You can
disable this diagnostic by explicitly specifying a discrete solver in the
solver tab of the Configuration Parameters dialog, or setting 'Automatic
solver parameter selection' diagnostic to 'none' in the Diagnostics tab
of the Configuration Parameters dialog.
Also geht es auch ohne "discrete". Wozu ist er dann nun gut? Können in so einem Fall die Ergebnisse unterschiedlich sein?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.10.2009, 23:05     Titel:
  Antworten mit Zitat      
Die Warnung genau lesen. Wenn keine kontinuierlichen Zustände enthalten sind, wird automatisch der discrete Löser verwendet - egal, was du einstellst. In dem Fall kann man ja den Output einfach aus dem Input errechnen, zu jeder beliebigen Zeit.
Sofern man bei Fixed-Step Lösern bleibt, spielt die Wahl des Lösers nur eine Rolle, wenn es kontinuierliche Zustände gibt. Und da sollte man wie eben beschrieben vorgehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Elektromotor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2009, 23:27     Titel:
  Antworten mit Zitat      
Vielleicht interpretiere ich das ganze falsch.
in der Warnung steht doch, dass ich die automatische Auswahl des Solvers deaktivieren kann. Das habe ich eigentlich mit "geht auch ohne discrete" gemeint.

Vielleicht noch eine letzte Frage: Wenn ich aus einem kontinuierlichen System ein Code generieren will, lohnt es sich zuerst das System zu diskretisieren und mit dem "discret" testen oder reicht eben Schrittweite dem Abtastzeit anzupassen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.10.2009, 08:42     Titel:
  Antworten mit Zitat      
Warum würdest du das tun? "fixed step discrete" findet im Fall eines Systems ohne kontinuierliche Blöcke die exakte Lösung, und das ganze schneller als mit anderen fixed step Lösern.

Es ist nicht sinnvoll, den fixed step discrete Löser für kontinuierlicher Systeme zu verwenden. Dieser Löser ist ausschließlich für Systeme gedacht, die auch real ein diskretes Abtastverhalten aufweisen (z.B. Regler). Wenn Code erzeugt werden soll, dann andere fixed step-Löser (z.B. ode3) verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Elektromotor

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2009, 09:00     Titel:
  Antworten mit Zitat      
Danke für dein Antwort. Hat mir weitergeholfen.
 
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.