#define uint unsigned int
#define uchar unsigned char
uchar num1 = 0
uint v_set = 40
xdata uint pcacap2
xdata uchar dutycycle
uint A=10//float D=0.04float C=5
//int xdata e0=0,e1=0,e2=0
float xdata PWM=0
bit isnewdata
bit DIRECTON
#define POSITIVE DIRECTON = 1
#define NEGATIVE DIRECTON = 0
void Oscillator_Init()
{
SFRPAGE = CONFIG_PAGE
OSCICN= 0x83
}
void Port_IO_Init()
{
SFRPAGE = 0x0F
XBR0 = 0xF7
XBR2 = 0x40
}
void PCA_Init()
{
SFRPAGE=0x00
PCA0CPM0=0x02
PCA0CPM1=0x02
PCA0CPM2=0x21
PCA0CPL2=0x00
PCA0CPH2=0x00
PCA0MD=0x00
PCA0CN=0x40
EIE1|=0x08
}
void PWM_set(uchar low)
{//占空比设置,高电平占空比为(256-low)/256
SFRPAGE = PCA0_PAGE
if (DIRECTON == 1) {PCA0CPH0 = lowPCA0CPM1 = 0x02PCA0CPM0 = 0x42}
else {PCA0CPH1 = lowPCA0CPM0 = 0x02PCA0CPM1 = 0x42}
}
void PCA_ISR(void) interrupt 9 using 1 {
static xdata uint tmpcnt=0
static xdata uint PCA0CP2=0
xdata uint tmpcnt2
if(CCF2){
tmpcnt2 = PCA0CPH2
tmpcnt2 = tmpcnt2<<8
PCA0CP2 = tmpcnt2 + PCA0CPL2
pcacap2 = PCA0CP2-tmpcnt
tmpcnt = PCA0CP2
CCF2=0
}
}
PID_SC(uint v)
{
int Uk_zint e
e = v - v_set
//e1 = v1 - v_set
//e2 = v2 - v_set
//v2 = v1
//v1 = v
Uk_z = A*e/*+ D*e0 + C*(e0 - 2*e1 + e2)*/
//Uk0 = Uk1 + Uk_z
//Uk1 = Uk0
//PWM = PWM - 256
dutycycle = 0.0256 * Uk_z
}
void main()
{
//Oscillator_Init()
WDTCN = 0x07
WDTCN = 0xDE
WDTCN = 0xAD
Port_IO_Init()
EA=1
num1=0
isnewdata=0
PCA_Init()
POSITIVE
while(1){PID_SC(pcacap2)PWM_set(dutycycle)}
}
无刷直流电动机就是变频技术与直流电机相结合的产物,其具有效率高、噪音低、调速精度高、振动小、调速范围宽、寿命长等特点。下面就空调用无刷直流电机的组成及工作原理作简要介绍:⑴直流电机的组成
直流电机本体:定子主要采取集中式绕组,根据控制不同,绕组相数有单相、二相、三相、四相等结构,用的最多的是三相绕组结构,绕组接法有星型接法和环形接法两种,绝大部分绕组采用星型接法。转子部分采用磁钢,磁钢提供电机的主磁场。电机控制部分:无刷电机的控制方式主要有PAM(脉幅调制技术)和 PWM(脉宽调制技术),两种控制方式各有优缺点。
高压油位置传感器PWM驱动电路原理框图,主要由控制电路、逆变电路、三角波发生器、比较器、保护电路等组成。从原理框图可以看出,无刷直流电机的控制部分只包含一直一交变频电路中的逆变部分,整流及滤波部分由空调的主电控完成。
⑵工作原理
众所周知,永磁体提供的磁极磁场在电机旋转过程中固定不变的,这就是要求每个时刻定子绕组产生的电枢磁场必须与转子的磁极磁场相对应,即绕组的电流方向、导通与关断受转子位置的控制。因此,无刷直流电机必须有转子位置信号输出给电机的控制电路,电机的控制电路根据转子位置信号来控制相应的功率开关管的导通与关断,从而控制相应绕组的电流方向、导通与关断。定子绕组若按一定的通电顺序进行切换,就可以形成一个与转子位置对应的旋转磁场,使电机按要求的旋转方向旋转。相对磁钢的某一磁极而言,每个时刻与它对应的电枢磁场是固定的,即绕组的电流方向是固定的,这与有刷直流电机类似。
无刷直流电机运行原理图,绕组为三相星形接法,120度均布,采用三相半桥驱动方式,转子为一对极。在图示位置,磁钢的磁极中心线与A相绕组对齐,此时的控制电路根据转子位置检测信号,使S1开关管触发导通,B相绕组通电,在B相绕组磁场的作用下,转子将顺时针旋转120独门,到达虚线转子所示的位置,磁钢的磁极中心线与B相绕组对齐,此时,控制电路根据转子位置检测信号,使S1开关管关断,使S3开关管导通,A相绕组通电,转子在A相绕组磁场的作用下,转子将顺时针旋转120度,按上述通电顺序循环导通,转子就顺时针旋转下去。无刷直流电机采集转子位置信号,前者,电机结构简单,但电机起动困难后者,电机结构稍复杂,但起动平稳、可靠,目前大部分的无刷直流电机均采用后者。位置传感器的种类很多,空调用的无刷直流电机一般采用霍尔元件作为位置传感器。
无刷直流电机大部分采用三相星形绕组结构,桥式控制电路,下面就二相导通星形三相六状态的无刷直流电机的驱动原理作详细介绍:在此电机结构中,电机一般需要三个霍尔元件。两个霍尔元件之间的空间夹角为120度电角度,所以输出的脉冲信号相隔120度电角度。从真值表可以看出,每个霍尔元件一次导通 180度,每隔60度必有一个霍尔元件的输出状态发生却换,三个霍尔元件的输出状态的组合共有六种。与上述的霍尔元件的输出状态相对应,在一个周期内,三相绕组间隔60度电角度换相一次,每个时刻有两条相绕组导通,每相绕组连续导通120度。每相绕组正反向各导通一次,导通时间占三分之二周期。假定电枢各相绕组的导通次序为:UV\UW\VW\VU\WU\WV。
电机在该电枢磁场的作用下,按既定方向旋转。真值表的参数必须与控制电路的逻辑程序相吻合,电枢磁场与转子主磁场将不匹配,电机将能运转或倒转。
⑶电机调速
就调速原理来说,无刷直流电机类似于一般的直流电机,通过改变电枢两端的直流电压大小来改变电动机的转速。无刷直流电机有两种改变电压的方法:PAM 和PWM,PAM是电压的脉冲度保持不变,调节电压的幅值大小来改变电压的平均值大小PWM正好相反,即电压脉冲幅值不变,脉冲宽度磕掉。PAM方式调速。其调速线性度好、噪音低,控制电路简单,但线路较复杂,噪音较大,主要用于高压电机。
⑷PWM调速的实现
Vi为固定频率和固定电压的三角波,Vsp为直流电机电压,两者输入一比较,Vi输入比较器的同相端。当Vsp大于Vi时,比较器输出信号Vo为高电平,当Vsp小于Vi时,比较器输出信号Vo为低电平,Vo为一系列等宽度的脉冲波形,调节Vsp电压的大小,即可调节Vo的脉冲宽度的大小。直流高压 Vm施加到电机绕组两端,即可在绕组两端得到脉冲电压幅值不变,脉冲电压宽度可调的电压,调节Vo的脉宽占空比,机可调节电机绕组两端的电压平均值的大小,从而调节电机转速。PWM控制方式输出给绕组的电压波形是一系列等宽度的矩形波,矩形波含义较大成分的谐波。
4相4拍步进电机,步进角为7.5步进电机驱动口连接在RA0-RA3
include<p16f877a.inc> 包含877A的头文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
#define step1 9h 转动第1步驱动信号(不同的电机,可以引出线顺序不一样)
#define step2 0ch 转动第2步驱动信号(本程序以“常州市丰源微特电记有限公司的35BY48S053”电机为基础)
#define step3 6h 转动第3步驱动信号
#define step4 3h 转动第4步驱动信号
countequ 20h
org 00h 复位入口
nop ICD所需要的空指令
goto main 跳转到主程序
org 05h
****************************主程序***************************
main
banksel adcon1
movlw 07h
movwf adcon1设置所有A口为普通数字口
banksel trisa
clrf trisa 设置A口为输出
clrf status
clrf porta
movlw .12电机旋转一周需循环次数 360/(7.5*4)
movwf count
loop
movlw step1 第1步
movwf porta
call delay
movlw step2 第2步
movwf porta
call delay
movlw step3 第3步
movwf porta
call delay
movlw step4 第4步
movwf porta
call delay
decfsz count,1是否旋转完一周
goto loop 否,继续转动
clrf porta 是,停止转动
goto $-1停机
*******************************延时程序********************************
控制输出的频率
delay
movfw 0FH
movwf 21h
movlw 0ffh
movwf 22h
decfsz 22h,1
goto $-1
decfsz 21h,1
goto $-5
return
******************************源程序结束*******************************
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)