Python实现正弦波形中30等分点的数值计算,IT6500C电压输出正弦波
标签:
itlinux电磁兼容 |
分类: 电子电气工程应用 |
最近一段时间以来,有个需求就是如何让可编程电源IT6500C系列输出电压为正弦波形。(直接跳到分割线之后即可)
之前的方波,锯齿波,都已经OK,循环起来也很方便。下图:
图一中的配置文件设置如图:
(注意表格中斜率的设置,这是波形是否正确的关键,斜率的单位是秒)
斜率设置成0.001秒的用意就是(上升/下降到下一步所用时间为0.001秒)
图二中的配置,你猜。
————————————————我是分割线————————————————
工欲善其事必先利其器。我们得确定具体需求、以及所用工具的能力边界在哪里?
那么就用解题思维从易到难来摸索,摸索。
解题:Y1=sin(2π/30),Y2=sin(2*2π/30),......Y29=sin(29*2π/30),Y30=sin(30*2π/30).
题目2:将正负最大最小值12/-12V的正弦波y=12*sin(x)以X轴等分成30份,问每一份数值y对应坐标系中是在哪里?
解题:Y1=12*sin(2π/30),Y2=12*sin(2*2π/30),......Y29=12*sin(29*2π/30),Y30=12*sin(30*2π/30).
这里 A*sin(wt+b) ,A=12,w=1, b=0.
计算需要重复操作,这将需要30次频繁的操作,我们需要解放双手,于是用一下,之前9.9元算是白嫖的python小课,解决:
第一步:python中 如何计算 sin(2π/30)
第二步:使用循环,设置变量为a,a=1,a=2,......a=30分别带入到计算公式中,
a = 0
while a < 30:
a = a + 1
print(a)
print("sin("+str(a)+"*(math.pi)/15):",12*(math.sin(a*(math.pi)/15)))
第三步:将懒惰继续进行,不仅要将终端里打印输出,还要把打印的最后一步写进txt文件,txt文件命名为hello.txt保存在D盘根目录下:
答:
import math
a = 0
votage= ['x']
//创建一个列表,利用列表,增加元素,从而把12*(math.sin(a*(math.pi)/15))保存进来
time= ['y']
while a < 30:
a = a + 1
print(a)
print("sin("+str(a)+"*(math.pi)/15):",12*(math.sin(a*(math.pi)/15)))
votage.append(str(12*(math.sin(a*(math.pi)/15))))
print(votage)
v = votage
t = time
f = open (r'D:\IT6500C-30Hz,6sin(30points).txt','w') #print输出写入TXT文档函数#
print (str(v),'\n','\n',str(t),file = f)
f.close()
最后效果:
后面就是要制作可编程电源IT6500C的配置文件了:
如下:
(能力边界分析:一个波形只能包含10步骤,所以一个配置文件只能有10行,所以30等分,所以这将需要3个配置文件;之后再把3个波形配置文件配置进1个list,这样一个周期30s(疑问?),波峰幅度为12V,波谷为0V的正弦波编号为list5就可以了)
截图见下面:文件名(sin-pi-30-1、sin-pi-30-2、sin-pi-30-3)
PS:1.里面延时计算公式:t=(1/30)*sin(a*2π/30);f是频率,这里是30Hz;

加载中…