你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32最小系统板的IOT扩展板(三)

[复制链接]
丿灬幸灬 发布时间:2019-1-7 21:18
无刷直流电机(BLDC)速度和位置控制) N+ A# u% M- d2 u, a

$ ]8 q  S+ |; O: g- S% _( A8 p实验装置
! j0 h: Q" D8 c5 n8 K, v% c 1.png - Q2 A  {2 C3 j" _
PS4操纵杆是同时操纵多个变量的好方法,适合于实验。
9 E# L5 @2 U$ R这里的Raspberry pi 不用于BLDC控制,而是作为操纵杆接口,因为它的开发环境更适合编程。9 R% E5 [* h$ R5 |, ]
虽然RF节点板内置了USB,但USB软件集成和使用内存非常复杂,因此UART仍需要时间来实验。一个USB到UART的接口降低了难度。1 ~2 a8 G7 }8 i' Q) g
RFPIO板 用于伺服电机控制,而不是BLDC,但它也可以是BLDC实验平台,因为它引出了PWM输出并具有无线连接。
" M; X8 f' M3 \2 w+ @2 u; G! b; m无线电连接在这里用处不大,但它实际上可以有效隔离开PC和电机。不过这里没有优势,只是因为电源已经调节了电流。
$ I' t0 I; s- \3 O9 R+ c
! M; p4 V# F( d% r1 G4 b+ Y- F2 L) X# t9 @/ Y) \

