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

从电流闭环到速度闭环的无缝切换示例代码,优化传统三段式启动方式,实现自适应负载的平稳顺滑启动(...

电流闭环到速度闭环无缝切换__示例代码 ,它特别适合对传统的三段式启动方式 定位——>电流闭环强拖——>速度闭环进行优化,它能够自适应各种负载大小的情况,切换过程中电流和速度连续不突变,启动平稳顺滑。 发送切换的示例代码,代码已经过产品上千次启动验证,注释清楚,完全可以自行理解。

一、功能概述

本程序实现电机从电流闭环启动阶段到速度闭环运行阶段的平滑过渡控制。通过状态机管理电机运行过程,分阶段完成控制模式切换,核心目标是在切换过程中避免电机运行状态的突变,实现无冲击过渡。

二、核心变量说明

  1. 状态变量
    -MotorRunState:电机运行状态枚举变量,包含MOTORPOSITION(定位)、STARTUPACCELERATION(启动加速)、STARTUPIQREFREDUCE(Iq基准值递减)、RUN_CLOSELOOP(速度闭环运行)四种状态
  1. 角度相关变量
    -ParkParm.qAngle:FOC控制中使用的角度值
    -smc1.Theta:观测器输出的电机角度
    -thetaerror:强制累加角度与观测器角度的差值
    -theta
    error_done:角度误差的绝对值
  1. 速度相关变量
    -MotorParm.endspeed:根据强制累加角度计算的实时速度
    -speedloop
    ref:速度闭环的参考速度值
  1. 电流相关变量
    -CtrlParm.IqRef:电流环的Iq基准值
    -iq_min:Iq基准值的最小值限制
  1. 计数变量
    -Iqrefreducecounter:Iq基准值递减控制的计数器
    -iq
    min_counter:Iq基准值达到最小值后的持续时间计数器

三、核心参数定义

参数名称设定值说明
TRANSFERSPEEDSTART600进入Iq基准值递减阶段的速度阈值
TRANSFERSPEEDEND1500目标速度阈值
TRANSFERFINISHANGLE10判定切换完成的角度差阈值(度)
ANGLE_BASE180角度基准值,用于角度差的标幺化计算
IQREFCOUNTER_MAX1000Iq基准值递减的时间间隔计数最大值
TRANSFER_KP550Iq基准值递减控制的比例系数
DEGREEQ15_0POINT0254角度误差的渐变步长(对应0.025度)
IQMINCOUNTER_MAX2000Iq基准值达到最小值后的最大持续计数

四、核心控制流程(calculate_angle_process函数)

程序通过状态机实现分阶段控制,各阶段逻辑如下:

1. 启动加速阶段(STARTUP_ACCELERATION)

  • 执行强制角度累加,生成ParkParm.qAngle
  • 计算当前速度MotorParm.end_speed
  • MotorParm.endspeed达到TRANSFERSPEED_START时:
  • 初始化Iqrefreduce_counter为0
  • 初始化iqmincounter为0
  • 设定iq_min初始值
  • 状态切换至STARTUP_IQREFREDUCE

2. Iq基准值递减阶段(STARTUP_IQREFREDUCE)

  • 继续进行角度累加,更新ParkParm.qAngle
  • 基于加速度参数accret和系数coeff更新MotorParm.end_speed
  • 计算角度误差thetaerror(强制角度 - 观测器角度)及绝对值thetaerror_done
  • 计算标幺化角度误差thetaerrornormthetaerrordone * 1000 / ANGLE_BASE
  • Iq基准值调整逻辑:
  • Iqrefreducecounter累加,达到IQREFCOUNTERMAX时:
  • 重置Iqrefreduce_counter为0
  • 计算Iq调整量(TRANSFERKP * thetaerror_norm / 1000
  • 更新CtrlParm.IqRef(当前值减去调整量)
  • CtrlParm.IqRef小于iqmin,则强制设为iqmin,并累加iqmincounter
  • 切换判定(满足任一条件即切换至RUN_CLOSELOOP):
  • 角度误差条件:thetaerrordone<TRANSFERFINISHANGLE
  • 超时条件:iqmincounterIQMINCOUNTER_MAX

3. 速度闭环运行阶段(RUN_CLOSELOOP)

  • 设置speedloopref为目标速度TRANSFERSPEED_END
  • 角度切换逻辑:ParkParm.qAngle= 观测器角度smc1.Theta+ 角度误差theta_error
  • 角度误差渐变处理:
  • thetaerror>DEGREEQ150POINT025,则减去该步长
  • thetaerror< -DEGREEQ150POINT025,则加上该步长
  • 否则,将theta_error清零

五、程序核心意图

  1. 通过分阶段控制实现从电流闭环到速度闭环的平滑过渡
  2. 利用角度误差反馈动态调整电流基准值,逐步降低强制控制比重
  3. 采用双重切换条件(角度误差达标或超时)确保系统可靠性
  4. 引入角度误差渐变机制,避免切换瞬间的角度突变
  5. 通过计数器控制参数调整频率,保证系统稳定性

该程序通过上述机制,最终实现电机从启动阶段的强制电流控制,平稳过渡到稳定运行阶段的速度闭环控制,避免切换过程中的冲击和震荡。

电流闭环到速度闭环无缝切换__示例代码 ,它特别适合对传统的三段式启动方式 定位——>电流闭环强拖——>速度闭环进行优化,它能够自适应各种负载大小的情况,切换过程中电流和速度连续不突变,启动平稳顺滑。 发送切换的示例代码,代码已经过产品上千次启动验证,注释清楚,完全可以自行理解。

http://www.jsqmd.com/news/627626/

相关文章:

  • SiameseUIE多行业落地案例:教育题干解析、法律条文要素抽取、招聘JD结构化
  • Phi-3-mini-4k-instruct-gguf开源可部署:无需HuggingFace Token的纯本地中文LLM
  • YOLO11镜像快速入门:从零开始搭建计算机视觉开发环境
  • PyTorch 2.8环境配置避坑指南:解决CUDA、cuDNN版本冲突问题
  • 434649494
  • AI绘画神器FLUX.1-dev:Docker快速部署指南,开箱即用体验惊艳画质
  • Nunchaku-flux-1-dev与微信小程序结合:打造个人AI画师应用
  • Harmonyos在语文教学中应用-8. 四声调模拟器(对应:iuÜ)
  • ERNIE-4.5-0.3B-PT效果实测:vLLM部署后生成质量与响应速度展示
  • HY-Motion 1.0实战体验:从安装到生成你的第一个3D动作
  • FUTURE POLICE快速上手指南:零代码实现专业级字幕时间轴匹配
  • MusePublic大模型与ChatGPT对比评测:技术架构与应用场景
  • MTools优化升级:开启GPU加速,让AI编程和文档生成更快更稳
  • Hunyuan-MT-7B翻译模型体验分享:简单易用的多语言翻译工具
  • Intv_AI_MK11 构建智能笔记系统:Typora 风格编辑与知识关联
  • AutoGen Studio实战体验:用Qwen3-4B模型构建智能问答系统
  • Flux Sea Studio 一键部署教程:基于Ubuntu 20.04的完整环境配置
  • Ostrakon-VL-8B实战:模拟真实面试,根据白板草图进行系统设计问答
  • RexUniNLU实战体验:跟着做,轻松实现电商评论的属性情感自动分析
  • Ollama本地大模型新玩法:PasteMD剪贴板美化工具深度体验
  • 通义千问3-Reranker-0.6B提示词工程:提升重排序效果的秘诀
  • 号速通科技联系方式查询:探讨其GEO优化业务在AI时代如何助力企业构建品牌认知与增长 - 品牌推荐
  • BERT文本分割-中文-通用领域实战落地:为大模型RAG提供高质量chunk切分
  • 文脉定序系统效果对比评测:与传统BM25算法的性能较量
  • 告别复杂配置!圣女司幼幽-造相Z-Turbo开箱即用,快速生成精美动漫风格图片
  • Lychee Rerank与LangChain集成实战:构建智能问答系统
  • 惊艳效果!Face Analysis WebUI人脸分析案例:从图片到详细报告
  • Kandinsky-5.0-I2V-Lite-5s效果实测:5秒短视频生成,电影感十足
  • ECharts Gallery 进阶技巧:如何自定义地图样式与交互效果
  • AI读脸术镜像推荐:一键部署OpenCV DNN轻量模型实战测评