> with(plots):
> with (linalg):
KMZ51
>
XY-EBENE
Das sind die beiden Bahnen der Vektoren, die die Sensoren x,y bei einer Drehung um 90° in waagrerechter Position erzeugen.
Der Sensor x zeigt dabei am Anfang genau nach norden (x=10) . Sensor y liefert dann den Wert 0.
Beide Vektoren liegen immer 90° zueinmander.
> plot( {[cos(alpha*Pi/180)*cos(alpha*Pi/180)*10 , sin(alpha*Pi/180)*cos(alpha*Pi/180)*10, alpha =0...90], [-sin(alpha*Pi/180)*sin(alpha*Pi/180)*10 , cos(alpha*Pi/180)*sin(alpha*Pi/180)*10, alpha =0...90]},x=-10..10,y=-10..10);
Animation der Drehung von 0..90°.
Rechts Sensor x, Links Sensor y.
10 = Magnetfeldstärke in XY Ebene, genauergesagt in X Richtung
> animate( {[cos(alpha*Pi/180*u)*cos(alpha*Pi/180*u)*10 , sin(alpha*Pi/180*u)*cos(alpha*Pi/180*u)*10, alpha =0..90], [-sin(alpha*Pi/180*u)*sin(alpha*Pi/180*u)*10 , cos(alpha*Pi/180*u)*sin(alpha*Pi/180*u)*10, alpha =0..90 ] }, u=0..1,frames=60,numpoints=100);
>
>
>
XZ-EBENE
Neigen des Sensors um die y Achse.
Bsp. Sensoren in waagrerechter Position
X-Komponente = 10
Z-Komponente = 30
Beta = 0°
Kippt man nun beide Senosoren um 90°, so ändern sich deren Größen. (Siehe auch teil-Animation unten)
> plot({[ ((10* cos(beta)+30*sin(beta))*cos(beta)) , -(( 10 * cos(beta)+30*sin(beta))*sin(beta)),beta=0..Pi/2 ] , [(( -30* cos(beta)-10*sin(beta))*sin(beta)) , ((-30*cos(beta)-10*sin(beta))*cos(beta)),beta=0..Pi/2 ]});
>
>
In waagrerechter Position ist x =10 und z=30. Gekippt ändert sich die beiden Werte x, z folgendermassen.
> animate({[ (( 10* cos(beta*u)+30*sin(beta*u))*cos(beta*u)),-(( 10 *cos(beta*u)+30*sin(beta*u))*sin(beta*u)),beta=0..Pi/8], [ (( -30* cos(beta*u)-10*sin(beta*u))*sin(beta*u)),((-30 *cos(beta*u)-10*sin(beta*u))*cos(beta*u)),beta=0..Pi/8] } ,u=0..1,frames=60,numpoints=100);
>
>
>
>
Test mit einem Magnetfeld von x=10 und z=30 auf ebene Unterlage.
Verdreht (um y-Achse) um Pi/8 (22.5°) messen die Beiden Sensoren (x,z) 20,71 und 31,54.
Daraus müssen nun durch das Programm die urspünglichen Größen x=10 und z=30 erechnet werden. (siehe unten)
> F:=beta->sqrt(((( 10* cos(beta)+30*sin(beta))*cos(beta)))^2+((( 10 *cos(beta)+30*sin(beta))*sin(beta)))^2);
> G:=beta->sqrt((( -30* cos(beta)-10*sin(beta))*sin(beta))^2+((-30 *cos(beta)-10*sin(beta))*cos(beta))^2);
Test-Messwerte aus beiden Hall Sensoren KMZ51-x, KMZ51-z, und ADXL202
> evalf(F(Pi/8));evalf(G(Pi/8));beta=Pi/8;
>
>
> eq1:=(beta,xx)->(x* cos(beta) + y*sin(beta) = xx);
> eq2:=(beta,yy)->(x* sin(beta) + y*cos(beta) = yy);
>
> evalf(eq1(Pi/8,20.71929830));
> evalf(eq2(Pi/8,31.54322030));
Gleichungssystem lösen
> solve({ evalf(eq1(Pi/8,20.71929830)) , evalf(eq2(Pi/8,31.54322030)) },{x,y});
Ergebins ok!!
>
>
>
>