开云-如何调教车模?

若何调教车模? 时候:2024-12-14 20:04:20 手机看文章

扫描二维码随时随地手机看文章

01 引 言

我为何加入这个角逐?

从小到年夜,一向就对遥控车比力沉迷,可是所限在手艺力和财力不足,一向没能真实的研究有关小车的节制这方面。年夜一其实也领会过这个角逐,不外真正让我最先步履的,仍是十八届的便宜车模组别。那时看到有关便宜车模的相干法则后,我就最先着手进行自力的车模设计。不外,很惋惜,那时便宜的车模由于没有斟酌到机电的扭矩问题,乃至都不克不及正常的节制跑直线。至此,年夜二告一段落。

固然第一次便宜车模直接就给了我当头棒喝,可是我依然没有停下脚步.

总结了一下本身的掉败缘由:采取直驱布局,高速机电扭矩不敷。车身过分在繁重,节制起来惯性很年夜。和本钱较为昂贵,这对试错来讲算是一个致命的错误谬误。

02 FOC机电设计

为什么要利用FOC机电呢?源在第一次便宜车模履历的掉败,颠末我在互联网上的不竭搜刮,获得了一个谜底:无刷机电扭矩年夜,可以直驱(记忆犹新的直驱方案)。而且FOC节制的无刷机电结果要更好。

固然那时乃至不知道无刷是甚么道理驱动转起来的,但总要有一些一往无前的精力,所以我就最先沉醉在无刷机电驱动的常识傍边。从最先的机电开环动弹、闭环异常(没校准零点)、成功闭环,再到后来的机能优化,节制布局立异,非凡功能建造。这里,花费了年夜约整整半年的时候。不外,这段时候里也学到了很多新的常识,学会了从知网寻觅算法而且进行落地,学会了良多的节制布局,也具体的领会了各类机电的驱动体例。

1、FOC机电特点 1、机能的优良性

所谓的FOC,实际上是一种节制算法,叫成FOC机电大都是指带有FOC节制算法的无刷机电。而FOC的全称是:矢量磁场节制。简单理解就是可以节制出来肆意标的目的的磁场,由于无刷机电没有电刷布局,所以可以免失落启动阶段的扭矩小这个问题。可以一向以最年夜的扭矩牵引机电的转子进行动弹。比拟在有刷机电,FOC节制的机电可以做到满扭矩起步,刹时切换正反转(仅会被惯性影响切换速度),静音高效(由于没有换向器的火花消耗),而且可以做到低速节制依然切确。

2、高效的节制

我做的这个FOC机电采取的是CAN通信方案,由于CAN通信具有抗共模电压(不需要共地),而且自带CRC和重发机制,可以完善顺应节制类的传输。

为了顺应速度指令同步生效的需求,经由过程利用CAN ID0作为广播地址,利用节制位写入同步标记位后,再利用ID0进行广播同步。

3、机能开消的优化

FOC由于触及到电流解算,park和clark的变换和逆变换。致使所需计较量年夜年夜增添。STC的芯片固然已有了浮点加快和整数加快功能,可是颠末实测,速度依然不克不及到达很快。处置完成的一次法式年夜约需要1ms摆布。这明显是不克不及被接管的。

所以我直接给电流采样息争算砍失落了,由于有感的FOC在生成指定Q轴电压的环境下,已相当正确了。进行电流解算闭环的感化首要是靠节制切确的Uq和Ud实现更高的动态新能,这里由于机能不答应,所以我就经由过程尽量高的机能优化提高节制频率。这里,我利用了查表紧缩的体例,将实现SVPWM所需要的PWM占空比数据直接对应到磁编码器的原始数据上。而且按照SVPWM波形的类似性,仅仅存储了一相波形的1/4。然后经由过程移相和对称映照,便可以实现直接按照编码器原始数据生成对应需求的PWM占空比数据。最后实现的是仅仅利用8K的ROM,就实现了14位精度磁编码器的SVPWM查表映照。如许,屡次的浮点类型计较便可以被紧缩到一次查表操作,然后只需要两次摆布的整数计较,便可获得三相PWM所需要的占空比数据。年夜年夜提高了节制的效力。最后的测试成就是,位置环节制频率11Khz(抱负设定的是16Khz,可是会被履行延迟拖慢,所以还优化空间)。

2、速度模式的实现

