pvt motion

This commit is contained in:
2017-01-04 13:51:18 +01:00
parent 85f20ef491
commit a265d91f2f
7 changed files with 141 additions and 39 deletions

View File

@@ -45,19 +45,22 @@ class MPLCanvasVelo(FigureCanvas):
self.fig=fig
self.ax=ax
def InitChild(self,vel):
def InitChild(self,meta,vel):
fig=self.fig
ax=self.ax
velxAct,velxDes,velyAct,velyDes=vel
velxAct,velxDes,velyAct,velyDes,velAct,velDes=vel
l=velxAct.shape[0]
hl = []
hl += ax.plot(velxAct, 'g-',label='vel x act')
hl += ax.plot(velxDes, 'g--',label='vel x des')
hl += ax.plot(velyAct, 'b-',label='vel y act')
hl += ax.plot(velyDes, 'b--',label='vel y des')
ax.xaxis.set_label_text('time (10x servo cycle)')
ax.yaxis.set_label_text('pos-error um')
hl += ax.plot(velxAct, 'b-',label='vel x act')
hl += ax.plot(velxDes, 'b--',label='vel x des')
hl += ax.plot(velyAct, 'g-',label='vel y act')
hl += ax.plot(velyDes, 'g--',label='vel y des')
hl += ax.plot(velAct, 'r-',label='vel act')
hl += ax.plot(velDes, 'r--',label='vel des')
ax.xaxis.set_label_text('datapoint (timebase: %g ms per data point)'%meta['timebase'])
ax.yaxis.set_label_text('um/ms')
legend = ax.legend(loc='upper right', shadow=True)
#axvline(linewidth=4, color='r')
#mpl.axvline(linewidth=4, color='r')
@@ -136,16 +139,24 @@ class MAVelocityFrame(wx.Frame):
toolbar=ut.AddToolbar(canvas,sizer)
meta = doc.fh['meta'].item()
try:
vel=doc.vel
except AttributeError:
tb=meta['timebase']
#data points are um
#datapoint timebase: 2 ms () per data point
#velocity: um/ms (deltatau desVel= motor units per serco cycle)
rec=doc.fh['rec']
velxAct = np.diff(rec[:, 1])
velxDes = np.diff(rec[:, 4])
velyAct = np.diff(rec[:, 2])
velyDes = np.diff(rec[:, 5])
doc.vel = vel = (velxAct,velxDes,velyAct,velyDes)
canvas.InitChild(vel)
velxAct = np.diff(rec[:, 1])/tb
velxDes = np.diff(rec[:, 4])/tb
velyAct = np.diff(rec[:, 2])/tb
velyDes = np.diff(rec[:, 5])/tb
velAct = np.sqrt(velxAct**2+velyAct**2)
velDes = np.sqrt(velxDes**2+velyDes**2)
doc.vel = vel = (velxAct,velxDes,velyAct,velyDes,velAct,velDes)
canvas.InitChild(meta,vel)
self.Centre()
@@ -184,7 +195,6 @@ class MAVelocityFrame(wx.Frame):
canvas = self.canvas
ax = canvas.ax
len = usrData
err = self.doc.err
hl = canvas.hl
#hl[0].set_data(rec[:len, 4], rec[:len, 5])
#hl[3].set_data(rec[:len, 1], rec[:len, 2])