- B; o, i% L; T  H. y安全注意事项:( z( s* [" {& d. D; h

8 b$ T$ H, Q8 b: H使用普通电池是危险的,可能会导致试验台着火。需要使用保险丝、限流电源和可靠的控制器。
' r1 a7 l6 @/ m, }* r. j. y廉价的逻辑分析仪与Saleae Logic SW配合使用,这是一种非常好且经济实惠的分析组合。
3 |* c) o% w1 mL6234D使用了一个商用模块,但是这个模块没有提供太多功能选项,因为所有功能都连接在一起而且没有感应电阻。所以这只能在开路电压回路中进行控制。
# l; X+ v  J- q, [
) G. u7 s7 |  L) V' ^4 Y演示视频! h+ h1 e2 `8 D( Y/ }$ Q1 f4 o9 K9 _
/ U9 `$ e5 j7 @" H8 F2 f  r2 m

" |* e; i( T! L& b1 U' Y2 K( f7 ]4 A3 X" i# U; Q, s
这个演示中有趣的部分不是bldc的转动
' W4 C! t, T6 ~而是:. W( X" h* M, t
在不同的环境中整合如此多的小程序系统' w: U: e$ y: C3 s" j$ m/ t
通过直接操纵多个变量并在逻辑分析仪上看到脉冲,人们可以感觉到BLDC电机是如何工作的5 p' k7 R! }$ L8 L
开环控制下 BLDC =步进电机- e- ^+ k  ]0 O# X2 v' w9 D
可以只改变线圈中的电压,而不考虑转子的位置。
% I5 e" `  H7 i! b7 ~如果电压不足以应对扭矩,这肯定会丢步。就像BLDC中的每一步都很大,丢步会造成的问题,并且不会被忽视。+ J" \: R9 i# ^7 ]* ?
解决办法是增加电压,但是你浪费的能量不是扭矩而是流量,以保持电机的位置。5 O( R% N* {! z7 A$ S( r
由于没有反电动势,当电机静止时,电流要高得多。
6 b) B( w- x" c( s2 F( h0 H5 A这里使用的BLDC电机以每秒几转的速度消耗大约50 mA,在7.2v的停止位置消耗高达180 mA。3 j& A( ?+ l2 y/ Q+ p* ?

- `6 Q" V! M  T- i0 Q控制参数3 q# m9 [, F) V: g1 i7 i" u+ V6 Y, E& ~
关于BLDC控制的每一个视频和图表都让我了解更多,尽管互联网上有大量的文档和教程,为什么不就此添加另一个简单的视图。
% b9 d8 ^7 `( _& l1 Q* n; ^
8 `: p+ V' k# U& B1 C- {
$ F$ X9 f" d! T- q/ ] 2.png + O+ N$ {2 }; y5 ]' Y! H

- Y+ V5 `: w9 j: T1 C在进入下一个电角度位置之前,速度受到了延迟的作用,请注意,最大命令更新频率要小于pwm信号频率,否则它是无效的(两者的比例不同)。9 V  O' n; c% L
电压增加了脉冲宽度。虽然这里只显示了一个pwm信号,但是这三个信号都成比例地增加和减少它们的宽度脉冲。' [1 N4 `' Q5 r* T% F
从软件的角度来看,这个位置更简单,因为你只需按手指在触摸板上的移动比例增加或减少电角度。
0 C5 b; y; O6 D每个角度的正弦曲线被用来定义相应电桥的脉冲宽度。
2 n- ?( O, c1 l' v/ Y& E9 k0 |  F* q

) \5 \# ]/ }4 B% v2 b( c9 E+ J8 L! k8 Q* j& }/ s7 g$ h) }
软件3 F, F3 h' S$ y- d- I& V

; i( A# M, K" ]7 j; j8 j 3.png / [! B/ T9 ~9 C

0 S2 s6 Z/ \* O' p所有的bldc的关键都在这里。这个角度被认为是一个整数,为了使它更简单,我甚至没有用一个单位来表示度数,而是用一个256 / 360的单位来表示,这样它就适合放在一个256的列表,并可以查找来存储。
) _! E: e3 \6 y! a  A: R( r! l% c9 E0 b1 c& s* ~" s$ i
在M3以72MHz运行的情况下,浮点的计算花费了7.2 us,而此处的查找函数仅为1 us左右,因此对于50 us的pwm周期= 20 KHz (最大控制刷新率)来说,这仍然是合适的。
, B- d; \7 L* e4 E/ Z请注意,从死区切换时间的角度来看,L6234D可以达到150 KHz。; ~2 i9 W; ~2 O
我正在使用mbed - os作为开发环境。  L! g# @% E  {- Z( z6 b$ H
& G; |8 s4 e# S
  1. PwmOut pwm1;
    - D& T; u  M# v' R; C7 s: `
  2. pwm1 = 1;
复制代码

, Y' [  p% M' {
0 y$ _8 j8 U$ l- q$ Q+ o0 \9 W3 ]这种开箱即用的配置和初始化很好。它为你做了一切,从cmsis HAL api调用到计算哪些引脚应该分配给哪些替代功能。
- K+ L- M2 d. r它配置了pwm模式,所有的堆栈都分配了操作符,这将带来从微秒到毫秒的功能时间。
4 J1 v! l% Y7 H' Q2 z6 L! L这就是为什么你会看到寄存器的直接使用,这大约是一条指令。
0 k' |& b9 I( o+ T3 }9 X0 G, i: W( ~: ~8 F* ^# g
0 K, n; o5 `! a4 p. D8 K' X
信号2 D! N. |! |& W$ I0 H# h, ^
6 i2 ^* Z( x1 e0 N9 q2 N* t/ V- x) r
4.png
& n+ u0 o  U  r2 ]) }  M: ^% F
, s5 C# L( V$ y! k* t/ y我们可以在逻辑分析仪上看到中心对齐的pwm信号。
" A8 T" x$ y5 s% ^# W请注意,频率显示为10 KHz,而不是上面提到的20 KHz,这是正确的,因为将两个脉冲粘在一起会将减少一半。
* L8 C, r9 \  w% o
, p2 M  G; B) b- W4 B+ x. g+ F
$ B. P9 k+ W- n' ]$ G1 m  G结论
- W' Y4 ?2 J  d: `( [5 Q$ J  i! O一旦你同时控制了速度和电压,当电机失速和失步时,你会有更好的感觉,你可以抓住它,施加更高的电压,看看它何时克服了施加的扭矩。: t3 ]  Q% [' K" @* _  T
这不是科学,但这是一种让你轻松处理其余公式的经验。" u: _0 K- L2 f) E* z8 r" {
2 s5 _- B& [/ u# Z
接下来的步骤是查看扭矩控制回路,然后可能是反电动势监测,为BLDC设计一个特定的扩展板,并思考面向现场的控制视频。
2 S) y1 v- [3 E4 u3 k但是可以肯定的是,对于我的倒立摆移动机器人计划来说,这种控制已经足够了。8 F- x: \" O. W. p1 W

" m" X: x! Z# V
3 i) p( g* A1 m5 g
赞 收藏 评论0 发布时间:2019-1-7 21:18

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版