速度节制实际上是FOC无刷机电的一个极年夜优势之一,由于可以做到极快的响应速度和很是正确的速度节制。

调理速度环的时辰,一向不知足在速度跃变的响应。便一向在思考若何能实现更高的机能。

颠末阐发,发现晋升机能的就只有一条路——提高节制频率,提高节制频率也就等在变相的提高了节制环路的带宽。

此时全部节制系统对一些细小扰动的反映就会加倍活络,从而进一步的晋升反映速度。

先介绍一些通俗的FOC(带有电流环)的节制实现思绪,通俗的FOC的各级节制环路年夜多设置为电流环16Khz,速度环8Khz,位置环4Khz。如许调剂位置的时辰

节制上是位置环串速度环串电流环。更多的干扰交给电流环进行反抗干扰。如许上层的位置环和速度环的节制频率就不需要这么高的。

可是我的STC-FOC Lite版本由于算力和本钱问题,去失落了电流环。所以并没有法子利用电流环进行抗扰动。而之前我设置的是速度模式是速度环4Khz,输出给16Khz的电压节制。

如许其实不能完全的阐扬出节制机能来,可是此时工作又迎来了起色,我发现假如位置环工作在16Khz下,可以将位置模式的节制性提高的很是高的水准。

所以,我就设计出了以下的节制布局框图:

全部系统只存在一个PID节制环节,而且没有电流解算进程,全部系统运行效力很是的高。如许,由于去失落电流环损掉的抗干扰能力,从位置环的高带宽这里就又找回来了。

而且由于我的速度完满是靠计较位置获得的,所以底子就没有引入速度不雅测的误差和延迟。

表现在测速上就是抗干扰极强且不会遭到负载扰动。

3、舵机模式的实现

舵机模式应当算是一种低本钱的无刷舵机平替了,由于利用的直驱,可以完善的避免由于外部受力过年夜酿成的齿轮扫齿问题。

而且遭到跨越反抗力矩的冲击时,还可以进入堵转庇护,有用庇护机电。

而且速度极快,可以说没有任何的无刷舵性能比这个更快了(由于是直驱方案,所以也会损掉失落气力部门,算是一个小小的错误谬误吧,究竟速度和气力老是不克不及同时具有的)

不外,纯真的舵机实现,仅仅就是一个带了限位的位置模式罢了,若何让这个舵机模式变得更好用呢?

我按照现实的利用场景,做了个主动寻觅限位功能,而且带有主动回中。

首要结果就是:上电默许为速度模式,发送模式切换指令到舵机模式,此时机电自行进入不成打断的位置模式寻觅机械布局限位,寻觅完摆布两侧的限位后,主动计较摆布限位的中点,自行回正。

而且主动将限位内的规模映照到-1000~+1000的数值上,供舵机模式利用。也就是说,假如限位巨细更改,只要双方限位连结对称,那末中点就不会变,并且数值规模依然是正负1000,不消从头计较匹配问题。

固然,假如完全没有限位,机电会在左转半圈和右转半圈后回正,此时可觉得360度舵机。

下面讲授一下道理实现:

起首会记忆当前绝对位置信息,然后别离向左和向右探测鸿沟,探测前提是堵转庇护被触发。探测进程中,探测到一个鸿沟今后,会回到第一次记得绝对位置,然后再次向另外一边探测。探测出摆布鸿沟今后,剩下就是利用位置模式实现了。

这部门法式是CAN处置舵机模式的数据,对输入数据叠加辨认到鸿沟位置后,交给位置环处置。

03 CCD摄像头 1、底层效力立异

固然最后去赛场上的小车并没有装上,可是我依然对CCD摄像头进行过必然水平的研究,这里也分享一下我的研究功效。

去角逐交换的时辰,我也交换过,有发现利用两个或更多的摄像头环境下,采样利用for轮回,进而有些挤占算法功能的运行时候。

我的思绪是利用PWM触发ADC采样,输出一个PWM用在CCD的CLK旌旗灯号,然后利用PWM触发ADC功能,对输出AO端口进行采样,如许可以包管暴光时候的不变,和采样距离的不变。

同时,利用内存双缓冲包管处置时候和采样时候的不冲突,而且利用了M2M-DMA直接进行内存复制,减轻内核处置压力。

2、摄像头的噪声下降

