der-wirtschaftsingenieur.de

- Generalist zwischen Wirtschaft und Technik


Schnittlasten: Innere Kräfte am Balken

Der Balken ist gelagert durch ein Festlager am Punkt A und ein Loslager am Punkt B.

Auf den Balken wirken zwei Kräfte F1 und F2 ein.

Schnittlasten

Um die Gleichungen ohne Trigonometrie zu lösen wird die im Winkel α angreifende Kraft schon in der Skizze in die Kräfte F1x und F1y eingeteilt.

Schnittlasten

Es stehen zudem drei Längen a, b und c zur Verfügung. (mehr…)

Schnittlasten

Die Kräfte, die auf eine Konstruktion einwirken, werden von den Trägern an die Lager weitergegeben. An den Lagern wirken daher die Kräfte und Momente, die auch auf die Träger wirken.

Eine Überbelastung einer Konstruktion führt jedoch nicht unbedingt zur Verformung oder zum Zerbrechen an den Lagern, auch die Träger können durch Krafteinwirkungen beschädigt werden, denn die Kräfte wirken auch in den Trägern selbst.

Von Bedeutung sind dabei die inneren Kräfte.

Mit einem imaginären Schnitt durch einen Träger, können die inneren Kräfte bzw. die Schnittgrößen skizziert werden.
Die Schnittgrößen spielen sowohl in der Statik, als auch in der Festigkeitslehre und in der Dynamik eine Rolle. (mehr…)

Flächenmomente (Steiner Satz)

Mit den Gleichungen nach dem Steiner Satz können die Flächenträgheitsmomente verschiedener Gebilde unterschiedlicher Geometrie berechnet werden.

Beispiel: Rechteck mit Schwerpunkt am Mittelpunkt

Flächenträgheitsmoment-Berechnung (mehr…)

Berechnung von Schwerpunkt und Flächenträgheitsmoment

Es soll das Flächenträgheitsmoment eines gegabelten Objekts errechnet werden.

Trageheitsmoment

Das Objekt hat eine fest definierte Größe, die sich aus der Zusammensetzung aus 18 Quadraten mit der Seitenlänge a ergibt. Es handelt sich um ein komplexes Objekt, da es insgesamt gesehen eine komplexe Geometrie besitzt. Das Objekt kann aber in Objekte mit bekannter Geometrie unterteilt werden; Es ergeben sich dadurch vier Rechtecke.
Die Verbundstücke (Winkelstücke) gehören dem horizontalen Rechteck an.

TrageheitsmomentTrageheitsmoment (mehr…)

Flächenträgheitsmomente

Flächenträgheitsmomente sind besonders für die Festigkeitslehre von Bedeutung, da in der Festigkeitslehre die Verformung und Spannung von Objekten bzw. deren Oberflächen eine Rolle spielen.

Mit der Berechnung des Flächenträgheitsmoments kann ein mögliche Verformung/Verbiegung eingeschätzt und so ein Körper auf seine Stabilität hin untersucht werden.
Abhängig von sind Flächenträgheitsmomente von Größe und Form (Geometrie) eines Querschnitts sowie von der Lage des Bezugsystems.

Flächenträgheitsmomente werden auch als Flächenmoment 2. Grades bezeichnet. (mehr…)

Schwerpunktberechnung

In einem Kräftesystem müssen häufig Kräfte berücksichtigt werden, welche über eine Masse oder (vereinfacht) Fläche wirken.
Beispielsweise wird ein kegelförmiges Objekt von der Schwerkraft nach unten gezogen. Dabei wirkt die Schwerkraft jedoch auf jedes einzelne Atom des Objekts.

In der vereinfachten Darstellung wird jedoch nur mit einer resultierenden Kraft gerechnet. Diese muss jedoch am Schwerpunkt ansetzen.

Schwerpunkt

Im Körper ist der Punkt, in dem die Resultierende aller Massenkräfte angreift, der Massenmittelpunkt. Die Resultierende aller Massenkräfte ist die Gewichtskraft. Entsprechendes gilt auch für den Flächenmittelpunkt. (mehr…)

Rekursion in der Programmierung

Die Rekursion und Iteration sind zwei konkurrierende Art und Weisen der Wiederholung eines Vorgangs in der Programmierung.
Während die Iteration eine Menge an Vorgängen (typischerweise eingerückt in eine Schleife) wiederholt und ggf. die Anzahl der Wiederholungen zählt (For-Schleife), ist die Rekursion ein Funktionsaufruf der selben Funktion – d.h. eine Funktion ruft sich selbst auf.

