dt_ctrl.ctrl 25.4 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
#	dt_ctrl.ctrl
#
#	Controller network for Dwingeloo Telescope.
#
#	This file contains the fixed part of the network and its parameters.
#	Other .ctrl files are used for those parts which are conditional,
#	such as the use of simulation networks or real servo drives.
#

# Frequency is limited by the stoeber drives.
Jeroen Vreeken's avatar
Jeroen Vreeken committed
11
12
frequency 250

13
14
15
16
17
# dt_ctrl_el.ctrl	Elevation with real servo drives
# dt_ctrl_el_sim.ctrl	Elevation with simulated network
# dt_ctrl_az.ctrl	Azimuth with real servo drives
# dt_ctrl_az_sim.ctrl	Azimuth with simulated network
#
18
19
20
21
22
23
24
25
26
# Uncomment either the real network, or the sim network.
# But never both!

#include "dt_ctrl_el.ctrl"
include "dt_ctrl_el_sim.ctrl"

#include "dt_ctrl_az.ctrl"
include "dt_ctrl_az_sim.ctrl"

27

Jeroen Vreeken's avatar
Jeroen Vreeken committed
28
blocks {
29
	{ "setpoint_generator", "azimuth_spg", 			"Azimuth_Setpoint", "rad" }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	{ "servo_state",        "azimuth_servo_state"              }
	{ "subtract",	        "azimuth_setpoint_error"	   }
	{ "subtract",	        "azimuth_error"			   }
	{ "pid_aw",	        "azimuth_pid"			   }
	{ "filter_iir",	        "azimuth_pid_filter"		   }
	{ "limit_var",	        "azimuth_pid_limit"		   }
	{ "add",  	        "azimuth_speed_ff" 		   }
	{ "limit",	        "azimuth_speed_limit"		   }
	{ "dt_az_safety",       "azimuth_safety"		   }
	{ "gain", 	        "azimuth_speed_servo"		   }
	{ "value",	        "azimuth_torque"		   }
	{ "value",	        "azimuth_position_offset"  	   }
	{ "add",  	        "azimuth_position_offset_sum"	   }
	{ "gain", 	        "azimuth_position_gain"		   }
	
	{ "matrix_2x2",	        "elevation_input_matrix"	   }
46
	{ "setpoint_generator", "elevation_spg", 		"Elevation_Setpoint", "rad" }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
47
	{ "servo_state",        "elevation_servo_state"            }
48
	{ "setpoint_generator", "elevation_torsion_spg",	"Elevation_Torsion_Setpoint", "rad" }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
49
50
51
52
	{ "subtract",	        "elevation_setpoint_error" 	   }
	{ "subtract",  	        "elevation_error"  		   }
	{ "subtract",	        "elevation_torsion_error"  	   }
	{ "subtract",	        "elevation_torsion_setpoint_error" }
53
	{ "subtract",	        "elevation_torsion_torque" 	   }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
54
55
	{ "filter_lp",	        "elevation_torsion_torque_lp"	   }
	{ "pid_aw",	        "elevation_pid"			   }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
56
	{ "pid_aw",  	        "elevation_torsion_pid"		   }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
57
58
59
60
61
62
63
64
65
66
67
68
69
	{ "add",  	        "elevation_speed_ff"		   }
	{ "switch",             "elevation_position_switch"        }
	{ "limit",	        "elevation_torsion_speed_limit"	   }
	{ "limit",	        "elevation_speed_limit"		   }
	{ "limit_2nd",	        "elevation_jerk_limit"		   }
	{ "dt_el_safety",       "elevation_safety" 		   }
	{ "matrix_2x2",	        "elevation_output_matrix"  	   }
	{ "value",	        "elevation_torque_r"		   }
	{ "value",	        "elevation_torque_l"		   }
	{ "value",	        "elevation_position_offset_r"      }
	{ "value",	        "elevation_position_offset_l"	   }
	{ "add",  	        "elevation_position_offset_r_sum"  }
	{ "add",  	        "elevation_position_offset_l_sum"  }
70
71

	{ "value_bool", 	"false"	}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
72
73
74
75
76
77
78
79
}

links {
	{ "dt_az",                          "position",   "azimuth_position_gain",            "in"           , true }
	{ "azimuth_position_gain",          "out",        "azimuth_position_offset_sum",      "in0"          , true }
	{ "azimuth_position_offset",        "value",      "azimuth_position_offset_sum",      "in1"          , true }
	{ "azimuth_position_offset_sum",    "out",        "azimuth_error",                    "negative"     , true }
	{ "azimuth_servo_state",            "reset",      "azimuth_spg",                      "reset"        , false }
80
	{ "azimuth_position_offset_sum",    "out",        "azimuth_spg",                      "reset_x"      , true }
81
82
83
	{ "azimuth_spg",                    "x",          "azimuth_servo_state",              "spg_x"        , true }
	{ "azimuth_spg",                    "v",          "azimuth_servo_state",              "spg_v"        , true }
	{ "azimuth_spg",                    "a",          "azimuth_servo_state",              "spg_a"        , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
84
	{ "azimuth_safety",                 "safe_out",   "azimuth_servo_state",              "safe"         , false }
85
	{ "azimuth_servo_state",            "out_x",      "azimuth_error",                    "positive"     , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
86
87
	{ "azimuth_position_offset_sum",    "out",        "azimuth_setpoint_error",           "negative"     , true }
	{ "azimuth_spg",                    "setpoint",   "azimuth_setpoint_error",           "positive"     , true }
88
	{ "azimuth_servo_state",            "out_v",      "azimuth_speed_ff",                 "in0"          , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
89
90
91
	{ "azimuth_error",                  "difference", "azimuth_pid",                      "in"           , true }
	{ "azimuth_servo_state",            "enable",     "azimuth_pid",                      "enable"       , true }
	{ "azimuth_pid",                    "out",        "azimuth_pid_limit",                "in"           , true }
92
	{ "azimuth_servo_state",            "out_v",      "azimuth_pid_limit",                "limit"        , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
93
94
95
96
97
98
	{ "azimuth_pid_limit",              "out",        "azimuth_pid_filter",               "in"           , true }
	{ "azimuth_pid_filter",             "out",        "azimuth_speed_ff",                 "in1"          , true }
	{ "azimuth_speed_ff",               "out",        "azimuth_speed_limit",              "in"           , true }
	{ "azimuth_speed_limit",            "out",        "azimuth_safety",                   "speed_in"     , true }
	{ "azimuth_position_offset_sum",    "out",        "azimuth_safety",                   "position_in"  , true }
	{ "azimuth_torque",                 "value",      "azimuth_safety",                   "torque_in"    , true }
99
100
	{ "dt_az",                          "be4",        "azimuth_safety",                   "safety_in_positive", true }
	{ "dt_az",                          "be2",        "azimuth_safety",                   "safety_in_negative", true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
101
102
103
104
105
	{ "azimuth_servo_state",            "enable",     "azimuth_safety",                   "enable"       , true }
        { "azimuth_safety",                 "speed_out",  "azimuth_speed_servo",              "in"           , true }
	{ "azimuth_speed_servo",            "out",        "dt_az",                            "speed"        , true }
	{ "azimuth_safety",                 "torque_out", "dt_az",                            "torque"       , true }
	{ "azimuth_servo_state",            "enable",     "dt_az",                            "enable"       , true }
106
107
	{ "false",                          "value",      "dt_az",                            "ba1"          , true }
	{ "false",			    "value",      "dt_az",                            "ba2"          , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
108
109

	{ "elevation_servo_state",          "reset",      "elevation_spg",                    "reset"        , false }
110
	{ "elevation_input_matrix",         "out0",       "elevation_spg",                    "reset_x"      , true }
111
112
113
	{ "elevation_spg",                  "x",          "elevation_servo_state",            "spg_x"        , true }
	{ "elevation_spg",                  "v",          "elevation_servo_state",            "spg_v"        , true }
	{ "elevation_spg",                  "a",          "elevation_servo_state",            "spg_a"        , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
114
	{ "elevation_safety",               "safe_out",   "elevation_servo_state",            "safe"         , false }
115
116
	{ "elevation_servo_state",          "out_x",      "elevation_error",                  "positive"     , true }
	{ "elevation_servo_state",          "out_v",      "elevation_speed_ff",               "in0"          , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
117
118
	{ "dt_el_r",                        "position",   "elevation_position_offset_r_sum",  "in0"          , true }
	{ "dt_el_l",                        "position",   "elevation_position_offset_l_sum",  "in0"          , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
	{ "elevation_position_offset_r",    "value",      "elevation_position_offset_r_sum",  "in1"          , true }
	{ "elevation_position_offset_l",    "value",      "elevation_position_offset_l_sum",  "in1"          , true }
	{ "elevation_position_offset_r_sum","out",        "elevation_input_matrix",           "in0"          , true }
	{ "elevation_position_offset_l_sum","out",        "elevation_input_matrix",           "in1"          , true }
	{ "elevation_input_matrix",         "out0",       "elevation_error",                  "negative"     , true }
	{ "elevation_spg",                  "setpoint",   "elevation_setpoint_error",         "positive"     , true }
	{ "elevation_input_matrix",         "out0",       "elevation_setpoint_error",         "negative"     , true }
	{ "elevation_error",                "difference", "elevation_pid",                    "in"           , true }
	{ "elevation_servo_state",          "enable",     "elevation_pid",                    "enable"       , true }
	{ "elevation_pid",                  "out",        "elevation_speed_ff",               "in1"          , true }
	{ "elevation_speed_ff",             "out",        "elevation_position_switch",        "in"           , true }
	{ "elevation_servo_state",          "enable",     "elevation_position_switch",        "on"           , true }
	{ "elevation_position_switch",      "out",        "elevation_speed_limit",            "in"           , true }
	{ "elevation_servo_state",          "enable",     "elevation_jerk_limit",             "enable"       , true }
	{ "elevation_speed_limit",          "out",        "elevation_jerk_limit",             "in"           , true }
	{ "elevation_jerk_limit",           "out",        "elevation_output_matrix",          "in0"          , true }
135
136
137
	{ "dt_el_r",                        "torque",     "elevation_torsion_torque",         "positive"     , true }
	{ "dt_el_l",                        "torque",     "elevation_torsion_torque",         "negative"     , true }
	{ "elevation_torsion_torque",       "difference", "elevation_torsion_torque_lp",      "in"           , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
138
139
	{ "elevation_position_offset_r_sum","out",        "elevation_safety",                 "position_in_r" , true }
	{ "elevation_position_offset_l_sum","out",        "elevation_safety",                 "position_in_l" , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
140
	{ "elevation_input_matrix",         "out1",       "elevation_safety",                 "torsion_in"   , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
141
142
	{ "elevation_output_matrix",        "out0",       "elevation_safety",                 "speed_in_r"    , true }
	{ "elevation_output_matrix",        "out1",       "elevation_safety",                 "speed_in_l"    , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
143
	{ "elevation_torsion_torque_lp",    "out",        "elevation_safety",                 "torque_in"    , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
144
145
	{ "elevation_torque_r",             "value",      "elevation_safety",                 "torque_in_r"   , true }
	{ "elevation_torque_l",             "value",      "elevation_safety",                 "torque_in_l"   , true }
146
147
	{ "dt_el_l",                        "be4",        "elevation_safety",                 "safety_in_top",    true }
	{ "dt_el_l",                        "be2",        "elevation_safety",                 "safety_in_bottom", true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
148
	{ "elevation_servo_state",          "enable",     "elevation_safety",                 "enable"       , true }
149
150
151
152
	{ "elevation_safety",               "speed_out_r", "dt_el_r",                         "speed"        , true } 
	{ "elevation_safety",               "speed_out_l", "dt_el_l",                         "speed"        , true }
	{ "elevation_safety",               "torque_out_r","dt_el_r",                         "torque"       , true }
	{ "elevation_safety",               "torque_out_l","dt_el_l",                         "torque"       , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
153
154
	{ "elevation_servo_state",          "enable",     "dt_el_r",                          "enable"       , true }
	{ "elevation_servo_state",          "enable",     "dt_el_l",                          "enable"       , true }
155
156
157
158
	{ "false",                          "value",      "dt_el_r",                          "ba1"          , true }
	{ "false",			    "value",      "dt_el_r",                          "ba2"          , true }
	{ "false",                          "value",      "dt_el_l",                          "ba1"          , true }
	{ "false",			    "value",      "dt_el_l",                          "ba2"          , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
159
160
	
	{ "elevation_servo_state",          "reset",      "elevation_torsion_spg",            "reset"        , false }
161
162
	{ "elevation_input_matrix",         "out1",       "elevation_torsion_spg",            "reset_x"      , true }
	{ "elevation_torsion_spg",          "x",          "elevation_torsion_error",          "positive"     , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
163
164
165
166
	{ "elevation_input_matrix",         "out1",       "elevation_torsion_error",          "negative"     , true }
	{ "elevation_torsion_spg",          "setpoint",   "elevation_torsion_setpoint_error", "positive"     , true }
	{ "elevation_input_matrix",         "out1",       "elevation_torsion_setpoint_error", "negative"     , true }
	{ "elevation_torsion_error",        "difference", "elevation_torsion_pid",            "in"           , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
167
	{ "elevation_servo_state",          "enable",     "elevation_torsion_pid",            "enable"       , true }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
168
169
170
171
172
	{ "elevation_torsion_pid",          "out",        "elevation_torsion_speed_limit",    "in"           , true }
	{ "elevation_torsion_speed_limit",  "out",        "elevation_output_matrix",          "in1"          , true }
}

traces {
173
174
175
176
	{ "Azimuth_Spg0",                     "rad",       "azimuth_spg",                      "x"           }
	{ "Azimuth_Spg1",                     "rad/s",     "azimuth_spg",                      "v"           }
	{ "Azimuth_Spg2",                     "rad/s/s",   "azimuth_spg",                      "a"           }
	{ "Azimuth_Spg3",                     "rad/s/s/s", "azimuth_spg",                      "j"           }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
177
178
179
180
181
182
183
184
185
186
187
	{ "Azimuth_Setpoint",                 "rad",       "azimuth_spg",                      "setpoint"    }
	{ "Azimuth_Error",                    "rad",       "azimuth_error",                    "difference"  }
	{ "Azimuth_Setpoint_Error",           "rad",       "azimuth_setpoint_error",           "difference"  }
	{ "Azimuth_PID",                      "rad/s",     "azimuth_pid",                      "out"         }
	{ "Azimuth_I",                        "rad/s",     "azimuth_pid",                      "outi"        }
	{ "Azimuth_PID_filtered",             "rad/s",     "azimuth_pid_filter",               "out"         }
	{ "Azimuth_Position",                 "rad",       "azimuth_position_offset_sum",      "out"         }
	{ "Azimuth_Speed",                    "rad/s",     "dt_az",                            "speed"       }
	{ "Azimuth_Torque",                   "Nm",        "dt_az",                            "torque"      }
	{ "Azimuth_Safe",                     "Boolean",   "azimuth_safety",                   "safe_out"    }
	{ "Azimuth_Enabled",                  "Boolean",   "dt_az",                            "enabled"     }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
188
189
190
	{ "Azimuth_Drive_Safety",             "Boolean",   "dt_az",                            "be1"      }
	{ "Azimuth_Drive_Safety_p270",        "Boolean",   "dt_az",                            "be4"      }
	{ "Azimuth_Drive_Safety_m270",        "Boolean",   "dt_az",                            "be2"      }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
191
		
Jeroen Vreeken's avatar
Jeroen Vreeken committed
192
	{ "Focusbox_Position",                "Volt",      "dt_az",                            "ae1"	}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
193
194
195
196

	{ "Elevation_Position",               "rad",       "elevation_input_matrix",           "out0"        }
	{ "Elevation_Torsion",                "rad",       "elevation_input_matrix",           "out1"        }
	{ "Elevation_Setpoint",               "rad",       "elevation_spg",                    "setpoint"    }
197
198
199
200
	{ "Elevation_Spg0",                   "rad",       "elevation_spg",                    "x"           }
	{ "Elevation_Spg1",                   "rad/s",     "elevation_spg",                    "v"           }
	{ "Elevation_Spg2",                   "rad/s",     "elevation_spg",                    "a"           }
	{ "Elevation_Spg3",                   "rad/s",     "elevation_spg",                    "j"           }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
201
202
203
204
205
206
207
208
	{ "Elevation_Error",                  "rad",       "elevation_error",                  "difference"  }
	{ "Elevation_Setpoint_Error",         "rad",       "elevation_setpoint_error",         "difference"  }
	{ "Elevation_PID",                    "rad/s",     "elevation_pid",                    "out"         }
	{ "Elevation_Torsion_Error",          "rad",       "elevation_torsion_error",          "difference"  }
	{ "Elevation_Torsion_Setpoint_Error", "rad",       "elevation_torsion_setpoint_error", "difference"  }
	{ "Elevation_Torsion_PID",            "rad/s",     "elevation_torsion_pid",            "out"         }
	{ "Elevation_Position_Right",         "rad",       "elevation_position_offset_r_sum",  "out"         }
	{ "Elevation_Position_Left",          "rad",       "elevation_position_offset_l_sum",  "out"         }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
209
210
211
212
	{ "Elevation_Speed_Right",            "rad/s",     "dt_el_r",                            "speed"     }
	{ "Elevation_Speed_Left",             "rad/s",     "dt_el_l",                            "speed"     }
	{ "Elevation_Torque_Right",           "Nm",        "dt_el_r",                            "torque"    }
	{ "Elevation_Torque_Left",            "Nm",        "dt_el_l",                            "torque"    }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
213
214
	{ "Elevation_Torsion_Torque",         "Nm",        "elevation_torsion_torque_lp",      "out"         }
	{ "Elevation_Safe",                   "Boolean",   "elevation_safety",                 "safe_out"    }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
215
216
217
218
219
	{ "Elevation_Enabled",                "Boolean",   "dt_el_l",                            "enabled"     }
	{ "Elevation_Drive_Safety_Right",     "Boolean",   "dt_el_r",                            "be1"      }
	{ "Elevation_Drive_Safety_Left",      "Boolean",   "dt_el_l",                            "be1"      }
	{ "Elevation_Top_Safe",               "Boolean",   "dt_el_l",                            "be4" }
	{ "Elevation_Bottom_Safe",            "Boolean",   "dt_el_l",                            "be2" }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
220
221
222
223
224
}

params {
	{ "azimuth_spg",           "setpoint",            (float) 0.0		}
	{ "azimuth_spg",           "t",                   (float) 0.004         }
225
226
227
228
229
230
231
232
	{ "azimuth_spg",           "max_x",               (float) 4.712388980384689858 }
	{ "azimuth_spg",           "min_x",               (float)-4.712388980384689858 }
	{ "azimuth_spg",           "max_v",               (float) 0.01466076571675236845 }
	{ "azimuth_spg",           "max_a",               (float) 0.0002   	}
	{ "azimuth_spg",           "max_j",               (float) 0.00001 	}
	{ "azimuth_spg",           "precision_x",         (float) 0.000001      }
	{ "azimuth_spg",           "precision_a",         (float) 0.000001      }
	{ "azimuth_spg",           "precision_v",         (float) 0.000001      }
233
234
235
236
	{ "azimuth_servo_state",   "max_x",               (float) 4.712388980384689858 }
	{ "azimuth_servo_state",   "min_x",               (float)-4.712388980384689858 }
	{ "azimuth_servo_state",   "max_v",               (float) 0.01466076571675236845 }
	{ "azimuth_servo_state",   "max_a",               (float) 0.0002   	}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
	{ "azimuth_pid",           "kp",                  (float) 0.20     	}
	{ "azimuth_pid",           "ki",                  (float) 0.00    	}
	{ "azimuth_pid",           "kd",                  (float) 0.0    	}
	{ "azimuth_pid",           "t",                   (float) 0.004         }
	{ "azimuth_pid",           "maxw",                (float) 0.0005235987755982988731 }
	{ "azimuth_pid",           "minw",                (float)-0.0005235987755982988731 }

	{ "azimuth_pid_filter",    "transfer",            (int) 2,
							  (double) 6.343831259e+05,
						          (float) { -0.9964520027, 1.9964456974 },
							  (float) { 1, 2 }
										}

	{ "azimuth_pid_limit",     "offset",              (float) 0.0006981317007977318308 }
	{ "azimuth_pid_limit",     "gain",                (float)-0.3           }
	{ "azimuth_speed_limit",   "min",                 (float)-0.02094395102393195492 }
	{ "azimuth_speed_limit",   "max",                 (float) 0.02094395102393195492 }
	{ "azimuth_speed_servo",   "gain",                (float)-15006.75      }
	{ "azimuth_torque",        "value",               (float) 10.0          }
	{ "azimuth_position_gain", "gain",                (float)-6.663668016059439919e-05 }
	{ "azimuth_position_offset","value",              (float) 0.0           }

	{ "azimuth_safety",        "position_min",        (float)-5.061454830783555773 }
	{ "azimuth_safety",        "position_max",        (float) 5.061454830783555773 }
	{ "azimuth_safety",        "safe_zone_min",       (float)-4.886921905584122815 }
	{ "azimuth_safety",        "safe_zone_max",       (float) 4.886921905584122815 }
	{ "azimuth_safety",        "safe_zone_min_speed", (float)-0.0001047197551196597746 }
	{ "azimuth_safety",        "safe_zone_max_speed", (float) 0.0001047197551196597746 }
	{ "azimuth_safety",        "emergency_torque",    (float) 3.0           }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
266
	{ "azimuth_safety",        "recover",             (int)   0  		}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
267
	
Jeroen Vreeken's avatar
Jeroen Vreeken committed
268
269
        { "elevation_input_matrix", "constants",          (float) { 1.115993583036897538e-05, -1.115993583036897538e-05 },
                                                          (float) { 2.231987166073795076e-05,  2.231987166073795076e-05 } }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
270
271

	{ "elevation_output_matrix", "constants",         (float) { 44803.125,  22401.5625 }, 
Jeroen Vreeken's avatar
Jeroen Vreeken committed
272
							  (float) { -44803.125, 22401.5625 } }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
273
274
275

	{ "elevation_spg",         "setpoint",            (float) 0.0           }
	{ "elevation_spg",         "t",                   (float) 0.004         }
276
277
278
279
280
281
282
283
	{ "elevation_spg",         "max_x",               (float) 1.570796326794896619 }
	{ "elevation_spg",         "min_x",               (float)-0.0008726646259971647885 }
	{ "elevation_spg",         "max_v",               (float) 0.004921828490624009407 }
	{ "elevation_spg",         "max_a",               (float) 0.0003   	}
	{ "elevation_spg",         "max_j",               (float) 0.000016	}
	{ "elevation_spg",         "precision_x",         (float) 0.000001      }
	{ "elevation_spg",         "precision_a",         (float) 0.000001      }
	{ "elevation_spg",         "precision_v",         (float) 0.000001      }
284
285
286
287
	{ "elevation_servo_state", "max_x",               (float) 1.570796326794896619 }
	{ "elevation_servo_state", "min_x",               (float)-0.0008726646259971647885 }
	{ "elevation_servo_state", "max_v",               (float) 0.004921828490624009407 }
	{ "elevation_servo_state", "max_a",               (float) 0.0003   	}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
288
289
	{ "elevation_torsion_spg", "setpoint",            (float) 0.0           }
	{ "elevation_torsion_spg", "t",                   (float) 0.004         }
290
291
292
293
294
295
296
297
	{ "elevation_torsion_spg", "max_x",               (float) 0.01          }
	{ "elevation_torsion_spg", "min_x",               (float)-0.01          }
	{ "elevation_torsion_spg", "max_v",               (float) 0.0001047197551196597746 }
	{ "elevation_torsion_spg", "max_a",               (float) 0.00004 	}
	{ "elevation_torsion_spg", "max_j",               (float) 0.00001 	}
	{ "elevation_torsion_spg", "precision_x",         (float) 0.000001      }
	{ "elevation_torsion_spg", "precision_a",         (float) 0.000001      }
	{ "elevation_torsion_spg", "precision_v",         (float) 0.000001      }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
	{ "elevation_pid",         "kp",                  (float) 0.80     	}
	{ "elevation_pid",         "ki",                  (float) 0.001  	}
	{ "elevation_pid",         "kd",                  (float) 0.001   	}
	{ "elevation_pid",         "t",                   (float) 0.004         }
	{ "elevation_pid",         "maxw",                (float) 0.0002094395102393195492 }
	{ "elevation_pid",         "minw",                (float)-0.0002094395102393195492 }
	{ "elevation_speed_limit", "min",                 (float)-0.008377580409572781969 }
	{ "elevation_speed_limit", "max",                 (float) 0.008377580409572781969 }
	{ "elevation_jerk_limit",  "min",                 (float)-0.003         }
	{ "elevation_jerk_limit",  "max",                 (float) 0.003         }
	{ "elevation_jerk_limit",  "t",                   (float) 0.004         }
	{ "elevation_torsion_pid", "t",                   (float) 0.004         }
	{ "elevation_torsion_pid", "kp",                  (float) 0.2  		}
	{ "elevation_torsion_pid", "ki",                  (float) 0.0  		}
	{ "elevation_torsion_pid", "kd",                  (float) 0.0 		}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
313
314
	{ "elevation_torsion_pid", "maxw",                (float) 0.0001 }
	{ "elevation_torsion_pid", "minw",                (float)-0.0001 }
Jeroen Vreeken's avatar
Jeroen Vreeken committed
315
316
317
318
319
320
321
322
323
	{ "elevation_torsion_speed_limit", "min",         (float)-0.0001047197551196597746 }
	{ "elevation_torsion_speed_limit", "max",         (float) 0.0001047197551196597746 }


	{ "elevation_safety",      "safe_zone_min_speed", (float)-30  		}
	{ "elevation_safety",      "safe_zone_max_speed", (float) 30  		}
	{ "elevation_safety",      "torsion_max",         (float) 0.0002 	}

	{ "elevation_safety",      "recover",             (int)   0  		}
324
	{ "elevation_safety",      "torque_max",          (float) 20.0		}
Jeroen Vreeken's avatar
Jeroen Vreeken committed
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
	{ "elevation_safety",      "emergency_torque",    (float) 3.0 		}

	{ "elevation_torque_r",    "value",               (float) 10.0          }
	{ "elevation_torque_l",    "value",               (float) 10.0          }
	{ "elevation_torsion_torque_lp", "t",             (float) 0.004         }
	{ "elevation_torsion_torque_lp", "tau",           (float) 10.0          }
	{ "elevation_position_offset_r","value",          (float) 0.0           }
	{ "elevation_position_offset_l","value",          (float) 0.0           }

	{ "elevation_safety",      "position_min",        (float) -78.19620464325844733  }
	{ "elevation_safety",      "position_max",        (float)  70767.56520214889483  }
	{ "elevation_safety",      "safe_zone_min",       (float) -70.37658417893260259  }
	{ "elevation_safety",      "safe_zone_max",       (float)  70689.36899750563638  }
	{ "elevation_safety",      "torsion_recover_max", (float) 0.01745329251994329577 }
}
340
341
342
343

# Load file with calibration parameters.
# All parameters above should not be subject to calibration.
include "dt_ctrl.param"