采样帧率变快今后,由于电压相较低帧率变低,也就更轻易遭到外界噪声的干扰。此时,缩短MCU和CCD芯片之间的采样线长度,就变得十分主要了。

我经由过程利用传感器和STC芯片正否决贴的体例,将采样线距离减小到了3mm摆布,而且经由过程进行摹拟地和数字地朋分。将干扰降到最低。最后,实现了无滤波手段下的900帧CCD图象无噪点采样(现实保举300帧就很快了,太快了光线不足环境下会呈现特点不较着的问题)。

3、搜线算法

这里先给出我的一段函数法式:

可以经由过程这段法式返回一个float类型的位置,即一段数据中的统计峰值点。

经由过程共同对灰度图象的梯度计较,便可以获得一个十分正确的图象跳变位置。假如前面的图象不变性好,可以经由过程这个算法将本来CCD128的分辩率细分到接近2000的分辩率,而且没有较着的发抖。

4、二值化阈值迭代算法

上面的搜线算法其实只合适进行跳变点跟踪,而且是经由过程灰度值进行直接跟踪。假如想要利用二值化,那末阈值肯定就是一个不小的问题。这部门我研究过大师的开源,通常为分为两个步调,起首是对没有效的干扰区域进行裁剪。然后是计较整体的平均值,经由过程平均值乘以一个系数获得一个动态的阈值。

不外这里我有一个计较量更小一些的方式,由于赛道中间老是白色的。所以可以先对赛道中间的几个像素进行平均值,直接乘以0.8或0.5作为二值化阈值。然后经由过程二值化后的图象进行搜线。假如能同时搜到赛道的两个鸿沟。则经由过程这两个鸿沟计较出赛道中间,再次进行第一个平均值取阈值的步调。如斯轮回进行迭代,只要亮度转变的猛烈水平不至在在两帧之间造成完全的搜刮掉误,即可以完成加倍简洁的动态阈值计较。

04 车模布局

这一部门首要是对车模布局中,成心思部门的一些展现,我并不是机械设计专业。所设计的这些布局年夜都是参考淘宝的玩具车,或网上一些成熟设计。

1、平置舵机

分歧在见到的竖置舵机布局,我的平置舵机可以在必然水平上给计较带来便利,不需要进行标定,动弹的角度便可以代表现实的车轮中间转向角度。由于在进行车身整体节制算法的解算时,可以直接经由过程节制舵机的角度来反馈解算。

2、摄像头联动布局

这部门固然最后被我拆下了,可是依然是一个相当有创意的方案,由于这个体例让舵机可以联动摄像头进行动弹,从硬件布局上就避免失落了直道和弯道的区分。使得在进行拐弯的时辰其实不会丢线。

3、前吊挂

这个首要是用来给转弯供给必然的车身侧倾能力,以防过年夜的转向惯量侧向翻车问题。而且可以提高在必然的波动下。后轮连结延续动力输出的能力。

4、埋没走线槽

埋没走线只能算是美不雅的添加了。这类布局,经由过程在车模布局上划分出线槽,经由过程塞入电线今后经由过程502进行固定,可以极年夜提高空间操纵性。

05 惯性导航 1、为啥要利用惯性导航

最直接的缘由就是写元素有些过在麻烦了,需要利用过量的标记和判定。那时调摄像头已只剩圆环元素了,可是我对现实的循迹路径依然不是很满足。这时候候我就最先想应当如何去给出最优的路径?很明显,太麻烦的算法我一时半会也理解不了,这时候候我就想到了机械臂的拖动示教。有了设法,顿时就试。当天晚上就完成了一个简单的路径记忆功能,而且可以具有必然的误差校准功能。此时,我就像是发现了新世界的年夜门。最先着手对惯导进行完美。

2、精度问题

最最先,路径的记忆其实不长短常正确,只是能大要的看出来具有拖动示教过的路径。这里假如不斟酌打滑问题,我总结了几点在惯导中的精度问题。

起首是对四轮车模,假如记忆的时辰,陀螺仪放置的位置跟舵机位置分歧。就需要在复现路径的时辰对这段长度进行抵偿,便利舵机锁定到准确的航向角。

