码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第三阶段学习beiqi3


    滑行回馈力矩给定修改力矩

    1. if(1 == Vehicle_cmd.cmdmode.data.slip_feedback_flag)//滑行回馈
    2. {
    3. motor_regen_power = EV_MCU_Para.field.Motor_regen_power_slip_level;//滑行固定功率在 10kw *****11.22 这里除去2 5kw
    4. motor_regen_trq_lmt = _IQmpyI32(motor_regen_power, 9550) / 3000;//IQ10 10kw恒功率下的3000转速的 力矩31
    5. motor_regen_trq_lmt = _IQ10mpy(motor_regen_trq_lmt, SysBase.invtorque);//IQ24 乘以系数后的 最大力矩限制 31
    6. motor_regen_trq_throad = _IQmpyI32(10, SysBase.invtorque);//IQ24 10N的力矩系数
    7. if (motor_regen_trq_lmt > motor_regen_trq_throad)
    8. {
    9. motor_regen_trq_deta = motor_regen_trq_lmt - motor_regen_trq_throad;//IQ24 大概 21
    10. motor_regen_trq_start = motor_regen_trq_throad;//IQ24 大概 10
    11. }
    12. else
    13. {
    14. motor_regen_trq_deta = 0;//IQ24
    15. motor_regen_trq_start = motor_regen_trq_lmt;
    16. }
    17. if (speed >= 3000)//恒功率回馈
    18. {
    19. trq = _IQmpyI32(motor_regen_power, 9550) / speed;//IQ10 //此处可以调小功率,以致调小回馈
    20. sysCfgPara.TrqCmd_NEW = 0 - _IQ10mpy(trq, SysBase.invtorque);//IQ24
    21. }
    22. else if (speed >= 1500)//XN.m--->10N.m
    23. {/* 如下可以列出数学式子 最终得到 trq* (speed-1500)/ 1500 = k_tmp
    24. 大概是速度超出1500的余量 占据1500的比例 用这个比例获得trq力矩 */
    25. trq = motor_regen_trq_deta; //21的力矩 这里除去 5 减少滑行力矩 滑行回馈电流***************************************
    26. k_tmp = _IQdiv(trq, _IQmpyI32(1500, SysBase.invspeed));
    27. k_tmp = _IQmpy(_IQmpyI32((speed - 1500), SysBase.invspeed), k_tmp);
    28. trq = motor_regen_trq_start + k_tmp;//最终力矩 10+k_tmp
    29. sysCfgPara.TrqCmd_NEW = 0 - trq;
    30. }
    31. else if (speed >= 500)//10N.m--->0N.m
    32. {
    33. trq = motor_regen_trq_start;
    34. k_tmp = _IQdiv(trq, _IQmpyI32(1000, SysBase.invspeed));
    35. k_tmp = _IQmpy(_IQmpyI32((speed - 500), SysBase.invspeed), k_tmp);
    36. sysCfgPara.TrqCmd_NEW = 0 - k_tmp;
    37. }
    38. else
    39. {
    40. sysCfgPara.TrqCmd_NEW = 0;
    41. }
    42. if(sysCfgPara.TrqCmd_NEW < -trqLoopPara.Max_TorqueGen)//力矩下限保护
    43. {
    44. sysCfgPara.TrqCmd_NEW = -trqLoopPara.Max_TorqueGen;
    45. }
    46. }
    在1500判断中的大概分解

    令 SysBase.invspeed为s

    第一个 k_tmp=trq/(1500s)

    第一个 k_tmp=( trq/(1500s))* ((speed -1500)*s)消除有k_tmp= trq*(speed-1500)/1500

    所以k_tmp=trq*(speed-1500)/1500

    T =10+   T*(1500-speed)/1500   大概意思是   T增加 多余的速度占1500的比 的T力矩 

  • 相关阅读:
    Redis中的Lua脚本(六)
    Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板
    【软件测试】出现频率最高,软件测试问题,所有考虑的解答......
    四种常用的排序算法
    调试技巧(课件图解)
    【Vue 开发实战】实战篇 # 32:如何使用路由管理用户权限
    搭建网站踩的坑
    java: java.lang.OutOfMemoryError: Java heap space报错解决办法
    docker小技能:容器IP和宿主机IP一致( Nacos服务注册ip为内网ip,导致Fegin无法根据服务名访问 )
    用ARM进行汇编语言编程(2)算数指令,CPSR寄存器与逻辑运算
  • 原文地址:https://blog.csdn.net/qq_36658033/article/details/134562261
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号