Rechenoperationen mit sich ändernden Variablen

stift

Level-1
Beiträge
261
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe wieder einmal ein Problem mit meiner Geschwindigkeitsmessung meines Schlittens, der über eine Pleuelstange an einem Rad hängt.
Mittlerweile kenne ich nun alle Variable meiner Formel zur errechnung
(siehe formel nr. 2)
http://www.schulphysik.de/strutz/DAMPFM2.pdf

Problem ist nun dass ich v berechnen will, t sich aber bei einem Zyklus 26 mal ein anderer Wert ist.
d.h. für meinen fall z.B. Winkelgeschwindikgeit=10 1/s, r=0,4m, a=1,2m.
Ich excel habe ich um den verlauf der Geschwindikeit zu errechnen 26 zeilen mit den zeiten 0, 0,025, 0,05, 0,075 usw. gemacht und dann das entsprechende Ergebnis pro Zeile bekommen, welche ich durch ein Diagramm schön aufzeigen kann.
Wie muss ich zur errechnung in Step 7 vorgehen?
Eine möglichkeit wäre ich würde 26mal das gleiche Netzwerk erstellen, und dann bei den Rechenoperationen die 26 unterschiedlichen Zeiten auf einen Merker legen.
Aus diesen Merkern könnte ich mir dann den arithmetischen Mittelwert meiner Geschwindigkeit errechnen.
Diese Lösung ist aber meines Erachtens nach nicht die einfachste und benötigt außerdem massig Merkerbytes und Rechenkapazität der CPU.
Welche Lösungansätze gäbe es da denn noch?
Vielen Dank schon mal im Vorraus
mfg
Stift
 
was ich nicht verstehe wieso brauchst du das ganze 26 mal pro zyklus

wenn ich deine zeitwerte die du in excel hernimmst ansehe rechnest du alle 25 ms also sollte das fast 1 zyklus sein
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ein zylus ist beim mir bei einer drehzahl von 100 1/min 0,6s.
Um einen saubenen sinus zu errechen muss ich desshalb auf diese 0,6s verteilt alle 0,25 s rechnen. D.h. mein lösungsansatz wäre ich würde bei den rechenoperationen beim ersten netzwerk bei t "0" bei meinen rechenoperanten eingeben.
beim zweiten netzwerk dann "0,025" usw.
Aber das geht doch sicherlich auch einfacher
 
Zuletzt bearbeitet:
wieso machst du es nicht zeitgesteuert und rechnest eine variabel immer um diesen wert hoch und wenn du bei der max zahl bist wieder auf min setzen
 
und die einzelnen ergebnisse lege ich dann immer auf merkerbytes?
und wenn max erreicht ist kann ich dann meinen arithmetischen mittelwert errechnen oder?
was meintes du mit zeitgesteuert?
und wie rechne ich so eine zeit hoch?
einfach den aktuellen wert auf ein merkerbyte legen und dann immer 25ms hinzuzählen bis max erreicht ist?
Problem ist ja auch dass ich für jedes ergebnis ein anderes merkerbyte für mein ergebnis meiner rechnung addressiern muss.
wie kann ich denn erreichen dass die sps meinetwegen bei md 20 und t=0 anfängt, anschließend für t=0,025 mein ergebnis auf md 24 legt usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das klingt doch alles sehr theoretisch. Mit angenommenen Zeiten usw. nimm was gescheites entweder einen Weckzeit OB (OB35) oder rechne mit der Zykluszeit aus dem OB1 (OB1_prev_cycle).

Poste doch mal den Code den Du bis her verwendest incl. Formel.
 
Was will er denn nun berechnen? Für die Geschwindigkeit hat er doch nun die Formel? Will er die Durchschnittsgeschwindigkeit haben oder was? Ich verstehe gerade den Sinn der Aktion nicht mehr.
 
