#define PID_P 0.3
-#define PID_P_S 0.9 /*2.3 kmita*/ /*1.4 vhodne jen pro P regulator*/
-#define PID_I_S 0.01
+
+/* RL-tool results from first order system approx */
+/* P=0.16 I=13,4/freq=0.013 */
+/* Hodnoty upraveny podle skutecnych vysledku */
+/* P=0.8 I=0.01 */
+
+#define PID_P_S 0.16 /*2.3 kmita*/ /*1.4 vhodne jen pro P regulator*/
+#define PID_I_S 0.0134
#define PRIOR_KERN 50
#define PRIOR_HIGH 49
.spd_err_sum=0,
.log_col_count=0, /* pocet radku zaznamu */
.log_col=0,
- .doLogs=0
+ .doLogs=0,
+ .alpha_offset=960
};
/**
rps.logs[0][rps.log_col]=(int)rps.tf_count;
rps.logs[1][rps.log_col]=(int)rps.spi_dat->pozice;
- rps.log_col++;
+ rps.logs[2][rps.log_col]=(int)rps.pwm1;
+ rps.logs[3][rps.log_col]=(int)rps.pwm2;
+ rps.logs[4][rps.log_col]=(int)rps.pwm3;
+ rps.logs[5][rps.log_col]=rps.duty;
+ rps.logs[6][rps.log_col]=rps.desired_spd;
+ rps.logs[7][rps.log_col]=rps.speed;
+
+ rps.logs[8][rps.log_col]=(int)(rps.spi_dat->ch1/rps.spi_dat->adc_m_count);
+ rps.logs[9][rps.log_col]=(int)(rps.spi_dat->ch2/rps.spi_dat->adc_m_count);
+ rps.logs[10][rps.log_col]=(int)(rps.spi_dat->ch0/rps.spi_dat->adc_m_count);
+
+ rps.log_col++;
+ /*
if (rps.log_col==rps.log_col_count-1){
rps.log_col_count*=2;
rps.log_col_count%=MAX_LOGS;
for (r=0;r<LOG_ROWS;r++){
rps.logs[r]=realloc(rps.logs[r],rps.log_col_count*sizeof(int));
+ if (rps.logs[r]==NULL){
+ rps.doLogs=0;
+ rps.error=1;
+ }
}
}
+ */
}
/*
int32_t u1,u2,u3;
pos=rps.index_dist;
- pos+=960; /*zarovnani faze 'a' s osou 'alpha'*/
+ pos+=rps.alpha_offset; /*zarovnani faze 'a' s osou 'alpha'*/
/*pro výpočet sin a cos je pouzita 32-bit cyklicka logika*/
pos*=4294967;