搜索
bottom↓
回复: 35

步进电机可以用PID实现位置、加速减速控制吗?

[复制链接]

出0入0汤圆

发表于 2016-1-26 17:44:31 | 显示全部楼层 |阅读模式
本帖最后由 1069182055 于 2016-1-27 17:17 编辑

步进电机可以用PID实现位置、加速减速控制吗?
我用的是stm32主控,2相4线的步进电机。那位有好的建议啊。
或者有用stm32实现了步进电机S曲线控制的可以说下吗?

我现在用的是查表的方法具体如下:
        0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 6 , 6 , 7 , 8 , 9 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ,
        16 , 17 , 19 , 20 , 21 , 22 , 24 , 25 , 26 , 28 , 29 , 31 , 32 , 34 , 36 , 37 , 39 , 41 , 42 , 44 , 46 , 48 , 50 , 52 , 54 ,
        56 , 58 , 60 , 62 , 64 , 67 , 69 , 71 , 73 , 76 , 78 , 81 , 83 , 85 , 88 , 91 , 93 , 96 , 98 , 101 , 104 , 107 , 109 , 112 ,
        115 , 118 , 121 , 124 , 127 , 130 , 133 , 136 , 139 , 143 , 146 , 149 , 152 , 156 , 159 , 162 , 166 , 169 , 173 , 176 , 180 ,
        183 , 187 , 191 , 194 , 198 , 202 , 205 , 209 , 213 , 217 , 221 , 225 , 229 , 233 , 236 , 241 , 245 , 249 , 253 , 257 , 261 ,
        265 , 270 , 274 , 278 , 282 , 287 , 291 , 295 , 300 , 304 , 309 , 313 , 318 , 322 , 327 , 332 , 336 , 341 , 346 , 350 , 355 ,
        360 , 365 , 369 , 374 , 379 , 384 , 389 , 394 , 399 , 404 , 409 , 414 , 419 , 424 , 429 , 434 , 439 , 445 , 450 , 455 , 460 ,
        465 , 471 , 476 , 481 , 487 , 492 , 497 , 503 , 508 , 514 , 519 , 524 , 530 , 535 , 541 , 547 , 552 , 558 , 563 , 569 , 575 ,
        580 , 586 , 591 , 597 , 603 , 609 , 614 , 620 , 626 , 632 , 638 , 643 , 649 , 655 , 661 , 667 , 673 , 679 , 684 , 690 , 696 ,
        702 , 708 , 714 , 720 , 726 , 732 , 738 , 744 , 750 , 756 , 762 , 768 , 775 , 781 , 787 , 793 , 799 , 805 , 811 , 817 , 824 ,
        830 , 836 , 842 , 848 , 854 , 861 , 867 , 873 , 879 , 885 , 892 , 898 , 904 , 910 , 917 , 923 , 929 , 935 , 942 , 948 , 954 ,
        960 , 967 , 973 , 979 , 985 , 992 , 998 , 1004 , 1010 , 1017 , 1023 ,1029 ,1036 ,1042 ,1048 ,1054 ,1061 ,1067 ,1073 ,1079 ,
        1086 ,1092 ,1098 ,1104 ,1111 ,1117 ,1123 ,1129 ,1136 ,1142 ,1148 ,1154 ,1161 ,1167 ,1173 ,1179 ,1185 ,1192 ,1198 ,1204 ,
        1210 ,1216 ,1222 ,1229 ,1235 ,1241 ,1247 ,1253 ,1259 ,1265 ,1271 ,1278 ,1284 ,1290 ,1296 ,1302 ,1308 ,1314 ,1320 ,1326 ,
        1332 ,1338 ,1344 ,1350 ,1356 ,1362 ,1367 ,1373 ,1379 ,1385 ,1391 ,1397 ,1403 ,1408 ,1414 ,1420 ,1426 ,1432 ,1437 ,1443 ,
        1449 ,1455 ,1460 ,1466 ,1471 ,1477 ,1483 ,1488 ,1494 ,1499 ,1505 ,1511 ,1516 ,1522 ,1527 ,1532 ,1538 ,1543 ,1549 ,1554 ,
        1559 ,1565 ,1570 ,1575 ,1581 ,1586 ,1591 ,1596 ,1601 ,1607 ,1612 ,1617 ,1622 ,1627 ,1632 ,1637 ,1642 ,1647 ,1652 ,1657 ,
        1662 ,1667 ,1672 ,1677 ,1681 ,1686 ,1691 ,1696 ,1700 ,1705 ,1710 ,1714 ,1719 ,1724 ,1728 ,1733 ,1737 ,1742 ,1746 ,1751 ,
        1755 ,1759 ,1764 ,1768 ,1772 ,1776 ,1781 ,1785 ,1789 ,1793 ,1797 ,1801 ,1805 ,1810 ,1813 ,1817 ,1821 ,1825 ,1829 ,1833 ,
        1837 ,1841 ,1844 ,1848 ,1852 ,1855 ,1859 ,1863 ,1866 ,1870 ,1873 ,1877 ,1880 ,1884 ,1887 ,1890 ,1894 ,1897 ,1900 ,1903 ,
        1907 ,1910 ,1913 ,1916 ,1919 ,1922 ,1925 ,1928 ,1931 ,1934 ,1937 ,1939 ,1942 ,1945 ,1948 ,1950 ,1953 ,1955 ,1958 ,1961 ,
        1963 ,1965 ,1968 ,1970 ,1973 ,1975 ,1977 ,1979 ,1982 ,1984 ,1986 ,1988 ,1990 ,1992 ,1994 ,1996 ,1998 ,2000 ,2002 ,2004 ,
        2005 ,2007 ,2009 ,2010 ,2012 ,2014 ,2015 ,2017 ,2018 ,2020 ,2021 ,2022 ,2024 ,2025 ,2026 ,2027 ,2029 ,2030 ,2031 ,2032 ,
        2033 ,2034 ,2035 ,2036 ,2037 ,2037 ,2038 ,2039 ,2040 ,2040 ,2041 ,2042 ,2042 ,2043 ,2043 ,2044 ,2044 ,2044 ,2045 ,2045 ,
        2045 ,2045 ,2046 ,2046 ,2046 ,2046 ,2046 ,2046 ,2046 ,2046 ,2046 ,2046 ,2045 ,2045 ,2045 ,2044 ,2044 ,2044 ,2043 ,2043 ,
        2042 ,2042 ,2041 ,2041 ,2040 ,2039 ,2038 ,2038 ,2037 ,2036 ,2035 ,2034 ,2033 ,2032 ,2031 ,2030 ,2029 ,2028 ,2027 ,2025 ,
        2024 ,2023 ,2021 ,2020 ,2019 ,2017 ,2016 ,2014 ,2012 ,2011 ,2009 ,2008 ,2006 ,2004 ,2002 ,2000 ,1999 ,1997 ,1995 ,1993 ,
        1991 ,1989 ,1987 ,1984 ,1982 ,1980 ,1978 ,1976 ,1973 ,1971 ,1969 ,1966 ,1964 ,1961 ,1959 ,1956 ,1954 ,1951 ,1948 ,1946 ,
        1943 ,1940 ,1937 ,1934 ,1932 ,1929 ,1926 ,1923 ,1920 ,1917 ,1914 ,1911 ,1907 ,1904 ,1901 ,1898 ,1895 ,1891 ,1888 ,1885 ,
        1881 ,1878 ,1874 ,1871 ,1867 ,1864 ,1860 ,1856 ,1853 ,1849 ,1845 ,1842 ,1838 ,1834 ,1830 ,1826 ,1822 ,1818 ,1815 ,1811 ,
        1807 ,1802 ,1798 ,1794 ,1790 ,1786 ,1782 ,1778 ,1773 ,1769 ,1765 ,1760 ,1756 ,1752 ,1747 ,1743 ,1738 ,1734 ,1729 ,1725 ,
        1720 ,1716 ,1711 ,1706 ,1702 ,1697 ,1692 ,1687 ,1683 ,1678 ,1673 ,1668 ,1663 ,1658 ,1653 ,1648 ,1643 ,1638 ,1633 ,1628 ,
        1623 ,1618 ,1613 ,1608 ,1603 ,1598 ,1592 ,1587 ,1582 ,1577 ,1571 ,1566 ,1561 ,1555 ,1550 ,1545 ,1539 ,1534 ,1528 ,1523 ,
        1517 ,1512 ,1506 ,1501 ,1495 ,1490 ,1484 ,1479 ,1473 ,1467 ,1462 ,1456 ,1450 ,1445 ,1439 ,1433 ,1427 ,1422 ,1416 ,1410 ,
        1404 ,1398 ,1393 ,1387 ,1381 ,1375 ,1369 ,1363 ,1357 ,1351 ,1345 ,1339 ,1333 ,1327 ,1321 ,1315 ,1309 ,1303 ,1297 ,1291 ,
        1285 ,1279 ,1273 ,1267 ,1261 ,1255 ,1249 ,1242 ,1236 ,1230 ,1224 ,1218 ,1212 ,1206 ,1199 ,1193 ,1187 ,1181 ,1175 ,1168 ,
        1162 ,1156 ,1150 ,1144 ,1137 ,1131 ,1125 ,1119 ,1112 ,1106 ,1100 ,1094 ,1087 ,1081 ,1075 ,1069 ,1062 ,1056 ,1050 ,1043 ,
        1037 ,1031 ,1025 ,1018 ,1012 ,1006 ,1000 ,993 ,987 ,981 ,974 ,968 ,962 ,956 ,949 ,943 ,937 ,931 ,924 ,918 ,912 ,906 ,899 ,
        893 ,887 ,881 ,875 ,868 ,862 ,856 ,850 ,844 ,837 ,831 ,825 ,819 ,813 ,807 ,801 ,794 ,788 ,782 ,776 ,770 ,764 ,758 ,752 ,
        746 ,740 ,734 ,728 ,722 ,716 ,710 ,704 ,698 ,692 ,686 ,680 ,674 ,668 ,662 ,657 ,651 ,645 ,639 ,633 ,627 ,622 ,616 ,610 ,
        404 ,599 ,593 ,587 ,582 ,576 ,570 ,565 ,559 ,554 ,548 ,542 ,537 ,531 ,526 ,520 ,515 ,510 ,504 ,499 ,493 ,488 ,483 ,477 ,
        472 ,467 ,461 ,456 ,451 ,446 ,441 ,436 ,430 ,425 ,420 ,415 ,410 ,405 ,400 ,395 ,390 ,385 ,380 ,376 ,371 ,366 ,361 ,356 ,
        352 ,347 ,342 ,337 ,333 ,328 ,324 ,319 ,315 ,310 ,306 ,301 ,297 ,292 ,288 ,284 ,279 ,275 ,271 ,266 ,262 ,258 ,254 ,250 ,
        246 ,242 ,238 ,234 ,230 ,226 ,222 ,218 ,214 ,210 ,206 ,203 ,199 ,195 ,191 ,188 ,184 ,181 ,177 ,174 ,170 ,167 ,163 ,160 ,
        157 ,153 ,150 ,147 ,143 ,140 ,137 ,134 ,131 ,128 ,125 ,122 ,119 ,116 ,113 ,110 ,107 ,105 ,102 ,99 ,96 ,94 ,91 ,89 ,86 ,
        84 ,81 ,79 ,76 ,74 ,72 ,69 ,67 ,65 ,63 ,61 ,58 ,56 ,54 ,52 ,50 ,48 ,47 ,45 ,43 ,41 ,39 ,38 ,36 ,34 ,33 ,31 ,30 ,28 ,27 ,
        25 ,24 ,23 ,21 ,20 ,19 ,18 ,17 ,15 ,14 ,13 ,12 ,11 ,11 ,10 ,9 ,8 ,7 ,6 ,6 ,5 ,5 ,4 ,3 ,3 ,2 ,2 ,2 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,//一个正弦波上半部分 分成1024个
