电路求通 2021-11-20 10:38 采纳率: 0%
浏览 54
已结题

用C写的遗忘因子最小二乘法的程序,对C不是很熟悉,到底是哪里出现问题?

目前在做电机的参数辨识,运行程序之后输出的def三个数全都显示为0,不知道为什么




    void RSLd()
    {
        const float Ts = 25e-6;
        double thetae_d0[3][1] = {0,0,0};
        double thetae_d1[3][1];
        const float forget = 0.99;                            //遗忘因子
        double fai_dt[1][3];//待辨识矩阵φd
        double P0[3][3] = {{100,0,0},{0,100,0},{0,0,100}} ;    //协方差矩阵 = alpha^2 * 三阶单位矩阵
        double P1[3][3];
        double Kd[3][1];
        float d,e,f;
        double fai_d[3][1] = {{d},{e},{f}};
        int a,b;
        for(a = 0; a < 3; a ++)
        {
        fai_dt[0][a] = fai_d[a][0];
        for(b = 0; b < 3; b ++)
        {
        Kd[a][0] = P0[a][b] * fai_d[a][0]/(forget + fai_dt[0][a] * P0[a][b] * fai_d[b][0]);
        P1[a][b] =( P0[a][b] + Kd[a][0] * fai_dt[0][a] * P0[a][b] ) / forget;
        thetae_d1[a][0] = thetae_d0[a][0] + Kd[a][0] * (id1 - fai_dt[0][a] * thetae_d0[a][0]);
        thetae_d0[b][0] = thetae_d1[b][0];
        P0[a][b] = P1[a][b];
        }
        }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月28日
    • 创建了问题 11月20日

    悬赏问题

    • ¥15 用verilog实现tanh函数和softplus函数
    • ¥15 求京东批量付款能替代天诚
    • ¥15 slaris 系统断电后,重新开机后一直自动重启
    • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
    • ¥15 关于vue2中methods使用call修改this指向的问题
    • ¥15 idea自动补全键位冲突
    • ¥15 请教一下写代码,代码好难
    • ¥15 iis10中如何阻止别人网站重定向到我的网站
    • ¥15 滑块验证码移动速度不一致问题
    • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含