news 2026/6/14 0:00:52

步进电机指数规律升降速的单片机控制系统设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
步进电机指数规律升降速的单片机控制系统设计

第二章 系统工作原理和总体方案拟定
2.1控制方案论证与比较
2.1.1步进电机控制系统的构成
步进电机的工作过程一般由控制器控制,控制器按照设计者的要求完成一定的控制过程,是功率放大电路按照要求的规律驱动步进电机运行。旧式的步进电机控制系统由脉冲发生器、步进控制器、功率放大器和步进电机组成,如图2.1所示。步进控制器包括缓冲寄存器、环形分配器、控制逻辑,其作用主要是将输入脉冲变为环形脉冲,以便实现对电机的转动和正反转的控制。功率放大器的作用是将步进控制器输出的环形脉冲加以放大,以驱动步进电机转动。这种控制方案由于是用各种逻辑电路来实现控制过程,线路复杂、控制方案改变困难、成本高。

图2.1步进电机控制系统的组成
随着单片微型计算机迅速发展和普及,为设计功能很强而价格低廉的步进电机控制器提供了条件。采用计算机控制系统,只要控制输入电脉冲的数量、频率以及电机绕组通电相序即可获得所需的转角、转速及转向。这不仅简化了线路,降低了成本,而且操作方便,提高了可靠性。图2.2为单片机控制步进电机的系统结构图。

图2.2单片机控制步进电机的系统结构图
第三章 控制系统的数学模型
由2.3节分析可知,把矩-频特性作为加速范围下可以达到(但不能超过)的最大输出转矩来拟订升降速脉冲序列的规律,就接近于最大转矩控制的最佳升降速规律。所以用步进电机的动力学方程和矩-频特性曲线来导出步进电机的最佳升降速的控制算法,并用单片机对其进行离散控制。
3.1 步进电机升速的控制算法
在步进电机的控制系统中,如图3-1,给一个电脉冲信号,步进电机就转动一个角度或前进一步。设输入为脉冲数,输出为转角,则(为步矩角),这就是步进电机输入/输出的比例关系。

图3.1 步进电机与驱动电路特性框图

步进电机的旋转物体动力学方程式为:

(3-1)
式中为输出力矩,为转子转动惯量,为阻尼系数,为负载转矩,为转子位置,如为电机的回转角速度,,则(3-1)式用表示的方程为:

(3-2)

如驱动脉冲的频率用表示,由,有,则式(3-2)变为:

(3-3)

如果电机尽可能快的加速,则所有频率下都必须产生最大转矩,由式(3-3)步进电机的运动一定满足下式:

(3-4)
式中为步进电机输出转矩。
假设矩-频特性曲线是线性下降的,电机的输出转矩可由下式求出:
第四章 控制系统的硬件设计
4.1 系统的硬件结构
计算机的硬件和软件是相互结合而工作的,有些任务必须由硬件来实现,另
外有些任务必须由软件来实现。但是也有一些任务可以由软件来完成,也可由硬
件来完成。一般来说,增加硬件会提高成本,但能简化设计程序,且实时性好。
反之,加重软件任务,会增加编程调试工作量,但能降低硬件成本。所以要合理
的安排软、硬件的结构。
本系统步进电机速度的控制是由改变发出脉冲的时间间隔来实现的,用定时
器来控制发出脉冲的时间间隔,这样更能发挥硬件实时性的优势,同时能够减轻
软件的任务。
系统的硬件框图如图4.1所示。系统采用单片机作为核心部件,通过扩展外围
设备及接口电路完成对步进电机的并行控制。

