您当前的位置:五五电子网电子知识电子知识资料机器人-智能车基于DSP2812的运动控制平台 正文
基于DSP2812的运动控制平台

基于DSP2812的运动控制平台

点击数:7277 次   录入时间:03-04 12:01:16   整理:http://www.55dianzi.com   机器人-智能车
 

1


 

PWM1


 

PWM2


 

刹车


 

0


 

1


 

PWM1


 

PWM2


 

0


 

1


 

1


 

PWM1


 

正转


 

0


 

0


 

PWM1


 

PWM2


 

1


 

0


 

PWM2


 

  1


 

反转


 

下面分享控制模拟负载磁粉制动器的恒流源电路,记得设计中效果不太好,负载过大恒流源就会失效,此图仅供参考:

基于DSP2812的运动控制平台

    这里再简单介绍一下它的工作原理:由于DSP输出的控制信号为3.3V,为了能使DAC0832正常工作,需要将DSP输出的控制信号放大为5V,这个过程是有图中三极管Q2通过上拉完成的,电路也存在不足,因为通过此电路就会将DSP输出的控制信号取反,这会给程序编写带来不便。

    DAC0832的参考电压是由LM336-2.5V提供的,这样DAC0832转换过程中的参考电压Vref=2.5V,输出电压通过运算放大器LM358之后,就有如下的关系式(期中D表示DSP输出的控制数字量):

    Vout = +2.5VDC (1 + R2/R3)(D/256)

    电路中调征管采用大功率场效应管IRF540。采用场效应管,更易于实现电压线性控制电流,既能满足输出大电流的要求,也能较好地实现电压近似线性地控制电流。因为当场效应管工作于饱和区时,漏电流Id近似为电压Ugs控制的电流。即当Ud为常数时,满足:Id=f(Ugs),只要Ugs不变,Id就不变。



www.55dianzi.com

    在此电路中,R5为取样电阻,采用康铜丝绕制(阻值随温度的变化较小),阻值为0.25欧。运放采用OP07作为电压跟随器,UI=Up=Un,场效应管Id=Is(栅极电流相对很小,可忽略不计) 所以Io=Is= Un/R2= UI/R2。正因为Io=UI/R2,电路输入电压UI控制电流Io,即Io不随RL的变化而变化,从而实现压控恒流源。

    下面分享光耦隔离和光电编码器反馈信号隔离电路,其中使用74HC14进行信号整形,为了输出3.3V的QEP信号,所以74HC14需要3.3V供电,但是芯片的输入信号峰峰值不能超过3.3V。注:记得光电编码器隔离电路中的C1要去掉,波形才正常。

基于DSP2812的运动控制平台
基于DSP2812的运动控制平台

    设计中只采用了过流保护,设计中的过流是指当负载过大引起的过流和控制不当使H桥上下桥臂同时导通导致电源短路产生的过流,这两种情况都会使保护电路工作,继电器断开驱动器母线的链接,DSP输出的两路PWM波变为高阻态,这样就会避免由于H桥上电流过大而烧坏MOS管的情况发生。

