def model(T, h, x0, y0): # Inicjacja tablic times = mh.createArray(0, T, h) d = 1 xs = [x0] #y ys = [y0] #u es = [d - xs[0]] całka = es[0] * h kp = 1 ki = 0.9 kd = 0.5 a = -1. / 2. # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): es.append(d - xs[i]) xs.append(xs[i] + h * (a * xs[i] + ys[i])) całka += es[i + 1] * h ys.append(kp * (es[i + 1]) + ki * (całka) + kd * ((es[i + 1] - es[i]) / h)) return (times, xs, ys)
def model(T, h, y0, u0, d, kp, ki, kd, delay): # Inicjacja tablic times = mh.createArray(0, T, h) ys = [y0] es = [d - y0] us = [u0] a = 5 calka = 0 stepsDelayed = mh.delayToSteps(delay, h) # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): if i > stepsDelayed: ys.append(ys[i] + h * (a * ys[i] + us[i])) es.append(d - ys[i + 1]) calka += (es[i - stepsDelayed]) * h us.append(kp * es[i + 1 - stepsDelayed] + kd * ((es[i + 1 - stepsDelayed] - es[i - stepsDelayed]) / h) + ki * calka) else: ys.append(ys[i] + h * (a * ys[i] + us[i])) es.append(d - ys[i + 1]) calka += (es[i]) * h us.append(0) return (times, ys, es, us, (kp, ki, kd))
def model(T, h, x0, y0): # Inicjacja tablic times = mh.createArray(0, T, h) xs = [x0] #y ys = [y0] #u a = -1. / 2. d = 0.4 treshhold = 0.05 speed = 1 lastRising = True # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): # xs.append(xs[i] + h * ( )) # ys.append(ys[i] + h * ( )) if not lastRising and d - treshhold - xs[i] > 0: lastRising = True print("Treshold passed. Start rising") elif lastRising and d + treshhold - xs[i] <= 0: lastRising = False print("Treshold passed. Stop rising") if lastRising: ys.append(speed) print("Rising") else: ys.append(0) print("Falling") print(3) xs.append(xs[i] + h * (a * xs[i] + ys[i + 1])) return (times, xs, ys)
def model(T, h, x0, y0): # Inicjacja tablic times = mh.createArray(0, T, h) xs = [x0] ys = [y0] # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): # xs.append(xs[i] + h * ( )) # ys.append(ys[i] + h * ( )) xs.append(xs[i] + h * (1 / 2 * xs[i] - ys[i] - 1 / 2 * (xs[i] ** 3 + xs[i] * ys[i] ** 2))) ys.append(ys[i] + h * (xs[i + 1] + 1 / 2 * ys[i] - 1 / 2 * (ys[i] ** 3 + ys[i] * xs[i + 1] ** 2))) return (times, xs, ys)
def model(T, h, x0, y0, z0): # Inicjacja tablic times = mh.createArray(0, T, h) xs = [x0] ys = [y0] zs = [z0] s = 10 r = 28 b = 8/3 # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): # xs.append(xs[i] + h * ( )) # ys.append(ys[i] + h * ( )) xs.append(xs[i] + h * (s * (ys[i] - xs[i]))) ys.append(ys[i] + h * (r * xs[i+1] - ys[i] - xs[i+1] * zs[i])) zs.append(zs[i] + h * (-1 * b * zs[i] + xs[i+1] * ys[i+1])) return (times, xs, ys, zs)
def modelOld(T, h, y0, u0, d, kp, ki, kd): # Inicjacja tablic times = mh.createArray(0, T, h) ys = [y0] es = [d - y0] us = [u0] a = 5 calka = 0 # Symulacja wypełniająca tablice for i in range(0, len(times) - 1): ys.append(ys[i] + h * (a * ys[i] + us[i])) es.append(d - ys[i + 1]) calka += (es[i]) * h us.append(kp * es[i + 1] + kd * ((es[i + 1] - es[i]) / h) + ki * calka) return (times, ys, es, us, (kp, ki, kd))