第五章 控制系统的软件设计
本系统的软件用 C51 语言编写,采用模块化结构。采用指数规律升降速,用定时器中断方式来控制电动机的速度,升降速的控制实际上就是不断的改变定时器装载值的大小。为了便于编制程序,不必每步都计算装载值,可以用阶梯曲线来逼近升降速曲线,即进行离散化处理。对于每一档频率,软件系统可以通过查表方法查出所需的装载值。
5.1 软件结构设计
进行软件结构设计的任务是确定程序结构、划分功能模块。本系统采用模块化编程,模块化编程是一种软件设计方法,各模块分别编写、编译和调试,最后模块一起连接/定位。模块化编程有以下优点:
1.模块化编程使程序开发更有效。小块程序更易理解和调试。知道模块的输入和输出就可以直接测试小模块。
2.当同类的需求较多时,可把程序放入库中以备以后使用。例如,显示驱动,若要再使用显示驱动,由库中把它取出而不需全部的重新编写。
3.模块化编程使得要解决的问题与特定的模块分离,很容易找到出错的模块,大大简化了调试。
本系统软件的模块规划如图5.1所示,各个模块的具体实现见程序流程图部分。各个模块化文件如下:
1.global.c:定义全局变量类型的模块。
2.main.c:主程序模块。在主程序模块中,控制系统的流程、对系统的资源进行全面的管理、处理输入与显示等。
3.initial.c:初始化模块。在初始化模块中,对CPU的寄存器、I/O、中断、外部芯片(如 8255A)、变量等分别进行初始化。
4.control.c:控制函数模块。升降速由控制函数来实现,在升降速控制函数中实现步进电机的走步,累计走过的步数。当控制函数中等待时间到,则响应定时器中断服务函数。
5.keyinput.c:键盘输入处理模块。本系统的键盘显示接口采用 8255A 芯片,由键盘扫描函数来实现对键盘的处理功能。在键盘输入处理模块中,调用显示函数对输入的键盘数据进行显示。
6.display.c:七段 LED 显示输出模块。显示函数 display 将键盘输入的数实时的显示出来,并可以显示操作提示。
7.operate.c:计算参数模块。在函数 operate 中,根据输入的步数和运行速度计算降速段各档的定时时间间隔及各档的步数。函数 keyconvert 和函数 hexbcd 分别实现对键值的转换和拆分处理。

图5.1 主要程序模块图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 21:01:14

直接上干货!今天咱们聊聊怎么用MATLAB把机械臂玩出花。这玩意儿可不是只能画个三维模型装逼,从底层运动学计算到实时控制都能给你整明白了

Matlab机械臂综合仿真平台,包含运动学、动力学和控制。 MATLAB机器人仿真正逆运动学simulink轨迹规划 机械臂动力学控制等 gui控制仿真平台PUMA机器人 robotics toolbox 先甩个正运动学的代码镇楼: robot seriallink([...Revolute(d, 0.67, a, 0, alp…

作者头像 李华
网站建设 2026/6/12 23:30:08

基于集成模型的Bagging数据回归预测

基于集成模型的Bagging的数据回归预测 matlab代码 大家好!今天我想和大家分享一下关于基于集成模型的Bagging方法在回归预测中的应用。虽然这个主题可能听起来有点专业,但我会尽量用通俗易懂的方式和大家交流,同时穿插一些代码和实际案例&…

作者头像 李华
网站建设 2026/6/5 16:10:14

直接看代码最实在。先来搞个简单的BP神经网络结构

PSO粒子群优化算法优化BP神经网络做MIMO多输入多输出系统的预测,预测精度非常高class BPNN:def __init__(self, input_size, hidden_size, output_size):self.w1 np.random.randn(input_size, hidden_size)self.b1 np.zeros((1, hidden_size))self.w2 np.random.…

作者头像 李华
网站建设 2026/6/13 20:55:22

PLC电路在备用自动投入中 的研究

第2章 可编程控制器控制系统 PLC是由继电器逻辑控制系统发展而来,它在数字处理、程序控制方面具有优势,PLC是为间歇生产和机械加工而一种专用计算机。PLC可采用BSDLC语言、C语言、符合逻辑流程和梯形图编程,具有复杂的数学运算、数据处理、统…

作者头像 李华
网站建设 2026/6/13 20:18:46

【课程设计/毕业设计】基于Spring Boot的体育购物商城系统基于springboot的运动用品商城系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/13 8:21:44

python146- 建筑工程项目任务分配管理系统vue3

目录 建筑工程项目任务分配管理系统(Vue3)摘要核心功能技术栈扩展性 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 建筑工程项目任务分配管理系统(Vue3…

作者头像 李华