stm32步进电机控制程序系统(步进电机控制程序编写)

理论 为了实现步进电机的平缓启停以及避免转高转速时不失步停转。在步进电机启动、停止过程中,需要采用加减速的算法对启动过程进行控制。S曲线是加减速控制最理想的方案。但是S曲线的公式以及控制过程都比较复杂。基于单片机实现这一算法需要有深厚的数学以及单片机软件设计能力。 本视频从浅入深介绍S曲线加减数的理论、编程与实践。 将S曲线离散化,在整个加减速过程中,以一定的时间间隔更新频率,总的更新次数为2*N…

基础理论

硬核知识-步进电机S曲线加减速算法的理论、编程、实践
硬核知识-步进电机S曲线加减速算法的理论、编程、实践

为了更好地完成步进电机的轻缓起停及其防止转高速旋转时无失步转停。在步进电机运行、终止全过程中,必须选用加减速的优化算法对运行全过程实现操纵。S曲线是加减速控制最满意的计划方案。可是S曲线的计算公式及其操纵全过程都比较复杂。基于单片机完成这一优化算法必须有浓厚的数学课及其单片机软件设计方案工作能力。

本短视频从由浅入深深详细介绍S曲线加减数的基础理论、程序编写与实践活动。

将S曲线离散化,在全部加减速全过程中,以一定的间隔时间升级频率,总的刷新频次为2*N,i表明为第i次的升级,则第i次更新的频率f(i)表明为:

硬核知识-步进电机S曲线加减速算法的理论、编程、实践

在其中fb为逐渐的频率,fr是最后运作的频率,α是曲线的伸缩式指数,一般可以取3-5中间的参量。

例如,运行加快,逐渐频率为400Hz,运作频率为5KHz。

终止减速,逐渐频率为5KHz,终止频率为400Hz,

加减速的時间均为1s,按10ms的间隔时间升级频率,一共升级100次,α取5。

则可以制作下列的加减速曲线:

硬核知识-步进电机S曲线加减速算法的理论、编程、实践

程序编写

根据下列过程完成实现步进电机的S曲线的加减速操纵:

  • 配备1ms的计时器及其1ms的中断程序流程
  • 在中断程序中对加减速的频率升级频次i开展记数
  • 配备造成步进电机推动数据信号的PWM控制模块,设定PWM的按时中断及其中断程序流程
  • 在PWM的按时中断程序流程中,测算现阶段升级频次相应的频率,并按出去的频率升级PWM的频率及其pwm占空比
  • 在PWM的按时中断程序流程中,测算步进电机运作的微信步数,假如做到设定的微信步数减掉终止的S曲线减速运作所安装的微信步数,则逐渐减速运作。
  • 与此同时检验外界键入,如果有必须停止运行的键入标准,则逐渐减速运作。

全部加减速操纵全过程的难题取决于:

  • 步进电机的记步及其频率升级必须在每一个PWM中断中开展。
  • 步进电机的运作频率最大到40KHz,这类频率下,PWM的按时中断周期时间做到了25us,PWM计时器中断程序执行总時间尽可能小,依据工作经验最少低于中断周期时间的30%,即7.5us。一旦高于这一数值,造成全部中断程序流程(包含PWM按时中断程序流程)漏运作,基本上子程序没法运作,造成全部控制板假死现象。
  • 依据S曲线的公司是一个错综复杂的最优控制的指数值浮点型计算,必须消耗很多的時间,立即启用C语言的函数库测算这一数值很有可能消耗几十几百ms。

为了更好地处理S曲线的计算时间问题,根据STM32F103,我选用了查询表法,操作步骤如下所示:

1. 将α值界定5,

硬核知识-步进电机S曲线加减速算法的理论、编程、实践

的取值范围为-5~5中间。

2. 在全部加减速全过程中,关系式

硬核知识-步进电机S曲线加减速算法的理论、编程、实践

在取值范围-5~5内匀称取1024个数值,获得数值表。

3. 界定一个unsigned short型有1024个因素的const种类的二维数组,用以储存数值表。

4. Const二维数组储存在里面的flash,数值表共占有2048字节数。

STM32F103RTC6共256K,程序流程组和设定主要参数占有48K,bootloader程序流程占有了8K,远程控制更新室内空间占有了100K,现阶段应用软件仅用到40K上下。

剩下60K以内的室内空间,空出2K的空间来储存数值表,有空间,就是这么任性。

5. 在中断程序流程中,依据总的刷新频次及其目前的升级计数值,测算

硬核知识-步进电机S曲线加减速算法的理论、编程、实践

值,再投射到0-1023的数值有的数据库索引值,根据数据库索引获得数值。

6. 必须留意的是stm32f103不兼容浮点数数的运算,因此针对浮点数数的运算,必须转换成乘于一个数再除于另一个数,例如*α,必须变化为*65535/13107。