I.d.R. wird Rekursion für Suchalgorithmen verwendet. Die rekursiv arbeitende Funktion wird dabei so oft von sich selbst aufgerufen, bis ein Suchmuster gefunden wurde oder die Suche aus anderen Gründen endet.
Genauso wie bei der Iteration, ist auch bei der Rekursion darauf zu achten, dass es eine Abbruchbedingung gibt – Sonst droht eine Endlosschleife.

Die Rekursion hat gegenüber der Iteration einige Nachteile. Die Rekursion ist langsamer, da bei jedem rekursiven Schritt eine Methode aufgerufen wird. Aus diesem Grund belegt die Rekursion außerdem mehr Speicherplatz.

Dennoch haben sich rekursive Methoden in bestimmten Bereichen durchgesetzt. Z.B. als eleganter Lösungsweg, um ein mathematisches Problem zu lösen. Auch bei der Suche in Binären Bäumen hat sich die Rekursion durchgesetzt, da über eine iterative Vorgehensweise sehr viele Schleifen notwendig wären.

Die Rekursion erleichtert die Nachvollziehbarkeit von komplexen Suchalgorithmen, für Neulinge ist die Rekursion jedoch anfangs nur schwer vorstellbar, jedoch auch nur eine Sache der Gewohnheit. Aber auch für geübte Programmierer, können besonders verschachtelte, rekursive Methoden schnell sehr verwirrend sein.

(mehr…)

Haftungskraft – Die Rolle als Beispiel

Nachfolgend soll ein Beispiel zur Berechnung der Statik unter Berücksichtigung der Haftungskraft gegeben werden: Die Rolle.

Eine Rolle ist ein gewickeltes Material – Als Beispiel darf man sich gerne die “Klorolle” vorstellen.

Haftung bei einer Rolle

Die (hier als Beispiel verwendete) Toilettenpapier-Rolle ist an einer Wand mit einem Stab befestigt. Der Stab und die Rolle sind über ein Gelenk verbunden, so dass sich die Rolle drehen kann.

(mehr…)

Haftung & Reibung

Beim Kontakt von zwei oder mehreren Objekten mit Belastung, wirkt eine Kraft. Diese Kraft könnte z.B. die Gewichtskraft sein. Eine Normalkraft, die aus der Stabilität des anderen Objektes bzw. dem Fundament resultiert, wirkt entgegen.
Trifft die Kraft nicht direkt, sondern in einem Winkel auf die Normalkraft, weichen die Objekte einander aus.

Das skizzierte Beispiel zeigt ein Objekt auf einer schiefen Ebene, es wird durch die Gewichtskraft in Richtung Erdmittelpunkt gezogen, die Normalkraft hält das Objekt jedoch und zwingt es zum Ausweichen. Resultat: Das Objekt rutscht die schiefe Ebene herunter.

Haftungswiderstand

Das Objekt rutscht in jedem Fall unter Annahme einer ideal glatten Kontaktfläche.
Tatsächlich gibt es jedoch keine ideal glatte Kontaktfläche. Selbst glattpoliertes Metall oder Glas sieht unter einem Mikroskop bei entsprechender Vergrößerung aus wie ein Alpengebirge. Objekte haben ausnahmslos raue Oberflächen.

Die raue Oberfläche führt zu einem Haftungs-/Reibungswiderstand, was zu einer gegenüber der Gewichtskraft entgegenwirkenden Reibungs-/Haftwiderstandskraft führt. Ist der Reibungs-/Haftwiderstand groß genug, fixiert sie gemeinsam mit der Normalkraft das Objekt. Ist die Haftkraft zu gering, überwindet die Gewichtskraft den Reibungswiderstand und es kommt zu einer Bewegung der Körper gegeneinander (das Objekt gleitet die schiefe Ebene herunter). (mehr…)

Wertetyp vs Refernztyp

In der prozeduralen und objektorientierten Programmierung wird zwischen Wertetypen und Referenztypen unterschieden.
Beispielsweise sind in den Programmiersprachen C# und Java primitive Datentypen, Enumeratoren und Strukturen Wertetypen. Klassenobjekte sind hingegen Referenztypen.
In C/C++ dienen Pointer (Zeiger) als Refernztyp, welche die Adresse speichert, die auf einen veränderbaren Wert verweist. Über den Pointer kann die Adresse dann von Funktion zu Funktion überreicht werden.
So kann aus jeder Funktion heraus, die den Zeiger zur Verfügung hat, der Wert verändert werden, auf den die Adresse zeigt. Der geänderte Wert ist über diese Adresse wieder abrufbar, von allen Funktionen aus, die die Refernz bekommen haben. Ein Zeiger in C ist also eine Referenz.