基于DSP2812的运动控制平台

    上面电路中,霍尔电流传感器CHF-10P通过串入母线中进行电流的采集,A2415S为24V转±15V的隔离电源,主要作用是为CHF-10P提高工作电压,采集电流对应的电压值在3引脚可以测得,并且由输出电压值的正负号判断电流在5和6引脚之间的流入方向,这就会有一个电流与电压之间的线性关系为10A~±4V。由于DSP中ADC模块采集电压范围为0~3V,所以需要将霍尔电流传感器输出的正负电压转换为0~3V,这个过程是由电阻R1、R2、R3转换得到,其中3.3V电压经过两个肖特基二极管(正向导通压降为0.26V)后电压值大概为3.0V,如果输入电阻R1的电压为-3V,先把R3电阻看做不存在,R1和R2串联,一端输入-3V,另一端电压为3V,则DSP_ADC端电压为0V,把R3电阻看回来,0V通过R3电阻接地,当然还是0V。所以输入与输出的关系为-3V~3V对应0V~3V,为了避免输入到DSP_ADC的电压高于3V,加入了D1和D2作为嵌位电路,防止电压高于3V损坏DSP的ADC输入口。还有过流保护就是用继电器切断电机驱动母线电压,DSP的PWM口呈高阻态。

    再简介一下DSP2812的事件管理器单元,每个事件管理器模块都有一个正交编码脉冲(QEP)电路。使能QEP电路可以对引脚CAP1/QEP1和CAP2/QEP2(EVA)或CAP4/QEP3和CAP5/QEP4(EVB)输入的正交编码脉冲进行编码和计数。它与光编码器相连可以获得机器旋转的位置和速读信息。如果使能QEP电路,那么CAP1/QEP1和CAP4/QEP3的捕捉功能就被禁止。定时器2(在EVB中为定时器4)为EVA的QEP电路提供时基。定时器必须处于单增/减计数模式并使用QEP电路作为时钟源。正交编码脉冲电路是具有90°固定相移和可变频率的两个脉冲序列。当光编码器和电机转轴产生QEP时,通过监测两个脉冲的先后顺序可以确定电机的旋转方向,通过检测脉冲个数和频率可以确定旋转角度。QEP电路中的方向监测逻辑可以确定哪个序列领先,它为定时器2(或4)产生方向信号。如果CAP1/QEP1(EVB中为CAP4/QEP3)引脚的输入脉冲是领先序列,定时器进行增计数;如果CAP2/QEP2(EVB中为CAP5/QEP4)引脚的输入脉冲是领先序列,定时器进行减计数。两个正交编码输入的两个边沿都被计数,所以QEP逻辑为定时器2(或4)产生的时钟频率是每个输入脉冲序列的4倍。该正交时钟与定时器2(或4)的时钟输入相连。EVA中的每个捕捉单元可以选择定时器1或2作为自己的时基;然而CAP1和CAP2不能选择不同的定时器作为它们自己的时基。EVB中的每个捕捉单元可以选择定时器3或4作为自己的时基;然而CAP4和CAP5不能选择不同的定时器作为它们自己的时基。当捕捉引脚(CAPx)探测到指定的变化时,捕捉单元捕捉定时器的值并将它存在相应的2级深度FIFO堆栈中。使能捕捉单元后,如果相关引脚产生指定的变化,捕捉单元将选用的定时器的当前值存入相应的FIFO堆栈中。如果已经有一个或多个合法值存储在FIFO堆栈中(CAPxFIFO位不为0),相应的中断标志位将置1。如果标志位没有屏蔽,会产生一个外围中断请求。每当一个新的计数器值被捕捉到FIFO堆栈中,CAPFIFOx会调整相应的状态位来反映FIFO堆栈的最新状态。从引脚变化发生到定时器的计数期值锁存需要2个时钟周期。 介绍了这么多,下面简单介绍一下软件部分。

    在运动控制平台上集成了各个测试模块,如波特率设计,自动波特率检测,驱动板最佳频率测试,速度在线调试,PID系数在线调试,速度采集,电流采集,负载扭矩输出,速度曲线显示等,这些调试和控制功能足够发挥本次设计的运动控制平台的强大功能。其中自动波特率检测可以用DSP2812去实现,自动波特率检测过程中记得遇到了一个DSP的bug,就是自动检测的第一次肯定是不成功的,把DSP复位一次再次检测,就会正确检测到上位机选用的波特率;除此之外还有一个功能值得提一下,就是根据我个人的理解在此软件上设计了检测电机驱动器的最佳驱动频率的功能,在下图中看不到,在菜单栏中可以选择此功能,选择此功能之后,上位机软件会在占空比为50%的情况下去改变PWM波的频率,并采集显示速度,通过频率改变和速度曲线对比计算出驱动器适合的最佳频率,这个方法不知道是否合理,但是我在运动控制平台上测试的适合没有出现过问题。下面是基于运动控制平台的主控制界面。

基于DSP2812的运动控制平台

    运动控制中采用了速度闭环控制,为了实现速度闭环控制,我们要有精确的速度采集,为了达到精确的速度采集,设计中经过4种采集速度算法的比较,最终采用了变M/T法进行了电机速度的采集;为了达到闭环控制,系统中设计了速度闭环PID控制算法,这样可以确保系统在带负载运转下正常工作。下面将会介绍系统中算法的设计与实现。变M/T法是指测速过程中,不仅测取的测速脉冲与高频时钟脉冲随电机的转速不同而变化,而且测量时间T也是变化的。所以变M/T法相比较其它三种测速方法在高速、低速时都具有较高的测量精度,而且响应速度快,在闭环控制系统中具有较高的使用价值。

    时间过去有一年多了,好多资料没了,也记不清了,实在写不动了,有什么疑问可以跟帖提问,谢谢!(原创)

    原帖地址:http://bbs.55dianzi.com/icview-585068-1-1.html 



上一页  [1] [2] 


本文关键字:暂无联系方式机器人-智能车电子知识资料 - 机器人-智能车