相问一下这个要怎么加串级pid啊,位置环,速度环,,,完全不知道怎么用pid去控制,有简单的梯形曲线基本会了但是效果不是很好有一些噪声。

出0入0汤圆

发表于 2016-1-26 18:02:00 来自手机 | 显示全部楼层
楼主闭门造车吗?

出0入0汤圆

发表于 2016-1-26 19:29:34 | 显示全部楼层
能!而且全开环!用软件进行内部模拟闭环!需要串级PID,位置环和速度环~请看我的帖子,19楼视频~http://www.amobbs.com/thread-5638845-1-1.html

出0入0汤圆

发表于 2016-1-26 20:37:44 | 显示全部楼层
myqiang1990 发表于 2016-1-26 19:29
能!而且全开环!用软件进行内部模拟闭环!需要串级PID,位置环和速度环~请看我的帖子,19楼视频~http://ww ...


又见你了  

这两天我也写了一个基于位置环的速度环的步进电机驱动程序,只不过位置环单纯的P,D不能设置太大,但小了又感觉了胜于无,而速度环是PID。

出0入0汤圆

发表于 2016-1-26 20:38:00 来自手机 | 显示全部楼层
本帖最后由 coleyao 于 2016-1-26 21:01 编辑

    速度s曲线,常用的加速度曲线有三角形和正弦波,另外也可以利用步进电机的当前位置已知的特点,模拟pid反馈调节,生成接近s型的曲线!pid反馈调节的特点是最大速度也就是目标速度不固定,可随时调整,而使用查表法则最大速度根据表来确定,基本上是固定的,优点也有,就是通常最大加速度通常会小一点点,通常更稳定。
    以前闲的时候写过一个生成s曲线的数据的小软件,是生成查表法需要的数据的,其中包含了pid反馈调节法,不过里面没有原理和代码,只有数据生成功能和曲线大致形状!感兴趣的可以在坛子里面找一下!