Ähnlich verhält es sich bei Klassenobjekten in C# und Java. Für diese wird ein Speicherplatz im Heap des Arbeitsspeichers angefordert, welcher sich über die Speicheradresse ansprechen und verändern (bzw. überschreiben) lässt. Auch die Klassenobjekte in C++ werden im Heap gespeichert.
Der Heap kann beliebig angesprochen werden, jedoch muss der Speicher bei Bedarf geordert und spätestens bei Programmende wieder freigegeben werden.
In C++ muss sich darum der Programmierer selbst kümmern; C#, Java und die meisten objektorientierten Skriptsprachen haben hierfür eine automatische Speicherbereinigung (Garbage Collector).

Wertetypen werden nicht über eine Speicheradresse an eine Funktion übergeben, sondern als Wert. Diese Werte werden kopiert und auf den Stack im Arbeitsspeicher gelegt.
Je mehr die Funktionsaufrufe verschachtelt sind, um so größer wird auch der Stack.
Diese Vorgehensweise ist durchaus sinnvoll, denn auf den Stack kann zwar nicht beliebig, sondern nur über das aktuellste (oberste) Stack-Element zugegriffen werden, da jedoch auch vor allem die
Funktionsvariablen (Parameter) benötigt werden, erfolgt der Zugriff daher i.d.R. sehr schnell.
Bei jeder Parameterübergabe mit Wertetypen werden die Werte daher kopiert und der Stack wächst. Die Werte sind (zumindest noch bei Funktionsaufruf) redundant auf dem Stack.
Werden die Parameter in der Funktion verändert, hat dies keine Auswirkungen auf die Variablen, welche außerhalb der Funktion als Parameter übergeben wurden.

In einigen Fällen ist es vom Programmierer erwünscht, dass auch Wertetypen innerhalb der Funktion geändert werden können. Wertetypen können als Referenz übergeben werden. Dann sind diese in C/C++ als Pointer zu übergeben, in C# und Java mit dem Schlüsselwort ref.

Ein Beispiel-Programm mit Funktionsaufrufen und Parameterübergaben als Werte- und Referenztyp:

C#:
  1. class Program
  2. {
  3.      static void Main(string[] args)
  4.     {
  5.         Program program = new Program();
  6.     }
  7.  
  8.     public Program()
  9.     {
  10.         int a = 45;
  11.         int b = 34;
  12.  
  13.         this.Sum(a, b);
  14.         Console.WriteLine("a = " + a.ToString() + "; b = " + b.ToString());
  15.  
  16.         this.Sum2(ref a, ref b);
  17.         Console.WriteLine("a = " + a.ToString() + "; b = " + b.ToString());
  18.     }
  19.  
  20.     // Normalfall: By Value - die Variable a kann nicht überschrieben werden
  21.     private void Sum(int param1, int param2)
  22.     {
  23.         param1 = param1 + param2;
  24.     }
  25.  
  26.     // Sonderfall: By Reference - die Variable a wird überschrieben
  27.     private void Sum2(ref int param1, ref int param2)
  28.     {
  29.         param1 = param1 + param2;
  30.     }
  31. }

Ausgabe:

a = 45; b = 34
a = 79; b = 34

Die Ausgabe des Programms zeigt, dass nur die Methode mit der als Referenz übergebenen Parameter die Variablen im Konstruktor verändert.

Alternativ zum Schlüsselwort ref kann auch das Schlüsselwort out verwendet werden.
Während ein mit ref bezeichneter Parameter vor Paramterübergabe definitiv initialisiert werden muss damit er verwendet werden kann, initialisiert sich ein mit out bezeichneter Parameter bei Methodenaufruf selber und muss daher nicht im Vorfeld initialisiert worden sein.
Hiervon abgesehen besteht kein wesentlicher Unterschied zwischen den Schlüsselwörtern ref und out, daher kann auch keine Überladung mit Unterscheidung dieser beiden Schlüsselwörter geschehen.

Boxing / Unboxing

Eine Konvertierung eines Wertetyps zu einem Referenztyp wird als Boxing bezeichnet. Unboxing ist die entgegengesetzte Konvertierung, also einer Referenz zu einem Wert. Dabei ist in C# und Java i.d.R. explizites Casting notwendig (Vorbestimmung des Datentyps zwischen einfachen Klammern).

C#:
  1. int a = 1548;    // Wertetyp
  2. object o = a;    // boxing
  3. int b = (int)o;  // unboxing (mit Casting)

Nächste Seite »