卓大大 您能发篇推文讲解一下舵机控制的传递函数如何求解吗 在做智能车仿真时卡在这里了。

舵机的传递函数如何建立

的确,宅在家里手里没有实际的智能车模,也无法实际调试。利用所学习的理论知识来对智能车建模仿真也不失为一种锻炼的方法,这更能够将课内课外结合起来。

在仿真智能车控制中,有很多环节需要建模,其中的舵机环节是影响车模运行性能的重要环节。你提到如何对舵机进行建模的问题非常重要,回答这个问题需要从以下这几个方面来讨论。

什么是传递函数?

在分析和设计任何系统的时候,最重要的一个环节就是对系统进行建模。有很多数学模型可以用于控制系统的描述。比如:微分方程、传递函数、状态方程等。

线性时不变系统的输入输出信号

传递函数是用来刻画线性时不变(LTI:Linear Time Invariant)系统零状态下输入输出信号之间的关系。针对控制问题来说,系统函数可以定义为系统输出信号的拉普拉斯变换与输入信号拉普拉斯变换的比值。

下面微分方程描述了线性时不变系统输入输出时域关系:

如果系统是零状态,那么对方程两边做 Laplace 变换,可得:

系统函数定义为:

讲到这儿,只是定义了什么是可以用于控制研究的传导函数。在具体建立舵机的系统函数之前,需要判断一下舵机是否满足建立传递函数的条件:线性时不变特性。

舵机输出与控制之间之间的关系

舵机是线性时不变系统吗?

线性时不变特性是描述了系统的输入输出之间的两个特性,线性性和时不变特性。

时不变特性描述了系统的由系统输入信号所引起的系统输出,是否随着输入信号的时间变化而产生相同的时间变化。舵机的输入输出之间的关系基本上满足时不变特性。

线性特性是指系统输入输出之间满足齐次性和叠加性,如果限定系统是实数系统,那么满足叠加性也就满足齐次性了。

下图显示了舵机在给定的指令之后,实际测量输出角度变化的情况。基本上是按照一个恒定的转速转动到指定角度便停止了。

舵机的单位阶跃相应

那么,如果将指令放大两倍,变成,舵机大约经过两倍的时间,到达两倍的角度,角度信号为。如果仅仅是从最终输出角度数值来看,它与输入信号之间是线性(比例)关系。但从动态过程来看,输出信号并不是放大两倍:

所以,舵机不是一个线性系统。

舵机输出信号示意图

由于实际舵机不满足线性时不变特性,所以本质上讲,它无法使用传递函数了描述。

实际系统的线性近似

的确,很多实际系统不满足线性时不变特性。这就使得应用系统函数进行描述遇到困难。在一定条件下,可以将系统进行线性近似。

比如,只研究系统输入输出之间变化量的关系,可以引入增量线性系统的概念。如果系统是分段线性的,可以在每一阶段内建立对应的传递函数。

分段线性化

如果系统输入输出之间的关系足够平滑,而系统运行时变化范围小,这样可以使用局部线性化来近似该系统。

小型号线性化

那么对于舵机来讲,它是否满足上面的线性近似呢?很遗憾,至少对控制车模转向的小型舵机来讲,在它的工作范围内很难获得比较好用的线性化后的模型了,主要的原因是舵机工作在大的动态范围内。

舵机控制前轮转向

为什么舵机不是线性的?

舵机内部包括有小型直流电机、减速齿轮、驱动电路以及位置传感器等,是一个机电一体化的位置闭环负反馈系统。其中的小型电机、位置传感器以及直流电机都可以近似看成线性系统,非线性主要来自于驱动电路。

由于受到工作电压以及功率的限制,驱动电路输出具有饱和特性。这样就决定了电机转速被限制在一定的范围之内。当电路输出进行饱和之后,电机的转速就是恒定值,驱动输出角度按照恒定角速度转动,从而与输入信号之间就不再保持线性关系了。

舵机内部结构示意图

