我是关于编程的初学者,我在这里尝试的是无人机的飞行模拟器。但我得到的问题是"无法解决的类型"对于一个功能,而对我来说," t"不是一个功能。我尝试并搜索了其他解决方案,但没有任何效果...提前感谢! (哦,我和法国人,所以我用法语写作了对不起..) 这是我的完整计划:
charge = float(input("Masse de la charge (0-0.150kg)?: "))
masse = 0.850+charge #kg
h_max = 2.5 #m
v_montée = 0.25 #m/s
v_descente = 0.75 #m/s
t_montée = h_max/v_montée #m/s
t_stationnement = 15 #s
t_descente = h_max/v_descente #s
t_total = t_montée + t_descente + t_stationnement #s
dti = 0.05 #s
nbre_intervalles = int((t_total)/dti)+1
def v_désirée(t):
global vd
vd = 0
if 0 <= t < t_montée:
vd = v_montée
elif t_montée <= t < t_montée + t_stationnement:
vd = 0
elif t_montée + t_stationnement <= t < t_total:
vd = v_descente
return (vd)
def h_désirée(t):
global hd
hd = 0
hd = v_désirée(t) * t
return (hd)
Ff = 1
Poids = 9.81*masse
def acc(t):
global a
a = 0
a = poussée(t) - masse*9.81 - 1
return (a)
def h(t):
global h
h = 0
if v_désirée(t) == v_montée:
h = acc(poussée)/2 * t**2
elif v_désirée(t) == 0:
h = acc(poussée)/2 * (t-t_montée)**2 + v_montée*(t-t_montée) + h_max
elif v_désirée(t) == v_descente:
h = acc(poussée)/2 * (t-t_montée-t_stationnement)**2 + h_max
return (h)
Kd = 10
Kp = 10
def erreur(t):
global e
e = 0
e = h_désirée(t) - h(t)
return (e)
def de(t):
global de
de = 0
de = erreur(t+dti) - erreur(t)
return (de)
def poussée(t):
global p
p = 0
p = Kp * erreur(t) + Kd*de(t)
return (p)
for i in range(0,nbre_intervalles+1):
t = i*dti
print("hdésirée=", h_désirée(t))
print("h=", h(t))
print("poussée=", poussée(t))
这就是我得到的错误: