|
|
"Zähler/ Counter" in Echtzeitmodell |
|
Matlabschlumpf |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 01.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.02.2009, 17:44
Titel: "Zähler/ Counter" in Echtzeitmodell
|
|
Hallo,
ich bin mich gerade noch am einarbeiten in Matlab- Simulink, habe aber schon ein paar Modelle erstellt. Ich bin auf der suche nach einem Counter oder etwas ähnlichem.
Der Counter soll in der lage sein die Anzahl der steigenden (oder fallenden) Flanken eines Signals zu zählen.
Gibt es einen Block der so etwas kann bzw. kann ich mit einer embedded-Matlab funktion so etwas realisieren? Und wenn ja wie?
Vielen Dank im Voraus!
Gruß, Schlumpf!
|
|
|
|
|
andi_u |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2009, 12:02
Titel:
|
|
also einen speziellen block gibt es meineswissens nicht. es gibt lediglcih die getriggerten subsysteme.
in deinem fall würde ich eine matlab-function oder eine s-function schreiben. das geht am schnellsten und du kannst dir alles so programmieren wie du es möchtest.
gruß andi_u
|
|
|
halo |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2009, 21:45
Titel:
|
|
natrlich geht das ganz einfach.
es gibt viele möglichkeiten. hast du stateflow?
wenn nicht, es gibt die tollen hit-crossing blöcke und andere trigger subsysteme.
bei jeder flanke, eineen counter hochzählen (summand mit constante).
aber in stateflow wäre es noch einfacher einfach den c-code dort rein und fertig
|
|
|
fgj |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2009, 21:50
Titel:
|
|
|
|
Matlabschlumpf |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 01.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2009, 22:10
Titel:
|
|
ich habe leider kein Stateflow. Nehmen wir an ich habe einen "Pulse generator". Dahinter hänge ich direkt einen "Hit Crossing Block". Dieser gibt mir 0-en und 1er aus. Jedes Mal wenn der "Hit Crossing Block" eine eins ausgibt will ich den Zähler auf +1 setzen. Wie kann ich das konkret realisieren? Wie würde z.B der code in einer Embedded Matlab- Function aussehen? Ich habe leider keine Idee. Vielen Dank im Voraus.
Gruß, Matlabschlumpf
|
|
|
Matlabschlumpf |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 01.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2009, 22:41
Titel:
|
|
Danke, den Link werde ich mir mal anschauen...
|
|
|
Matlabschlumpf |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 01.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.02.2009, 09:11
Titel:
|
|
So, besten Dank für die Hilfe, der Link hat mir echt weitergeholfen!
-=Mein Zähler Zählt jetzt Jippii! =-
Gruß, Schlumpf
|
|
|
nikolor |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 11.02.08
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.03.2009, 12:19
Titel:
|
|
Hmm und wie haste das nun gemacht ? überleg huet morten gerade selber darüber....bin aber nicht gerade ausgeschlafen
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.03.2009, 18:50
Titel:
|
|
mit einem Zähler zähle ich die Zeit hoch, ein anderer Zähler zählt die Zeit plus 1 bei steigender Flanke. werden beide Zähler voneinander abgezogen ("zeit, +1 bei steigender Flanke"- "Zeit") bleibt ein zähler der die Steigenden Flanken zählt.
Hoffe das hilft weiter?
|
|
|
nikolor |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 11.02.08
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.03.2009, 16:27
Titel:
|
|
Ja danke hab das gestern noch hingekriegt ...ungefähr so wie du es gemacht hast ...funktioniert wunderbar...allerdings ist das noch nicht alles ................;D
|
|
|
nikolor |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 11.02.08
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.03.2009, 08:23
Titel:
|
|
na war doch erst pustekuchen .....da mien zäehler kontinuirlich aufwärts zählte.................ich hatte aber zwei Pulssignale eines mit grosser Frequenz und das andere mit kleiner frequenz (Burstsignal) welches mir den zähler nach einer Periode wieder reseten soll..........und in dessen "on" zeit die Anzahl der fallenen Flanken (Pulse) gezählt werden sollte. .................Die pulsweite des Burstsignals soll varaibel sein ....
na zumindest den Zähler hab ich nach langen tüfteln ..mit einem enable block hingezaubert .............:/
aber geht ja noch weiter
LG
|
|
|
fztstudent87 |
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 25.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.01.2013, 12:00
Titel:
|
|
Hallo Leute,
habe gerade das gleiche Problem mit dem "Pulse zählen".
Habe es so wie von "Gast" beschrieben versucht (mit einem Triggered Subsystem), und das Rechtecksignal auf der steigenden Flanke getriggert. Mein Problem ist jetzt aber, dass der Trigger nur einmal aktiv wird. danach wird er nicht zurückgesetzt und das Subsystem nur einmal ausgeführt. Es wird also nur die erste steigende Flanke gezählt.
Kann man den Trigger irgendwie resetten (habe nix dazu finden können )? Oder muss das ganze vielleicht in eine Art schleife und wenn ja, in welche?
Vielen Dank schonmal und
Freundliche Grüße
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.01.2013, 12:55
Titel:
|
|
Also wenn dir das nicht zu umständlich ist, dann kannst du es so machen wie im Bild. Zuerst Pulse Detektieren und dann Trigger-System zum zählen. Gezählt werden Übergänge von 1 nach 0, kannst ja aber anpassen.
Beschreibung: |
|
Download |
Dateiname: |
pulse_count.png |
Dateigröße: |
98.27 KB |
Heruntergeladen: |
4043 mal |
|
|
|
fztstudent87 |
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 25.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.01.2013, 10:21
Titel:
|
|
Hallo,
danke für die Antwort, sieht gut aus und würd ich gern so machen. Nur leider weiß ich nicht, wie dieses Blocksymbol mit dem quadratischen Pfeil im Gegenuhrzeigersinn heißt und wo ich es Finde. Demnach kann ich halt auch keine Hilfe befragen, da ich nicht weiß, wonach ich suchen muss.
Wie heißt denn dieser Operator?
Vielen Dank und
Freundliche Grüße
EDIT:
Betrachtet die Frage als beantwortet. Habs eben bei einem kurzen Durchforsten der Bibliothek gefunden ("memory") Vielen Dank nochmal!
|
|
|
|
|
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.
|
|