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-05-02 18:45:37 发布