ich will den arithymtischen mittelwert der geschwindigkeit.
dazu muss ich doch erst einmal mir die geschwindigkeit ausrechnen.
diese ist abhängig von t, d.h. mit der formel 2 bekomme ich immer die momentangeschwindigkeit.
Aus diesem grund habe ich in excel meinen zyklus in 26 teilschritte geteilt (eben diese 25ms), d.h. 26 momentangeschwindigkeiten berechnet. Aus diesen ergebnissen habe ich dann den mittelwert errechnet.
jetzt möchte ich das ganze eben in s7 umsetzten.
bisher habe ich lediglich den code für die drehzahlberechnung. Ansonsten habe ich noch nichts programmiert, da ich mich erstmal umhören wollte weil ich keinen Schimmer habe wie das am besten funktioniert.
noch schöner wäre es natürlich, wenn man die formel 2 so modifizieren könnte dass man auf einen schlag den mittelwert berechnen kann, trotz sich ändernder winkelgeschwindigkeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, rechne das mal aus, das ist ja nicht verkehrt. Wie genau muß das Ganze denn sein? Es gibt ja in der Technik viele sinusförmige Vorgänge. Eines davon ist natürlich die Wechselspannung. Da gibt es dann solche Dinge wie den Effektivwert. Hier http://de.wikipedia.org/wiki/Effektivwert findest du mehr dazu. Die einfachste Näherung wäre meiner Meinung nach den Maximalwert der Geschwindigkeit durch Wurzel(2) zu dividieren. Der Maximalwert der Geschwindigkeit ist lt. Strutz in unmittelbare Nähe der Mittelstellung M erreicht. Ich mach ja nun auch nicht ständig Mathe und Physik, aber vielleicht kann man damit den ganzen Berechnungskram doch erheblich vereinfachen, wenn es auch nicht 100%-ig genau werden wird.

Korrigiert mich bitte, wenn ich falsch liege.
 
Du hast recht wenn ich die Mittelpunktstellung und damit Maximalwert ausrechene, dann kann ich über einen Faktor (den ich mittels meiner Excel tabelle relativ einfach ermittlen könnte) das mittel der Geschwindigkeit berechnen.
Problem dabei ist nur, dass das Antriebsrad sprich die kurbelwelle an einem stufenlos verstellbaren Getriebe hängt. d.h. verändere ich die geschwindigkeit so verschiebt sich ja der Zeitpunkt meines Maximalmalwertes da sich die winkelgeschwindigkeit ändert. Das Programm würde aber ja dann mit diesem feste Zeitpunkt, den ich als Mittelstellung angegeben habe, weiter rechnen und einen beliebigen wert, der z.b. nur noch 1/3 so groß ist wie der Maximalwert auf den Effektivwert hochrechnen, was logischerweise ja falsch ist.

Ich hatte gehofft es bestünde die möglichkeit einer Art Variablentabelle in der ich meine Zeiten angeben kann,die meine Rechenoperationsschaltung durcharbeitet und anschließend auf verschiedene Merkerwörter schiebt.
 
und die einzelnen ergebnisse lege ich dann immer auf merkerbytes?
und wenn max erreicht ist kann ich dann meinen arithmetischen mittelwert errechnen oder?
was meintes du mit zeitgesteuert?
und wie rechne ich so eine zeit hoch?
einfach den aktuellen wert auf ein merkerbyte legen und dann immer 25ms hinzuzählen bis max erreicht ist?
Problem ist ja auch dass ich für jedes ergebnis ein anderes merkerbyte für mein ergebnis meiner rechnung addressiern muss.
wie kann ich denn erreichen dass die sps meinetwegen bei md 20 und t=0 anfängt, anschließend für t=0,025 mein ergebnis auf md 24 legt usw.

also mit denn ob35 rufst du das ganze alle 25 ms auf
zählst deine variabel immer um die 25 ms hoch
addierst das ergebniss in ein merkerbyte oder datenwort oder was auch immer
wenn alle 26 durchläufe fertig sind addierten wert durch 26 und du hast deinen mittelwert aus 26 werten

alles wieder löschen und von null beginnen


aber ich verstehe es noch nicht was du vorhast
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja das Ergebnis wäre doch dann das Mittel der Geschwindigkeit.
und Genau das war mein Ziel
ich habe die Anforderung gestellt bekommen über ein touch panel anzeigen zu lassen wie schnell der Schlitten im Schnitt verfährt.
Problem dabei war dass ein weg-mess-system am schlitten mein budget überschritten hätte. Aus diesem Grund will ich das Ganze programmtechnisch lösen. Als Eingangssignal habe ich einfach einen Bero, der mir die Drehzahl meines Antriebrades ausgibt.

