我使用下面的代码来绘制正弦波的死区,以便死区出现在 x 轴上,y=0。输出通过上限[y-0.5]和下限的值最小化。这里需要显示死区。任何人都可以帮助我吗?
import matplotlib.pyplot as plt
import numpy as np
UpperLimit = 0.5;
LowerLimit = -0.5;
x=np.linspace(-20,20,100);
y=np.sin(x);
if y < 0:
y=np.sin(x)-LowerLimit
if y > 0:
y=np.sin(x)-UpperLimit
else:
y=0
plt.plot(x,y)
plt.grid()
plt.show()
最佳答案
我想你应该使用矢量化值,所以试试这个
import matplotlib.pyplot as plt
import numpy as np
LL = -0.5
UL = 0.5
x=np.linspace(-20,20,100)
y=np.sin(x)
# plot original sine
plt.plot(x,y)
# zero output value for the dead zone
y[(y>=LL) & (y<=UL)] = 0
y[y>UL] -= UL
y[y<LL] -= LL
# plot "simulinked" ....
plt.plot(x,y)
plt.grid()
plt.show()
PS 如果您提供 "Dead Zone" algorithm 的链接,会更容易理解您想要什么。 ,因为并非所有人都意识到这一点
关于python - 如何使用 python 绘制简单正弦波的死区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062713/