所以,你可能看到网络上很多对舵机进行建模分析的,大部分都是针对于大型的伺服舵机,它的输出能力大于实际负载,或者说特别关注于小范围的动态过程,此时可以使用传递函数建立相对精确的模型。

如何近似建立舵机数学模型?

根据上面分析,如何来对舵机建立可以用于仿真的数学模型呢?

1. 修改舵级的驱动

前面分析了小型舵机的非线性主要来自于内部驱动电路板输出饱和造成的,因此如果更换外部强劲的驱动电路,就可以减少这方面的限制了。

在推文五线接口舵机[1]中给出了是所有 A4950 作为舵机功率驱动的设计方法,在一定程度上可以扩大舵机工作的线性范围。

由于舵机的特性关系到车模运行的速度,所以在比赛规则中除了特殊的组别(节能组、大型 L 型车模)之外,是不允许修改舵机内部电路的。

2. 使用纯延时环节替代舵机

由于舵机基本上工作在饱和恒速状态,在实际建模分析的时候,可以将它的传递函数近似以下的方式:

(1)比例环节: 就是输入输出之间就是一个比例放大环节。传递函数为:。

(2)纯延时环节: 根据舵机的工作参数,将舵机近似成一个纯延时环节:。其中可以根据舵机参数来确定。(3)一阶惯性关节:

下面是使用纯延迟环节仿真车模在转弯时的运行情况:

车模实际运行情况

使用纯延时环节仿真车模转向控制

3. 建立舵机的非线性模型

不再使用传递函数来描述舵机的输入输出关系,而是直接建立它的输入输出之间的非线性动态关系。这一点可以通过普通的状态机、查表方法、人工神经网络建立,或者通过测量舵机的输入输出关系来进行数值描述等。

4. 硬件在环

如论数学描述多么精确,实际上都很难对舵机在实际上工作状态下完整的描述。因此,将来在做仿真的时候,也可以建立起硬件在环的仿真机制。将整个的仿真环节回归到时间域来进行。舵机模型则利用它的非线性时间模型来给出动态特性。

硬件在环仿真示意图

小结

对于智能车仿真来讲,建议你可以使用简单的比例、纯延时、一阶惯性环节来对车模上的舵机进行建模。虽然这只是近似,但在给出车模控制基本参数之后,在实际的车模运行中再进行参数调整。

你想想,如果一切都能够通过仿真搞定,那么还需要现场比赛干什么呢?

参考资料

[1]五线接口舵机: https://mp.weixin.qq.com/s?__biz=MzA5NjQyNjc2NQ&mid=2452221100&idx=1&sn=508232e296b36cb03b8140c1d992e878&chksm=876d02ceb01a8bd8f1c9a19295ef53c1bcc3afa5ddd81484c6b90f50b0692a0f331547317d54&token=458500273&lang=zh_CN#rd*

