基于STM32的数字舵机控制系统的设计
stm32控制舵机程序

stm32控制舵机程序章节标题:基于STM32的舵机控制程序设计第一章:引言(约250字)1.1 研究背景控制舵机是机器人、无人机、航空模型等众多领域的关键技术之一。
而STM32系列的微控制器以其高性能、低功耗和丰富的外设资源被广泛应用于嵌入式控制系统。
本章主要介绍了舵机的作用及其在控制系统中的重要性,同时说明了选择STM32微控制器作为控制舵机的硬件平台的原因。
第二章:控制理论(约250字)2.1 舵机原理舵机是一种能够根据外部输入信号控制角度的电动执行器。
其通过接收PWM信号来确定输出位置和角度,通常在0至180度之间运动。
本章介绍了舵机的工作原理,包括PWM控制信号的作用、舵机内部的反馈控制电路等内容。
2.2 PID控制理论PID控制是一种常用的闭环控制方法,能够根据反馈信号调整输出信号,通过比较实际输出与期望输出的差异来实现控制。
本章详细介绍了PID控制的原理和算法,并提出了使用PID控制舵机的基本思路。
第三章:硬件设计(约250字)3.1 系统框架在舵机控制系统中,使用STM32微控制器作为控制芯片,通过引脚与舵机进行连接,实现对舵机的控制。
本章主要介绍了硬件设计的系统框架,包括STM32微控制器的选择、电源设计、信号输入输出设计等。
3.2 电路原理图本章详细描述了电路原理图设计,包括电源管理模块、驱动电路等详细设计内容。
同时对于舵机的接线方式和引脚定义进行了说明。
第四章:软件设计(约250字)4.1 程序流程本章介绍了在STM32上开发舵机控制程序的流程,包括初始化舵机控制模块、设置PWM输出引脚、编写控制算法等。
4.2 PID算法实现详细描述了如何在STM32上实现PID控制算法,包括参数调整、误差计算、控制输出计算等步骤。
同时,结合实际舵机控制需求,对PID控制算法进行优化。
4.3 实验验证通过实验验证了基于STM32的舵机控制程序的有效性和性能优势。
通过与传统控制方法进行对比,并分析实验数据,评估了该程序的稳定性和响应速度。
STM32控制舵机的原理及代码