下边一段编码是依据发布的计数值获得频率的函数公式:

U16 fnMC_GetFreq(U16 n, U16 halftn, U16 alpha, U16 minfreq, U16 maxfreq){//alpha=alpha * 4096
 signed int udataA;
 signed short uiDataA;
 U16 uiRes;
 U32 uwData;
 udataA = (signed int)alpha * (signed int)n;
 udataA = (signed int)udataA / halftn;
 if(udataA > 32767){ 
 udataA = 32767;
 }
 uiDataA = (signed short)alpha - (signed short)udataA;
 uiDataA = (signed short)4 * 4096 - uiDataA;
 if(uiDataA < 0){
 uiDataA = 0;
 }
 uiRes = (U16)uiDataA; 
 uiRes = uiRes / 32;//*1023/8/4096
 if(uiRes > 1023){
 uiRes = 1023;
 }
 udataA = (signed int)(maxfreq - minfreq) * g_mc_uchExp[uiRes];
 udataA = udataA / 65535;
 uiDataA = (signed int)udataA;
 uiDataA  = minfreq;
 if(uiDataA < 200){
 uiDataA = 200;
 }
 return(uiDataA);
 }

下边一段编码是造成步进电机操纵信息的PWM周期时间中断程序流程:

 int data;
	 U16 freq;
	 STRMotorRegs *motor;
	 motor = &g_motor_regs[0];
 MOTOR_A_CLEARINT();
	 motor->steps   ;
	 data = (int)MOTOR_A_STEPS_GET();
	 if(motor->direction == 0)
	 {
	 	data = data   1;
	 }
	 else
	 {
	 	data = data - 1;
	 }
	 MOTOR_A_STEPS_SET(data);
	 freq = motor->runfrequency;
	 if(motor->runstate == MOTOR_RUN_STATE_INC){
		if(motor->runtimer >= motor->starttime){
			motor->runstate = MOTOR_RUN_STATE_IDLE;
		}else{
			freq = fnMC_GetFreq(motor->runtimer, motor->halfstarttime, motor->alpha, motor->startfreq, motor->runfrequency);//U16 n,U16 halftn,U16 alpha,U16 maxfreq,U16 minfreq)
		}
		motor->runsnapfreq = freq;
	 }else if(motor->runstate == MOTOR_RUN_STATE_IDLE){
		if(motor->totalstep <= (motor->steps   motor->stopremainstep)){
			motor->runstate = MOTOR_RUN_STATE_DEC;
			motor->runtimer = 0;
		}
		motor->runsnapfreq = freq;
	 }else{
	 	if(motor->runtimer >= motor->stoptime){
			freq = motor->stopfreq;
		}else{
			freq = fnMC_GetFreq(motor->runtimer, motor->halfstoptime, motor->alpha, motor->runsnapfreq, motor->stopfreq);//U16 n,U16 halftn,U16 alpha,U16 maxfreq,U16 minfreq)
		}
	 }
	 if(motor->steps >= motor->totalstep)
	 {
	 	 motor->starting = FALSE;
	 }
	 if(FALSE == motor->starting)
	 {
	 	MOTOR_A_DISABLE();
	 }else{
	 	motor->curfrequency = freq;
	 	fnMT_Cal_MotorA_TimeConf();
	 }

实践活动

下边是转化成S曲线标值表、操纵伺服电机运行、终止的短视频,从视频上可以显著见到运作时慢加快->快加速->慢加速的全过程,及其终止时慢降速->快减速->慢降速的全过程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月4日 下午1:19
下一篇 2022年5月4日 下午1:21