stm32控制舵机任意角度_如何对舵机建模仿真?相关推荐

  1. 舵机任意角度程序_【舵机初动】基于Mind+ Ardunio入门教程10

    点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...

  2. xml建模包括以下_为什么要进行建模仿真?

    没有"模型"作为基础的话,很多当今的前沿概念将无法真正落地! 今天,数字孪生.人工智能.工业互联网.边缘计算这些概念在整个产业里非常的火热,但是,要知道,如果这些概念没有" ...

  3. 舵机任意角度程序_真香!!!飞特发布性价比超高的19kg磁编码360°双轴串口总线舵机STS3215...

    2020年4月6日,深圳飞特模型有限公司发布了2020年新款磁编码版本的TTL串口总线舵机.这款舵机是基于SCS215电位器版本开发的更高性能的磁编码版本,不仅具备了飞特SM高端系列的高性价比功能,又 ...

  4. c52单片机控制l298n步进电机角度_【设计图文】单片机实现的步进电机控制系统(开题报告+论文+文献综述+外文翻译+DWG图纸)...

    点击标题上方"微Life梦Heart阅读",关注. 设计图文626 摘  要[快速浏览摘要]单片微型计算机简称单片机.它是把组成微型计算机的各功能部件:中央处理器.CPU.随机存取 ...

  5. 基于STM32控制直流电机加减速正反转设计

    本设计基于STM32控制直流电机加减速正反转设计(程序+仿真+论文) 仿真:proteus8.9 程序编译器:keil 5 编程语言:C语言 编号C0011 资料下载链接 功能说明: 本设计由STM3 ...

  6. STM32控制舵机转动_从0到1

    清单 STM32F103C8T6 1个,Jlink下载线 1根 MG90S舵机 1个 12V电源 1个,12V转5V降压模块(给舵机供电) 1个 杜邦线数根 MG90S舵机 如图所示,舵机有三根线,红 ...

  7. pwm控制舵机转动角度程序_舵机的内部结构及工作原理

    一.舵机实物图 舵机是机器人旋转关节中的常用部件,尤其是小型机器人.其实物就像下面这张图,相信大家都不会陌生.大家一定见过春晚上哪个跳舞的小机器人,其全身各关节都是有舵机组成.我们常见到的舵机就是这个 ...

  8. stm32按键控制mg90s数字舵机、pwm调节舵机转动角度

    昨天做了一个简答的小实验,我感觉挺有意思的跟大家分享一下. 我用了按键控制mg90s数字舵机,前不久一直研究模拟舵机,数字舵机与模拟舵机的控制方式是一样的pwm时序. 数字舵机接线方面: 与模拟舵机一 ...

  9. STM32 同一定时器四路不同占空比PWM输出+舵机角度精准控制

    2019.3.25更新 pwm使用较为简单,但是对于精准控制,比如用于步进电机的控制和舵机控制,则要准确计算它的脉宽和占空比. 脉冲周期计算: PWM所使用的时钟频率f = 相应定时器频率 / (TI ...

最新文章

  1. 团队冲刺(二)个人工作总结9
  2. 需要排序的最短子数组长度
  3. c语言口令验证模块加强版,[C语言学习第3章口令验证模块的开发.ppt
  4. NioEventLoopGroup的构造函数
  5. silverlight 获取文本框焦点
  6. SAP CRM WebClient UI表格编辑模式的调试明细
  7. java webview框架_java - Android WebView 无法正常显示网页图表
  8. lseek、stat、access、chmod、strtol、truncate、unlink
  9. 在Hibernate的session中同时有两个相同id的同类型对象,修改失败
  10. 3.1)深度学习笔记:机器学习策略(1)
  11. 怎样教一台计算机区分猫和狗?一文零基础入坑机器学习
  12. ubuntu nginx php问题研究
  13. window 平台上面解决不能动态php_mysqli.dll
  14. ex.php,Exphp代码走读
  15. 中国计算机学会推荐国际学术会议和期刊目录
  16. shiro框架实现权限管理
  17. openwrt 遇到问题三 高通9531编译过程
  18. 2.2基本共射放大电路的工作原理
  19. 街头霸王全人物故事背景
  20. 大数据挖掘课程案例资源介绍

热门文章

  1. python issubclass 和 isinstance函数
  2. 币对交易所_比特币向1万4大涨,OK交易所的比特币为什么反而贬值7折?
  3. vscode c++编译报错:‘nullptr’ was not declared in this scope(-std=c++11)
  4. 我的2020电视机选购
  5. Numpy中np.dot()与np.matmul()的区别(矩阵乘积、矩阵乘法、矩阵相乘)
  6. Tensorflow yolov3 Intel Realsense D435 双摄像头下测试python多线程(假的多线程)self.predict()函数运行时间(191204)
  7. Automatic Judge 模拟
  8. zookeeper可视化工具zkui
  9. 切片器可以设置日期格式?_Excel智能表格——套用表格格式,“一键变身”
  10. html经典上中下三段的布局设计