STM32控制舵机的原理及代码1、舵机的⼯作原理:舵机内部的控制电路,电位计(可变电阻器)和电机均被连接到电路板上,如内部结构图的右边部分。
控制电路通过电位计可监控舵机的当前⾓度。
如果轴的位置与控制信号相符,那么电机就会关闭。
如果控制电路发现这个⾓度不正确,它就会控制马达转动,直到它达到指定的⾓度。
舵机⾓度根据制造商的不同⽽有所不同。
⽐如,⼀个180度的舵机,它可以在0度⾄180度之间运动。
由于限位装置被安装在主输出装置上,超出这个范围机械结构就不能再转动了。
舵机的输出功率与它所需要转动的距离成正⽐。
如果输出轴需要转动很长的距离,马达就会全速运转,如果它只需要短距离转动,马达就会以较慢的速度运⾏,这叫做速度⽐例控制。
2、如何让舵机转到指定⾓度:控制线⽤于传输⾓度控制信号。
这个⾓度是由控制信号脉冲的持续时间决定的,这叫做脉冲编码调制(PCM)。
舵机的控制⼀般需要⼀个20ms左右的时基脉冲,该脉冲的⾼电平部分⼀般为0.5ms-2.5ms范围,总间隔为2ms。
脉冲的宽度将决定马达转动的距离。
例如:1.5毫秒的脉冲,电机将转向90度的位置(通常称为中⽴位置,对于180°舵机来说,就是90°位置)。
如果脉冲宽度⼩于1.5毫秒,那么电机轴向朝向0度⽅向。
如果脉冲宽度⼤于1.5毫秒,轴向就朝向180度⽅向。
以180度舵机为例,对应的控制关系是这样的:0.5ms————-0度;1.0ms————45度;1.5ms————90度;2.0ms———–135度;2.5ms———–180度;3、舵机转动⾓度对应的占空⽐以及⽐较寄存器的值计算⽅法:舵机配置需要满⾜频率为50HZ,PWM占空⽐是指在⼀个周期内,信号处于⾼电平的时间占据整个信号周期的百分⽐,由于PWM周期为20ms,所以(以舵机会转动 45°为例),占空⽐就应该为1ms/20ms = 5%,所以TIM_SetCompare1的 TIMx 捕获⽐较 1 寄存器就为200-200*5% = 1904、STM32控制舵机的代码:控制舵机代码:Main.cpp#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"int main(void){u16 led0pwmval=185;//u8 dir =1;delay_init();LED_Init();TIM3_PWM_Init(199, 7199);//50hzwhile(1){led0pwmval=195;//45TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=190;//45TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=185;//90TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=180;//135TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=175;//180TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);}}Timer.h#ifndef __TIMER_H#define __TIMER_H#include "sys.h"void TIM3_PWM_Init(u16 arr , u16 psc);#endifTimer.c#include "timer.h"void TIM3_PWM_Init(u16 arr , u16 psc){GPIO_InitTypeDef GPIO_InitTypestrue;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitTypestrue;TIM_OCInitTypeDef TIM_OCInitTypesture;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//使能GPIO时钟,以及TIM3时钟使能GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//复⽤GPIO_InitTypestrue.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitTypestrue.GPIO_Pin=GPIO_Pin_5;GPIO_InitTypestrue.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitTypestrue); //GPIO初始化TIM_TimeBaseInitTypestrue.TIM_Period=arr;TIM_TimeBaseInitTypestrue.TIM_Prescaler=psc;TIM_TimeBaseInitTypestrue.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitTypestrue.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInit(TIM3 ,&TIM_TimeBaseInitTypestrue); //定时器初始化TIM_OCInitTypesture.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitTypesture.TIM_OCMode=TIM_OCMode_PWM2;TIM_OCInitTypesture.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC2Init(TIM3 ,&TIM_OCInitTypesture );//CH2通道初始化TIM_OC2PreloadConfig( TIM3 ,TIM_OCPreload_Enable);//使能预装载寄存器TIM_Cmd(TIM3,ENABLE);}。
stm32 控制舵机

stm32 控制舵机章节一:引言(Introduction)在现代工业自动化系统中,舵机作为一种重要的执行器,被广泛应用于各个领域。
舵机能够提供精确的旋转运动,并可以通过调节控制信号的脉宽来改变输出角度。
在众多类型的舵机中,STM32控制舵机的方案成为了学术界和工程领域的热门研究课题。
本文将介绍STM32控制舵机的原理、实现方法以及应用实例。
章节二:STM32控制舵机的原理(Principle of STM32 Servo Control)2.1 舵机的工作原理舵机是一种具有闭环控制功能的电动执行器。
其工作原理是通过从控制器接收到的脉宽来指定输出角度,舵机根据脉宽的变化移动至相应位置,并通过内部的反馈系统达到准确的位置控制。
2.2 STM32的特性与控制原理STM32是一种强大的微控制器,具有高速、低功耗、丰富的外设接口等特点。
其通过PWM输出信号来控制舵机的转动。
PWM信号的占空比与舵机的角度成正比,通过调节占空比,可以实现对舵机角度的精确控制。
章节三:STM32控制舵机的实现方法(Implementation ofSTM32 Servo Control)3.1 硬件设计在STM32控制舵机的硬件设计中,需要配置定时器和IO口。
定时器用于产生PWM信号,IO口用于连接舵机控制线。
3.2 软件程序设计在STM32控制舵机的软件程序设计中,需要使用相关的库函数来配置定时器和IO口,并编写控制算法,实现对舵机的角度控制。
章节四:STM32控制舵机的应用实例(Application Example of STM32 Servo Control)4.1 智能小车方向控制在智能小车方向控制中,通过STM32控制舵机可以实现小车的转向功能,改变舵机的角度可以改变小车行驶的方向。
4.2 机械臂控制在机械臂控制中,通过STM32控制舵机可以实现机械臂的运动和抓取功能,通过控制不同舵机的角度,可以实现复杂的动作。
stm32舵机控制程序

