单片机产生SPWM课程设计报告.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计 基于89C52单片机SPWM波形发生器 摘 要 本系统由89C52单片机控制模块、滤波和稳压模块组成。利用Matlab计算SPWM脉冲序列占空比,采用查表方式,控制双极性SPWM控制脉冲序列的输出。 关键字:单片机 Matlab 查表 SPWM 1设计目的和要求 1.1设计目的 设计并制作一套单相SPWM触发脉冲电路,掌握SPWM算法和硬件实现方法,理解驱动电路功能。 1.2任务要求 ①采用双极调制算法,产生一个7脉冲SPWM触发脉冲,并用单片机数字化近似实现; ②完成拓展硬件电路,软件编程和调试; ③具有2ms死区设计; ④低次谐波较少; 2设计方案 本系统以89C52单片机为控制核心,由查表法通过定时器产生SPWM波,系统设计框图如下: 图1 设计框图 3 理论分析和计算 3.1查表产生SPWM波理论分析 SPWM采用频率倍于正弦波的三角波调制正弦波,可得到近似于正弦波的输出。三角波的频率越高,即载波比越高,谐波的频率就越高,输出端滤波器就更容易去除谐波。 3.2利用Matlab计算SPWM脉冲序列占空比 MATLAB是一个高级的数学分析与运算软件,具有强大的计算功能。SPWM控制通过MATLAB进行分析和设计,可取得事半功倍的效果。采用MATLAB可方便地得到正弦波与三角波的交点。在判断交点时,可通过交点的数学定义来判断。所谓交点,就是在交点附近时刻两函数之差值的绝对值趋于0,而在交点附近的极小区域,离交点越远,差值的绝对值逐渐增大。以下子程序为计算交点的MATLAB程序。基波数据L2 =4*sin(2*pi*f*x)/5,载波数据L1=sawtooth(2*pi*9*f*(x+1/1800),0.5),t(j)为交点时刻数据。% 设置 clc; prec = 0.00001; %精度 f=50; step = 0 start = 0; stop = 0.02; % plot x=start:step:stop; L1=sawtooth(2*pi*9*f*(x+1/1800),0.5); L2 =4*sin(2*pi*f*x)/5; plot(x,L1,red,x,L2,blue); legend({L1,L2},location,NorthWest); title({曲线交点图, L1=sawtooth(2*pi*9*f*(x+1/1800),0.5),L2=4*sin(2*pi*f*x)/5}); xlabel(x); ylabel(y); %找交点 jCount = 0; t=0; j=0; for i=1:length(x) if(abs(L1(i)-L2(i)) prec) jCount = jCount + 1; j=j+1; t(j)=x(i); display(strcat(第,num2str(jCount),交点是:)); if jCount==1 display(strcat((,num2str(x(i)),,,num2str(L1(i)),))) else X=2^16-(t(j)-t(j-1))*10^6;%计算定时器初值 HEX=dec2hex(round(X),4);%将初值化为十六进制 display(strcat((,num2str(x(i)),,,num2str(L1(i)),),第 ,num2str(jCount),与,num2str(jCount-1),交点电平持续时间:,num2str(t(j)-t(j-1)),ms,,定时器初始值:,num2str(HEX))); end lh = line([x(i) x(i)],[min(min(L1),min(L2)) L1(i)]); %横坐标 set(lh,color,green); set(lh,LineStyle,--); text(x(i),L1(i),strcat(P_,num2str(jCount),(,num2str(x(i)),,,num2str(L1(i)),))); end end 3.2.2Matlab运行结果 第1交点是: (0,0) 第2交点是: (00.24167),第2与1点电平持续时间0s,定时器初值:FC2F 第3交点是: (0.0025405,0.57283),第3与2点电平持续时间0.0015636ms,定时器初值:F9E4 第4交点是: (0.002975

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档