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

Signal Zähler / Counter

 

Philhav
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2013, 17:16     Titel: Signal Zähler / Counter
  Antworten mit Zitat      
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önSmile

Viele Dank für Eure Hilfe.
Philip

Signale2.JPG
 Beschreibung:

Download
 Dateiname:  Signale2.JPG
 Dateigröße:  100.85 KB
 Heruntergeladen:  666 mal
Signale.JPG
 Beschreibung:

Download
 Dateiname:  Signale.JPG
 Dateigröße:  78.39 KB
 Heruntergeladen:  671 mal
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2013, 08:38     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Philhav
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2013, 09:19     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2013, 10:44     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Philhav
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2013, 16:31     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2013, 16:38     Titel:
  Antworten mit Zitat      
Ist doch einfach Vektor Komponenten abfragen?!?!

Code:
if k2(1) ~= k1(1)
      counter = counter +1;
end
if k2(2) ~= k1(2)
      counter = counter +1;
end
if k2(3) ~= k1(3)
      counter = counter +1;
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Philhav
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2013, 17:47     Titel:
  Antworten mit Zitat      
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 Wink

Vielen Dank.

S-Function.JPG
 Beschreibung:

Download
 Dateiname:  S-Function.JPG
 Dateigröße:  16.92 KB
 Heruntergeladen:  692 mal
Counter.m
 Beschreibung:

Download
 Dateiname:  Counter.m
 Dateigröße:  266 Bytes
 Heruntergeladen:  482 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Nicht angemeldet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2013, 18:43     Titel:
  Antworten mit Zitat      
Nicht s-function sondern die Matlab Function bzw. embedded Matlab function nehmen.
 
Philhav
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 09.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2013, 17:52     Titel:
  Antworten mit Zitat      
Hier die Lösung.

Counter.mdl
 Beschreibung:

Download
 Dateiname:  Counter.mdl
 Dateigröße:  33.35 KB
 Heruntergeladen:  546 mal
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.