电机调速控制设计5Word格式文档下载.docx
《电机调速控制设计5Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电机调速控制设计5Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
图1.1为电机控制的桥式电路图。
图1.1电机控制桥式电路图
当G1和G4导通时,电机输出正的电压值,导通一段时间后,令G4截止,由于电机中存在电感,电流不能突变,电流经G1和Q3导通,此时电动机两端的变压为零,输出电压的均值为电动机的电压。
这样就实现了电机的正转。
在周期不变的情况下,输出电压的占空比,就改变了输出电压均值,也就改变了电机的转速。
当输出高电平的时间增大,而低电平所占的时间减小时,此时实现的是加速,反之就是减速。
当G2和G3导通,电机输出负的电压值,导通一段时间后,令G2截止,由于电机中存在电感,电流不能突变,电流经G3和Q1导通,此时电动机两端的变压为零,与正转类似,这样就实现了电机的反转。
反转时也能实现加减速,与正转一样。
图1.2为PWM调速原理图。
平均电压为
。
为PWM脉冲的占空比,决定平均电压的大小。
占空比越大,电路开通时间越长。
图1.2PWM调速原理图
1.3硬件设计
图1.3为硬件设计原理图
图1.3硬件原理图
分析:
NE555N是对芯片输入脉冲。
BTN8982TA作用是输出PWM波形。
PWMINHL和PWMINHR是始能控制端,当其有效时,芯片输出有效。
PWMR和PWML为波形控制端,上下两个晶闸管导通的情况,当PWMR=1时,该芯片所涉及到的上一个晶闸管导通,由于存在一个反相器,下一个晶闸管是截止的。
同理PWML是一样的原理。
1.4软件分析
1.4.1编程软件
图1.4编程软件图
该软件的使用与其他的软件应用类似。
首先需要建立一个工程,包括项目名称,以及保存路径在建立这个工程的过程中,需要配置的包括使用的语言以及所应用到的芯片。
在这里我们使用的是Verilog语言,所使用的芯片为ispLSI1016E,其他的均为默认值。
芯片选择如图1.5所示。
图1.5硬件芯片选择
项目建立完成后,需要建立一个文件,点击菜单栏中的Source,新建一个文件,选择VerilogModule,如图1.6所示。
完成后写好自己的文件明。
图1.4的文件名为www111。
这样,所有的配置就完成了,就可以在这个文件中编程了。
图1.6模型选择
1.4.2程序编写思路
该程序有五个输入,四个输出。
y0为脉冲输入,SW1控制电机的正转,SW4控制电机的反转,SW2和SW3实控制电机的加速和减速。
首先对脉冲上升沿检测,当有脉冲输入时,设定一个4位寄存器,记录脉冲个数。
同时判断四个按键的情况,当正转按键被按下,比较记录脉冲和参考值的大小,当脉冲的个数小于等于设定参考值时,输出为高电平,当脉冲的个数大于该设定值时,输出为低电平,这样就实现了电机的正转。
当反转按键按下时,编程思路与正转类似。
加、减速的控制是通过改变参考值,也就改变了输出占空比,改变了电压的均值,实现了调速。
1.4.3编程语言
VerilogHDL是一种硬件描述语言(HDL:
HardwareDescriptionLanguage),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
使用Verilog描述硬件的基本设计单元是模块(module)。
构建复杂的电子电路,主要是通过模块的相互连接调用来实现的。
模块被包含在关键字module、endmodule之内。
实际的电路元件。
Verilog中的模块类似C语言中的函数,它能够提供输入、输出端口,可以实例调用其他模块,也可以被其他模块实例调用。
模块中可以包括组合逻辑部分、过程时序部分。
在这个程序中,包括了initial块和always块,在always块中用到了上升沿检测。
对y0的上升沿检测,如下所示
always@(posedgey0)
在对正反转和加减速的控制中,主要用到的是if和else语句。
在编写条件语句时,if和else中如果含有多个语句,为了防止混乱,需要在if和else中加入begin和end语句,使之成为一个复合块语句。
If嵌套语句中,else不能单独使用,需要if和else的搭配才能使用。
1.4.4程序
modulewww111(y0,sw1,sw2,sw3,sw4,pwml,pwminhl,pwmr,pwminhr);
inputy0,sw1,sw2,sw3,sw4;
outputpwml,pwminhl,pwminhr,pwmr;
reg[3:
0]counter;
0]change;
regpwml,pwminhl,pwminhr,pwmr,statue;
initial
begin
counter=0;
statue=0;
end
begin
counter=counter+1;
if(sw1==1)
begin
if(counter<
=change)
pwminhl<
=1;
pwml<
//左边PWM的设置情况
pwminhr<
//右边PWM的始能控制
pwmr<
=0;
end
else
//左边PWM的始能控制
end
if((sw2==1)&
(statue==0))
change=change+1;
statue=1;
elseif((sw2==0)&
(statue==1))
if((sw3==1)&
change=change-1;
elseif((sw3==0)&
if(sw4==1)//反转控制按键
//右边PWM是截止的
endmodule
第二章测试与仿真
2.1程序测试
图2.1程序测试显示
该测试的目的是对程序的编译语法进行测试,也就是说,当测试过程中,如果出现语法错误,该测试就会提示错误的位置,以便于修改。
在对以上程序测试中,最常出现的问题是分号没有使用英文格式下,另一种错误就是if与else的搭配出现的问题。
经过修改以后,编译正确。
2.2仿真测试
图2.2测试过程图
如果对该程序进行仿真,需要编写一个仿真程序。
在ispLSI016E的位置,单击右键,选择new,出现如图2.2所示的情况,选择ABELTestVector,设置文件名。
出先编写的界面,编写程序如下所示
modulewww111
c,x=.c.,.x.;
y0,sw1,sw2,sw3,sw4,pwml,pwminhl,pwmr,pwminhrPIN;
TEST_VECTORS
([y0,sw1,sw2,sw3,sw4]->
[pwml,pwminhl,pwmr,pwminhr])
@repeat20{[c,1,0,0,0]->
[x,x,x,x];
[c,1,1,0,0]->
}
END
2.3仿真结果及分析
图2.3正转加速波形图
图2.3显示的是电机的正转加速波形图。
根据图2.3可以确定PWMR的周期是一定的,占空比发生了变化。
满足正转加速的条件。
第三章总结
通过此次系统设计专题的学习,我学到了很多课本上没有的东西,也锻炼了自己的动手能力,将以前学过的书本上零散的理论知识与实践结合到了一起。
首先在设计的过程中,我通过各种方式查询相关资料,通过对这些资料的学习,我大致了解了嵌入式系统的相关知识,发展现状以及未来的发展趋势。
通过向老师请教,同学讨论解决了相关的很多问题。
通过老师的讲解,我了解嵌入式系统的基本概念和基本特征,以及嵌入式系统广的泛应用,尤其是对Verilog语言有了初步了解。
这次系统设计不仅考察了对课堂上所学专业知识的理解程度,也锻炼了动手能力,提高了独立思考的能力、解决问题的能力。
但设计过程中仍有需要不断提高的地方,如软件操作不够熟练,不能灵活运用,必须要掌握好理论知识才能很好地与实践相结合,才能熟练地运用到生活中。
在这里,我要感谢龚老师在上课期间给予的悉心的指导与教育,希望自己在以后的学习中能够做到严谨认真,踏实的走好每一步。
路漫漫其修远兮,吾将上下而求索!