首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >步进电机频率曲线

步进电机频率曲线
EN

Stack Overflow用户
提问于 2016-06-01 23:40:46
回答 1查看 495关注 0票数 1

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

  1. 当结束/持续速度慢时,容易进入的速度变慢/花费的时间更长。
  2. 当结束/持续速度快时,容易进入的速度更快/更短。

例如,…当持续速度为693赫兹时,舒适度为766毫秒长.我使用Saleae逻辑分析仪对这条易用性曲线进行了采样。这是曲线:

启动频率为97.77Hz。下面是指向实际数据的链接。因此,我试图找出如何在代码中实现正确的逻辑/公式。下面的代码将显示出相对接近我需要的增量的Hz增量,但我想不出的是如何让它在越来越长的时间内重复/保持相同的current_freq --这就是你在图表中看到的曲线。创建增量的乘法器也是关闭的,但它相对接近于…。

**编辑--理论上,我认为下面的内容可以增加一个递增时间的维度来保持current_freq的增强,但是我的实现有问题……每个频率只做一次。

代码语言:javascript
复制
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

有什么想法吗?这是对数吗?罪还是罪?如果不是显而易见的话,我的数学能力很差。

EN

回答 1

Stack Overflow用户

发布于 2017-11-30 21:33:20

如果您要多次打印新频率,只需用break删除行即可。

此代码生成以下输出。

代码语言:javascript
复制
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

输出(截断)

代码语言:javascript
复制
t=  4.669200
i= 1   freq 97.00
i= 2   freq 97.00
i= 3   freq 97.00
i= 4   freq 97.00
t=  5.450357
i= 1   freq 113.23
i= 2   freq 113.23
i= 3   freq 113.23
i= 4   freq 113.23
i= 5   freq 113.23
t=  6.362202
i= 1   freq 132.17
i= 2   freq 132.17
i= 3   freq 132.17
i= 4   freq 132.17
i= 5   freq 132.17
i= 6   freq 132.17
t=  7.426598
i= 1   freq 154.28
i= 2   freq 154.28
i= 3   freq 154.28
i= 4   freq 154.28
i= 5   freq 154.28
i= 6   freq 154.28
i= 7   freq 154.28
t=  8.669068
i= 1   freq 180.10
i= 2   freq 180.10
i= 3   freq 180.10
i= 4   freq 180.10
i= 5   freq 180.10
i= 6   freq 180.10
i= 7   freq 180.10
i= 8   freq 180.10
t= 10.119403
i= 1   freq 210.22
i= 2   freq 210.22
i= 3   freq 210.22
i= 4   freq 210.22
i= 5   freq 210.22
i= 6   freq 210.22
i= 7   freq 210.22
i= 8   freq 210.22
i= 9   freq 210.22
i= 10   freq 210.22
t= 11.812379
i= 1   freq 245.40
i= 2   freq 245.40
i= 3   freq 245.40
i= 4   freq 245.40
i= 5   freq 245.40
i= 6   freq 245.40
i= 7   freq 245.40
i= 8   freq 245.40
i= 9   freq 245.40
i= 10   freq 245.40
i= 11   freq 245.40
.
.
.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37580485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档