Python 步进电机频率缓和曲线

Python 步进电机频率缓和曲线,python,logarithm,easing,trigonometry,motordriver,Python,Logarithm,Easing,Trigonometry,Motordriver,我正在写一些控制五相步进电机的软件。步进电机的速度由我发送给电机控制器的脉冲频率控制。我目前面临的挑战是,我想放松运动。我实际上是在复制一些我没有源代码的旧软件的行为。我理解宽松的逻辑,其表现如下: 当结束/持续速度较慢时,缓进速度较慢/所需时间较长 当结束/持续速度快时,进入的速度更快/更短 例如,当持续速度为693 Hz时,缓进时间为766毫秒。我已经使用Saleae逻辑分析仪对这条曲线进行了采样。曲线如下: 启动频率为97.77 Hz。因此,我试图找出如何在代码中实现适当的逻辑/公式。下

我正在写一些控制五相步进电机的软件。步进电机的速度由我发送给电机控制器的脉冲频率控制。我目前面临的挑战是,我想放松运动。我实际上是在复制一些我没有源代码的旧软件的行为。我理解宽松的逻辑,其表现如下:

  • 当结束/持续速度较慢时,缓进速度较慢/所需时间较长
  • 当结束/持续速度快时,进入的速度更快/更短
  • 例如,当持续速度为693 Hz时,缓进时间为766毫秒。我已经使用Saleae逻辑分析仪对这条曲线进行了采样。曲线如下:

    启动频率为97.77 Hz。因此,我试图找出如何在代码中实现适当的逻辑/公式。下面的代码位将给出与我需要的增量相对接近的Hz增量,但我不知道如何让它在越来越长的时间内重复/保持相同的
    current_freq
    ,这就是创建曲线的本质。我创建增量的乘数也关闭了,但它相对较近

    **编辑–我认为下面理论上的方法可以增加递增时间的维度来保持当前频率的递增,但我的实现有问题。。。每个频率只做一次

    current_freq = 97.
    end_freq = 1134
    
    t = 4 
    # number of times to send the current freqency
    
    print current_freq
    
    while current_freq < end_freq:
        i = 1
        t = t+t * .1673
        print i
        while i <= t:
            print current_freq
            i = i+1
            break
        current_freq = current_freq + current_freq * .1673
    
    current\u freq=97。
    结束频率=1134
    t=4
    #发送当前频率的次数
    打印当前频率
    当前频率<结束频率时:
    i=1
    t=t+t*.1673
    打印i
    
    当i尝试多次打印新频率时,只需使用
    break
    删除该行即可

    此代码生成以下输出

    current_freq = 97.
    end_freq = 1134
    
    # number of times to send the current freqency
    t = 4
    
    while current_freq < end_freq:
        i = 1
        t = t + t * .1673
        print("t=%10f" % (t))
        while i <= t:
            print("i=", i, end=' ')
            print("  freq %.2f" % current_freq)
            i = i + 1
            #break
        current_freq = current_freq + current_freq * .1673
    

    如果要多次打印新频率,只需使用
    中断
    删除该行即可

    此代码生成以下输出

    current_freq = 97.
    end_freq = 1134
    
    # number of times to send the current freqency
    t = 4
    
    while current_freq < end_freq:
        i = 1
        t = t + t * .1673
        print("t=%10f" % (t))
        while i <= t:
            print("i=", i, end=' ')
            print("  freq %.2f" % current_freq)
            i = i + 1
            #break
        current_freq = current_freq + current_freq * .1673
    

    您或同事是否有权访问Graphpad Prism?这是一个很好的插值系列。我不熟悉它…看起来很有趣。你最终下载了Prism并做了一些分析吗?我现在正在玩它,如果你有空的话,请直接打电话给我,我们可以讨论数据。我做了,但我完全不知道如何使用它:)你或同事有权使用Graphpad Prism吗?这是一个很好的插值系列。我不熟悉它…看起来很有趣。你最终下载了Prism并做了一些分析吗?我现在正在玩它,如果你有空的话,请直接打电话给我,我们可以讨论数据。我做了,但我完全不知道如何使用它:)