出0入0汤圆

发表于 2016-1-26 20:41:29 | 显示全部楼层
本帖最后由 myqiang1990 于 2016-1-26 21:11 编辑
673104326 发表于 2016-1-26 20:37
又见你了   

这两天我也写了一个基于位置环的速度环的步进电机驱动程序,只不过位置环单纯的P, ...


位置环我用PD,D的作用的是:启动可以加快速度,而减速是可以提前一点自动,防止过冲~D不能太大,D太大了会导致启动有冲击感,而且提前减速比较明显~位置环我只用了一个I~其他没用~但是也可以加~PD~但是我试验发现有I就够了~~我已经用到产品上了,运动起来相当帅气! 堪比国际大厂的水平!PID控制是个好东西~不过单纯的PID在我的系统内,运动起来效果并不是十分理想,我还加了一些外围的控制~~这样效果才会很好~

出0入0汤圆

发表于 2016-1-26 20:56:21 | 显示全部楼层
看看。。。。。

出0入0汤圆

发表于 2016-1-27 09:44:03 | 显示全部楼层


给你看一下我的大概流程,你可以参考一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-1-27 15:28:50 | 显示全部楼层
好的,非常感谢,要是更详细就好了。不过也不太可能。。。

出0入0汤圆

 楼主| 发表于 2016-1-27 15:39:16 | 显示全部楼层
