www.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 »