AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schleifen wiederholen

Ein Thema von Kegasetu · begonnen am 23. Okt 2020 · letzter Beitrag vom 2. Nov 2020
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#1

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:00
Läßt sich das nicht mathematisch lösen?


[***H***|***H***|***H***]
Jeder Halter hat dann imho ein Drittel der Last? Oder
Die Positionen der Halter lassen sich dann auch ausrechnen. Natürlich braucht man die Gesamtlast und die Länge und die MaxLast eines Halters.

Geändert von haentschman (23. Okt 2020 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:06
Läßt sich das nicht mathematisch lösen?


[***H***|***H***|***H***]
Jeder Halter hat dann imho ein Drittel der Last? Oder
Die Positionen der Halter lassen sich dann auch ausrechnen.
Das habe ich auch gerade gedacht.
Länge des Brettes durch Anzahl Halterungen sollte dem notwendigen Abstand entsprechen. Es gibt noch Randbedingungen, wie der Abstand zum Rand des Brettes, aber das kann man sicher einbauen.
Problematisch wird es erst, wenn das Brett ungleichmäßig schwer ist.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#3

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:08
Zitat:
wenn das Brett ungleichmäßig schwer ist.
...dafür gibt es mit Sicherheit eine Norm.
Zitat:
Abstand zum Rand des Brettes
das sind die ***, | ist ein Hilfslinie um den "Block" zu kennzeichnen

Geändert von haentschman (23. Okt 2020 um 11:13 Uhr)
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#4

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:19
Zitat:
wenn das Brett ungleichmäßig schwer ist.
...dafür gibt es mit Sicherheit eine Norm.
Zitat:
Abstand zum Rand des Brettes
das sind die ***, | ist ein Hilfslinie um den "Block" zu kennzeichnen
Eine Norm ist mir nicht bekannt. So etwas wird normalerweise duch FEM simuliert.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#5

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:35
Zitat:
Eine Norm ist mir nicht bekannt.
...das war eher als Scherz gedacht...in der EU wird ja alles "reguliert".
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#6

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 12:03
Zitat:
Eine Norm ist mir nicht bekannt.
...das war eher als Scherz gedacht...in der EU wird ja alles "reguliert".
Warum? Das wäre jetzt nicht ungewöhnlich. Und europäisch eher weniger, wenn dann sitzt die DIN oder ISO dahinter.
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#7

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 11:14
Läßt sich das nicht mathematisch lösen?


[***H***|***H***|***H***]
Jeder Halter hat dann imho ein Drittel der Last? Oder
Die Positionen der Halter lassen sich dann auch ausrechnen. Natürlich braucht man die Gesamtlast und die Länge und die MaxLast eines Halters.

Auch wenn es logisch klingt, aber die Annahme ist falsch. Wenn es nur so einfach wäre .
Nicht nur, das die Kräfte immer unterschiedlich verteilt sind, sondern auch die Biegung des Balkens muss berücksichtigt werden. Aber dafür gibt es mich ja nur das Implementieren ist mein Problem.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#8

AW: Schleifen wiederholen

  Alt 23. Okt 2020, 12:29
[***H***|***H***|***H***]

Joar, wenn der Balken grade ist und sich nicht biegt, dann passt es ja.
Bei Biegen müsstest du aber an den |-Stellen ein Gelenk einbauen*1, da sich die dort zusammenlaufenden Biegungen gegenseitig beeinflussen*2, aber das lässt sich bestimmt auch direkt berechnen, ohne Schleifchen.

*1 um diesen Effekt zu eliminieren
*2 sich durch das gegenläufige Biegemoment hochheben, während die Enden weiter runter hängen, die äußeren H als Drehpunkt nutzen und die Mitte bissl "leichter" wird.



Kommt blos nicht auf die Idee ein gerades Regal bauen zu wollen, der für eure CNC berechnen zu wollen wie weit sich der Querträger in der Mitte durchbiegen würde.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Okt 2020 um 12:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

AW: Schleifen wiederholen

  Alt 25. Okt 2020, 13:58
Ich weiß, spezifischer Ratschlag (oder gar Code) kommt immer besser an, als allgemeiner, aber ich probiere es mal

Ein passendes Sprichwort: "In der Informatik gibt es nur drei sinnvolle Maße: 0, 1 oder beliebig viele" (https://de.wikipedia.org/wiki/Zero_One_Infinity)

Insofern solltest du hier versuchen, beliebig viele Halterungen zuzulassen. Fassen wir also die Aufgabenstellung zusammen:
- Es gibt 1 Brett der Länge l
- Es gibt n Halterungen an n Stellen
Für letzteres solltest du ein dynamisches Array verwenden.

Dann kannst du in deiner Rechnung jeden Punkt separat verschieben. Eine Möglichkeit wäre z.B. sowas:
Delphi-Quellcode:
procedure Vary(Brettdaten: TBrettData; Punkte: Array of Double, idx: Integer);
var
  AlterWert: Double;
begin
  if (idx > Length(Punkte)) begin
    Solve(Brettdaten, Punkte)
  end
  // Variiere nur einen Punkt hier
  AlterWert := Punkte[idx];
  Punkte[idx] := AlterWert - 0.1;
  Vary(Brettdaten, Punkte, idx + 1);

  Punkte[idx] := AlterWert;
  Vary(Brettdaten, Punkte, idx + 1);

  Punkte[idx] := AlterWert + 0.1;
  Vary(Brettdaten, Punkte, idx + 1);
end;
Nebenbei möchte ich aber anmerken, dass du da ein relativ schlechtes Verfahren implementierst. Du machst noch nicht mal gradient descent, sondern zuppelst jede Dimension um 0.1 (Woher der Wert kommt .... ) und hoffst, dass du damit was erwischst ^^

Ein besseres Verfahren ist gradient descent, wo du für deinen Vektor (also alle n Lager) eine Ableitung berechnest (also wie stark Richtung Optimum bringen mich hier 0.1 ?) und dann in Richtung dieses Gradienten läufst.

Und noch besser wird das ganze, wenn du dein Problem in eine gängige Matrix-form bringen kannst, weil dann kannst du auf ungemein viele und gute Löser zurückgreifen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz