ssymm1 2022-05-05 09:53 采纳率: 66.7%
浏览 87
已结题

求k=10时,x(k)=?

dx/dt=0.5x + 2u
u=kp*(0-x)
x(k+1)=x(k)+ 0.02*dx(k)/dt
k在0-100之间

  • 写回答

2条回答 默认 最新

  • A-Chin 2022-05-05 09:58
    关注

    dx/dt 直接用?

    x(k+1)=x(k)+ 0.02*dx(k)/dt
    等价于
    x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2u)
    等价于
    x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2 * (kp*(0-x(k))))
    在这里面
    kp 是什么?


    #include <stdio.h>
    float x(int n)
    {
        //x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2 * (kp*(0-x(k))))
        if(n == 0) 
            return 1.0;
        else 
            return x(n - 1) + 0.02 * (0.5 * x(n - 1) + 2 * ((n - 1) * 1.0 * (0 - x(n - 1))));
    }
    
    int main()
    {
        int N;
        scanf("%d", &N);
        int i;
        for (i = 0; i <= N; i++) {
            printf("x(%d)=%f\n",i,x(i));
        }    
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月5日
  • 已采纳回答 5月5日
  • 创建了问题 5月5日