-
matlab-PID_Kalman代码:PID卡尔曼控制器
资源介绍
pid控制器代码matlab
使用卡尔曼进行参数估计的PID和LQR控制器
该项目是Arduino
Uno上PID-LQR控制器sum的实现。
它使用位置测量,并使用卡尔曼滤波器估算速度和电流。
由于这是一个具有3个内部变量且只有一个输出(测量位置)的系统,因此方程式已针对该应用进行了调整,以优化处理时间。
PID增益
PID增益K_P,K_I和K_D以前是在连续时间内计算出来的,并适用于离散时间。
对于100%振幅,其目标到达时间为120ms。
LQR增益
导入系统的状态空间表示后,使用Matlab函数lqr计算每个内部变量的LQR增益。
卡尔曼滤波
卡尔曼滤波器对所有变量均使用0.02的估计误差Q,对位置使用测量误差R
=
0.1。
另外,正在考虑3x1参数H
=
[1
1
1]。
这简化了几个方程,因此隐含在代码中。
它计算(基于先前的值)由X
=
[current(A);
速度(rad
/
s);
位置(rad)]和附加变量P,该变量将先前假定的误差相加。
然后,它计算三个变量中每一个的卡尔曼增益K。
最后,脚本估计LQR控制器使用的X的下一个值。