Dein Tipp hört sich schon mal gut an.
Mal schauen ob ich die Umsetzung nächste Woche hinbekomme.
Dankeschön
mfg
Stift
 
Als Eingangssignal habe ich einfach einen Bero, der mir die Drehzahl meines Antriebrades ausgibt.

Das reicht doch, die Geschwindigkeit des Schlittens ist proportional zur Drehzahl des Antriebsrades, einfach nach der Formel einmalig den Faktor berechnen, X Impulse pro Minute am Antriebsrad ergeben x m/min am Schlitten, dann folgt später nur eine einfache Frequenzmessung und anschließend eine Skalierung mit Deinem Faktor.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum überhaupt so kompliziert ?

Bei mir ist "v = s / t" - also "Geschwindigkeit = Strecke / benötigte Zeit"

Ich würde dann also so vorgehen :
Messen der benötigten Zeit von Start bis Ziel (dafür gab es ja schon mindestens einen Vorschlag).
Messen der Strecke (Impulse). Hier entspricht jeder Impuls ja einer bestimmten zurückgelegten Strecke (siehe Oberchefe).
Das Ergebnis muss dann zwangsläufig die mittlere Geschwindigkeit sein.

Dauert das Ganze länger, dann kannst du ja auch zusätzlich Zwischenwerte ausgeben (anzeigen) in dem du die bis dahin benögtigte Zeit mit der bis dahin zurückgelegte Strecke verrechnest oder auch die Differenz zur letzten Messung. Da kann man sich ja dann daran austoben, wie man möchte ...

Gruß
LL
 
Ich versteh nicht ganz.
und schlupf hast du keinen ????
was meinst du mit schlupf?
Von der Drehzahlerfassung her?

selbstverständlich ist das mittel der geschwindikeit proportional zur geschwindigkeit des antriebrades. Die kunst dabei ist jedoch die passende Formel dafür herzuleiten und in S7 umzusetzen.

was meinst du mit frequenzmessung?
dann folgt später nur eine einfache Frequenzmessung

wie meinst du das mit messen der strecke (Impulse)
die länge des hubs bleibt doch gleich und ein hub ist immer 2PI also 360° des Antriebrades. Und was meinst du mit
dauert das ganze länger
 
:confused: hast du gelesen, was die Anderen und ich geschrieben haben ?

1. Frequenz = Impulse / Zeit

2. eine Strecke wird in Metern (oder Untergrößen) angegeben, nicht in Winkelgraden oder 2*Pi


Die genannte Berechnung läßt sich bei einer S7 ganz bequem zyklisch durchführen ...
Die Formel dafür habe ich ja oben genannt. Dabei kann Strecke sein : 37 Impulse deines Antriebs entsprechen 12,5 cm (oder irgend etwas anderes). Das kannst du dann ja beliebig hochrechnen (Dreisatz).

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab die beiträge der anderen schon gelesen aber ich kann euch erlich gesagt nicht folgen.
mit v=s/t darf ich hier nicht arbeiten.
das ergebnis wäre komplett falsch.
bei n= 100 1/min, r=0,4m und a=1,2m lautet das korrekte ergebnis des mittelwertes der geschwindigkeit 2,668 m/s.
bei diesen werten ist für einen Zyklus
t=0,6s und s=0,8m
das ergebnis daraus wäre dann 1,333 m/s.
Und das ist falsch!!!

 
... eine andere Formel gibt es aber nicht.
Vielleicht solltes du dann deine Eingangs-Größe mal kontrollieren. Woher weißt du, dass deine Drehzahl 100 Umdrehungen/Min. ist ? Mit Drehzahlmesser kontrolliert ?

Gruß
LL
 
oops.
sorry.
ich muss s ja mit 2 multiplizieren
dann wäre v=2,667 m/s.
du hast recht!
Allerdings muss ich den Maximalwert auch noch berechen.
Da komme ich um diese obige vorgehensweise wohl nicht mehr herum.
 
Zurück
Oben