myqiang1990 发表于 2016-1-26 19:29
能!而且全开环!用软件进行内部模拟闭环!需要串级PID,位置环和速度环~请看我的帖子,19楼视频~http://ww ...

你们细分是多少啊?

出0入0汤圆

 楼主| 发表于 2016-1-27 17:19:31 | 显示全部楼层
期待大神们的详细解说,不知道可以要代码不自己顶一下。。。

出0入0汤圆

发表于 2016-1-27 17:38:43 | 显示全部楼层
1069182055 发表于 2016-1-27 17:19
期待大神们的详细解说,不知道可以要代码不自己顶一下。。。


原理都告给你了,自己调一调吧。

我的那种思路需要一个PWM、一个计数器和一个间隔1ms的中断,也就是以1KHz的频率在中断里对PWM的输出频率进行调节,不需要每走1步就调节一次。

出0入0汤圆

发表于 2016-1-27 18:40:10 来自手机 | 显示全部楼层
查表法是每进一次定时中断就对pwm频率调节一次,pid调节方式每隔1毫秒或数毫秒调节一次就行了!

出0入0汤圆

 楼主| 发表于 2016-1-27 19:15:08 | 显示全部楼层
673104326 发表于 2016-1-27 17:38
原理都告给你了,自己调一调吧。

