Branching from Cathaswatch project
https://git.nerdyssey.de/exodus/1NiM-WatingRoom-WatchController
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import math
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
from utils.defines import *
|
||||
from utils.generator import *
|
||||
from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)
|
||||
|
||||
def main():
|
||||
st = Stepper(1.8, 32)
|
||||
print(f"Step = {st.Step}; Steps = {st.Steps}")
|
||||
|
||||
wv = QuadWave(64)
|
||||
# plt.plot(wv.Sine, label="sin")
|
||||
# plt.plot(wv.Cosine, label="cos")
|
||||
# plt.legend()
|
||||
# plt.show()
|
||||
|
||||
gen = Generator(st, 0.001, 1, 1)
|
||||
|
||||
curves = []
|
||||
curves.append(gen.createSmoothStep(math.pi)) # 180 deg
|
||||
curves.append(gen.createSmoothStep(math.pi*1/6)) # 60 deg
|
||||
curves.append(gen.createBuildUpStep(math.pi)) # 180 deg
|
||||
curves.append(gen.createRapidStartSwingInEnd(math.pi)) # 180 deg
|
||||
curves.append(gen.createJumpInTarget(math.pi)) # 180 deg
|
||||
|
||||
fig, axes = plt.subplots(len(curves), 1, layout='constrained')
|
||||
|
||||
for (i,ax) in enumerate(axes):
|
||||
crv = curves[i]
|
||||
ax.plot(crv["p"], label="ϕ")
|
||||
ax.plot(crv["w"], label="ω", linestyle="--")
|
||||
|
||||
dax = ax.twinx() # instantiate a second Axes that shares the same x-axis
|
||||
dax.step(range(len(crv["o"])), crv["o"], label="o", linewidth=.5)
|
||||
print(f"EndPos = {crv["pE"]}; (Delta = {math.pi - crv["pE"]}) in {crv["T"] * 1000} steps")
|
||||
|
||||
tMax = max(map(lambda x : x["T"], curves))
|
||||
tEnd = math.ceil(tMax)*1000
|
||||
|
||||
for ax in axes:
|
||||
ax.yaxis.set_ticks([0, math.pi/3, math.pi*2/3, math.pi],["Picto0", "Picto1", "Picto2", "Picto3"])
|
||||
ax.xaxis.set_ticks(range(0,tEnd+1000,1000), range(0,math.ceil(tMax)+1,1))
|
||||
ax.xaxis.set_ticks(range(0,tEnd+1000,100), minor = True)
|
||||
ax.yaxis.grid(linestyle='dotted')
|
||||
ax.set_xlabel('time (s)')
|
||||
ax. set_ylabel('angle')
|
||||
# ax.legend()
|
||||
|
||||
plt.show()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user