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

Summe bilden und zählen bis 15

 

Mati2
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2009, 17:13     Titel: Summe bilden und zählen bis 15
  Antworten mit Zitat      
Hallo zusammen,

ich möchte ein kleines Programm schreiben, das die Summe dreier Eingänge berechnet und gleichzeitig bei jedem neuen Summenwert ein
Zähler mit 1 inkrementieren bis 15 (0 <= Zähler <= 15).

ich wollte das Programm mit S-function Builder realisieren:
ich habe 3 eingänge u0[0], u1[0] und u2[0] und zwei Ausgänge
Summe und Counter definiert.

im Outputs Fenster sieht es folgendermaßen aus:

y0[0] = u0[0];
y1[0] = u1[0];
y2[0] = u2[0];

die Summe konnte ich schon berechnen mit Summe[0] = u0[0] + u1[0] + u2[0] aber wie ich bei jedem neuen generierten Summenwert mit 1 hochzählen kann ist mir leider bis jetzt nicht gelungen.

daher meine Frage an euch wie ich das angehen kann? und vielen Dank im voraus

Mati2
_________________

MfG
Mati
Private Nachricht senden Benutzer-Profile anzeigen


amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 19.05.2009, 16:00     Titel:
  Antworten mit Zitat      
Hallo,

bin mir nicht sicher ob du das so meinst ?
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Mati2
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2009, 23:05     Titel:
  Antworten mit Zitat      
Hallo,

doch so will ich das machen. aber wie mache ich eine Bedingung, dass bei
jedem neuen Summenwert Counter mit 1 inkrementieren?

Gruß Mati2
_________________

MfG
Mati
Private Nachricht senden Benutzer-Profile anzeigen
 
rocket
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 29.04.09
Wohnort: Essen
Version: ---
     Beitrag Verfasst am: 25.05.2009, 13:08     Titel:
  Antworten mit Zitat      
Das wird auch nicht so gehen, da beim Verlassen deiner Funktion die Werte wieder auf 0 gesetzt werden, du muss mit dem Befehle
Code:
arbeiten, der speichert dir die Werte auch beim Verlassen der Funktion...der Ansatz
Code:
ist schon gut, nur die Variable X muss du als persistent deklarieren, dann wird es auch klappen....

rocket
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 25.05.2009, 13:59     Titel:
  Antworten mit Zitat      
Hallo,

S-function builder? Also in C? Dann wird der vorherige Vorschlag leider nicht funktionieren.
Für den S-Function builder: Du musst einen Diskreten Zustand anlegen (Number of discrete states = 1). Und auf der entsprechenden Seite (Discrete Update oder so ähnlich) muss dieser jeweils um 1 erhöht werden.

Nebenbei: warum als S-Function? Mit Simulink-Blöcken müsste das ziemlich einfach sein, oder?

Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
rocket
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 29.04.09
Wohnort: Essen
Version: ---
     Beitrag Verfasst am: 25.05.2009, 16:32     Titel:
  Antworten mit Zitat      
ne in embedded matlab...klappt hervoragend...
hab sowas noch nie gesehen in Blöcken, gibt es so ein Zählerblock???
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 27.05.2009, 10:04     Titel:
  Antworten mit Zitat      
Hallo,

@rocket: in Embedded MATLAB ist das relativ einfach (wie Du geschrieben hast, mit persistent), allerdings sah die Frage des OP so aus, als ob er in C das machen wollte, daher meine Anmerkungen.

Und ja: entweder zu Fuss (Unit Delay Ausgang mit Constant=1 addieren und als Eingang vom Unit Delay nehmen), oder der Block "Counter Limited" aus der Sources Bibliothek.

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
rocket
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 29.04.09
Wohnort: Essen
Version: ---
     Beitrag Verfasst am: 27.05.2009, 12:16     Titel: ...
  Antworten mit Zitat      
@titus...stimmt das hatte ich übersehen das er es mit C schreiben wollte...
soll er es doch einfach machen mit embedded,ist eh besser meiner meinung nach Very Happy
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.