prepare for beamtime

This commit is contained in:
2017-11-07 14:26:00 +01:00
parent c80dba7b37
commit ea9fbc6d47
8 changed files with 792 additions and 127 deletions

View File

@@ -20,9 +20,11 @@
file PPMACMotor.template { file PPMACMotor.template {
pattern {DESC ,P ,M ,PORT ,ADDR ,DIR,VMAX,VELO,JVEL,HVEL,ACCL,JAR,MRES ,PREC,EGU ,DHLM,DLLM} pattern {DESC ,P ,M ,PORT ,ADDR ,DIR,VMAX,VELO,JVEL,HVEL,ACCL,JAR,MRES ,PREC,EGU ,DHLM,DLLM}
{ "Rotation Y" ,"$(P_M)","MOTOR_ROT_Y1","$(PORT_M)","$(M1)",1 ,50 ,50 ,50 ,1 ,0.1 ,20 ,-0.001,3 ,"deg",0 ,0} { "Rotation Y" ,"$(P_M)","MOTOR_ROT_Y" ,"$(PORT_M)","$(M1)",1 ,50 ,50 ,50 ,1 ,0.1 ,20 ,-0.001,3 ,"deg",0 ,0}
{ "Translation X","$(P_M)","MOTOR_X1" ,"$(PORT_M)","$(M2)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0} { "Translation X","$(P_M)","MOTOR_FX" ,"$(PORT_M)","$(M2)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
{ "Translation Y","$(P_M)","MOTOR_Y1" ,"$(PORT_M)","$(M3)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0} { "Translation Y","$(P_M)","MOTOR_FY" ,"$(PORT_M)","$(M3)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
{ "TransBase X", "$(P_M)","MOTOR_AX" ,"$(PORT_M)","$(M7)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0} { "CamBase X", "$(P_M)","MOTOR_CAMX" ,"$(PORT_M)","$(M4)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
{ "TransBase Z", "$(P_M)","MOTOR_AZ" ,"$(PORT_M)","$(M8)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0} { "CamBase Y", "$(P_M)","MOTOR_CAMY" ,"$(PORT_M)","$(M5)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
{ "TransBase X", "$(P_M)","MOTOR_CX" ,"$(PORT_M)","$(M7)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
{ "TransBase Z", "$(P_M)","MOTOR_CZ" ,"$(PORT_M)","$(M8)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
} }

View File

@@ -12,18 +12,22 @@ require gpasciiCommander
M1=1 M1=1
M2=$(M1)+1 M2=$(M1)+1
M3=$(M1)+2 M3=$(M1)+2
#M4=$(M1)+3 M4=$(M1)+3
M5=$(M1)+4
M6=$(M1)+5
M7=$(M1)+6 M7=$(M1)+6
M8=$(M1)+7 M8=$(M1)+7
powerPmacCreateAxis($(PORT), $(M1)) powerPmacCreateAxis($(PORT), $(M1))
powerPmacCreateAxis($(PORT), $(M2)) powerPmacCreateAxis($(PORT), $(M2))
powerPmacCreateAxis($(PORT), $(M3)) powerPmacCreateAxis($(PORT), $(M3))
#powerPmacCreateAxis($(PORT), $(M4)) powerPmacCreateAxis($(PORT), $(M4))
powerPmacCreateAxis($(PORT), $(M5))
powerPmacCreateAxis($(PORT), $(M6))
powerPmacCreateAxis($(PORT), $(M7)) powerPmacCreateAxis($(PORT), $(M7))
powerPmacCreateAxis($(PORT), $(M8)) powerPmacCreateAxis($(PORT), $(M8))
# Load databse # Load databse
dbLoadTemplate("$(ESB_MX_TEMPLATES)/ESB_MX.subs", "PORT_M=$(PORT),P_M=$(P),M1=$(M1),M2=$(M2),M3=$(M3),M7=$(M7),M8=$(M8)") dbLoadTemplate("$(ESB_MX_TEMPLATES)/ESB_MX.subs", "PORT_M=$(PORT),P_M=$(P),M1=$(M1),M2=$(M2),M3=$(M3),M4=$(M4),M5=$(M5),M6=$(M6),M7=$(M7),M8=$(M8)")

View File

@@ -1,40 +1,3 @@
// Here we use 'real encoder with direct PWM'. Further the axis are scaled
// in this configuration, the PID gives 'torque' to iqCmd.
// the phasePos is received from tne encoder on the motor shaft.
// The idCmd is set to 0
// the PID regulates the position by setting torque, if the motor is not at the desired position
// Compared to 'real encoder with direct microstepping', following main elements have to be reconfigured:
// SlipGain=0 (instead 0.25) ,PhasePosSf= calculated value (instead of 0)
// look also at PwmSf,PhaseMode,PhaseCtrl,
// -> PhasePosSf is calculated as follows: (2048*pole_cycle)/(256*enc_step) = 8*pole_cycle/enc_step
// e.g. Motor[x].pPhaseEnc -> PowerBrick[.].Chan[.].PhaseCapt.a
// 1 rev = 8192 phase_step = 4 pole_cycle = 512000 PhaseCapt =256*2000 (256=scaling of encTable, 2000=enc_step/rev)
// PhasePosSf 8*4/2000=0.016
// x einraster == -> x-N and x-S poles =2*x poles -> 1 rev = x*2048 ustep=phase_step
// changing the polarity from S-N-S (one pole cycle) are 2048 phase_step. phase_step is also called ustep
//Mot 1: Rotation stage LS Mecapion MDM-DC06DNC0H 32 poles = 1 rev = 16*2048=32768 phase_step
//Enc 1: Rotation stage LS Mecapion 1 rev = 1048576 enc_steps
//Mot 2: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
//Enc 2: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
//Mot 3: Stage Y Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
//Enc 3: Stage Y Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
//Mot 4: Test Servo: Trinamic QBL 4208 motor 8 poles 1 rev = 4*2048=8192 phase_step
//Enc 4: Test Servo: Incremental encoder mounted with motor 1 1 rev = 2000 enc count (500 inc_ quadrature encoder)
//Enc 5: Test Servo: Trinamic QBL 4208 hall sensor 1 rev = 24 enc count (hall sensor encoder)
//Mot 7: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 7: Renishaw absolute BiSS
//Mot 8: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 8: Renishaw absolute BiSS
//$$$*** //$$$***
//!common() //!common()

View File

@@ -26,6 +26,23 @@
//Mot 3: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step //Mot 3: Stage X Parker MX80L D11 25mm one pole cycle = 13mm = 2048 phase_step
//Enc 3: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step) //Enc 3: Stage X Parker MX80L D11 inc_enc 20nm one pole cycle = 13mm = 650000 enc_step (20nm/enc_step)
//Enc 4: Interferometer 1
//Enc 5: Interferometer 2
//Mot 7: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 7: Renishaw absolute BiSS
//Mot 8: Stada Stepper: 670mA 200 poles 1 rev = 100*2048 phase_step (2 stepper motor)
//Enc 8: Renishaw absolute BiSS
//rot stage //rot stage
//--------- //---------
//use 360'000 for 360 deg as motor unit //use 360'000 for 360 deg as motor unit
@@ -72,10 +89,28 @@ Motor[1].pPhaseEnc=Acc84B[0].Chan[0].SerialEncDataA.a
//PhaseFreq=20000,PhasePerServo=1 -> Kvfb=220*4 Ki/=4,Kvff*=4,Kaff*=4*4 //PhaseFreq=20000,PhasePerServo=1 -> Kvfb=220*4 Ki/=4,Kvff*=4,Kaff*=4*4
!motor(mot=3,dirCur=0,contCur=800,peakCur=2400,timeAtPeak=1,IiGain=1,IpfGain=0,IpbGain=2,JogSpeed=10.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./81250,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=200,WarnFeLimit=100,InPosBand=2,homing='enc-index') !motor(mot=3,dirCur=0,contCur=800,peakCur=2400,timeAtPeak=1,IiGain=1,IpfGain=0,IpbGain=2,JogSpeed=10.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./81250,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=200,WarnFeLimit=100,InPosBand=2,homing='enc-index')
//Interferometer 1 Stage Y Parker MX80L (bottom stage) //Interferometer 1,2
//---------------------------------------------------- //------------------
!encoder_inc(enc=4,tbl=4,mot=4)# ,posSf=13000./650000) //!encoder_inc(enc=4,tbl=4,mot=4)# ,posSf=13000./650000)
!encoder_inc(enc=5,tbl=5,mot=5)# ,posSf=13000./650000) //!encoder_inc(enc=5,tbl=5,mot=5)# ,posSf=13000./650000)
//Base plate
//----------
//102400000 ustep 200000 encCnt = 10mm = 10000um
//posSf = userUnits/encoder_steps = 10000/200000 =1./20
//servoSf=motor_u_steps/userUnits = 102400000/10000 = 10240./1
!encoder_inc(enc=4,posSf=1./20)
!motor(mot=4,dirCur=250,JogSpeed=.3,invDir=0,servoSf=10240.,InPosBand=1,HomeOffset=0)
Motor[4].Pos2Sf=0 // Pos2Sf set to 0 to avoid programming leak values
//-51200000 ustep = -200000 encCnt == 10mm =10000 um
//posSf = userUnits/encoder_steps = 10000/-200000 =1/-20.
//servoSf=motor_u_steps/userUnits = -51200000/10000 = -5120./1
!encoder_inc(enc=5,posSf=1./20)
!motor(mot=5,dirCur=250,JogSpeed=.3,invDir=0,servoSf=5120.,InPosBand=1,HomeOffset=0)
Motor[5].Pos2Sf=0 // Pos2Sf set to 0 to avoid programming leak values
//Stada stage //Stada stage
//---------------------------------------------------- //----------------------------------------------------

View File

@@ -28,7 +28,8 @@ class HelicalScan:
#fn='/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/data/'+time.strftime('%y-%m-%d-%H_%M_%S') #fn='/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/data/'+time.strftime('%y-%m-%d-%H_%M_%S')
#cfg = {"sequencer": ['gen_grid_points(w=5,h=5,pitch=100,rnd=0.4)', 'sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'.npz")']} #cfg = {"sequencer": ['gen_grid_points(w=5,h=5,pitch=100,rnd=0.4)', 'sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'.npz")']}
#cfg = {"sequencer": ['test_find_rot_ctr()']} #cfg = {"sequencer": ['test_find_rot_ctr()']}
cfg = {"sequencer": ['test_find_rot_ctr(n=5. ,per=1. ,phi=24.6 ,bias=2.31,ampl=4.12)']} #cfg = {"sequencer": ['test_find_rot_ctr(n=5. ,per=1.,bias=2.31,ampl=4.12,phi=24.6)']}
cfg = {"sequencer": ['test_coord_trf()']}
self.cfg=dotdict(cfg) self.cfg=dotdict(cfg)
self.args=args self.args=args
@@ -51,7 +52,70 @@ class HelicalScan:
if not dryrun: if not dryrun:
eval('self.' + cmd) eval('self.' + cmd)
def meas_rot_ctr(self,y,per=1): def test_coord_trf(self):
n = 3.; per = 1.; t = np.arange(n)
p=((2.3,2.31,4.12,24.6),(6.2,2.74,32.1,3.28)) #(y, bias, ampl, phi)
self.param=param=np.ndarray((len(p),5))
z=4.5 # fix z position
for i in range(2):
(y, bias, ampl, phi) =p[i]
x= ampl * np.cos(2 * np.pi * (per / n * t + phi / 360.)) + bias
print('yMeas_%d='%i+str(y)+' xMeas_%d='%i+str(x))
#param[i]=(z_i, y_i, x_i, r_i,phi_i)
param[i][0] =z
param[i][1] =y
param[i][2:]=HelicalScan.meas_rot_ctr(x) #(bias,ampl,phase)
pass
print param
#self.fwd_transform(param[0][1],0.,param[0][2],param[0][1])
# y_0 ,120deg ,x_0 ,z_0)
self.fwd_transform(param[0][1],2*np.pi/3.,param[0][2],param[0][0])
#self.fwd_transform(param[1][1],0.,param[1][2],param[1][3])
def fwd_transform(self,y,w,cx,cz):
#cx,cy: coarse stage
#TODO: NOT WORKING AT ALL NOW...
param=self.param
# param[i]=(z_i, y_i, x_i, r_i,phi_i)
p=np.ndarray((param.shape[0], 3))
for i in range(2):
#p[i][0]=param[i][2]+param[i][3]*np.cos(param[i][4]+w) # x= x_i+r_i*cos(phi_i*w)+cx
p[i][0]=cx+param[i][3]*np.cos(param[i][4]+w) # x= x_i+r_i*cos(phi_i*w)+cx
p[i][1]=param[i][1] # y= y_i
#p[i][2]=param[i][2]+param[i][3]*np.sin(param[i][4]+w) # z= z_i+r_i*sin(phi_i*w)
p[i][2] =cz + param[i][3] * np.sin(param[i][4] + w) # z= z_i+r_i*sin(phi_i*w)
print p
v=p[1]-p[0]
v=v/np.sqrt(v.dot(v)) # v/|v|
v=v*(y-param[0][1])/(param[1][1]-param[0][1]) # v(y)=v*(v-y_0)/(y_1-y_0)
v=p[0]+v
#v=v/abs(v)
print v
#
#
#
#x,y,z
#returns y,w,dx,dz
pass
def inv_transform(y,phi,dx=0,dz=0):
#dx,dy: deviation from cristal center line
#ps= #x,y,z
#returns y,phi,cx,cz
pass
@staticmethod
def meas_rot_ctr(y,per=1):
# find the amplitude bias and phase of an equidistant sampled sinus # find the amplitude bias and phase of an equidistant sampled sinus
# it needs at least 3 measurements e.g. at 0,120 240 deg or 0 90 180 270 deg # it needs at least 3 measurements e.g. at 0,120 240 deg or 0 90 180 270 deg
# per is the number of persiods, default is 1 period =360 deg # per is the number of persiods, default is 1 period =360 deg
@@ -61,9 +125,10 @@ class HelicalScan:
bias=np.absolute(f[0]/n) bias=np.absolute(f[0]/n)
phase=np.angle(f[idx]) phase=np.angle(f[idx])
ampl=np.absolute(f[idx])*2/n ampl=np.absolute(f[idx])*2/n
return (bias,phase,ampl) return (bias,ampl,phase)
def test_find_rot_ctr(self,n=3. ,per=1. ,phi=37 ,bias=4.1,ampl=2.4): @staticmethod
def test_find_rot_ctr(n=3.,per=1.,bias=4.1,ampl=2.4,phi=37):
# find the rotation center, amplitude out of n (niminum 3) measurements # find the rotation center, amplitude out of n (niminum 3) measurements
# n number of equidistant measurements # n number of equidistant measurements
# per number of periods (full rotation of all measurements nut be a interger value for precise measurements) # per number of periods (full rotation of all measurements nut be a interger value for precise measurements)
@@ -73,24 +138,18 @@ class HelicalScan:
t = np.arange(n) t = np.arange(n)
y=ampl*np.cos(2*np.pi*(per/n*t+phi/360.))+bias y=ampl*np.cos(2*np.pi*(per/n*t+phi/360.))+bias
sp = np.fft.fft(y)
freq = np.fft.fftfreq(t.shape[-1])
plt.figure(1) plt.figure(1)
plt.subplot(311) plt.subplot(311)
plt.plot(t,y,'b.-') plt.plot(t,y,'b.-')
plt.subplot(312)
#plt.plot(t, sp.real,'b.-', t, sp.imag,'r.-')
plt.step(t, sp.real,'b.-', t, sp.imag,'r.-', where='mid')
#plt.stem(t, sp.real,'b-')
#plt.plot(freq, sp.real,'b.-', freq, sp.imag,'r.-')
idx=int(per) plt.subplot(312)
bias=np.absolute(sp[0]/n) f = np.fft.fft(y)
phase=np.angle(sp[idx]) plt.step(t, f.real,'b.-', t, f.imag,'r.-', where='mid')
ampl=np.absolute(sp[idx]) * 2 / n
(bias,ampl,phase)=HelicalScan.meas_rot_ctr(y, per)
print('bias: '+str(bias)) print('bias: '+str(bias))
print('phase: '+str(phase*360./2/np.pi))
print('amplitude: '+str(ampl)) print('amplitude: '+str(ampl))
print('phase: '+str(phase*360./2/np.pi))
plt.subplot(313) plt.subplot(313)
t2 = np.linspace(0,2*np.pi,64) t2 = np.linspace(0,2*np.pi,64)

View File

@@ -18,6 +18,26 @@
sodipodi:docname="helicalscan1.svg"> sodipodi:docname="helicalscan1.svg">
<defs <defs
id="defs4"> id="defs4">
<inkscape:path-effect
effect="spiro"
id="path-effect3724"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect3720"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect3716"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect3712"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect3706"
is_visible="true" />
<marker <marker
inkscape:stockid="Arrow1Mend" inkscape:stockid="Arrow1Mend"
orient="auto" orient="auto"
@@ -113,17 +133,26 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="0.88479319" inkscape:zoom="0.91503512"
inkscape:cx="391.99221" inkscape:cx="61.236951"
inkscape:cy="491.90477" inkscape:cy="572.69075"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="g3894"
showgrid="false" showgrid="false"
inkscape:window-width="1871" inkscape:window-width="1871"
inkscape:window-height="1176" inkscape:window-height="1176"
inkscape:window-x="49" inkscape:window-x="49"
inkscape:window-y="24" inkscape:window-y="24"
inkscape:window-maximized="1" /> inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:object-nodes="true"
inkscape:snap-smooth-nodes="true" />
<metadata <metadata
id="metadata7"> id="metadata7">
<rdf:RDF> <rdf:RDF>
@@ -160,8 +189,8 @@
id="path4155" id="path4155"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.64089721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 232.16105,182.4569 219.7738,0" d="m 90.847197,182.4569 361.087653,0"
id="path4157" id="path4157"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
@@ -170,8 +199,8 @@
id="path4159" id="path4159"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.60790253;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.67468059;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 176.61822,364.42032 324.86563,0" d="m 92.933786,364.42032 400.158704,0"
id="path4157-6" id="path4157-6"
inkscape:connector-curvature="0" /> inkscape:connector-curvature="0" />
<path <path
@@ -201,7 +230,7 @@
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.63367343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5049)" /> style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.63367343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5049)" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:sans-serif;font-stretch:normal;font-variant:normal;" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="578.60449" x="578.60449"
y="458.57333" y="458.57333"
id="text4965" id="text4965"
@@ -212,7 +241,7 @@
y="458.57333">x</tspan></text> y="458.57333">x</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:sans-serif;font-stretch:normal;font-variant:normal;" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="52.745712" x="52.745712"
y="54.988724" y="54.988724"
id="text4969" id="text4969"
@@ -223,7 +252,7 @@
y="54.988724">y</tspan></text> y="54.988724">y</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:sans-serif;font-stretch:normal;font-variant:normal;" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="242.94995" x="242.94995"
y="261.97568" y="261.97568"
id="text4973" id="text4973"
@@ -271,7 +300,7 @@
sodipodi:open="true" /> sodipodi:open="true" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="354.63498" x="354.63498"
y="358.07678" y="358.07678"
id="text5154" id="text5154"
@@ -280,11 +309,11 @@
id="tspan5156" id="tspan5156"
x="354.63498" x="354.63498"
y="358.07678">φ<tspan y="358.07678">φ<tspan
style="font-size:64.99999762%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5158">s</tspan></tspan></text> id="tspan5158">s</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;baseline-shift:baseline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;baseline-shift:baseline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="383.2056" x="383.2056"
y="205.23409" y="205.23409"
id="text5188" id="text5188"
@@ -293,63 +322,63 @@
id="tspan5190" id="tspan5190"
x="383.2056" x="383.2056"
y="205.23409">p<tspan y="205.23409">p<tspan
style="font-size:64.99999762%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5192">e</tspan></tspan></text> id="tspan5192">e</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="226.9664" x="226.54257"
y="401.83173" y="405.36362"
id="text5194" id="text5194"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5196" id="tspan5196"
x="226.9664" x="226.54257"
y="401.83173">p<tspan y="405.36362">p<tspan
style="font-size:65%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5198">s</tspan></tspan></text> id="tspan5198">s</tspan></tspan></text>
<text <text
sodipodi:linespacing="125%" sodipodi:linespacing="125%"
id="text5200" id="text5200"
y="177.46268" y="177.46268"
x="305.48557" x="305.48557"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
xml:space="preserve"><tspan xml:space="preserve"><tspan
y="177.46268" y="177.46268"
x="305.48557" x="305.48557"
id="tspan5202" id="tspan5202"
sodipodi:role="line">φ<tspan sodipodi:role="line">φ<tspan
id="tspan5204" id="tspan5204"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan></tspan></text> style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">e</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="513.47156" x="78.080482"
y="364.27039" y="365.4006"
id="text5206" id="text5206"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5208" id="tspan5208"
x="513.47156" x="78.080482"
y="364.27039">y<tspan y="365.4006">y<tspan
style="font-size:65%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5210">s</tspan></tspan></text> id="tspan5210">s</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="458.32828" x="72.106689"
y="180.06" y="183.77333"
id="text5212" id="text5212"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
id="tspan5214" id="tspan5214"
x="458.32828" x="72.106689"
y="180.06">y<tspan y="183.77333">y<tspan
style="font-size:65%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5216">e</tspan></tspan></text> id="tspan5216">e</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="-44.847584" x="-44.847584"
y="412.73996" y="412.73996"
id="text5218" id="text5218"
@@ -358,10 +387,10 @@
sodipodi:role="line" sodipodi:role="line"
id="tspan5220" id="tspan5220"
x="-44.847584" x="-44.847584"
y="412.73996">crystal</tspan></text> y="412.73996">v crystal</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="271.81494" x="271.81494"
y="385.5397" y="385.5397"
id="text5222" id="text5222"
@@ -370,11 +399,11 @@
id="tspan5224" id="tspan5224"
x="271.81494" x="271.81494"
y="385.5397">r<tspan y="385.5397">r<tspan
style="font-size:65%;baseline-shift:sub" style="font-size:65%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5226">s</tspan></tspan></text> id="tspan5226">s</tspan></tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="349.51669" x="349.51669"
y="192.83932" y="192.83932"
id="text5228" id="text5228"
@@ -383,7 +412,516 @@
id="tspan5230" id="tspan5230"
x="349.51669" x="349.51669"
y="192.83932">r<tspan y="192.83932">r<tspan
style="font-size:64.99999762%;baseline-shift:sub" style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
id="tspan5232">e</tspan></tspan></text> id="tspan5232">e</tspan></tspan></text>
</g> <path
inkscape:connector-curvature="0"
id="path4228"
d="m 95.453991,425.98555 0,-252.06849"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.53547764;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4230"
cx="95.573181"
cy="182.52617"
r="0.56510383" />
<circle
r="1.0897936"
cy="423.94144"
cx="95.394531"
id="circle4232"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.92848384;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle4234"
cx="95.414505"
cy="364.47595"
r="0.56510383" />
<text
sodipodi:linespacing="125%"
id="text4236"
y="176.86328"
x="168.22685"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
xml:space="preserve"><tspan
y="176.86328"
x="168.22685"
id="tspan4238"
sodipodi:role="line">x<tspan
id="tspan4240"
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">e</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4242"
y="360.27451"
x="178.6162"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
xml:space="preserve"><tspan
y="360.27451"
x="178.6162"
id="tspan4244"
sodipodi:role="line">x<tspan
id="tspan4246"
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">s</tspan></tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 227.50298,395.59134 7.00627,0 -3.10069,-2.33388"
id="path4248"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4262"
d="m 384.17801,196.53353 7.00627,0 -3.10069,-2.33388"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 275.11314,296.37008 4.97745,-4.93079 -3.84533,0.52411"
id="path4264"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4266"
d="m 89.507876,423.95904 383.205594,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.66023415;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<flowRoot
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot4323"
xml:space="preserve"><flowRegion
id="flowRegion4325"><rect
y="520.59955"
x="189.87488"
height="18.648426"
width="71.768181"
id="rect4327" /></flowRegion><flowPara
id="flowPara4329" /></flowRoot> <flowRoot
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot4331"
xml:space="preserve"><flowRegion
id="flowRegion4333"><rect
y="505.90683"
x="113.58587"
height="21.473946"
width="188.17957"
id="rect4335" /></flowRegion><flowPara
id="flowPara4337" /></flowRoot> <text
sodipodi:linespacing="125%"
id="text4339"
y="541.96143"
x="101.44707"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan3453"
y="541.96143"
x="101.44707"
sodipodi:role="line">coord transformation:</tspan><tspan
y="560.71143"
x="101.44707"
sodipodi:role="line"
id="tspan3553">input ω,y,d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3557">x</tspan>,d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3559">z</tspan></tspan><tspan
y="579.46143"
x="101.44707"
sodipodi:role="line"
id="tspan3555">output: ω,x,y,z,</tspan><tspan
y="598.21143"
x="101.44707"
sodipodi:role="line"
id="tspan3541" /><tspan
y="616.96143"
x="101.44707"
sodipodi:role="line"
id="tspan3561">d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3573">x</tspan>,d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3575">z</tspan> are translation from the vector v after rotation</tspan><tspan
y="635.71143"
x="101.44707"
sodipodi:role="line"
id="tspan3563" /><tspan
y="654.46143"
x="101.44707"
sodipodi:role="line"
id="tspan3547" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="101.0957"
y="514.2149"
id="text3461"
sodipodi:linespacing="125%"><tspan
id="tspan3475"
sodipodi:role="line"
x="101.0957"
y="514.2149">known values after fft: y<tspan
id="tspan3473"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>, r<tspan
id="tspan3471"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>, x<tspan
id="tspan3469"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>, φ<tspan
id="tspan3467"
style="font-size:64.99999762%;baseline-shift:sub">s, </tspan>y<tspan
id="tspan3483"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan>, r<tspan
id="tspan3481"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan>, x<tspan
id="tspan3479"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan>, φ<tspan
id="tspan3477"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="144.66656"
y="538.11774"
id="text4297"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4315"
x="144.66656"
y="538.11774" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="236.54291"
y="102.86897"
id="text4317"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4319"
x="236.54291"
y="102.86897"
style="-inkscape-font-specification:sans-serif;font-family:sans-serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">φ<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:sans-serif;-inkscape-font-specification:sans-serif;baseline-shift:sub"
id="tspan4321">e</tspan></tspan></text>
<g
id="g3643"
transform="translate(-15.455292,12.364234)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="110.69898"
y="732.79047"
id="text4359"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4361"
x="110.69898"
y="732.79047">v=p<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4365">e</tspan>-p<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4363">s</tspan></tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 111.88677,722.10095 7.00627,0 -3.10069,-2.33388"
id="path3533"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3535"
d="m 133.33099,721.71457 7.00627,0 -3.10069,-2.33388"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 153.61606,721.32819 7.00627,0 -3.10069,-2.33388"
id="path3537"
inkscape:connector-curvature="0" />
</g>
<flowRoot
xml:space="preserve"
id="flowRoot3565"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3567"><rect
id="rect3569"
width="286.32782"
height="195.07448"
x="25.135647"
y="572.0528" /></flowRegion><flowPara
id="flowPara3571"></flowPara></flowRoot> <g
id="g3873"
transform="translate(6.9548817,-37.092702)">
<text
sodipodi:linespacing="125%"
id="text4371"
y="717.19385"
x="69.084023"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="717.19385"
x="69.084023"
id="tspan4373"
sodipodi:role="line">p<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3936">s</tspan>(ω)=</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4377"
y="697.47852"
x="131.08328"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="697.47852"
x="131.08328"
id="tspan4395"
sodipodi:role="line">x<tspan
id="tspan4403"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>+r<tspan
id="tspan4401"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>·cos(φ<tspan
id="tspan4399"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>+ω)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="131.06863"
y="738.32257"
id="text4405"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4407"
x="131.06863"
y="738.32257">y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4409">s</tspan>+r<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4411">s</tspan>·sin(φ<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4413">s</tspan>+ω)</tspan></text>
<path
inkscape:connector-curvature="0"
id="path3539"
d="m 70.722918,706.18924 7.00627,0 -3.10069,-2.33388"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text3654"
y="716.3075"
x="131.06863"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="716.3075"
x="131.06863"
id="tspan3656"
sodipodi:role="line">y<tspan
id="tspan3658"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan></tspan></text>
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path3728"
d="m 131.51542,681.3388 -5.40935,0 0,63.3667 5.21616,0 0,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 252.55505,681.33881 5.40935,0 0,63.3667 -5.21616,0 0,0"
id="path3730"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="84.446236"
y="857.24939"
id="text3732"
sodipodi:linespacing="125%"><tspan
id="tspan3742"
sodipodi:role="line"
x="84.446236"
y="857.24939">output:</tspan><tspan
sodipodi:role="line"
x="84.446236"
y="875.99939"
id="tspan3763">ω=ω</tspan><tspan
sodipodi:role="line"
x="84.446236"
y="894.74939"
id="tspan3765">x=p<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3778">sx</tspan>+v<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3780">x</tspan>(y)+d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3782">x</tspan></tspan><tspan
sodipodi:role="line"
x="84.446236"
y="913.49939"
id="tspan3767">y=y</tspan><tspan
sodipodi:role="line"
x="84.446236"
y="932.24939"
id="tspan3769">z=p<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3784">sy</tspan>+v<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3786">z</tspan>(y)+d<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3788">z</tspan></tspan><tspan
id="tspan3752"
sodipodi:role="line"
x="84.446236"
y="950.99939" /><tspan
id="tspan3754"
sodipodi:role="line"
x="84.446236"
y="969.74939" /></text>
<g
id="g3894"
transform="translate(10.818705,-53.32076)">
<g
transform="translate(-86.356448,64.943501)"
id="g3624">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="280.89734"
y="797.20612"
id="text4417"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4419"
x="280.89734"
y="797.20612">v ·(y<tspan
id="tspan3641"
style="font-size:64.99999762%;baseline-shift:sub">e</tspan>-y<tspan
id="tspan3639"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>)</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.07920456px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 355.31423,784.61292 -80.18818,0"
id="path3598"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="286.20889"
y="778.62811"
id="text3600"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3602"
x="286.20889"
y="778.62811">v·(y-y<tspan
id="tspan3637"
style="font-size:64.99999762%;baseline-shift:sub">s</tspan>)</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 286.23752,769.09771 7.00627,0 -3.10069,-2.33388"
id="path3608"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 278.81444,787.34506 0,11.74818"
id="path3620"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 291.79208,787.07185 0,12.56782"
id="path3622"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3938"
d="m 281.37064,787.95979 7.00627,0 -3.10069,-2.33388"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 161.83971,777.23616 7.00627,0 -3.10069,-2.33388"
id="path3940"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(55.189138,4.917844)"
id="g3860">
<text
sodipodi:linespacing="125%"
id="text3790"
y="827.30298"
x="70.195465"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="827.30298"
x="70.195465"
id="tspan3792"
sodipodi:role="line">v<tspan
id="tspan3796"
style="font-size:64.99999762%;baseline-shift:sub">x</tspan>(y)</tspan></text>
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path3816"
d="m 72.552308,811.16326 -5.40935,0 0,63.3667 5.21616,0 0,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 107.80288,812.25612 5.40935,0 0,63.3667 -5.21616,0 0,0"
id="path3818"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="70.195465"
y="846.34308"
id="text3820"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3822"
x="70.195465"
y="846.34308">v<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3824">y</tspan>(y)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3826"
y="867.29114"
x="70.519196"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="867.29114"
x="70.519196"
id="tspan3828"
sodipodi:role="line">v<tspan
id="tspan3830"
style="font-size:64.99999762%;baseline-shift:sub">z</tspan>(y)</tspan></text>
</g>
<text
sodipodi:linespacing="125%"
id="text3832"
y="852.44177"
x="74.771553"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="852.44177"
x="74.771553"
id="tspan3834"
sodipodi:role="line">v(y)=</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="170.94273"
y="853.00574"
id="text3848"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3850"
x="170.94273"
y="853.00574">=</tspan></text>
</g>
<flowRoot
xml:space="preserve"
id="flowRoot3852"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3854"><rect
id="rect3856"
width="27.321356"
height="54.642712"
x="56.828419"
y="805.37714" /></flowRegion><flowPara
id="flowPara3858"></flowPara></flowRoot> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -139,15 +139,15 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1" inkscape:zoom="1.0341797"
inkscape:cx="441.16057" inkscape:cx="610.03809"
inkscape:cy="535.19697" inkscape:cy="581.42706"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
inkscape:window-width="1871" inkscape:window-width="1920"
inkscape:window-height="1176" inkscape:window-height="1176"
inkscape:window-x="49" inkscape:window-x="1920"
inkscape:window-y="24" inkscape:window-y="24"
inkscape:window-maximized="1" inkscape:window-maximized="1"
showguides="true" showguides="true"
@@ -162,10 +162,6 @@
id="grid5704" id="grid5704"
spacingx="10" spacingx="10"
spacingy="10" /> spacingy="10" />
<sodipodi:guide
position="99.348502,347.54298"
orientation="0,1"
id="guide5724" />
</sodipodi:namedview> </sodipodi:namedview>
<metadata <metadata
id="metadata7"> id="metadata7">
@@ -175,7 +171,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
@@ -422,7 +418,7 @@
height="226.04152" height="226.04152"
x="-48.598927" x="-48.598927"
y="-3.2517097" /></flowRegion><flowPara y="-3.2517097" /></flowRegion><flowPara
id="flowPara5602"></flowPara></flowRoot> <path id="flowPara5602" /></flowRoot> <path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02096951px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02096951px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 307.54664,726.11726 0,-467.70736" d="m 307.54664,726.11726 0,-467.70736"
id="path5658" id="path5658"
@@ -474,5 +470,71 @@
cx="279.46121" cx="279.46121"
id="circle5722" id="circle5722"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="76.389046"
y="838.66626"
id="text3406"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3408"
x="76.389046"
y="838.66626">fft of at least 3 values x0 x1 x2</tspan><tspan
sodipodi:role="line"
x="76.389046"
y="857.41626"
id="tspan3412">the fft returns the bias value, phase and amplitude</tspan><tspan
sodipodi:role="line"
x="76.389046"
y="876.16626"
id="tspan3410">known values after fft: x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3414">bias</tspan>, r, φ</tspan><tspan
sodipodi:role="line"
x="76.389046"
y="894.91626"
id="tspan3416">x(t)=x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3418">bias</tspan>+r·cos(ω·t-φ)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="248.02266"
y="706.67761"
id="text3420"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3422"
x="248.02266"
y="706.67761">φ<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3424">0</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text3426"
y="645.27631"
x="180.81964"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="645.27631"
x="180.81964"
id="tspan3428"
sodipodi:role="line">φ<tspan
id="tspan3430"
style="font-size:64.99999762%;baseline-shift:sub">1</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="395.966"
y="584.84198"
id="text3432"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3434"
x="395.966"
y="584.84198">φ<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan3436">2</tspan></tspan></text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>776</width> <width>776</width>
<height>221</height> <height>298</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -49,22 +49,24 @@
<x>20</x> <x>20</x>
<y>70</y> <y>70</y>
<width>725</width> <width>725</width>
<height>120</height> <height>168</height>
</rect> </rect>
</property> </property>
<property name="macro"> <property name="macro">
<string> <string>
P=$(P),M=MOTOR_AX; P=$(P),M=MOTOR_CX;
P=$(P),M=MOTOR_AZ; P=$(P),M=MOTOR_CZ;
P=$(P),M=MOTOR_ROT_Y1; P=$(P),M=MOTOR_ROT_Y;
P=$(P),M=MOTOR_X1; P=$(P),M=MOTOR_FX;
P=$(P),M=MOTOR_Y1</string> P=$(P),M=MOTOR_FY;
P=$(P),M=MOTOR_CAMX;
P=$(P),M=MOTOR_CAMY</string>
</property> </property>
<property name="filename" stdset="0"> <property name="filename" stdset="0">
<string notr="true">ESB_MX_motor.ui</string> <string notr="true">ESB_MX_motor.ui</string>
</property> </property>
<property name="numberOfItems" stdset="0"> <property name="numberOfItems" stdset="0">
<number>5</number> <number>7</number>
</property> </property>
</widget> </widget>
<widget class="QWidget" name="horizontalLayoutWidget"> <widget class="QWidget" name="horizontalLayoutWidget">