Oneshot125是怎样给我们的飞行带来好处
翻译整理至国外大神论坛内容,如有错误请高手指出,共享点东西不容易,请大家支持,高手轻拍。
前言:翻译这篇国外大神的文章的起因是因为和论坛里的sakai7童鞋讨论关于looptime时间设置的时候,名曰BF里面用的是gyro sync denom命令去设置looptime,就会误认为looptime就是设施陀螺仪的相关参数。但是这条命令的实际意义我觉得应该是“陀螺仪同步命令”,其实也就是飞控读取陀螺仪数据,保持系统与最新的陀螺仪数据尽可能的同步,其实也就是looptime不同的解释。还有looptime时间会误以为2000的数据会比1000的数据量大,其实不然,looptime越小,表示循环周期越短,单位时间能接受到的指令信息就越多。所以looptime设置的越小,系统越精确。
陀螺仪(角运动检测装置):陀螺仪是用高速回转体的动量矩敏感壳体相对惯性空间绕正交于自转轴的一个或二个轴的角运动检测装置。利用其他原理制成的角运动检测装置起同样功能的也称陀螺仪。
陀螺仪工作原理:高速旋转的物体的旋转轴,对于改变其方向的外力作用有趋向于垂直方向的倾向。而且,旋转物体在横向倾斜时,重力会向增加倾斜的方向作用,而轴则向垂直方向运动,就产生了摇头的运动(岁差运动)。当陀螺经纬仪的陀螺旋转轴以水平轴旋转时,由于地球的旋转而受到铅直方向旋转力,陀螺的旋转体向水平面内的子午线方向产生岁差运动。当轴平行于子午线而静止时可加以应用。
Looptime是循环时间,飞控里检测传感器的变化值就是靠looptime,也就是说飞控会定期去检测传感器的变化和接收到的指令去做下一步的反应。在一个looptime中间接收指令多少是不变的。假设当我们1秒钟循环10次(loop时间1/10),接收指令10个指令集,当我们将looptime时间缩短(loop时间1/50),那么1秒钟接收指令就是50个指令集。也就是我们在CF中set looptime = 2000(较慢,单位时间接收指令少),set looptime = 1200(较快,单位时间接收指令多),即更快的looptime在相等的时间内可以处理跟多的指令给予电调去处理响应。也就是为什么将looptime频率设大后日志可以存储更多时间的原因。
电调一般有着不同的频率(HZ),400HZ=2500ms。Looptime还会影响着PIDs,一般的较低的looptime(值较高,如3500)有着较高的PIDs。
Looptime / 频率
3500 = 286HZ
3000 = 333HZ
2500 = 400HZ
2000 = 500HZ
1500 = 600HZ
1200 = oneshot125
有Oneshot125后looptime可以设置成1200
直流无刷电机PWM调速原理:直流电机的PWM调速原理与交流电机调速原理不同,它不是通过调频方式去调节电机的转速,而是通过调节驱动电压脉冲宽度的方式,并与电路中一些相应的储能元件配合,改变了输送到电枢电压的幅值,从而达到改变直流电机转速的目的。它的调制方式是调幅。
普通的电调:
飞控有着自己的一个主控制循环时间来计算一个从传感器中得到的数值,飞控的主循环关于传感器的姿态改变得到的指令通过电调循环指令传给电机输出循环来改变电机的转速(飞控---电调---电机)。(其实每一个过程都是由一个循环组成的,飞控有循环、电调有循环、电机有输出循环。就是接收新的变化的时间有的电调每秒接收100次指令就是每秒100个循环。飞控越来越高级其实就是算法和硬件配合提高循环效率单位时间接收更多传感器信号处理更多改变。)但是完成一个飞控循环的时间大多是不一样的,有时可能时间长有时时间短。
电机的输出pwm信号的传输是可见的,如果没有新的pwm信号的传入,那么它会沿用上一个老的信号继续输出。在新的信号从飞控通过电调传输到电机之前,电机是沿用上一条pwm指令,我们把它叫做“OLD”。
由于中间的延时在我们日常使用时不会给我们带来任何大的问题,因为它只有将近0.001秒的延时。
Oneshot---是一种新的方法
对于上面的延时的解决方法很显然就是飞控循环和电机输出同步。
图:oneshot不会在两个周期之间对信号产生干扰,看下面具体解释
首先,oneshot125设定了电机输出时间将比普通的快8倍。电机输出信号将比原来的pwm(1ms-2ms)更短(现在将近125us-250us,1ms=1000us),因此电调到电机传输时间短了传输速度也就快了。那么前面提到的问题又来了,有时候直到一个电调循环的一半可能才会得到值的改变,这怎么办呢?
第二,什么是oneshot,有可能这个词不是oneshot而是one shot即一次击中。就是说在一次循环中间只要有任何一道指令击中这个循环,无论任何时间只要击中就传输指令给电调。而不像以前需要等待一次循环结束才能传指令。也就是说,电调能以最快的速度将飞控的指令传递到电机响应,这样的响应能在下一次飞控循环还未开始之前就能结束。(可以看上图就解释了这个原理)这样的改变几乎不会影响你的PID,唯一的变化只需要在原有PID上增加一点P即可,更多的改变体现在油门的响应,能跟快的改变电机的转速。
所以这也是目前来说对于响应的最快传递方式。
|