【发布时间】:2014-11-30 16:59:06
【问题描述】:
我有一些代码基本上可以改变电机控制器的速度并记录数据,但是我现在想添加另一个类来包含 pid 控制器,我不知道(因为我是 python 编程的新手),如何在记录数据的同时调用每次迭代并为电机设置不同的值,换句话说,如何组合两部分代码:有人可以帮我吗?谢谢
【问题讨论】:
我有一些代码基本上可以改变电机控制器的速度并记录数据,但是我现在想添加另一个类来包含 pid 控制器,我不知道(因为我是 python 编程的新手),如何在记录数据的同时调用每次迭代并为电机设置不同的值,换句话说,如何组合两部分代码:有人可以帮我吗?谢谢
【问题讨论】:
不要将TESTER.onTimer 传递给PeriodicTimer 构造函数,而是传递一个同时调用TESTER.onTimer 和PID.update() 的函数。你必须有一个PID 的实例,就像TESTER 是Tester 的一个实例一样。
另外,我建议这样做 if __name__ == "__main__": 像这样(注意 main 函数和小写局部变量):
def main():
csv_file = open('DataRecorded.csv', 'wb')
writer = csv.writer(csv_file)
writer.writerow(['Time', 'Current[mA]', 'Voltage[V]', 'Position',
'Period', 'CurrentAct[mA]', 'VoltageAct[V]' ])
tester = Tester(5) #Change number to
timer = PeriodicTimer(0.05, tester.onTimer)
timer.start()
raw_input('Monitoring Current and Voltage') # Use input() in Python 3
IPCON.disconnect()
csv_file.close()
if __name__ == "__main__":
main()
您可能应该将Birckd 连接部分移到main() 中,但那不是主题。
【讨论】: