www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Programmcode
Programmcode < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Programmcode: Mathematica Code läuft nicht
Status: (Frage) beantwortet Status 
Datum: 22:41 Mo 04.02.2008
Autor: konmaster

Hallo alle zusammen...
habe folgendes programm bekommen leider sind da sehr wahrscheinblich fehler drin, so dass ich es nicht zum laufen bekomme... deswegen die frage an  euch spezialisten.
benötige das prog um vergleichsrechnungen zu machen...


Programmstart
                  
                  

                  Remove["Global'*"]
<< Graphisc 'Graphics3D'

                  [mm] ____________________________________________________________\ [/mm]
_______________________________________________
Parametereinstellwerte

                  alphas = 5*Pi/180; (Null)
bs = 6; (Angabe in mm)
ae = 25/100; (Angabe in mm)
(hat auf deltagrad max so gut wie keinen Einfluss)
af = 4/100; (Angabe in mm)
rss = 400/2 (Angabe in mm)
rws = 60/2 (Angabe in mm)
nw = 1000/60 (Angabe in mm)
bss = ae/(Tan[alphas]);
imax = IntegerPart[(bss/af)];
If[imax == 0, imax = 1];
vec = Table[i, {i, 1, imax, 1}]
z = ae - vec*af*Tan[alphas] (Näherung gilt erst ab Punkt 2)
x = bss - vec*af (Näherung gilt erst ab Punkt 2)
rssi = rss - z (Schnittfläche zweier Kreise)

                  [mm] ____________________________________________________________\ [/mm]
________________________________________________
Definitionen

                  r10 = rss;
r1 = rssi (Schleifscheibe)
(Berechnung gilt erst ab Punkt 2)
r2 = rws; (Werkstück)
h = r10 - ae + r2

                  [mm] ____________________________________________________________\ [/mm]
_______________________________________________
Schnittpunkte

                  k1[w_] = [mm] Sqrt[r1^2 [/mm] - [mm] w^2]; [/mm]
k2[w_] = h - [mm] Sqrt[r2^2 [/mm] - [mm] w^2] [/mm]
l1 = {};
Do[{w0 = Solve[k1[w]MBj == k2[w], w], l1 = Append[l1, w0]}, {j, 1, max, 1 [mm] \ [/mm]
=)
l1;
l1 = w/ .l1;
erg = N[Table[l2MBjMB2, {j, 1, imax, 1}]] (Die Höhen (erg) gelten ab [mm] \ [/mm]
Punkt 2 entsprechend beta/betass/st)
(Winkel im Bogenmaß, werkstückseitig)
beta = ArcSin[erg/r2]; (Berechnung gilt erst ab Punkt 2)
(Winkel im Bogenmaß, scheibenseitig)
betass = ArcSin[erg/r1]; (Berechnung gilt erst ab Punkt 2)
st = erg; (Höhe in mm (st))
[mm] ______________________________________________________________________________\ [/mm]
______________________________
Berechnung von Delta
                
vw = nw*Pi*2*rws;
vaf = nw*af;
tst = rws*
                  beta/vw; (Näherung (normalerweise mit rwsi) aber ae im [mm] \ [/mm]
Verhältnis zu rws vernachlässigbar klein)
sa = vaf*tst;
delta = ArcTan[sa/st]; (Berechnung gilt erst ab Punkt 2)
deltagrad = delta*180/Pi
deltagemittelt = N[(Max[Deltagrad] + Min[deltagrad])/2]
Qw = N[Pi*(2*rws)*(ae)*(nw)*(af)]
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Koordinate für Durchdringungslinien mit rws = konstant
                
px = Reverse[Append[Reverse[x], N[bss]]]; Durch
                das manuelle
                    Hinzufügen des Pkt.1 gelten die Koordinaten ab Pkt.1)
py = Reverse[Append[Reverse[st], 0]];
pz = Reverse[Append[Reverse[rssi(1 - Cos[betass]) + z], ae]];
linie = Transpose[{px, py, pz}];
ScatterPlot3D[linie, TextStyle -> FontSize -> 17, AxesLabel -> {"X", "Y",
              "Z"}, ViewPoint -> {-1.839, -7.095, 0.865}, PlotStyle ->
              PointSize[0.06]]
grün = ListPlot[Transpose[{
              px, py}], AxecLabel -> {"x", "y"}, TextStyle -> FontSize ->
              17, AxesOrigin -> {0,
                  0}, PlotStyle -> PointSize[0.02], AspectRatio -> Automatic]
ListPlot[Transpose[{px, pz}],
              AxesLabel -> {"X",
                "Z"}, TextStyle -> FontSize -> 17, AxesOrigin -> {0, 0}]
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Koordinate für die Durchdingungslinie mit rws = nicht konstant
              