stm32舵机控制程序章节一:引言引言部分首先介绍了舵机控制在工业和机器人领域的应用,以及其在实际生活中的普遍应用。
接着介绍了目前市场上使用最广泛的舵机控制器——STM32,以及对其进行控制的优势和挑战。
最后对本论文的研究目的和结构进行了概述。
章节二:背景知识与理论基础本章节主要介绍了舵机的基本原理和工作方式。
首先介绍了舵机的定义和分类,包括模拟舵机和数字舵机。
然后详细讲解了舵机的内部结构,包括电机、减速器、编码器等组成部分。
接着介绍了舵机控制的基本原理,包括PWM信号的生成和控制以及位置反馈的原理。
最后讲解了STM32的基本硬件结构和特点,为后续章节的程序设计做准备。
章节三:STM32舵机控制程序设计本章节详细介绍了STM32舵机控制程序的设计过程。
首先介绍了程序设计前的准备工作,包括硬件连接和配置,以及软件开发环境的搭建。
然后详细介绍了程序的主要模块,包括PWM输出模块、位置反馈模块和控制算法模块。
其中,PWM 输出模块负责生成合适的PWM信号以控制舵机的转向和角度;位置反馈模块负责读取舵机位置信息,以实现闭环控制;控制算法模块负责根据预设的目标角度和当前位置信息进行控制计算。
最后介绍了程序的测试和调试方法,并给出了一些实验结果。
章节四:实验结果和讨论本章节主要介绍了实验结果和对实验结果的讨论。
首先给出了实验中所使用的舵机的基本参数和实验条件。
然后给出了实验结果的定量数据和图表,并对实验结果进行了详细的分析和解读。
最后总结了本论文研究的主要成果和不足之处,并对未来可能的研究方向进行了展望。
总结:本论文通过对STM32舵机控制程序的设计和实验研究,初步实现了对舵机的准确控制。
实验结果表明,所设计的控制程序能够有效地控制舵机的转向和角度,并具有较好的控制精度和稳定性。
然而,由于实验条件的限制,本论文的研究结果还存在一定的局限性,需要进一步完善和扩展。
未来的研究可以考虑使用更高精度和更稳定的舵机进行控制,进一步提高控制精度和稳定性;同时还可以考虑将该控制程序应用于机器人等领域,以实现更丰富的运动控制功能。
基于STM32的数字舵机控制系统的设计

#66#计算机测量与控制.2011.19(1) Computer Measurement &Control控制技术收稿日期:2010-05-14; 修回日期:2010-06-24。
作者简介:周永龙(1986-),男,河南灵宝人,硕士研究生,主要从事电路与系统,数字伺服方向的研究。
文章编号:1671-4598(2011)01-0066-03 中图分类号:T P273文献标识码:A基于STM32的数字舵机控制系统的设计周永龙1,雷金奎2(11西北工业大学电子信息学院,陕西西安 710072;21西北工业大学第365研究所,陕西西安 710065)摘要:针对无人机舵机控制系统对位置伺服的实时性和可靠性的要求,首次提出了以S TM 32为微控制器的新型数字控制系统;硬件部分给出了系统硬件结构图,并简要介绍了主控制芯片和硬件电路结构,为了提高系统数据传输的可靠性,引入CAN 总线传输方式;在软件部分,首先简要介绍了ST M 32的标准外设固件库函数,然后介绍了三闭环数字调节算法的实现和中断任务;另外,搭建了无人机数字舵机数字控制系统的仿真模型,通过仿真研究验证了控制策略的可行性。
关键词:无人机;ST M 32;三闭环伺服调节;舵机Design of STM32-Based Digital Actuator Controlling SystemZho u Yonglong 1,Lei Jinkui2(11No rthw ester n Polytechnical U niver sity ,Xi p an 710072,China;21R esear ch Institute N o 1365,N o rthwester n P olytechnical U niver sity,Xi p an 710065,China)Abstract:In view of th e position -s ervo real-timin g and reliability r equiremen ts to th e u nman ned aerial vehicle actu ator contr olling system ,for th e fir st time a novel digital actuator con tr olling s ystem is pu t forw ard based on S TM 32micr o-controller.In the hardw are part th e structu ral graph of the system hardw are is brough t forw ard,and the micro-controller and the hardw are circuit is br iefly introduced.To im prove the reliab ility of data tran smis sion,C AN bu s is u sed.In th e softw are part,S TM 32standard peripherals firmw are library is b riefly in trodu ced at first.Then the arith metic implement of th e th ree closed loop digital modulation and th e interruption tas k is mainly recommen -ded.In addition the emulation m od el of the unm ann ed aerial vehicle digital actuator controlling s ystem is built,and the s ystem performance is validated.Key words :U AV;ST M 32;thr ee closed-loop control strategy;actuator0 引言舵机控制系统是无人机控制系统的重要部分,其性能好坏直接决定了无人机的性能。
基于STM32的双足机器人控制系统设计与实现

