|
Philhav |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 09.10.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2013, 17:16
Titel: Signal Zähler / Counter
|
|
Guten Tag,
ich brauche einen Zähler / Counter für die ausgesendten Signalen (Siehe Anhang).
Ich habe mir schon die Vorschläge aus http://www.gomatlab.de/zaehler-coun.....echtzeitmodell-t4911.html angeschaut, doch die hilft mich nicht wirklich weiter.
Der Counter soll jede Änderung (Positiv, wie negativ), des Signals (Vektors) zählen.
Wie realisiere ich solch einen counter?
EDIT: Habe es nun hinbekommen, dass jegliche Veränderungen gezählt wird, aber wenn Signale übereinander liegen, er es als eine Veränderung zählt (Siehe Signale2). Natürlich könnte ich jeden Vektor einzeln betrachten, aber am ende werde ich mehrere tausend Signale aussenden und dann wird das sehr unschön
Viele Dank für Eure Hilfe.
Philip
Beschreibung: |
|
Download |
Dateiname: |
Signale2.JPG |
Dateigröße: |
100.85 KB |
Heruntergeladen: |
666 mal |
Beschreibung: |
|
Download |
Dateiname: |
Signale.JPG |
Dateigröße: |
78.39 KB |
Heruntergeladen: |
671 mal |
|
|
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.02.2013, 08:38
Titel:
|
|
Du könntest die aktuellen Werte vom Signalvektor von den Werten vom letzten Schritt subtrahieren. Wenn der resultierende Vektor überall Null ist, dann gab es keine Änderung (Zählvariable unverändert). Ansonsten schauen wie viele Komponenten ungleich Null sind (und entsprechend hochzählen). Optional schauen in welche Richtung sich die Komponenten verändert haben, d.h. ob sie größer oder kleiner zum Zeitschritt davor sind. Würde das alles in eine Matlab Function stecken.
|
|
|
Philhav |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 09.10.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.02.2013, 09:19
Titel:
|
|
Verstehe dich, doch werden gleiche Signale (Vektoren), die gleichzeitig schalten, als ein Signal gesehen und nicht untereinander unterschieden. Somit zählt er nicht alle Signale.
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.02.2013, 10:44
Titel:
|
|
Was meinst du mit gleiche Signale? Es wird doch von jedem Signal der Wert vom letzten Zeitschritt mit dem aktuellen Zeitschritt verglichen. Bei 20 Signalen wird 20 mal verglichen und kann max. 20 Veränderungen geben.
|
|
|
Philhav |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 09.10.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.02.2013, 16:31
Titel:
|
|
Sagen wir das ist der Signalvektor:
k-1=[1 0 0], k=[0.5 1 1]
Wie kann ich nun jeden vektorwert anschauen und den zähler plus 3 ausgeben?
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.02.2013, 16:38
Titel:
|
|
Ist doch einfach Vektor Komponenten abfragen?!?!
|
|
|
Philhav |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 09.10.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.02.2013, 17:47
Titel:
|
|
Es tut mir wirklich leid, aber ich bin wirklich ein Anfänger und habe nun versucht eine S-Function einzubauen, aber leider funktioniert es einfach nicht.
1. Ich setze den Zähler auf 0.
2. Vergleiche Vektor a(t-1) mit b(t)
3. Ich bestimme die länge meines Vektors = Veränderungen
counter = 0;
v = (a~=b);
counter = length(find(v==1))
Im Anhang ist meine m-file und simulink idee.
Bitte helft mir. Ich dreh sonst noch durch
Vielen Dank.
Beschreibung: |
|
Download |
Dateiname: |
S-Function.JPG |
Dateigröße: |
16.92 KB |
Heruntergeladen: |
692 mal |
Beschreibung: |
|
Download |
Dateiname: |
Counter.m |
Dateigröße: |
266 Bytes |
Heruntergeladen: |
482 mal |
|
|
|
Nicht angemeldet |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.02.2013, 18:43
Titel:
|
|
Nicht s-function sondern die Matlab Function bzw. embedded Matlab function nehmen.
|
|
|
Philhav |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 09.10.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.02.2013, 17:52
Titel:
|
|
Hier die Lösung.
Beschreibung: |
|
Download |
Dateiname: |
Counter.mdl |
Dateigröße: |
33.35 KB |
Heruntergeladen: |
546 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|