deltax = Reverse[Append[Reverse[st*Tan[delta]], 0]];
deltax = Table[deltax]; (Berechnung gilt ab Punkt 1)
pxhilfe = Table[px]; (Berechnung gilt ab Punkt 1)
deltaxges = Table[i, {1, imac + 1, 1}];
Do[{deltaxgesMBI + 1 = (pxhilfeMBi - deltaxMBi) - (pxhilfeMBi + 1 - [mm] \ [/mm]
deltaxMBi + 1)}, {i, 1, imax, 1}];
deltaxges (Achtung : der erste Wert von deltaxtges ist nur aufgrund der [mm] \ [/mm]
Konstukion der Formel vorhanden und hat mit der Rechnung nichts zu tun)
deltaxge = Delete[deltaxges, 1]; (Entfernung des "Konstruktionswertes")
(Berechnung gilt erst ab Punkt 2)
deltahges = deltaxges*Tan[alphas]; (Berechung gilt erst ab Punkt 2)
rwsi = Table[i, {i, 1, imax, 1}];
rwsiMB1 = rws; (
          Berechnung gilt erst ab Punkt 2, aber durch das manuelle
                Einfügen des Punktes 1 ist r1 = r2 = rws)
Do[{rwsiMBi + 1 = (rwsiMBi - deltahgesMBi]}, {i, 1, imax - 1, 1}]
rwsi; (Der erste
              Inhalt von rwsi entspricht nicht dem
                    Radius in Punkt 2, da Punkt 1
                        nachträglich non HAnd eingefügt wurde)
[mm] ______________________________________________________________________________\ [/mm]
_______________________________
Berechnung von Betasternchen
        
r1 = rssi; (Schleifscheibe)
(Berechnung gilt erst ab Punkt 2)
r2 = rwsi; (werkstück)
h
kstern1[v_] = [mm] Sqrt[r1^2 [/mm] - [mm] v^2]; [/mm]
kstern2[v_] = h - [mm] Sqrt[r2^2 [/mm] - [mm] v^2]; [/mm]
l1 = {};
Do[{v0 = Solve[kstern1[
v]MBj == kstern2[v]MBj, v], l1 = Append[l1, v0]}, {j, 1, imax, 1}];
N[l1]
l2}v /. l1;
erg2 = Table[l2MBjMB2, {j, 1, imax, 1}] (Die
  Höhen (erg2) gelten ab Punkt 2)
(winkel betasternchen im Bogemaß werkstückseitig)
beta = ArcSin[erg2/r2] (Die Winkel beta gelten ab Punkt 2)
(Winkel im Bogenmaß, scheibenseitig)
betass = ArcSin[erg2/r1] (Die Winkel betass gelten ab Punkt 2)
ststernchen = erg2; (Die Höhen (erg2) gelten ab Punkt 2)
(Koordinaten der Durchdringungslinie mit rws nicht konstant)
deltast = st - ststernchen (deltast/deltasa gelten ab Punkt 2)
deltasa = deltast*Tan[delta]
Psternchenx = Reverse[Append[Reverse[x - deltasa], N[
    bss]]]; (Die Koordinaten gelten wieder ab Punkt 1)
Psterncheny = Reverse[Append[Reverse[ststernchen], 0]];
Psternchenz = Reverse[Append[Reverse[(rssi + deltase*Tan[alphas])*(1 - [mm] \ [/mm]
Cos[betass]) + z - deltasa*tan[alphas]], N[ae]]]
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Koordinaten im zyl Teil

deltahschrupp = (PsternchenxMB imax + 1 - PsternchenyMBimax + 1*Tan[deltaMBimac])*Tan[alphas]
(imax + 1, da Punkt 1 nachträgleich eingefüt
  wurde.delta[imax] ist passende Winkel zum Pkt.imax + 1)
r1 = rss (Berechnung gilt lediglich für einen Punkt 2)
r2 = rws - ae + deltahschrupp (Werkstückdurchmesser )
r10 = rss
h
m1[t_] = [mm] Sqrt[r1^2 [/mm] - [mm] t^2] [/mm]
m2[t_] = h - [mm] Sqrt[r2^2 [/mm] - [mm] t^2] [/mm]
l1 = {}
t0 = Solve[m1[t] == m2[t], t]
l1 = Append[l1, t0]
l2 = t /. l1;
erg3 = Table[l2MBjMB2, {j, 1, 1, 1}]
ststernchenzyl = erg3;
tststernchenzyl = ((r2)*(ArcSin[erg3/r2]))/vw; (aktueller WS - Radius*
      Schnittwinkel/vw ergibt Eingriffszeit)
sasternchenzyl = vaf*tststernchenzyl
deltasternchenzyl = ArcTan[Sasternchenzyl/ststernchenzyl]
Psternchenzylx = PsternchenxMBimax + 1 - af - (
    PsternchenyMBimax + 1 - ststernchenzyl)*Tan[deltasternchenzyl];