相关推荐

  • 创业故事会,分享普通人创业的真实案例

    我一个地地道道的80后农村小伙儿,当年靠着投机取巧的脑袋,考了一个超出理想的高分。为此老师学校都为我粘了不少光。可惜冉冉飘的我报出了超现实的自愿,最后落入一个不起眼的大学,高考是我一辈子从记事起绝对没有作弊的一次,考的这么好,落的这么惨,大学几年都不心甘,在纠结中昏昏沉沉的就毕业了。 当年所学专业其实是很不好找工作的。本打算回家乡干点公职的事,没想到家乡的要求比我现在的省会城市要求还高,工资还低,…

    2022年6月19日
    620
  • 大学生创业做什么好,大学生创业50个小案例

    大学生开店,一方面可充分利用高校的学生顾客资源;另一方面,因为熟悉同龄人的消费习气,因而入门较为容易。正因为走学生路线,因而要靠价廉物美来招引顾客。此外,因为大学生资金有限,不或许挑选热闹地段的店面,因而推行作业尤为重要,需求常常在校园里张贴广告或和社团联办活动,才干广为人知。 支招:产品、价格、促销和渠道,必定要紧紧环绕这四点来运营。消费者通常会货比三家,要学会怎么搞促销,网店的渠道销售针对的个…

    2022年7月11日
    540
  • 万里目:残喘趣店的最后一搏

    不难看出,万里目只不过是罗敏想要救活“挣扎”趣店的一种手段

    2022年7月31日
    510
  • 大学出国留学条件有哪些(最新出国留学的条件)

    很多出国留学的学生,都想知道出国留学需要具备的条件,给大家整理了几点。 首先,英语基础良好。 良好的英语基础确保您出国后可以独立学习和生活,并与周围的人交流,了解您的意思。 第二,自我保健能力有一定程度的自立能力。 出国后,生活圈与国内生活圈不同。一切都需要自己考虑和处理,以免被淘汰。 第三,健康的身体和充足的收入来源。 对健康的身体没有太多解释。充足的收入来源是确保及时获得学费和生活费。 在国外…

    2022年10月24日
    380
  • 老网站改版需要注意什么,网站改版平台盘点

    大家都是知道互联网是发展最快的新型产业,没有的技术和形式都在变化,所以就不存在“终身不变”这一说法。做的最早的一批企业站点都无法给到用户感观上的体验,所以有很多企业都开始走上重建的部队了,是否会影响原来只需多年的收录与排名,很多企业也是比较担心的。那么什么类型的网站需要进行改版呢?网站建设公司就来和大家讨论一下。 中看不中用 企业做网站只顾着包装本公司,没有把公司的主旨完美的体现出来,给企业带来不…

    2022年5月31日
    670
  • 网上开什么店比较好,这五类产品不要错过

    虽然今年新电商法以及实施了,但是在网上卖东西照样有很广阔的前景,所以很多新手还是涌入电商行业,但是既然是卖货肯定就要选择卖什么东西了,一般人还真难抉择,下面就和小编看看卖什么东西赚钱吧   一、女性用品   女人的钱做容易赚,2019最新致富创业项目,挣八天超你一个月,相信大家都有这样的感受,身边的女性朋友,女同事等隔三岔五就会收到各种的快递货品,现在许许多多的人都是选择在网上购物,既方便又实惠的…

    2022年10月6日
    450
  • 哪个口红牌子好用,推荐六款价格实惠又不沾杯的口红

    冬天已经过去了,春天还会远吗?三月已经悄悄的来到了,小仙女们是不是已经迫不及待换上春装来迎接温暖的春天了呢?但小编想提醒大家,新衣可得配新妆哟!来一只少女心满满的口红,让春天停留在你的唇间! 小编今天准备代大家来试试那些适合春天的口红,满屏的❤少女心❤准备接住了哦! 1▎DIOR变色唇膏 对于唇膏而言就不得不说迪奥的这款唇膏了,从外形来说粉色的外壳透露出来的少女气质已经是满满的少女心了,打开后有一…

    2022年10月7日
    390
  • 企业需要交哪些税(注册公司每年需要交多少钱)

    经常在后台看到大家的留言:“什么是每月报税?”“没有按时申报会怎样?”“都需要报哪些税?”等等,今天系统地给大家科普一下。 一、企业要报哪些税? 企业成立后,会根据您企业的经营范围核定税种和税目,一旦在系统核定完成,企业就应该在规定的申报期间按时申报,错过申报期和漏申报都会有不良后果。 都有哪些税? 一般公司都会涉及的税种有如下7个: 增值税、城市维护建设税、教育费附加、地方教育费附加、印花税、个…

    2022年6月2日
    620
  • 微信上删除的聊天记录怎么恢复,手机还原微信聊天记录教程

    微信聊天记录删除了怎么恢复?现实生活中很多人遇到微信聊天记录被不小心误删的情况,其实不光光是微信数据,其他各项虚拟数据都是我们​极其重要的虚拟财产,那么让自己不小心删除后应该怎么办才能把他们恢复呢?今天小编就给大家说说这几种方法简单有效的帮你恢复微信聊天记录​! 1、利用备份数据恢复 第一种最有效的方法肯定就是利用备份的数据进行恢复了,当然了前提是你在这之前先进行了​微信聊天记录的备份才能用这种方…

    2022年6月17日
    690
  • 淘宝优惠券返利机器人怎么赚取佣金,带你详细了解微信淘宝返利机器人

    我开始了机器人返利的副业,想尽我所能,努力从这里实现我的财务自由。 我想把在这期间遇到的问题分享给你。 问了一些身边的朋友和没有用过机器人返利的路人,总结了下他们所担心的问题: 1、“你们返利不会是骗子吧?” 2、“我在淘宝买东西如果通过你们转换过来的链接买,会不会把我的信息都记录到你那里,支付宝的钱会不会被你们卷跑?” 3、“我在淘宝买东西发的链接会不会转化过来后成其它店铺的?” 首先说一说,我…

    2022年8月22日
    780

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信