求飞思卡尔智能车的电机方面编程

求飞思卡尔智能车的电机方面编程,第1张

这要看用的是PWM哪个通道来控制了。

下面用PWM2和PWM3来控制。

#include <hidef.h> /* common defines and macros */

#include <mc9s12dg128.h>/* derivative information */

#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

int cnt2=80,cnt3=20

void init_pwm(void)

{

PWME=0X00//PWM禁止

PWMPRCLK=0x10//Clock B=8M/2=4MHz

PWMSCLB=200//Clock SB=Clock B/2/200=10kHz

PWMCLK=0x0c//设置PWM2、PWM3的时钟源均为Clock SB

PWMPOL=0x0c//设置PWM2、PWM3的极性均为1

PWMCAE=0x00//设置PWM2、PWM3的对齐方式为左对齐

PWMPER2=200

PWMDTY2=cnt2 //设置PWM2的周期内高电平时间

PWMPER3=200

PWMDTY3=cnt3 //设置PWM3的周期内高电平时间

PWME=0x0c//PWM2、PWM3使能

}

void init_ect(void)

{

TSCR1_TEN=0//计数器清零

TSCR2_PR=7// Clock=Bus/128

TIOS_IOS1=1//设置ECT1口为输出比较

TC1=406250//设置每6500ms产生定时中断

DLYCT=0x01//延迟256个Bus周期,即32us

PACN1=0//清零TC1寄存器

TIE_C1I=1//设置ECT1口中断使能

TSCR1_TEN=1//计数开始

}

void interrupt 9 run(void) //计数650ms后中断

{

TFLG1_C1F=1//清除ECT1的中断标志

TC1=TC1+406250

cnt2=cnt2-5

cnt3=cnt3+5

PWMPER2=cnt2

PWMPER3=cnt3

if (cnt2==0)

init_pwm()

}

void main(void)

{

DDRB=0XFF

PORTB=0x04

init_pwm()

init_ect()

EnableInterrupts

for()

{ }

}

直流有刷电机的驱动电路是一个H桥,可以通过控制H桥的的四个驱动管来实现电机的调速与正反转。

直流有刷电机的扭矩与输入的电压有关,而输入电压是通过控制PWM的占空比来实现的(一个周期内的平均电压与占空比成正比)。

如何计算PWM的占空比,一般是通过闭环控制来实现。比如用测速机构测得当前的车速,发现车速小于目标转速,用PID闭环就可以算出需要增加多少占空比。

仪器介绍

有刷直流电机的工作原理

有刷电机的定子上安装有固定的主磁极和电刷,转子上安装有电枢绕组和换向器。直流电源的电能通过电刷和换向器进入电枢绕组,产生电枢电流,电枢电流产生的磁场与主磁场相互作用产生电磁转矩,使电机旋转带动负载。由于电刷和换向器的存在,有刷电机的结构复杂,可靠性差,故障多,维护工作量大,寿命短,换向火花易产生电磁干扰。

有刷直流电机的工作原理图如图2-1所示。在有刷直流电机的固定部分有磁铁,这里称作主磁极固定部分还有电刷。转动部分有环形铁芯和绕在环形铁芯上的绕组。

图2-1所示的两极有刷直流电机的固定部分(定子)上装设了一对直流励磁的静止的主磁极N和S,在旋转部分(转子)上装设电枢铁芯。定子与转子之间有一气隙。在电枢铁芯上放置了由A和X两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷B1和B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7791755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存