电子技术• Electronic Technology84 •电子技术与软件工程 Electronic Technology & Software Engineering【关键词】双足机器人 姿态传感器 舵机 姿态修正 测距机器人是集众多高新领域于一身的高技术产物,由于技术的不断成熟,机器人的应用领域更加广泛,发挥越来越重要的作用。
本文采用STM32单片机作为核心处理器,为姿态传感器MPU050、舵机及超声波测距传感器提供良好的控制平台。
1 系统总体设计该款机器人各关节的运动均由舵机实现,按照舵机所处位置将舵机分为四组,分别对应机器人的四肢,便于后期编程和调试。
上位机通过无线串口向机器人主控制器发出指令,主控制器判断指令后控制对应舵机协调转动实现机器人直行、转弯、后退等一系列动作。
在机器人运动的同时,姿态传感器MPU6050实时收集机器人的姿态数据并反馈到主控制器,主控制器对反馈回来的数据经过解算得到机器人的俯仰角、横滚角、航向角;根据三个姿态角的大小判明机器人运动的方向和姿态,对机器人运动路线进行修正和姿态的调节;并通过无线串口将信息发送到上位机,使操作人员及时了解运动状态,从而增强运动的稳定性;当前方有障碍物时,超声波传感器测出障碍物的距离,当距离超过预设的安全距离时,机器人将执行避障程序,绕开障碍物,确保能够继续运行。
2 硬件组成及功用系统的硬件部分主要由动力系统,控制模块,传感器模块,通信模块,电源模块等组成。
具体如下:2.1 主控制器控制系统采用STM32F103C8T6芯片核心板作为主控制器。
该芯片是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,运行频率高达72MHZ ,工作电压基于STM32的双足机器人控制系统设计与实现文/张冬冬2V~3.6V ,可以输出多路PWM 方波,能够支持多串口同时通信,体积小巧,重量轻;能够较好满足要求。
2.2 数字舵机LD-220MG数字舵机LD-220MG 主要由马达、控制电路、减速齿轮等组成;相比于传统舵机具有响应速度快、控制精度高、线性度好等优势;同时该舵机扭矩较大,能够为双足机器人运动提供充足的动力。
基于STM32的舵机控制系统毕业设计论文

基于STM32的舵机控制系统摘要随着越来越多的高科技产品逐渐融入了日常生活中,舵机的控制系统发生了巨大的变化。
单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得舵机的控制系统有了新的的研究方向与意义。
本文描述了一个由STM32微处理器、舵机、LCD 显示器、键盘等模块构成的,提供基于STM32的PWM信号舵机的控制系统。
该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对舵机的速度及转角进行控制,并且通过LCD显示出数据。
结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;舵机系统;LCD显示;PWM信号AbstractAs well as the high-tech products gradually integrated into the daily life,servo control system has undergone tremendous changes.SCM and C language of the frontier disciplines such mature technology and practical,Make steering control system is a new research direction and meaning.This paper describes a STM32 microprocessors, steering, LCD display and keyboard, etc.Based on the STM32 servo control system of PWM signal,This system uses STM32 microprocessor as the core, MDK in the environment, according to the keyboard input programming, STM32 produce periodic PWM signal, with this signal to the velocity and Angle of steering gear control, and through the LCD display data. The features of the simple hardware, stable operation and high precision are incarnated in the proposed system.Keywords:STM32 microprocessors; Steering system; LCD display;pulse width modulation signal目录第1章绪论 (1)1.1 课题背景 (1)1.2 课题的研究展望 (2)课题任务及要求 (2)1.3 课题内容及安排 (3)第2章硬件设计 (4)2.1 STM32微处理单元 (4)2.2 舵机 (8)2.3 LCD显示器 (9)2.4 时钟电路的制作 (10)第3章软件设计 (12)3.1 STM32固件库简介 (12)3.2 软件的总体设计 (13)3.3 时钟初始化子程序 (14)3.4 I/O口初始化子程序 (17)3.5 PWM信号子程序 (17)3.6 A/D转换初始化子程序 (18)3.7 LCD显示子程序 (19)第4章系统调试 (21)4.1 调试方案 (21)4.1.1 硬件调试方案 (21)4.1.2 软件调试方案 (21)4.2 故障调试及解决方法 (22)4.3 联调结果 (22)结论 (26)社会经济效益分析 (27)参考文献 (28)致谢 (29)附录I 电路原理图 (30)附录Ⅱ程序清单 (35)第1章绪论舵机(servo motor),又名伺服电机,主要是由外壳、电路板、马达、减速齿轮和电位器构成。
2.STM32控制舵机方法

