dx/dt=0.5x + 2u
u=kp*(0-x)
x(k+1)=x(k)+ 0.02*dx(k)/dt
k在0-100之间
求k=10时,x(k)=?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录