public override double getControlValue()
{
int i, j, k;
// double y = yNow;
arrUF[1] = -arrAA[1] * arrUF[2] - arrAA[2] * arrUF[3] + arrUK[1];
arrYF[1] = -arrAA[1] * arrYF[2] - arrAA[2] * arrYF[3] + yk[1];
//更新控制器参数
arrPHI[0] = arrUF[1]; arrPHI[1] = arrUF[2]; arrPHI[2] = arrUF[3];
arrPHI[3] = arrYF[1]; arrPHI[4] = arrYF[2];
//递推计算数组K
double[] arrTTP = new double[5];
for (i = 0; i < 5; i++)
{
arrTTP[i] = 0;
for (j = 0; j < 5; j++)
{
arrTTP[i] += 1.0 * arrayP[i][j] * arrPHI[j];
}
arrayK[i] = arrTTP[i];
}
double iTemp = 0;
for (i = 0; i < 5; i++)
{
自适应控制 PID
最新推荐文章于 2024-10-14 21:15:38 发布
这段代码展示了如何实现一个自适应PID控制器。通过递推计算更新控制器参数数组P、K,以及估计参数,最终计算出控制量并进行限幅。整个过程涉及到矩阵运算和自适应控制算法。
摘要由CSDN通过智能技术生成