【问题标题】:How to perform different tasks from different classes in every cycle iteration?如何在每个循环迭代中执行来自不同类的不同任务?
【发布时间】:2014-11-30 16:59:06
【问题描述】:

我有一些代码基本上可以改变电机控制器的速度并记录数据,但是我现在想添加另一个类来包含 pid 控制器,我不知道(因为我是 python 编程的新手),如何在记录数据的同时调用每次迭代并为电机设置不同的值,换句话说,如何组合两部分代码:有人可以帮我吗?谢谢

【问题讨论】:

    标签: python class cycle pid


    【解决方案1】:

    不要将TESTER.onTimer 传递给PeriodicTimer 构造函数,而是传递一个同时调用TESTER.onTimerPID.update() 的函数。你必须有一个PID 的实例,就像TESTERTester 的一个实例一样。

    另外,我建议这样做 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() 中,但那不是主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 2015-11-28
      • 2023-03-29
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多