def calcAdimCtrl(self,alfa,beta):
#u = numpy.empty((self.N,self.m))
Nu = len(alfa)
u = numpy.empty((Nu,2))
restrictions = self.restrictions
alpha_min = restrictions['alpha_min']
alpha_max = restrictions['alpha_max']
beta_min = restrictions['beta_min']
beta_max = restrictions['beta_max']
a1 = .5*(alpha_max + alpha_min)
a2 = .5*(alpha_max - alpha_min)
b1 = .5*(beta_max + beta_min)
b2 = .5*(beta_max - beta_min)
alfa -= a1
alfa *= 1.0/a2
beta -= b1
beta *= 1.0/b2
u[:,0] = alfa.copy()
u[:,1] = beta.copy()
# Basic saturation
for j in range(2):
for k in range(Nu):
if u[k,j] > 0.99999:
u[k,j] = 0.99999
if u[k,j] < -0.99999:
u[k,j] = -0.99999
u = numpy.arctanh(u)
return u
评论列表
文章目录