PID seems like almost working, but I have a great problem with model!
This commit is contained in:
@@ -34,7 +34,7 @@ extern "C"
|
||||
|
||||
// acceptable position error - 0.1''
|
||||
#define MCC_POSITION_ERROR (5e-7)
|
||||
// acceptable disagreement between motor and axe encoders - 2''
|
||||
// acceptable disagreement between motor and axis encoders - 2''
|
||||
#define MCC_ENCODERS_ERROR (1e-7)
|
||||
|
||||
// max speeds (rad/s): xs=10 deg/s, ys=8 deg/s
|
||||
@@ -56,10 +56,11 @@ extern "C"
|
||||
// normal PID refresh interval
|
||||
#define MCC_PID_REFRESH_DT (0.1)
|
||||
// boundary conditions for axis state: "slewing/pointing/guiding"
|
||||
// if angle < MCC_MAX_POINTING_ERR, change state from "slewing" to "pointing": 12 degrees
|
||||
#define MCC_MAX_POINTING_ERR (0.20943951)
|
||||
// if angle < MCC_MAX_GUIDING_ERR, chane state from "pointing" to "slewing": 15''
|
||||
#define MCC_MAX_GUIDING_ERR (7.272205e-5)
|
||||
// if angle < MCC_MAX_POINTING_ERR, change state from "slewing" to "pointing": 5 degrees
|
||||
//#define MCC_MAX_POINTING_ERR (0.20943951)
|
||||
#define MCC_MAX_POINTING_ERR (0.08726646)
|
||||
// if angle < MCC_MAX_GUIDING_ERR, chane state from "pointing" to "guiding": 1.5 deg
|
||||
#define MCC_MAX_GUIDING_ERR (0.026179939)
|
||||
// if error less than this value we suppose that target is captured and guiding is good: 0.1''
|
||||
#define MCC_MAX_ATTARGET_ERR (4.8481368e-7)
|
||||
|
||||
@@ -89,7 +90,7 @@ typedef struct{
|
||||
double EncoderReqInterval; // interval between subsequent encoder requests (seconds)
|
||||
double EncoderSpeedInterval; // interval between speed calculations
|
||||
int RunModel; // == 1 if you want to use model instead of real mount
|
||||
PIDpar_t XPIDC; // gain parameters of PID for both axes (C - coordinate driven, V - velocity driven)
|
||||
PIDpar_t XPIDC; // gain parameters of PID for both axiss (C - coordinate driven, V - velocity driven)
|
||||
PIDpar_t XPIDV;
|
||||
PIDpar_t YPIDC;
|
||||
PIDpar_t YPIDV;
|
||||
@@ -193,7 +194,7 @@ typedef struct{
|
||||
double Yatime; // 28
|
||||
} long_command_t; // long command
|
||||
|
||||
// hardware axe configuration
|
||||
// hardware axis configuration
|
||||
typedef struct{
|
||||
double accel; // Default Acceleration, rad/s^2
|
||||
double backlash; // Backlash (???)
|
||||
@@ -204,13 +205,13 @@ typedef struct{
|
||||
double outplimit; // Output Limit, percent (0..100)
|
||||
double currlimit; // Current Limit (A)
|
||||
double intlimit; // Integral Limit (???)
|
||||
} __attribute__((packed)) axe_config_t;
|
||||
} __attribute__((packed)) axis_config_t;
|
||||
|
||||
// hardware configuration
|
||||
typedef struct{
|
||||
axe_config_t Xconf;
|
||||
axis_config_t Xconf;
|
||||
xbits_t xbits;
|
||||
axe_config_t Yconf;
|
||||
axis_config_t Yconf;
|
||||
ybits_t ybits;
|
||||
uint8_t address;
|
||||
double eqrate; // Equatorial Rate (???)
|
||||
|
||||
Reference in New Issue
Block a user