当前位置: 首页 > news >正文

【嵌入式电机控制#补充3】SDK电机控制台的功能

        接下来介绍以下后面FOC(矢量控制)开发需要使用的一个工具,Motor Control Work Bench,它能够像simulink一样,给出三相逆变电路的架构,并让用户提供具体的器件参数,然后配合CubeMX自动生成驱动代码,会极大的提升后续电机驱动开发调试的效率。

        

一、CX文件 的创建

        在电机控制台中,我们可以在类似电机仿真框图的界面上配置驱动板的相关参数。

        (1)点击New Proj创建新的stmcx工程

        (2)进行应用场景选择,这里可以选择 泵系统、风扇系统、压缩机系统、洗衣机系统、空调系统、无人机系统等个性化类型,也能选择自定义进行开发。

         

        (3)选择主控

        

        这里只有ST官方的主控板提供自动配置参数(一般都很贵),我们用自己的野主控就选自定义。

        (4)驱动板配置

        

        也是一样,只适配ST自家的板子,我们选自定义

        (5)电机参数配置  

              

        普通国产电机按照电机额定电压选则上面两个,其他两个是克罗韦尔、西门子等公司的产品,我们不需要管。

        (7)板载电机数量

        

        大家需要在此明确一个概念,市面上的驱动板和启动器,顶多是一带二的,很少见到一带四的驱动设备,所以这里只有单双电机选项。

二、控制系统模型参数 配置

        选择OK后就进入到这个界面了,此界面可以进行类似simulink的参数控制系统参数配置。

         

        (1)配置交流电源

        一般情况下这个配置用不到的,因为我们BLDC和PMSM常接直流电,如果要接触工业场合的交流异步电机,可能会用到。

          

        (2)配置直流电源(驱动板电源)

                       

                   

                这里配置正常电压为你的驱动板供电,  

           (3)总线电压反馈

                

                这里根据你驱动板中总线电压监测电路的原理图进行参数设置,输出的信号经过采样电路达到ADC,随后触发模拟看门狗事件。

             (4)温度传感器

                        

                在这里进行温度保护的参数配置

           (5)电流采样电路

                我们可以选择 1 2 3分流类型,并在生成的对应原理图中修改参数。

                (6)三相半桥逆变电路设置

                这里主要设置硬件死区开关频率

                

                (7)串口配置

                

                在用户接口中,可以用此选项来配置串口功能,用于汇报控制日志和实现用户逻辑

                (8)控制器设置

                

                这里可以直接配置我们的PWM频率,空闲输出,软件死区

                

                下方可以配置速度PID值,以及PID中断频率。

                需要注意,这里的所有PID的分母都是以2^n形式出现,这么做的目的是,方便通过对寄存器进行移位除法,从而加速我们的运算速度。

                

                其次,还可以进行默认宏观配置。

                比如,选取速度模式,则库会生成速度+电流(可选)代码。

                扭矩模式,则库会生成电流控制代码。

                在电机控制台中,没有位置环配置,需要我们在另外一款插件中进行调节。

                在下方数值栏中,可以设置目标转速,Iq,Id

                

                在下方扭矩控制参数中,可以精确把控电流PID的时机,并设置截至频率(滤波),和Id与Iq的PID参数。注意如果需要调节电流PID则打开人工调节,控制台默认是帮我们设定参数的。

                

                在电压保护界面可以做过压保护,和低压保护。

                

                选择MCU类型和MCU基础功能初始化配置

                注意一点,其实这里虽然只显示F417IG这个型号,但它实际上是适配大部分F407的

                

                接下来是电机控制IO初始化,可以设置PWM的定时器和引脚,也是设置霍尔定时器(前提是先设置霍尔传感器),并且可以设置驱动使能引脚

                此外,也能配置串口引脚和通信速率         

                这里可以直接配置ADC的电流、总压、温度信号以及无感。

             剩下还有个DAC,出现在前馈控制等场景中,这里不多介绍。

             现在大家应该清楚控制器的五个板块分别是什么了吧,下四个分别是MCU基础工作底层数字转数字配置(IO)模拟转数字配置(ADC)数字转模拟配置(DAC),而上面的大板块属于我们的中下层配置(算法层),囊括了大部分电机控制下需要配置的内容。

             ST的这个软件起初设计思路就是这样的,通过这个分析我们能更快的上手控制台。

        (9)电机配置

        在这里进行电机类型和参数配置(其实也可以适用BLDC的)

        

            配置霍尔传感器或编码器参数

         

        

        然后点击generate生成工程就ok,注意选择正确的版本,并且保证你的Cube和MDK版本合适,它会自动给你生成Cube和MDK文件,怎么样?不用自己手动配置和移植代码了,这样就极其方便了我们的开发,让我们把工作重心都放在控制算法上。

三、上位机监视器

        是的,SDK把全家桶都给你搬来了,配置页上方还有上位机监视器,能够实现测速等功能

        

        这里就相当于一个串口软件,你选择串口和同步波特率,它就能通过自己的协议把速度数据上传到我们的PC里程计界面中。

        

           侧栏显示电机状态,是SDK控制框架中的控制日志反馈回来的,能够很方便的帮我们做故障诊断

                                                          

        

        右侧栏有电机操作按钮,这些都是SDK库中API提前设计好的,不需要担心底层通信问题。

        如果电机出现错误,我们进行手动修复后,需要点击Fault Ack进行应答以消除错误

         

                                                     

             此外,它还内置了图像软件,让我们进行波形查看

             

                此外,它还能进行参数调整(效果不好)、寄存器配置、无感配置

        

                

        

总结

SDK库开发的大致流程如下:SDK电机驱动配置->生成的CubeMX文件配置其他->MDK逻辑调整

http://www.dtcms.com/a/324828.html

相关文章:

  • C9800在NAT设备之后怎么办?
  • [创业之路-541]:经营分析会 - 企业的经营分析会,研发负责人负责提供哪些信息?
  • Linux810 shell 条件判断 文件工具 ifelse
  • 【牛客刷题】小红的项链(字节跳动面试题)
  • Linux操作系统从入门到实战(十七)进程与进程基本概念
  • doubletrouble靶机攻略
  • Docker 数据卷的核心原理与管理逻辑
  • 【数据结构与算法-Day 14】先进先出的公平:深入解析队列(Queue)的核心原理与数组实现
  • 端口扫描器用户使用手册 (EXE版)
  • JavaScript 变量:数据存储的核心机制
  • C++ 黑马 内存分配模型
  • 详解Windows(十六)——计划任务
  • Linux安装Jenkins-2.432,jdk17
  • Day11 原理篇
  • 华为防火墙配置指南【附实战案例】
  • python urllib模块怎么使用
  • 【软件测试】概念篇 — 详解
  • 广东省省考备考(第七十二天8.10)——言语理解与表达、判断推理(强化训练)
  • APISIX 路由优先级
  • SupChains团队:化学品制造商 ChampionX 供应链需求预测案例分享(十七)
  • 托福阅读记录
  • TypeScript 中的as const是什么?
  • 基于Actor-Critic策略的Atari中的pong_v3
  • 机器学习第八课之K-means聚类算法
  • 零基础学编程,编程从入门到精通系列教程,附:编程工具箱之公用事件的用法#零基础学编程从哪里开始#新手学编程先学什么#公用事件构件编程用法
  • Lua语言变量、函数、运算符、循环
  • 小学数学计算技巧全攻略
  • 攻击者瞄准加密技术的基础:智能合约
  • [网安工具] Web 漏洞扫描工具 —— GoBy · 使用手册
  • Video Lecture 8 Page Fault