触屏会议系统 触屏会议 触屏会议话筒

采用DSP与STM32的智能型伺服控制器的软硬件设计及性能测试分析

发布时间:2023-09-26 22:09:34   来源:江南体育官网

  伺服控制系统大部分都采用传统的硬件结构,控制算法比较固定,而且也无法实现不同工况下的高性能控制算

产品特色

  伺服控制系统大部分都采用传统的硬件结构,控制算法比较固定,而且也无法实现不同工况下的高性能控制算法,难以满足现代工业的需求。现阶段迫切需要研制一种智能型、具有高可靠性、控制性能更加优秀的电液伺服系统。基于DSP与STM32的智能型伺服控制器具有软硬件结合程度更加紧密、系统的智能化程度更高、可实现多种控制策略的优势。本系统从实际的需求出发,结合精确数字PID控制算法和Fuzzy控制算法自身的优势,组合成Fuzzy-PID控制算法,根据偏差的大小范围选择合适的控制算法进行调节。

  本设计将两款工控芯片—TI公司的浮点型DSP TMS320F28335和ST公司的ARM7升级版STM32F103RET6引入智能电液伺服系统,设计了基于DSP与STM32的智能型伺服控制器,使电液控制技术进一步朝向数字化、集成化、智能化、轻量化、高精度、高可靠性、节能降耗的方向持续发展。

  本系统硬件主要由STM32F103RET6和TMS320F28335两部分组成。STM32F103RET6主要控制外围电路,包括输入信号调理模块、输出信号调理模块、A/D和D/A转换模块、硬件自检测电路模块、触摸屏控制模块、故障报警模块;DSP芯片TMS320F28335主要完成算法的计算与以太网通信,包括外扩SRAM模块、DM9000A以太网通信模块、EEPROM存储模块。两者通过SPI进行数据通信,包括各种参数、控制输出量等。显示模块采用5.7寸电阻式触摸屏,用于显示各部分的工作状态及运行情况,完成控制器各种参数的在线设定等人机交互。其硬件结构如图1所示。

  由于指令输入信号和反馈信号都是4~20 mA直流信号,所以需要将其转换成STM32F103RET6的A/D转换器可接受的0~3 V直流电压信号。图2为I/U变换电路。

  电阻R25输入一个“-2.5 V”参考电压,由“虚断”可知,经过R25和R26电阻分压后,在“1”点的电压为:

  STM32F103RET6的D/A转换输出为0~3 V的直流电压信号,要想驱动伺服阀,必须通过U/I变换,转变成4~20 mA直流电流信号,如图3所示。

  其中,0≤V1≤3V,由于电阻阻值有误差,为了保证电路能从0~3 V转换为4~20 mA,特意将电阻R44设置为200 Ω的滑动变阻器,用以弥补电阻阻值误差带来的影响。

  待系统上电初始化完成后,首先执行故障自诊断程序,当STM32F103RET6(以下简称STM32)无故障且外围硬件电路无故障时,启动STM32内部A/D转换器,对指令信号(或本地给定信号)与反馈信号进行采样和模数转换,并将采集的数据通过SPI通信传给DSP进行运算。DSP再将计算结果通过SPI传给STM32,STM32经过内部的D/A变换输出模拟量来控制电液伺服阀,并可以通过触摸屏查询各种参数、输出控制量的曲线图,判断计算偏差的大小。若偏差为0,则退出程序;反之,则继续执行以上过程,直至偏差为0.系统工作的流程如图4所示。

  控制器的软件设计采用模块化编程方案,软件由STM32部分和DSP部分组成,STM32部分包括了系统初始化子程序、A/D转换子程序、D/A转换子程序、系统自检报警子程序、SPI通信子程序。DSP部分包括控制算法子程序、以太网通信子程序、EEPROM存储子程序、SPI数据通信子程序、系统初始化设置子程序。

  DSP部分的主程序主要的功能是:与STM32进行SPI通信,将STM32采集的数据通过控制算法计算出控制输出量和以太网通信。在主函数中,首先禁用DSP内部看门狗,初始化DSP时钟;其次,初始化DSP各个内部模块,然后禁用全局中断,初始化中断向量表,根据需求对中断进行配置;待所有初始化完成后再打开全局中断,最后程序进入无限循环等待SPI和以太网中断。主程序流程图如图5所示。

  本系统设计了参数在线设定、故障自检测等功能,在系统整体的测试过程中,液晶显示出故障的部分。经过各项测试,测试结果表明该控制器运行可靠,具备良好的稳态性能和动态品质,能够获得精密且实时的控制效果。表1为伺服控制器瞬时测试结果。

  其测试条件为:本地控制工作模式下,输入信号均为4~20 mA,且伺服阀为正作用,位置反馈为正作用。根据伺服阀电流的变化趋势来确认控制算法是否正确,在整个测试过程中,当指令信号小于反馈信号时。伺服阀电流呈现减小变化的趋势;当指令信号大于反馈信号时,伺服阀电流呈现增大变化的趋势。根据变化趋势得出控制算法符合实际的调节规律。本伺服控制器的线%,能完全满足线%的要求,完全达到了预期设定的目标。

  本课题根据电液伺服控制系统的性能要求,研制了一款采用32位浮点DSP芯片TMS320F28335和Cortex-M3为内核的ARM芯片STM32F103RE T6为控制核心的智能伺服控制器,并且通过系统测试证明了本控制器的稳定性、可靠性及实用性。

  关键字:编辑:什么鱼 引用地址:采用DSP与STM32的智能型伺服控制器的软硬件设计及性能测试分析

  简介:在调试电机驱动程序的时候,是不能随便利用中断来进行一些寄存器或数据的查看的,不然你在运行的时候突然来一下,如果占空比大的话那可能直接就把MOS管给烧了,所以我们很多情况下只能使用USART(串口)来进行程序的调试和数据的监控了。 对于STM32来说,由于很多内容都是有库来实现的,那就省了很多时间,直接看个例子就可以写了,大致有4步步骤: 1 1、RCC始终初始化,对端口和USARTX使能时钟 2 2、初始化端口功能,RX设置为输入悬空,TX设置为复用功能的推挽输出,注意GPIO_SPEED要设置下,我没设置弄了半天都没输出 3 3、设置USARTX寄存器,波特率、数据位、校验位、停止位等 4 4、看需要是否开中断,我

  Altera公司日前宣布在FPGA浮点DSP性能方面实现了重大突破。该公司首席DSP产品规划经理Michael Parker称,Altera是第一家能够在FPGA中集成硬核IEEE 754兼容浮点运算功能的可编程逻辑公司,前所未有地提高了DSP性能、逻辑效率和设计效能。根据规划,硬核浮点DSP模块将集成在正在发售的20nm Arria 10 FPGA和SoC中,也将集成在14nm Stratix 10 FPGA和SoC中,DSP设计人员可以选择定点或者浮点模式,浮点模块与现有设计后向兼容。 面向高性能计算,与GPGPU展开竞争 与传统使用定点乘法器和FPGA逻辑来实现浮点功能的做法不同,Altera的硬核浮点DSP几乎不使用现有F

  引言 目前,电力系统录波器已成为电力系统自动化及系统管理的重要组成部分。简单地说,电力系统录波器就是一种数据采集记录装置,它可以记录系统非正常和正常状况下系统电压、电流、频率的变化。在电力系统正常运行情况下记录的数据,对于分析电力系统正常运行下电能的应用情况起着重要的作用;而故障阶段记录的数据,对于分析电力系统故障发生的原因,以及帮助寻找故障发生点,从而迅速处理相关故障事故起着关键的作用。 参考文献设计的电力系统故障录波器,其数据传输采用计算机与局域网相结合的方法,必须以局域网方式连接才能传输数据,使得其应用有一定的局限性。参考文献设计方案是基于DSP的电力系统故障录波器,通过以太网方式来控制。这两种设计方案必须架设局域网络

  与MSP430的电力系统故障录波器设计 /

  早期高清一体机机芯几乎由国外厂商垄断中国市场,但随着高速球和一体机机芯市场需求不断扩大,国内一些掌握核心技术的厂商,也成功推出了国产百万高清一体机机芯,并且在性能上与国外厂商平分秋色。在市场方面,2011年前三季度百万高清一体机机芯一直保持着10%的增长速度,国内品牌的百万高清一体机机芯也占到了整个市场的35%。     安防行业正在经历“数字化、网络化、高清化、智能化”的方向发展,一体机机芯也不例外。而随着高清一体机机芯性能的提升,随之可以连带高清快速球机,一体化摄像机等关联产品的提升,高清一体机机芯市场应用情况理想。与传统模拟一体化机芯类似,高清一体机机芯更加适合远距离监控,是交通、港口、平安城市等场所监控的较好选

  刚入STM32 用了也有一段时间了,先做了中断,CAN,SPI。都是跟着网上的例子直接粘贴外设的初始化代码,看的大概能懂,但是时钟一直迷迷糊糊,不清不楚。 STM32为了实现低功耗,而设计的功能完善构成复杂的时钟系统,称之时钟树。使外设功能的时钟可自配置。因为STM32外设众多,而不同的项目用到的外设参差不齐,所以可控的时钟可以实现降低产品功耗。 所有的外设在使用之前都必须设置时钟信号,才可以正常工作。以STM32F103C8T6时钟树为例,如下图所示: 图7和图8道理一样的,大家觉得那个容易理解就看那个图 图8 STM32的四个时钟源 外部时钟 1 高速外部时钟(HSE):外部时钟源,晶振频率可取范围

  F103 时钟树详解 /

  实ST公司的官方usb库已经做得很不错了。只是一开始不会用,导致浪费了很多时间。 首先拿到库,需要确认板上的端口资源。 VBUS D- D+ GND 四条线至少要有,但是VBUS不一定要接在芯片端口上。作为从机的话VBUS可以直接拉高到3v以上。电流大小待确认。D-,D+一定要接到芯片的OTG FS HS均可 DM DP对应 D- D+。作为主机可以不接VBUS,也可将VBUS接到芯片端口作为检测口,此处不明是硬件原因还是什么原因,若使用VBUS检测的话,拔掉usb线会造成JLINK崩溃,因此我将VBUS口作为普通I/O口,查询读取是否连接或失去连接。 OTG_HS想用的话需要外接PHY,若无外接PHY,也将HS口配置成FS口。

  STM32出现HardFault_Handler故障的原因主要有两个方面: 1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。 2、堆栈溢出。增加堆栈的大小。 出现问题时排查的方法: 发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。由于异常发生时,内核将R0~R3、R12、LR、PC、XPRS 寄存器依次入栈,其中LR即为发生异常前PC将要执行的下一条指令地址。 注意:寄存器均是32位,且STM32是小端模式。(参考Cortex-M3权威) 编写问题代码如下: void S

  出现HardFault_Handler故障 /

  毕设介绍 针对当前汽车加油需求的日益增多,基于STM32开发技术和传感器技术开发一款智能加油系统。 题目要求 智能加油系统应具备油量控制、根据油费计价、加油环境检测的功能。该系统能模拟汽车加油的全过程,并具备远程控制功能。 题目分析 本次毕业设计是智能加油系统的设计与实现,设计所包含的模块主要有oled显示电路、电磁阀驱动电路、可燃气体传感器模块、ds18b20数字温度传感器、蜂鸣器报警模块、WIFI模块、按键电路模块及电源模块。 通过模块之间的配合实现智能加油系统,一旦有温度异常或可燃气体浓度超标将会通过wifi模块对管理人员发出警告。 stm32f103c8t6实时采集ds18b20温度传感器获取温度,如果温度

  的智能加油系统设计方案 /

  原理及图像处理应用

  篇

  Altium Designer原理图与PCB设计及仿线xxx 硬件开发入门

  Microchip 喊你快来打造你的理想型单片机,智能门铃、百元京东卡等【80份】好礼等你赢!

  报名赢【挂灯、浴巾】等好礼|TI MSPM0家用电器和电机控制应用详解

  立即报名 STM32全国巡回研讨会即将开启!(走进11城,9/12-10/27)

  Littelfuse第2期 符合AEC-Q200 车规的保险丝/熔断器

  【下载】LAT1289 Keil、IAR、CubeIDE中变量不被初始化方法

  【下载】LAT1288 STM32 G474中Triggered-half模式的实现

  【下载】LAT1309 一步一步创建STM32WBA BLE_Custom工程

  【课程】STM32 & X-Cube-TouchGFX GUI开发实践

  【直播】STM32H5系列:强大的ARM® CORTEX®-M33 MCU让高性能和安全性唾手可得

  【直播】STM32U5系列扩充新成员-探索更安全,更高效,更节能的设计

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  STM32Cube.AI开发者云:只需四个步骤,轻松将AI集成到MCU

  英飞凌AIROC™ CYW20829低功耗蓝牙系统级芯片支持最新蓝牙5.4规范

  用于车载液晶背光源的矩阵式(8路×24ch)LED驱动器“BD94130xxx-M”

  Digi-key干货视频教程来袭,意见领袖讲解疑难设计问题,带你突破成长瓶颈~

  一起哇:基于国产芯、便携烙铁系统IronOS(FreeRTOS)的智能烙铁

  直播已结束【安森美半导体超低功耗 RSL10 蓝牙 SoC 开发板详解】

  51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云:

(function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?f23bfde95f54a1678eed7a6c21a22ebcd24636a14fdb8ede3bc1a0c281c4d11430632485602430134f60bc55ca391050b680e2741bf7233a8f1da9902314a3fa"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?f23bfde95f54a1678eed7a6c21a22ebcd24636a14fdb8ede3bc1a0c281c4d11430632485602430134f60bc55ca391050b680e2741bf7233a8f1da9902314a3fa"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window)