一、DSP 库的使用
1.使用 runtime environment 包管理器时引入
通常因为自己加入了 cmX.h 内核文件导致错误,因为 runtime environment
会自动处理依赖,添加内核,这是只需要将内核头文件的文件夹从 include path
中移除即可。
2. 添加全局宏定义
在此处添加 ARM_MATH_CM3 宏定义,其他内核按需修改可为 CM0~CM4
3.头文件
二、PID 数据参数
PID 库中的 PID 参数结构体 是 float_32 格式数据
使用的时候只需要设置比例(Kp)、积分(Ki)、微分(Kd)的比例因子即可,
其他参数通过函数 arm_pid_init_f32 来设置。(用法见下)
二、DSP 库浮点数 PID 库函数(函数在文件 arm_math.h 文件里面)
1、arm_pid_init_f32
函数定义如下:
void arm_pid_init_f32(arm_pid_instance_f32 * S, int32_t resetStateFlag)
参数定义:
[in] *S
[in] resetStateFlag
points to an instance of the PID structure.
flag to reset the state.
0 = no change in state
1 = reset the state.
注意事项:
1. 这个函数是通过用户配置了 Kp,Ki,Kd 后,获得 A0,A1 和 A2。
2. 通过设置标志 resetStateFlag,用户也可以选择是否初始化所有相关
变量为 0。
2、arm_pid_reset_f32
函数定义如下:
void arm_pid_reset_f32(arm_pid_instance_f32 * S)
参数定义:
[in] *S
Instance pointer of PID control data structure.
注意事项:
1. 这个函数比较的简单,仅是复位相关变量为 0.
3、arm_pid_f32:
函数定义如下:
static __INLINE float32_t arm_pid_f32(arm_pid_instance_f32 * S,
float32_t in)
参数定义:
[in] *S
is an instance of the floating-point PID Control structure
[in] in
input sample to process
return out processed output sample.
注意事项:
in 这个参数是当前值与设定值之差。
三、PID 使用过程