对不起这个问题,这是我的带有python& amp;的Uni项目。我刚刚学习python一周,我尝试了很多,我无法弄清楚这一点。有谁能够帮我?请!
这是等式xdot = ax
的示例代码
所以,我应该用下面的等式写下离散的汽车巡航控制
巡航控制方程为:xdot =(c / m)u-gamma * x 其中u是u = k(r-x)
和离散方程是
最后这是我的代码,但是我收到了一个错误:
List<A> as;
// the Map key is A.id (Map<A.id, List<B>>)
Map<Integer, List<B>> bs = as.stream()
.map(a ->a.getBs())
.collect(// I dont know what to add here ???);
错误是:
import matplotlib.pyplot as plt
import numpy as np
C = 1
M = 1
GAMMA = 0.1
R = 1
X0 = 0
TFINAL = 3
DT = 0.1
t = np.arange(0, TFINAL, 0.1)
x = X0*np.exp(C*t)
td = np.arange(0, TFINAL, DT)
xd = np.zeros(len(td))
xd[0] = X0
for k in range(len(td)-1):
u = k * (R - x)
xd[k+1] = xd[k] + DT * (C / M * u - GAMMA * xd[k])
plt.plot(td,xd,'b-',label='approximate')
plt.xlabel('time')
plt.ylabel('x values')
plt.title('dynamical system: xdot=(c/m)u-gammax')
plt.legend()
plt.grid(True)
plt.show()
请,我不需要声望或加点或任何东西,我只需要帮助。 抱歉我的英文不好或格式不好格式
答案 0 :(得分:1)
x
是一个数组,因此u
是一个数组,因此您尝试将一个数组分配给其中一个元素。为u = k * (R - x)
交换u = k * (R - xd[k])
。这种方式xd[k]
是一个数字,因此u
也是一个数字,你将为一个元素分配一个数字,什么都不会产生错误。