还就是操纵编码器进行记忆功能的时辰,我利用的是按距离触发。之前是编码器800个脉冲(年夜约1cm)触发一次路径存储或路径复现。每次触发的时辰就直接将编码器记忆清零了。可是由于触发进入800个脉冲的时辰,此时脉冲数可能会多出800一些(按时触发检测)。所以会致使累计的长度逐步呈现误差,所以这里我利用了“add_pos-=800;”来包管每次的触发都减去触发所需的固定距离,从而不会发生这一部门误差。

3、打滑问题

惯性导航的条件就是位置和标的目的要足够正确,否则没法复现出正确的路径。航向角的正确可以经由过程利用本身噪声小,精度高的陀螺仪实现。可是距离上的正确,则要经由过程进行打滑检测和抵偿完成。在动身去角逐的前一天,其实我已完成了打滑检测功能的实现。只不外,由于抵偿还没有做好,所以就不克不及反抗赛道中的打滑问题。也就限制了惯性导航能阐扬的最年夜速度。

其实切确的位置也能够经由过程利用鼠标的光电传感器来读取,如许便可以完全避免失落驱动轮测速中,打滑问题的影响了(相当在自力的测速轮)。

而我的打滑检测功能,实际上是利用轮边编码器丈量加快度和IMU丈量加快度进行检测,当双方数据纷歧致的时辰,便可以鉴定呈现了打滑(这部门已实现了)。

然后是经由过程不打滑的时辰,利用编码器的速度抵偿IMU积分出来的速度。在打滑的时辰,经由过程短时候的利用IMU积分的速度数据进行速度数据批改。进而完成位置数据的批改。

06 建造本钱 1、高本钱近况

固然良多车友对智能车具有异在常人的酷爱,乃至愿意本身掏钱来进行角逐。可是智能车太高的试错本钱依然让那些经费不怎样足够的步队变得坚苦。但其实只要选择公道的方案进行便宜,本钱就不会那末使人难以接管了。

以下我将从较贵或轻易销毁的部门,给出我的一些解决方案。

2、本钱解决方案

起首需要改良的是驱动。据我领会,大师都选择的是DRV8701E+小封装MOS的情势。整体下来本钱接近40。而且DRV8701略微贵一些,炸驱动的时辰有可能会连8701一路击穿。从而造成极年夜的试错本钱。

我供给的体例是:EG2132(0.23RMB)+翻新IRLR7843(0.32RMB)。由于这个MOS的Ciss比力小,所以可以用较小的驱动电阻来提高驱动的机能。驱动一个机电,核算本钱就只需要4块钱。而且这个MOS具有161A的驱动能力,内阻也更小,发烧也会更小。如许就算不谨慎给驱动烧失落了,也不会意疼。

MOS选择上,也不消感觉翻新欠好,只如果全测的。你要这么想,这都用过这么长时候了,这还能用,这不是证实了其不变性和体质更好嘛?这里我保举去淘宝上的三极管之家买MOS,我常常在他们家买MOS,至今还没呈现干预干与题,算是可托。

DCDC电源方面,我更保举XL1509的方案,由于这个芯片比力耐造,可以反抗良多过流,电压尖峰这类环境,不轻易坏。

焊接上,我保举大师利用低温锡膏+空气炸锅+三防漆的情势进行。起首是空气炸锅,一般市场上不克不及调温度最廉价的版本在50元摆布,测试其内部温度可以在200°C恒温,利用低温锡膏138°C的熔点正适合。而且可以完善合适正反两面焊接,设计PCB的时辰也不消担忧两面欠好焊接。打好锡膏塞空气炸锅里炸10分钟,拿出来根基就可以用。驱动类的可以对接口和按键做一下庇护后,用三防漆喷涂一遍,如许可以包管不被进水干扰,并且不变性年夜年夜提高。

3、机电庇护策略

大师的机电其实也轻易常常由于堵转烧失落。所以我这里给出一种不利用电传播感器的堵转庇护方案。

我的这个堵转庇护方式,不但合用在FOC机电,只要知足机电带有位置传感器,直流有刷机电也能够利用。

1、庇护道理

起首从道理讲起:

堵转庇护,顾名思义就是在机电堵转状况的时辰进行庇护,最首要的就是若何准确的辨认堵转状况。辨认到了堵转状况今后,则可以进行庇护。

这里的庇护分为两种,一种是直接断电庇护,可是如许常常会直接掉去力矩,不克不及主动的从堵转状况退出。

所以我更建议利用第二种庇护体例,也就是下降电压进行庇护。由于不管是无刷机电仍是有刷机电,堵转的时辰都可以近似在电压直接接在绕组线圈上。