(imax + 1, da Pkt.1 nachträglich eingefügt wurde.)
Psternchenzylx = Reverse[Append[Psternchenzylx, -af]]
Psternchenzyly = ststernchenzyl;
Psternchenzyly = Append[Psternchenzyly, 0]
Psternchenzylz = Table[i, {i, 0, 01}]
Psternchenzylz = Flatten[Reverse[
    Append[Psternchenzylz, (rss(1 - Cos[ArcSin[erg3/rss]]))]]]
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Berechnung der Zweischenpunkte

Psternchenx = Reverse[Append[Psternchenx, Psternchenzylx]];
Psternchenx = Reverse[Append[Flatten, Psternchenx]]
Psterncheny = Flatten[Append[Psterncheny, Psternchenzyly]]
Psterncheny = Flatten[Append[Psternchenz, Psternchenzylz]];
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Berechnung der Koordinaten im Anfangsbereich

deltaxanf = (bss - xMB1)/10
anfvec == Table[i, {i, 9}]
xanf = bss - anfvec*anfvec*deltaxanf;
rssanf = rss - xanf*(ae/bss);
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Definitonen

r10 = rss;
r1 = rssanf; (scheibe)
r2 = rws;
h = r10 - ae + r2
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Schnittpunkte

k1[w_] = [mm] Sqrt[r1^2 [/mm] - [mm] w^2]; [/mm]
k2[w_] = [mm] Sqrt[r2^2 [/mm] - [mm] w^2]; [/mm]
l1 = {};
Do[{w0 = Solve[k1[w]MBj == k2[w], w], l1 = Append[l1, w0]}, {j, 1, 9, 1}]
l1;
l2 = w /. l1;
erg = Table[l2MBjMB2, {j, 1, 9, 1}]; (Winkel im Bogenmaß, [mm] \ [/mm]
werkstückseitig)
betaanf - ArcSind[erg/r2]; (Winkel im Bogenmaß, scheibenseitig)
betassanf = ArcSin[erg/r1]; (Höhe in mm (st))
Pxanf = Prepend[xanf, bss];
Pyanf = Prepend[Pyanf = erg, 0];
Pzanf = Prepend[Pzanf = (xanf*(ae/bss) + rssanf(1 - Cos[betassanf])), ae];
[mm] ______________________________________________________________________________\ [/mm]
_____________________________
Koordinaten der Durchdringungs

KoordinateX = N[Flatten[Prepend[KoordinateX =
       Delete[Psternchenx, 1], Pxanf]]]
KoordinateY = N[Flatten[Prepend[KoordinateY = Delete[Psterncheny, 1], [mm] \ [/mm]
Pxanf]]]
KoordinateZ = N[Flatten[Prepend[KoordinateZ = Delete[Psternchenz, 1], [mm] \ [/mm]
Pxanf]]]
Koordinatenergebnis1 = Transpose[{KoordinateX, KoordinateY, KoordinateZ}]
[mm] Export["c:/Koordinaten/llalphaqp0_1.wmf", [/mm] Koordinatenergebnis1, "Table"]
linie = Transpose[{KoordinateX, KoordinateY, KoordinateZ}];
ScatterPlot3D[linie, TextStyle ->
         Fontsize -> 17, AxesLabel -> {"X", "Y", "Z"},
   ViewPoint -> {-0, 000, -2.657, 2.095}, PlotStyle -> PointSize[0.06]]

rot = ListPlot[Transpose[{KoordinateX,
        KoordinateY}], AxesLabel -> {"x", "y"}, TextStyle -> FontSize ->
      17, AxesOrigin -> {0, 0}, PlotStyle -> {PointSize[0, 02],
      RGBColor[1, 0, 0]}, AspectRatio -> Automatic]

ListPlot[Transpose[{KoordinateX, KoordinateZ}], AxesLabel -> {"X", "Z"},
    TextStyle -> FontSize -> 17, AxesOrigin -> {0, 0}]
deltagrad
Show[rot, grün]
[mm] ______________________________________________________________________________\ [/mm]
______________________________
Programmende











Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Dateianhänge:
Anhang Nr. 1 (Typ: txt) [nicht öffentlich]
        
Bezug
Programmcode: Antwort
Status: (Antwort) fertig Status 
Datum: 08:24 Di 05.02.2008
Autor: nschlange

Hi,

in dem Code sind viele Tippfehler,
nicht zusammenpassende Klammern,
und , statt . in Zahlen.

Viele Grüße
nschlange

Bezug
        
Bezug
Programmcode: Antwort
Status: (Antwort) fertig Status 
Datum: 16:39 Mi 06.02.2008
Autor: BKM

Hallo

Ich habe das Programm etwas überarbeitet um eine Handvoll Fehler ( s. erste Antwort)  zu beseitigen. Es sind noch ca. 2 Bugs vorhanden, die Du aber vielleicht selber mal versuchst zu finden.
Programmcode

Beste Grüße

Dateianhänge:
Anhang Nr. 1 (Typ: nb) [nicht öffentlich]
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]