Skip to content

Commit 57da113

Browse files
committed
[controller] add sample_time parameter for create function
1 parent 273d293 commit 57da113

File tree

6 files changed

+10
-9
lines changed

6 files changed

+10
-9
lines changed

controller/controller.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
// single intput and single output system
88

9-
controller_t controller_create(rt_size_t size)
9+
controller_t controller_create(rt_size_t size, rt_uint16_t sample_time)
1010
{
1111
// TODO
1212
// Malloc memory and initialize PID
@@ -17,6 +17,7 @@ controller_t controller_create(rt_size_t size)
1717
return RT_NULL;
1818
}
1919

20+
new_controller->sample_time = sample_time;
2021
new_controller->enable = RT_FALSE;
2122

2223
return new_controller;

controller/controller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ struct controller
1717

1818
typedef struct controller *controller_t;
1919

20-
controller_t controller_create(rt_size_t size);
20+
controller_t controller_create(rt_size_t size, rt_uint16_t sample_time);
2121
rt_err_t controller_update(controller_t controller, float current_point);
2222
rt_err_t controller_destroy(controller_t controller);
2323
rt_err_t controller_enable(controller_t controller);

controller/inc_pid_controller.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ static rt_err_t inc_pid_controller_update(void *pid, float current_point)
6060
return RT_EOK;
6161
}
6262

63-
inc_pid_controller_t inc_pid_controller_create(float kp, float ki, float kd)
63+
inc_pid_controller_t inc_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time)
6464
{
65-
inc_pid_controller_t new_pid = (inc_pid_controller_t)controller_create(sizeof(struct inc_pid_controller));
65+
inc_pid_controller_t new_pid = (inc_pid_controller_t)controller_create(sizeof(struct inc_pid_controller), sample_time);
6666
if(new_pid == RT_NULL)
6767
{
6868
return RT_NULL;

controller/inc_pid_controller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct inc_pid_controller
2929
rt_tick_t last_time;
3030
};
3131

32-
inc_pid_controller_t inc_pid_controller_create(float kp, float ki, float kd);
32+
inc_pid_controller_t inc_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time);
3333
rt_err_t inc_pid_controller_set_kp(inc_pid_controller_t pid, float kp);
3434
rt_err_t inc_pid_controller_set_ki(inc_pid_controller_t pid, float ki);
3535
rt_err_t inc_pid_controller_set_kd(inc_pid_controller_t pid, float kd);

controller/pos_pid_controller.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ static rt_err_t pos_pid_controller_update(void *pid, float current_point)
6868
return RT_EOK;
6969
}
7070

71-
pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd)
71+
pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time)
7272
{
73-
pos_pid_controller_t new_pid = (pos_pid_controller_t)controller_create(sizeof(struct pos_pid_controller));
73+
pos_pid_controller_t new_pid = (pos_pid_controller_t)controller_create(sizeof(struct pos_pid_controller), sample_time);
7474
if(new_pid == RT_NULL)
7575
{
7676
return RT_NULL;
@@ -82,7 +82,7 @@ pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd)
8282

8383
new_pid->maximum = +1000;
8484
new_pid->minimum = -1000;
85-
new_pid->anti_windup_value = 0.0f;
85+
new_pid->anti_windup_value = new_pid->maximum*2.0f;
8686

8787
new_pid->integral = 0.0f;
8888
new_pid->p_error = 0.0f;

controller/pos_pid_controller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ struct pos_pid_controller
3030
rt_tick_t last_time;
3131
};
3232

33-
pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd);
33+
pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time);
3434
rt_err_t pos_pid_controller_set_kp(pos_pid_controller_t pid, float kp);
3535
rt_err_t pos_pid_controller_set_ki(pos_pid_controller_t pid, float ki);
3636
rt_err_t pos_pid_controller_set_kd(pos_pid_controller_t pid, float kd);

0 commit comments

Comments
 (0)