此时的物理模子就是电阻发烧模子,所以只要将电压下降到适合的值,即可以连结必然力矩的同时庇护机电绕组不被过年夜的电流销毁。

说完了庇护,接下来讲最主要的堵转辨认。

2、机电启动

这里就不能不说起一下堵转辨认中最轻易出问题的点了——“机电启动”

机电启动的时辰,不管是有刷机电仍是无刷机电,电流城市具有一个很年夜的脉冲阶跃值,这个处所与堵转的时辰很是近似。

那末我们要若何辨别呢?

我的方案中,利用的是延迟辨别体例,由于堵转环境下,电流值会一向上升,而启动刹时,电流只会短暂的跨越额定值一会。

答应机电中存在短时脉冲年夜电流,便可成功解决起步和堵转庇护冲突的问题。

这里我的堵转进入逻辑是:假如位置误差年夜在400(计较速度的抱负位置和现实位置误差),且速度小在某个数(低速状况),则电流异常计数(I_Error_Cnt)自加,自加到I_Error_Dat(上限阈值)后住手

法式内,判定电流异常计数达到设定最年夜值后,进入堵转庇护。

堵转退出逻辑是:假如速度高在某个数(高速状况),或机电的设定位置和现实位置误差小在400(可以鉴定为没有堵转),则清零电流异常计数,退出堵转模式。

而进入堵转今后,对PID部门的输出,采取双阈值的体例进行庇护,即检测到PID输出值跨越某个年夜数后,才切换输出庇护为某个小数。

由于堵转的时辰PID始终不克不及调理成功,所以输出会一向为最年夜值,这时候候堵转庇护即可以一向生效了。

以上就是我对机电堵转庇护的一些理解,但愿对大师有所帮忙。我的这个算法在我调试以来,从未呈现过由于堵住销毁驱动或机电的环境,已相当不变了。

07 差速研究 1、有刷机电差速机能近况

这个实际上是角逐前才突发奇想进行研究,颠末现实测试确切结果比力好,故也来分享一下这个发现。

起首是我发现大师的拐弯几多的都有点难调,不是转弯过度就是转弯不足。差速中的理论模子和现实中感受总有一些差迟。这部门我总结了几个缘由:起首是有刷机电响应速度没有那末快,从一个速度调剂到另外一个速度根基需要100ms的时候,而舵机调剂时候就比力快了,根基是直接就可以调剂曩昔(零点几秒乃至零点零几秒,比拟有刷机电的调剂时候可以疏忽不计)。所之前后轮此时呈现了纷歧致的环境,也就会呈现前后轮各跑各的。

由于有刷机电自己答应必然水平的速度差,可是价格就是会造成稍微的堵转,进而致使机电线圈年夜量发烧。以致在大师的小车跑完几圈下来机电都嘎嘎烫。

可是我这个差速可以包管机电在各类猛烈拐弯中响应敏捷,而且可使得机电不呈现猛烈发烫的环境。由于是靠运行中插入空转进行天然的差速。所以我也称我这个差速方式为“天然差速”。

2、解决方案

根基道理:

四轮小车经由过程舵机转弯的时辰,由于前轮的导向感化,会使得后轮产生速度纷歧致的环境。我们称这类现象为差速。

在机械差速器的车辆中,由于差速器的布局,可以答应摆布轮子输出分歧的速度,从而顺遂的完成转弯。

可是利用双机电驱动的后轮并没有这类机械布局,直接节制两轮进行差速的话,还会呈现由于差速不合错误酿成的漂移(过度)和转向不足(欠调)。所以,这里立异的利用三段式体例驱动直流有刷机电,使得机电包括三个状况:驱动,刹车,空转。

经由过程在本来的刹车电平中插入空转部门,则答应了差速存在,经由过程调剂这个比例,则可以完成直道和弯道的差速调剂。

实测成果:经由过程利用天然差速和不带天然差速进行堵转。可以获得不带天然差速时堵转为0.5A,带天然差速堵转仅为0.32A。可是此时机电可以取得一样的驱动能力,电流降落了也就代表机电发烧可以年夜年夜的下降。

欲知详情,请下载word文档 下载文档

上一篇:开云-振动传感器 下一篇:开云-Google 开源的 Python 命令行库:fire 实现 git 命令