Index: trunk/extremum_seeking/esc_perturb/include/esc_perturb/perturb_esc_nd.h
===================================================================
--- trunk/extremum_seeking/esc_perturb/include/esc_perturb/perturb_esc_nd.h	(revision 21)
+++ trunk/extremum_seeking/esc_perturb/include/esc_perturb/perturb_esc_nd.h	(revision 22)
@@ -37,4 +37,5 @@
 	std::vector<double> monitor();
 	std::vector<std::string> monitorNames();
+	void reset();
 };
 
Index: trunk/extremum_seeking/esc_perturb/src/perturb_esc_nd.cpp
===================================================================
--- trunk/extremum_seeking/esc_perturb/src/perturb_esc_nd.cpp	(revision 21)
+++ trunk/extremum_seeking/esc_perturb/src/perturb_esc_nd.cpp	(revision 22)
@@ -47,6 +47,6 @@
 	opt_dim_ = 0;
 	state_initialized_ = false;
+	old_vals_initialized_ = false;
 	initialized_ = true;
-	old_vals_initialized_ = false;
 }
 
@@ -142,2 +142,11 @@
 	return monitor_names;
 }
+
+void PerturbESCND::reset(){
+	obj_val_old_ = 0;
+	cycle_count_ = 0;
+	hpf_out_old_ = 0;
+	opt_dim_ = 0;
+	state_initialized_ = false;
+	old_vals_initialized_ = false;
+}
