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

if else in S-Funktion

 

Bastian
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2009, 11:16     Titel: if else in S-Funktion
  Antworten mit Zitat      
Hallo zusammen!

Ich spiele derzeit etwas mit S-Funktions, genauer dem S-Funktion Builder rum und möchte dabei if-Abfragen realisieren.
Folgendes Problem:

Code:
int x,i;
x=10;
i=1;

if (i<x){
     i++;
     y0[0]=i;
} else {
    y0[0]=20;
}


Am Ausgang habe ich so immer den Wert 2. Sample mode ist Inherited, aber bei Continous passiert das selbe.

Mache ich grundlegen etwas Falsch wenn ich diesen Code einfach in das Outputs Feld schreibe?

Ich habe schon versucht, das Problem durch Benutzung der "Continous Derivates" zu umgehen. Dabei denke ich, ich muss "i" als Parameter deklarieren, und dann auch mit "if(i[0]<x)..." arbeiten, oder?
Code:
int x;
x=10;

if (i[0]<x){
     i[0]=i[0]+1;
     y0[0]=xC[0];
} else {
    y0[0]=20;
}

Und bei den Continous Derivates dann:
Code:
xC[0]=i[0];

Klappt aber nicht, weil ich ständig fehler mit den Datentypen kriege.

Ich bin für Tipps sehr Dankbar, wollte mein Programm (was dann einige Abfragen nutzen muss) diese Woche zum Laufen krigen, sonst wird das langsam eng mit der Diplomarbeit...

Grüße!
Private Nachricht senden Benutzer-Profile anzeigen


Bastian
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 17.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2009, 10:20     Titel:
  Antworten mit Zitat      
Hat denn niemand Erfahrung mit dem Builder???

Hab noch mal weiter rumgespielt, offensichtlich werden Schleifen in der S-Funktion erst komplett abgearbeitet und erst dann wird ein Ausgangssignal erzeugt. So ist bei:
Code:
int x,i;
x=10;
i=0;

while (i<x){
    y0[0]=i;
    i++;
}
y0[0]=i;

Der Ausgang immer 10.

Kann mir jemand erklären, wie ich mit diesen "Continous Derivates" oder "Discret Updates" umgehen muss?

Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
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.