Line 1... |
Line 1... |
1 |
{ |
1 |
{ |
2 |
"metadata": { |
2 |
"metadata": { |
3 |
"name": "", |
3 |
"name": "", |
4 |
"signature": "sha256:2b27dc30afc5801b549b86c718ac60f04cf5f54a281bec76ad61772eab7fb3e7" |
4 |
"signature": "sha256:2b685229d679e1d41a25fddbfc5abcd92050271aa14c1131a12e709bfacddba1" |
5 |
}, |
5 |
}, |
6 |
"nbformat": 3, |
6 |
"nbformat": 3, |
7 |
"nbformat_minor": 0, |
7 |
"nbformat_minor": 0, |
8 |
"worksheets": [ |
8 |
"worksheets": [ |
9 |
{ |
9 |
{ |
Line 17... |
Line 17... |
17 |
"import matplotlib.pyplot as plt" |
17 |
"import matplotlib.pyplot as plt" |
18 |
], |
18 |
], |
19 |
"language": "python", |
19 |
"language": "python", |
20 |
"metadata": {}, |
20 |
"metadata": {}, |
21 |
"outputs": [], |
21 |
"outputs": [], |
22 |
"prompt_number": 2 |
22 |
"prompt_number": 1 |
23 |
}, |
23 |
}, |
24 |
{ |
24 |
{ |
25 |
"cell_type": "code", |
25 |
"cell_type": "code", |
26 |
"collapsed": false, |
26 |
"collapsed": false, |
27 |
"input": [ |
27 |
"input": [ |
Line 29... |
Line 29... |
29 |
"dataset = file['RPS01']" |
29 |
"dataset = file['RPS01']" |
30 |
], |
30 |
], |
31 |
"language": "python", |
31 |
"language": "python", |
32 |
"metadata": {}, |
32 |
"metadata": {}, |
33 |
"outputs": [], |
33 |
"outputs": [], |
34 |
"prompt_number": 3 |
34 |
"prompt_number": 2 |
35 |
}, |
35 |
}, |
36 |
{ |
36 |
{ |
37 |
"cell_type": "code", |
37 |
"cell_type": "code", |
38 |
"collapsed": false, |
38 |
"collapsed": false, |
39 |
"input": [ |
39 |
"input": [ |
Line 48... |
Line 48... |
48 |
"text": [ |
48 |
"text": [ |
49 |
"36.7822\n" |
49 |
"36.7822\n" |
50 |
] |
50 |
] |
51 |
} |
51 |
} |
52 |
], |
52 |
], |
53 |
"prompt_number": 4 |
53 |
"prompt_number": 3 |
54 |
}, |
54 |
}, |
55 |
{ |
55 |
{ |
56 |
"cell_type": "code", |
56 |
"cell_type": "code", |
57 |
"collapsed": false, |
57 |
"collapsed": false, |
58 |
"input": [ |
58 |
"input": [ |
Line 61... |
Line 61... |
61 |
"plt.show()" |
61 |
"plt.show()" |
62 |
], |
62 |
], |
63 |
"language": "python", |
63 |
"language": "python", |
64 |
"metadata": {}, |
64 |
"metadata": {}, |
65 |
"outputs": [], |
65 |
"outputs": [], |
66 |
"prompt_number": 5 |
66 |
"prompt_number": 4 |
67 |
}, |
67 |
}, |
68 |
{ |
68 |
{ |
69 |
"cell_type": "code", |
69 |
"cell_type": "code", |
70 |
"collapsed": false, |
70 |
"collapsed": false, |
71 |
"input": [ |
71 |
"input": [ |
72 |
"prev_val= dataset.value[0,2]\n", |
72 |
"prev_val= dataset.value[0,2]\n", |
73 |
"n = 0\n", |
73 |
"n = 0\n", |
74 |
"angle = np.zeros((dataset.shape[0]))\n", |
74 |
"angle = np.zeros((dataset.shape[0]))\n", |
75 |
"for i in range(dataset.value.shape[0]):\n", |
75 |
"for i in range(dataset.value.shape[0]):\n", |
76 |
" if abs(dataset.value[i,2] - prev_val) > 300:\n", |
76 |
" if (dataset.value[i,2] - prev_val) > 300:\n", |
77 |
" n -= 1\n", |
77 |
" n -= 1\n", |
78 |
" angle[i] = dataset.value[i,2] + n*360\n", |
78 |
" angle[i] = dataset.value[i,2] + n*360\n", |
79 |
" prev_val = dataset.value[i,2]\n", |
79 |
" prev_val = dataset.value[i,2]\n", |
80 |
"# elif (dataset.value[i,2] - prev_val) < -300:\n", |
80 |
" elif -(dataset.value[i,2] - prev_val) > 300: # compute angular speed in backward direction.\n", |
81 |
"# n -= 1\n", |
81 |
" n += 1\n", |
82 |
"# angle[i] = dataset.value[i,2] + n*360\n", |
82 |
" angle[i] = dataset.value[i,2] - n*360\n", |
83 |
"# prev_val = dataset.value[i,2]\n", |
83 |
" prev_val = dataset.value[i,2]\n", |
84 |
" else:\n", |
84 |
" else:\n", |
85 |
" angle[i] = dataset.value[i,2] + n*360\n", |
85 |
" angle[i] = dataset.value[i,2] + n*360\n", |
86 |
" prev_val = dataset.value[i,2]" |
86 |
" prev_val = dataset.value[i,2]\n", |
- |
|
87 |
" " |
87 |
], |
88 |
], |
88 |
"language": "python", |
89 |
"language": "python", |
89 |
"metadata": {}, |
90 |
"metadata": {}, |
90 |
"outputs": [], |
91 |
"outputs": [], |
91 |
"prompt_number": 55 |
92 |
"prompt_number": 57 |
- |
|
93 |
}, |
- |
|
94 |
{ |
- |
|
95 |
"cell_type": "markdown", |
- |
|
96 |
"metadata": {}, |
- |
|
97 |
"source": [ |
- |
|
98 |
"Five point difference numerical calculation. Source: http://mathfun528.blogspot.cz/2011/07/numerical-differentiation.html" |
- |
|
99 |
] |
92 |
}, |
100 |
}, |
93 |
{ |
101 |
{ |
94 |
"cell_type": "code", |
102 |
"cell_type": "code", |
95 |
"collapsed": false, |
103 |
"collapsed": false, |
96 |
"input": [ |
104 |
"input": [ |
97 |
"fig, ax1 = plt.subplots()\n", |
105 |
"angle_speed = np.zeros_like(angle)\n", |
98 |
"\n", |
106 |
"\n", |
99 |
" ax2 = ax1.twinx()\n", |
107 |
"for i in range(2,angle.shape[0]-2):\n", |
- |
|
108 |
" angle_speed[i] = (-angle[i + 2] + 8*angle[i + 1] - 8*angle[i - 1] + angle[i - 2])/12" |
- |
|
109 |
], |
100 |
" ax1.plot(x, y1, 'g-')\n", |
110 |
"language": "python", |
- |
|
111 |
"metadata": {}, |
- |
|
112 |
"outputs": [], |
- |
|
113 |
"prompt_number": 58 |
- |
|
114 |
}, |
- |
|
115 |
{ |
- |
|
116 |
"cell_type": "code", |
- |
|
117 |
"collapsed": false, |
- |
|
118 |
"input": [ |
101 |
" ax2.plot(x, y2, 'b-')\n", |
119 |
"fig, ax1 = plt.subplots()\n", |
102 |
"\n", |
120 |
"\n", |
- |
|
121 |
"ax2 = ax1.twinx()\n", |
103 |
" ax1.set_xlabel('X data')\n", |
122 |
"ax1.set_xlabel('Sample #')\n", |
104 |
" ax1.set_ylabel('Y1 data', color='g')\n", |
123 |
"ax1.set_ylabel('Angle')\n", |
105 |
" ax2.set_ylabel('Y2 data', color='b')\n", |
124 |
"ax2.set_ylabel('Angular speed')\n", |
106 |
"\n", |
125 |
"\n", |
107 |
" ax1.plot(dataset.value[:,0], angle,'b',dataset.value[:,0], dataset.value[:,2],'r')\n", |
126 |
"ax1.plot(dataset.value[:,0], angle,'b',dataset.value[:,0], dataset.value[:,2],'r')\n", |
108 |
" ax2.plot(dataset.value[1:,0], np.diff(angle, n=1, axis=0),'g')\n", |
127 |
"ax2.plot(dataset.value[:,0], angle_speed,'g')\n", |
109 |
"\n", |
128 |
"\n", |
110 |
"plt.show()" |
129 |
"plt.show()" |
111 |
], |
130 |
], |
112 |
"language": "python", |
131 |
"language": "python", |
113 |
"metadata": {}, |
132 |
"metadata": {}, |
114 |
"outputs": [ |
133 |
"outputs": [], |
115 |
{ |
- |
|
116 |
"ename": "IndentationError", |
- |
|
117 |
"evalue": "unexpected indent (<ipython-input-68-85470c16d7f6>, line 3)", |
- |
|
118 |
"output_type": "pyerr", |
- |
|
119 |
"traceback": [ |
- |
|
120 |
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-68-85470c16d7f6>\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m ax2 = ax1.twinx()\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" |
- |
|
121 |
] |
- |
|
122 |
} |
- |
|
123 |
], |
- |
|
124 |
"prompt_number": 68 |
134 |
"prompt_number": 59 |
125 |
}, |
135 |
}, |
126 |
{ |
136 |
{ |
127 |
"cell_type": "code", |
137 |
"cell_type": "code", |
128 |
"collapsed": false, |
138 |
"collapsed": false, |
129 |
"input": [ |
139 |
"input": [], |
130 |
"angle.shape" |
- |
|
131 |
], |
- |
|
132 |
"language": "python", |
140 |
"language": "python", |
133 |
"metadata": {}, |
141 |
"metadata": {}, |
134 |
"outputs": [ |
142 |
"outputs": [], |
135 |
{ |
- |
|
136 |
"metadata": {}, |
- |
|
137 |
"output_type": "pyout", |
- |
|
138 |
"prompt_number": 63, |
- |
|
139 |
"text": [ |
- |
|
140 |
"(12120,)" |
- |
|
141 |
] |
- |
|
142 |
} |
- |
|
143 |
], |
- |
|
144 |
"prompt_number": 63 |
143 |
"prompt_number": 45 |
145 |
}, |
144 |
}, |
146 |
{ |
145 |
{ |
147 |
"cell_type": "code", |
146 |
"cell_type": "code", |
148 |
"collapsed": false, |
147 |
"collapsed": false, |
149 |
"input": [ |
148 |
"input": [], |
150 |
"dataset.value[:,0].shape" |
- |
|
151 |
], |
- |
|
152 |
"language": "python", |
149 |
"language": "python", |
153 |
"metadata": {}, |
150 |
"metadata": {}, |
154 |
"outputs": [ |
151 |
"outputs": [], |
155 |
{ |
- |
|
156 |
"metadata": {}, |
- |
|
157 |
"output_type": "pyout", |
- |
|
158 |
"prompt_number": 57, |
- |
|
159 |
"text": [ |
- |
|
160 |
"(12120,)" |
- |
|
161 |
] |
- |
|
162 |
} |
- |
|
163 |
], |
- |
|
164 |
"prompt_number": 57 |
152 |
"prompt_number": 45 |
165 |
}, |
153 |
}, |
166 |
{ |
154 |
{ |
167 |
"cell_type": "code", |
155 |
"cell_type": "code", |
168 |
"collapsed": false, |
156 |
"collapsed": false, |
169 |
"input": [ |
157 |
"input": [], |
170 |
"dataset.value[:,0].shape" |
- |
|
171 |
], |
- |
|
172 |
"language": "python", |
158 |
"language": "python", |
173 |
"metadata": {}, |
159 |
"metadata": {}, |
174 |
"outputs": [ |
160 |
"outputs": [], |
175 |
{ |
- |
|
176 |
"metadata": {}, |
- |
|
177 |
"output_type": "pyout", |
- |
|
178 |
"prompt_number": 60, |
- |
|
179 |
"text": [ |
- |
|
180 |
"(12120,)" |
- |
|
181 |
] |
- |
|
182 |
} |
- |
|
183 |
], |
- |
|
184 |
"prompt_number": 60 |
161 |
"prompt_number": 45 |
185 |
}, |
162 |
}, |
186 |
{ |
163 |
{ |
187 |
"cell_type": "code", |
164 |
"cell_type": "code", |
188 |
"collapsed": false, |
165 |
"collapsed": false, |
189 |
"input": [ |
166 |
"input": [], |
190 |
"np.diff(angle, n=1, axis=0).shape" |
- |
|
191 |
], |
- |
|
192 |
"language": "python", |
167 |
"language": "python", |
193 |
"metadata": {}, |
168 |
"metadata": {}, |
194 |
"outputs": [ |
169 |
"outputs": [], |
- |
|
170 |
"prompt_number": 45 |
195 |
{ |
171 |
}, |
196 |
"metadata": {}, |
172 |
{ |
197 |
"output_type": "pyout", |
173 |
"cell_type": "code", |
198 |
"prompt_number": 62, |
174 |
"collapsed": false, |
199 |
"text": [ |
175 |
"input": [], |
200 |
"(12119,)" |
176 |
"language": "python", |
201 |
] |
- |
|
202 |
} |
177 |
"metadata": {}, |
203 |
], |
178 |
"outputs": [], |
204 |
"prompt_number": 62 |
179 |
"prompt_number": 45 |
205 |
}, |
180 |
}, |
206 |
{ |
181 |
{ |
207 |
"cell_type": "code", |
182 |
"cell_type": "code", |
208 |
"collapsed": false, |
183 |
"collapsed": false, |
209 |
"input": [], |
184 |
"input": [], |