我在我的Uni项目中遇到了python的问题

时间:2017-10-31 07:56:27

标签: python

对不起这个问题,这是我的带有python& amp;的Un​​i项目。我刚刚学习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()

请,我不需要声望或加点或任何东西,我只需要帮助。 抱歉我的英文不好或格式不好格式

1 个答案:

答案 0 :(得分:1)

x是一个数组,因此u是一个数组,因此您尝试将一个数组分配给其中一个元素。为u = k * (R - x)交换u = k * (R - xd[k])。这种方式xd[k]是一个数字,因此u也是一个数字,你将为一个元素分配一个数字,什么都不会产生错误。