# Kapitel 1: 
# Die angeschlagene Saite
# © 2017  Friedrich U. Mathiak, 
# mathiak@mechanik-info.de
# 
# 
> restart: with(LinearAlgebra): with(plots):  with(plottools): unprotect(D,Psi);
> Proc_Calc_05:=proc(Daten::list)
> #----------------------------------------------------------------------------
> #Eingabe:
> # Daten[1]:   l: Länge der Saite in [m]
> # Daten[2]:   M: Masse der Saite in [kg]
> # Daten[3]:   S: Vorspannkraft   in [N]
> # Daten[4]:   a: Zentrum des Hammerschlages      in [m]
> # Daten[5]:   b: Breite des Hammers in [m]
> # Daten[6]:  v0: Anschlaggeschwindigkeit des Hammes in [m/s]
> # Daten[7]:   N: Anzahl der zu berücksichtigenden Reihenglieder
> #Ausgabe:
> #             y: Bewegungsgleichung der Saite
> #             v: Geschwindigkeit der Saite
> #           ANY: Animation des Bewegungsvorgangs
> #           ANV: Animation des Geschwindigkeit      
> #----------------------------------------------------------------------------
> local l,M,S,a,b,v0,mu,c,alpha,beta,T1,n,nP,nbh,para;
> global y,v,ANY,ANV;
> description "Die angeschlagene Saite";
> l :=Daten[1]; M:= Daten[2]; S:= Daten[3]; a:= Daten[4]; b:=Daten[5]; v0:=Daten[6];
> mu:=M/l; c:=sqrt(S/mu); alpha:=a/l; beta:=b/l; T1:=2*l/c;
> if a-b/2 < 0 or a+b/2 > l then
>   print(`Überprüfen Sie den Ort des Hammerschlags`);
>   return;
> end if;
> y:=0.:
> for n to Daten[7] do
>   nP:=n*Pi; nbh:=n*beta/2;
>   if abs(nbh-1.) > 0.1e-6 then
>     y :=y + 2./Pi/(n^2*(1.-nbh^2))*sin(nP*alpha)*sin(nbh*Pi)*sin(nP*xi)*sin(2*nP*tau);
>       else 
>     y :=y + 1./n^2*sin(nP*alpha)*sin(nP*xi)*sin(2*nP*tau);
>   end if:
> end do;
> y:=v0*l/c/Pi*y;
> v:=1/T1*diff(y,tau);
> #Animation des Bewegungsvorgangs
> para:= xi=0..1,tau=0..1, axes=boxed, title = "\nDie angeschlagene Saite\n", titlefont = ["ARIAL", 15], frames=150, numpoints=200, color=blue, thickness=3, gridlines=true, labeldirections = ["horizontal", "vertical"], labelfont = ["HELVETICA", 10], axesfont = ["HELVETICA", "ROMAN", 8];
> ANY:=plots[animate](y, para, labels = ["Bezogene Saitenlänge ¾ = x/l", "Auslenkung in [m]"]);
> ANV:=plots[animate](v, para, labels = ["Bezogene Saitenlänge ¾ = x/l", "Geschwindigkeit in [m/s]"]);
> end proc:
# Beispiel 1-3:
# 
# Die frei schwingende Länge der Saite eines Klaviers ist  = 65 cm. Der Durchmesser der Saite beträgt  D = 0.6 mm und die Dichte des Materials ist Á = 7.5 g/cm3 (Stahl).  Die Saite ist mit der  Spannkraft S = 80 N  vorgespannt. Die Geschwindigkeit des Hammers beim Anschlag beträgt v0 = 5 m/s. Mit den Werten des Beispiels sind:
> l:=0.65;               #Saitenlänge in [m]
;
> D:= 0.6e-3;            #Durchmesser der Saite in [m]
;
> rho:=7.5e+3;           #Dichte der Saite in [kg/m^3]
;
> M:=rho*D^2*Pi/4*l;     #Gesamtmasse der Saite in [kg]
;
> S:=80.;                #Vorspannkraft in [N]
;
> a:=0.3*l;              #Zentrum des Anschlags in [m]
;
> b:=0.1;                #Breite des Hammers in [m]
;
> v0:=5.;                #Geschwindigkeit des Hammers beim Anschlag  [m/s]
;
> N:=50;                 #Anzahl der zu berücksichtigenden Reihenglieder
;
> sys:=[l,M,S,a,b,v0,N];
> Proc_Calc_05(sys):
> Y0 := v0/2*(cos(2*Pi*(x-a)/b)+1); 
# Grafische Darstellung der Anfangsgeschwindigkeit
> Psi:= piecewise(a-b/2 < x and x < a+b/2, Y0);  #Anfangsgeschwindigkeit
;
> plot(Psi, x = 0 .. 1, title = "\nAnfangsgeschwindigkeit ¨(x) der Saite\n", titlefont = ["ARIAL", 15], labels = ["Bezogene Saitenlänge ¾ = x/l", "Anfangsgeschwindigkeit in [m/s]"],labeldirections = ["horizontal", "vertical"], color = "NavyBlue", thickness = 2, filled = [color = "Blue", transparency = .5],gridlines = true);
# Wir animieren die Zustandsgrößen
> ANY; ANV;
> 
;