单片机控制舵机我们知道,舵机和步进电机,直流电机等都是感性负载,单片机的驱动电流较小,我们驱动直流电机,步进电机的时候都是用了驱动模块,也就是功率放大器件。
那驱动舵机时候是否需要呢?因为舵机内部集成了驱动电路,可以对我我们输入的PWM信号直接采样,所以,控制舵机的时候,用一个单片机的PWM引脚即可,这大大精简了电路设计。
1.舵机供电电压和电流要使舵机工作在额定功率下,电路方面需要满足舵机的要求,包括电流和电压,这个我们可以根据舵机的具体参数选择,比如某款舵机参数如下:*扭力:13kg/cm(at4.8V)15kg/cm(at6V)*速度:0.18sec/60度(at4.8V)0.15sec/60度(at6V)*工作电压:4.8V-6V根据以上信息,我们最好能够提供6V的电压,我们知道,设备的电流是由负载决定的。
比如舵机空载控制的时候一般电流是不大于400mA,但是带负载时候可能大于1A,然后我们设计机械臂的时候有5或者6个舵机,因为处于不同关节,所以实际使用中不会每个舵机都同时达到最大电流,那这里可以选择6V5A的电源。
要输出这么大的电流,一般的LDO(线性稳压器)是无法满足的了,需要选择开关稳压芯片,而一般的芯片也没有固定5V输出,需要选择可调版本,通过电阻调节电压输出到6V。
这里我们选择XL4015,根据手册,这款芯片可以满足我们的要求,如下图所示。
下面是XL4015的应用电路。
2舵机的速度控制舵机的驱动是比较容易的,当我们使用了单片机控制的时候,通过输出50HZ(20ms 周期)的PWM,控制PWM的脉宽调节舵机的转角。
为了节约篇幅,较长的PWM初始化代码就不贴出来了,大家翻看程序即可。
前面章节有说明:舵机的转角和脉宽(高电平长度)存在一一对应关系,如果要控制舵机到某一角度,就改变输出的脉宽即可,比如从1ms到1.5ms,显然,很容易就实现了舵机位置控制,但是我们如何进行舵机速度控制呢?这里我们引入了PID算法,下面先看一下程序Velocity1=Position_PID1(Position1,Target1);Position1+=velocit1;TIM4->CCR1=Position1;其中我们使用Velocity1用于代表舵机的速度,这个值根据目标值和舵机的实际位置计算得到,然后通过累积的方法,赋值给相关寄存器作用到舵机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#66#计算机测量与控制.2011.19(1) Computer Measurement &Control控制技术收稿日期:2010-05-14; 修回日期:2010-06-24。
作者简介:周永龙(1986-),男,河南灵宝人,硕士研究生,主要从事电路与系统,数字伺服方向的研究。
文章编号:1671-4598(2011)01-0066-03 中图分类号:T P273文献标识码:A基于STM32的数字舵机控制系统的设计周永龙1,雷金奎2(11西北工业大学电子信息学院,陕西西安 710072;21西北工业大学第365研究所,陕西西安 710065)摘要:针对无人机舵机控制系统对位置伺服的实时性和可靠性的要求,首次提出了以S TM 32为微控制器的新型数字控制系统;硬件部分给出了系统硬件结构图,并简要介绍了主控制芯片和硬件电路结构,为了提高系统数据传输的可靠性,引入CAN 总线传输方式;在软件部分,首先简要介绍了ST M 32的标准外设固件库函数,然后介绍了三闭环数字调节算法的实现和中断任务;另外,搭建了无人机数字舵机数字控制系统的仿真模型,通过仿真研究验证了控制策略的可行性。
关键词:无人机;ST M 32;三闭环伺服调节;舵机Design of STM32-Based Digital Actuator Controlling SystemZho u Yonglong 1,Lei Jinkui2(11No rthw ester n Polytechnical U niver sity ,Xi p an 710072,China;21R esear ch Institute N o 1365,N o rthwester n P olytechnical U niver sity,Xi p an 710065,China)Abstract:In view of th e position -s ervo real-timin g and reliability r equiremen ts to th e u nman ned aerial vehicle actu ator contr olling system ,for th e fir st time a novel digital actuator con tr olling s ystem is pu t forw ard based on S TM 32micr o-controller.In the hardw are part th e structu ral graph of the system hardw are is brough t forw ard,and the micro-controller and the hardw are circuit is br iefly introduced.To im prove the reliab ility of data tran smis sion,C AN bu s is u sed.In th e softw are part,S TM 32standard peripherals firmw are library is b riefly in trodu ced at first.Then the arith metic implement of th e th ree closed loop digital modulation and th e interruption tas k is mainly recommen -ded.In addition the emulation m od el of the unm ann ed aerial vehicle digital actuator controlling s ystem is built,and the s ystem performance is validated.Key words :U AV;ST M 32;thr ee closed-loop control strategy;actuator0 引言舵机控制系统是无人机控制系统的重要部分,其性能好坏直接决定了无人机的性能。
随着国防军事的发展,人们对无人机的性能要求也越来越高。
本文研究的目的就在于设计新型数字舵机控制系统,以满足无人机舵机控制系统的快速性﹑精确性和稳定性等指标。
该数字舵机控制系统是以微控制器ST M 32F 103R 为主控制单元,外围电路包括信号调制电路,信号采集电路和换向控制电路。
该系统接收由上位机发出的位置指令,驱动舵机转动,从而实现了对无人机飞行的准确控制。
1 系统组成框图舵机控制系统是无人机控制系统的重要组成部分。
系统使用ST M 32系列微控制器作为主控制芯片,完成数字舵机控制系统的设计和实现。
系统的飞行控制指令由飞控计算机提供,通过数据接口接入航机控制器。
航机控制器依据最新的位置指令与反馈信息,产生舵机飞行的控制信息。
航机控制器有数据接口模块、中央控制单元模块、电机的逻辑换向模块及隔离与功率驱动模块。
中央控制单元完成数字调节,逻辑单元接收电机位置信息和换向信息,产生新的换向信号,并由隔离与驱动模块完成该信号的隔离与放大。
驱动电机通过减速器带动舵面发生偏转。
电机的速度信息与舵面的位置反馈信息通过传感器输入到航机控制器。
系统组成框图如图1所示。
图1 系统组成框图2 基于微控制器STM32F103R 的硬件描述211 微控制器STM32F 103RST M 32F10X 系列微控制器使用灵活而丰富的电源控制策略,为内部的各个模块提供工作电压。
各个模块时钟频率可以软件配置。
该控制器内嵌了丰富的外设功能模块。
该系列控制器中有4个定时控制器,可以工作在编码模式和PWM 模式,对于电机控制很有用处。
212 硬件设计系统硬件主要包括主控制器﹑接口部分﹑逻辑换向部分﹑信号反馈部分和驱动部分。
(1)接口部分该系统使用CAN 总线接口,接受位置指令。
由于ST M 32系列微控制器内嵌CA N 模块控制器,所以使用CAN 总线传输数据时,非常方便。
外部接口只需要外接一个CA N 总线收第1期周永龙,等:基于ST M32的数字舵机控制系统的设计 #67#发模块。
接口电路可以直接挂接到CA N 总线[1],接收上位机位置指令。
(2)换向部分该系统使用可编程逻辑器件完成电机换向的控制。
输入信号包括电机反馈的三相霍尔信号﹑方向信号和占空比信号,输出为六相PW M 控制信号。
可编程逻辑器件的时钟信号由主控制器的主时钟输出引脚提供。
本系统使用可编程逻辑器件,完成换向策略,从而避免了使用微控制器实现逻辑换向过程的复杂性。
(3)反馈部分由于本设计采用三闭环数字调节,反馈量包括位置反馈,速度反馈和电流反馈。
位置反馈过程对实际舵面偏转量进行反馈和信号调制,然后输入到主控制器的模数转换接口。
电流反馈部分使用流压转换器件将驱动电流转换为电压信号,调制之后输入到主控制器的A D 转换接口。
速度反馈利用光电编码接收器件,将正交编码信号输入到主控制器的定时控制器,使用主控制器编码模式计算速度反馈[2]。
(4)驱动部分系统使用的驱动电压为28V ,远大于控制电路部分的5V 和313V 电压。
因此,必须使用隔离元件进行隔离,将PWM 电压控制信号隔离放大之后输入到驱动芯片的输入端,驱动芯片输出三相交流驱动电流,驱动电机转动。
系统采用三相无刷直流电机星型连接全桥驱动方式,输入为6路PWM 信号,产生A,B,C 三相输出,驱动电机旋转[3]。
驱动电路图如图2所示。
图2 驱动电路3 系统软件描述本系统软件是基于EWA RM 的开发平台,使用了ST M 32F10X 标准外设固件库函数开发。
该系统软件设计包括系统初始化、中断程序设计和主程序设计。
初始化程序设计包括工作时钟设置,CAN 接口初始化,A D 转换接口初始化。
中断程序设计包括由CA N 接口接受数据,和驱动芯片异常情况处理。
主程序是一个无限循环程序,它不断检测是否有新的数据输入,或者有中断信号产生。
然后停止检测,并完成处理。
完成处理后跳回主循环继续检测。
CAN 中断程序包括接受新的位置指令[4]。
主程序包括从AD 转换接口接收反馈信号,并完成三环PID 调节,输出PW M 占空比信号。
311 STM 32F 10X 标准外设固件库函数的应用ST M 32F10X 标准外设固件库函数基于32位AR M 微控制器ST M 32F101xx 与ST M 32F103x x ,包括了微控制器所有外设的性能特征,覆盖了外设所有功能,可以很方便实现各种应用。
软件要做的工作包括以下几个方面:(1)stm32f10x _conf 1h 参数设置文件,起到应用和库之间界面的作用。
在这个文件中,设置使能AD 转换和CA N 控制器模块,并且设置H SI 时钟频率为8000000H z 。
(2)stm32f10x _it 1c 中断设置文件,在硬件异常中断H ardFaultExcept ion ()中添加硬件保护措施,在CAN 接收中断U SB _L P _CAN _RX0_IR QH andler ()中添加接收超时处理。
(3)主程序ma in ()函数。
在这个函数中CA N ﹑DM A 和AD 等模块的时钟配置;配置端口模式;配置A D 模块的工作模式;在主循环中进行数字调节,产生新的电压占空比信号,并且存储最新的反馈信息。
主程序如下:int main(void){**RCC_Configu ration();NVIC_Configuration();GPIO_Configuration ();DM A_DeIn it(DM A_Channel1);**DM A_Init(DM A_Channel1,&DM A_InitStructu re);DM A_Cmd(DM A_Chan nel1,ENABLE);**ADC_In it(ADC1,&ADC_InitS tru cture);ADC_DM ACmd(ADC1,ENABLE);ADC_Cmd(ADC1,ENABLE);w hile (1){*****三环数字调节*****}}312 软件流程该系统的主要功能是接收位置指令,并使用传感器得到位置﹑速度和电流的反馈信息,计算得到新的驱动电压波形。
其流程图如图3所示。
图3 软件流程图4 控制系统仿真与建模本系统采用matlab 作为仿真工具在simulink 环境下搭建舵机模块。
系统建模的指导思想是对该系统的各个部分进行建模,包括无刷电机模块、直流电源模块、M OSF ET 功率开关器件模块、换向逻辑模块、减速器模块和三闭环调节模块。