我的那种思路需要一个PWM、一个计数器和一个间隔1ms的中断,也就是以1 ...

可以看一下你的简单驱动原理图吗?
你的为什么只要一个pwm就可以驱动啊?
是那种类型的步进电机啊?

出0入0汤圆

 楼主| 发表于 2016-1-27 19:16:34 | 显示全部楼层
coleyao 发表于 2016-1-27 18:40
查表法是每进一次定时中断就对pwm频率调节一次,pid调节方式每隔1毫秒或数毫秒调节一次就行了! ...

谢谢,虽然还是没怎么懂。。。。

出0入0汤圆

发表于 2016-1-27 20:11:23 | 显示全部楼层
1069182055 发表于 2016-1-27 15:39
你们细分是多少啊?

变细分,不固定

出0入0汤圆

发表于 2016-1-27 20:11:56 | 显示全部楼层
673104326 发表于 2016-1-27 09:44
给你看一下我的大概流程,你可以参考一下。

you are right

出0入0汤圆

发表于 2016-1-27 20:37:21 | 显示全部楼层
1069182055 发表于 2016-1-27 19:15
可以看一下你的简单驱动原理图吗?
你的为什么只要一个pwm就可以驱动啊?
是那种类型的步进电机啊?{:lol ...


他的驱动IC是脉冲+方向的驱动IC~只管发脉冲,细分硬件内置的~所以处理起来比较方便~

出0入8汤圆

发表于 2016-1-27 23:55:28 | 显示全部楼层
怕麻烦直接上TMC5130,电流不够就上TMC4210+2660 ,更大电流可以TMC262+MOS,,三四十块钱一片,算是傻瓜化芯片。
不过和STM32的价格比,还是贵了很多

出0入0汤圆

 楼主| 发表于 2016-1-28 08:52:36 | 显示全部楼层
myqiang1990 发表于 2016-1-27 20:37
他的驱动IC是脉冲+方向的驱动IC~只管发脉冲,细分硬件内置的~所以处理起来比较方便~ ...

怎么好,在那里买的,价格怎么样

出0入0汤圆

 楼主| 发表于 2016-1-28 08:53:22 | 显示全部楼层
myqiang1990 发表于 2016-1-27 20:37
他的驱动IC是脉冲+方向的驱动IC~只管发脉冲,细分硬件内置的~所以处理起来比较方便~ ...


怎么好,在那里买的,价格怎么样 有链接没有啊?

出0入0汤圆

 楼主| 发表于 2016-1-28 08:54:45 | 显示全部楼层
liwei_jlu 发表于 2016-1-27 23:55
怕麻烦直接上TMC5130,电流不够就上TMC4210+2660 ,更大电流可以TMC262+MOS,,三四十块钱一片,算是傻瓜化 ...

哦哦,谢谢 这种就只要一个pwm就可以控制啊,我的现在要4个pwm才可以控制一个步进电机,硬件不是我做的。。。

出0入8汤圆

发表于 2016-1-28 21:46:25 | 显示全部楼层
1069182055 发表于 2016-1-28 08:54
哦哦,谢谢 这种就只要一个pwm就可以控制啊,我的现在要4个pwm才可以控制一个步进电机,硬件不是 ...

不需要pwm,spi发送个数字,告诉控制芯片需要转多少步,然后什么都不用管了,

出0入0汤圆

 楼主| 发表于 2016-1-29 10:15:43 | 显示全部楼层
liwei_jlu 发表于 2016-1-28 21:46
不需要pwm,spi发送个数字,告诉控制芯片需要转多少步,然后什么都不用管了, ...

怎么好。。。。可以发个链接看看吗?应该比较贵吧这种。。

出0入0汤圆

 楼主| 发表于 2016-1-29 10:16:58 | 显示全部楼层
liwei_jlu 发表于 2016-1-28 21:46
不需要pwm,spi发送个数字,告诉控制芯片需要转多少步,然后什么都不用管了, ...

我用的是简单的L6025驱动的所以很麻烦。。。要4个pwm才可以驱动应该两相步进电机

出0入0汤圆

 楼主| 发表于 2016-1-29 14:08:46 | 显示全部楼层
liwei_jlu 发表于 2016-1-27 23:55
怕麻烦直接上TMC5130,电流不够就上TMC4210+2660 ,更大电流可以TMC262+MOS,,三四十块钱一片,算是傻瓜化 ...

这芯片挺贵啊

出0入0汤圆

发表于 2016-2-1 21:48:33 | 显示全部楼层
回复很精彩,有很多值得学习的地方,收藏了

出0入0汤圆

发表于 2016-2-22 11:14:43 | 显示全部楼层
coleyao 发表于 2016-1-26 20:38
速度s曲线,常用的加速度曲线有三角形和正弦波,另外也可以利用步进电机的当前位置已知的特点,模拟pid ...

我用过您的软件,有一个问题想不明白,您的初始加速度为什么都是固定值

出0入0汤圆

 楼主| 发表于 2016-2-29 16:06:44 | 显示全部楼层
liwei_jlu 发表于 2016-1-27 23:55
怕麻烦直接上TMC5130,电流不够就上TMC4210+2660 ,更大电流可以TMC262+MOS,,三四十块钱一片,算是傻瓜化 ...

完全没用过这种芯片,不知道咋用网上也没什么资料好像,好像没看见国内有谁在用啊。

出0入0汤圆

发表于 2016-3-2 18:07:32 | 显示全部楼层
1069182055 发表于 2016-2-29 16:06
完全没用过这种芯片,不知道咋用网上也没什么资料好像,好像没看见国内有谁在用啊。 ...

要控制几个电机,我们芯片有带T、S加减速、留下您联系方式

出0入0汤圆

 楼主| 发表于 2016-3-2 18:32:49 | 显示全部楼层
你可以加企鹅 1069182055

出0入0汤圆

发表于 2016-3-18 15:36:35 | 显示全部楼层
哥们,弄的怎么样了??

出0入0汤圆

发表于 2017-3-11 17:00:24 | 显示全部楼层
如果PID参数定了,改变扫描周期会不会影响,扫描没有超过控制精度

出0入0汤圆

发表于 2017-3-11 18:15:52 | 显示全部楼层
60飘过 发表于 2016-2-22 11:14
我用过您的软件,有一个问题想不明白,您的初始加速度为什么都是固定值 ...

步进电机理想情况是:速度从零平滑上升到最大值; 最差情况是:从零直接变成最大值  ,我接手的程序是从一个较小速度逐步(不平滑)变成最大值,我接手后改良成从一个较小速度平滑变成最大值,其实对步进电机来讲,所谓的速度零其实也只是一个更小的速度值而已,把我程序里面那个最小速度减小到足够小就相当于速度从零起步了!

出0入0汤圆

发表于 2017-3-13 22:15:42 | 显示全部楼层
coleyao 发表于 2017-3-11 18:15
步进电机理想情况是:速度从零平滑上升到最大值; 最差情况是:从零直接变成最大值  ,我接手的程序是从 ...

分析得不错!受教了!

出0入0汤圆

发表于 2019-12-31 16:48:16 | 显示全部楼层
coleyao 发表于 2017-3-11 18:15
步进电机理想情况是:速度从零平滑上升到最大值; 最差情况是:从零直接变成最大值  ,我接手的程序是从 ...

老哥在不 能加下QQ吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 14:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表