×

基于DSP的模糊逻辑发动机控制器

消耗积分:1 | 格式:rar | 大小:0.5 MB | 2017-10-26

分享资料个

但是,这对发动机提出了新的挑战。当使用传统的积分和微分(PID)控制器来控制无刷直流(BLDC)电机的速度是复杂的,因为它们依赖于复杂的数学模型,并且是计算密集型的。而使用模糊逻辑(FL)的算法,可以消除设计过程对复杂的数学公式的依赖,并且提供一个容易理解的解决方案。与(PID)微分控制器相比,模糊逻辑(FL)发动机控制还有一个优势,那就是开发周期更短。本文讨论了采用德州仪器c28xx定点DSP系列,实现用模糊逻辑算法来控制无刷直流电动机的过程。
  无刷直流电机控制模型的发展
  在模糊逻辑(FL)发动机构建之前,我们必须首先建立一个模型作为设计的基础。模糊逻辑控制器使用启发式知识,并使用一个语言描述模型来表达它的设计。我们将以PID控制器模型为出发点,而不是从头开始开发一个模型。一旦完成开发和实现,模糊逻辑控制器将通过调整其参数来提高性能。
  一般来说,开发模糊逻辑无刷直流控制器有三个设计步骤:
  1.定义输入、输出控制器的操作范围。
  2.定义模糊成员集的功能和规则。
  3.调整引擎。
  第一步是定义模式相关的输入和输出。输入是误差(E),它是设置的速度(SS)和当前的速度(CS)之间的当前误差;另外的输入是误差的变化(CE),它是当前误差和以前计算误差(PE)之间的差值。输出是电枢电压(CV)的改变值,它是现有的电枢电压(CAV)和以前的电枢电压(PAV)保存值的差额。由此产生的模型方程式如下:
  E=SS-CS
  CE=E-PE
  CV=CAV-PAV
  发动机旋转速单位为转每分钟(RPM),E决定了接近目标速度的程度。因此,当E》0,发动机的旋转速度低于设定的速度;当E《0,电机旋转速度超过设定的速度。CE决定控制器的调整方向。当且仅当(iff)目前的旋转速度比设定的速度要低时CE为正,;当且仅当目前的旋转速度大于设定的速度时,CE 为负。当接近设定速度时,CE就会在正的和负的值之间来回调整。CV是电枢的供电电压。这个电压表示为脉冲的宽度调制(PWM)占空比。
  下一步是定义模糊集的成员函数、变量和规则。为了保证能工作,非模糊(清晰)输入和输出必须转化成模糊的。转换由使用语言变量来表示输入和输出范围。这些也被称为模糊变量。模糊变量用于为成员函数划分隶属值的区域。例如,5个变量用来映射输入和输出,它们是中等负值(NM)、小负值(NS)、零(z)、小正值(PS)、中等正值(PM)。
  它不是数学公式,模糊控制器使用模糊规则来作出决定,并产生一个输出。模糊规则是通过IF-THEN语句的形式来描述的。模糊规则决定系统的行为,而不是复杂的数学方程。例如,如果错误(E)是等于中等负值(NM),而错误的变化(CE)等于小正值 (PS),那么在电枢电压(CV)的改变就等于小负值(NS)。所用的一些规则是根据设计者的经验和系统的知识来设定的。因此,我们的系统所使用的规则的数量是25个。
  为了激活电枢,CV模糊输出必须被转换回清晰输出。这个过程称为去模糊化。一种流行的去模糊方法称为重心法。
  设计的最后一步是调整成员函数和规则。这个阶段也称为优化调整阶段。优化调整用于提高模糊控制器的性能。一旦设计完成,控制器就将准备付诸实现。
  模糊逻辑控制器的实现是由三个模块组成的。它们分别是模糊化、规则部署和去模糊化。以下各节讨论模糊逻辑无刷直流电动机相关模块的实现情况。
  模糊化
  模糊化是将有明晰数值的数据转换成模糊数据的过程。由此产生的模糊数据的转换是基于对输入变量的模糊隶属度。对于这种应用,电机控制输入变量是旋转误差 (Error)和旋转误差差值(Cerror)。旋转误差(Error)是从一个采样时间到下一个采样时间的绝对旋转速度差。同样地,旋转误差差值 (Cerror)是一个采样时间和下一个采样时间之间的旋转误差变化值。公式如下:
  旋转误差(Error)=SetSpeed(设定速度)-Cur-rentSpeed(目前速度)
  旋转误差差值(Cerror)=旋转误差(Error)-Pre-viousError(前一次误差)
  正如前面谈到的,为旋转误差(Error)变量和旋转误差差值(Cerror)变量定义了五个成员集:
  1.NM:中等负值
  2.NS:小负值
  3.ZE:零
  4.PS:小正值
  5.PM:中等正值
  图1显示了为旋转误差(Error)变量和旋转误差差值(Cerror)变量定义的五个成员集。这些成员集是三角型重叠,以提供良好的响应。每一组有一个0×1AAA的最大值。
  基于DSP的模糊逻辑发动机控制器
  输入变量模糊化后产生了由五部分组成的向量,这五个部分相对应于模糊化成员集的中等负值、小负值、零、小正值、中等正值。每个组件对应的Y轴的值代表该明晰输入值的隶属度。向量含有旋转误差(Error)和旋转误差差值(Cerror)模糊化值被表示为数组×1[]和X2[]。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'基于DSP的模糊逻辑发动机控制器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);