当前位置: 首页 > news >正文

高端的食品行业网站开发邯郸企业网站建设

高端的食品行业网站开发,邯郸企业网站建设,网页实训内容及过程,网站建设与管理计划书通过FPGA开发板上的NIOS Ⅱ搭建电机控制的硬件平台#xff0c;包括电机正反转、编码器的读取#xff0c;再通过软件部分实现PID算法对电机速度进行控制#xff0c;使其能够渐近设定的编码器目标值。 一、问题与改进 SOPC之NIOS Ⅱ实现电机转速PID控制_STATEABC的博客-CSDN…        通过FPGA开发板上的NIOS Ⅱ搭建电机控制的硬件平台包括电机正反转、编码器的读取再通过软件部分实现PID算法对电机速度进行控制使其能够渐近设定的编码器目标值。 一、问题与改进 SOPC之NIOS Ⅱ实现电机转速PID控制_STATEABC的博客-CSDN博客 在前面用PID实现了基于NIOS Ⅱ的电机转动控制但是由于用的usleep()函数精度不够所以会导致有时读取的编码器值不准确最终发生PID产生振荡现象。 因此采用中断函数的方式每10ms调用一次中断服务函数再中断函数中实现PID控制从而达到更大的精确度减少振荡。 二、硬件设计 硬件设计同之前不变 三、软件设计 3.1 中断函数初始化 void MPU_INT_INIT(void){IOWR_ALTERA_AVALON_PIO_EDGE_CAP(MPU_INT_BASE,0x00);#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENTif ((alt_ic_isr_register(MPU_INT_IRQ_INTERRUPT_CONTROLLER_ID,MPU_INT_IRQ,MPU_INT_ISR,NULL,NULL)! 0))#elseif((alt_irq_register(MPU_INT_IRQ,NULL, MPU_INT_ISR )! 0))#endif{printf(register irt failed\r\n);}IOWR_ALTERA_AVALON_PIO_IRQ_MASK(MPU_INT_BASE,0x01);} 3.2 中断函数 #ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT //nios2 91 edition or later void MPU_INT_ISR(void *contex) #else //before nios2 91 edition void MPU_INT_ISR(void * contex, alt_u32 id) #endif {if(!IORD_ALTERA_AVALON_PIO_EDGE_CAP(MPU_INT_BASE)){return;}else{IOWR_ALTERA_AVALON_PIO_EDGE_CAP(MPU_INT_BASE,0x00);IOWR_ALTERA_AVALON_PIO_IRQ_MASK(MPU_INT_BASE,0x00);// 测量当前编码器计数//Car.Get_Encode();//int currentCountsL Car.Encode_L;//int currentCountsR abs(Car.Encode_R);// 执行插值步骤for (int currentstep 0; currentstep step; currentstep) {Car.Get_Encode();int currentCountsL Car.Encode_L;interpolatedTarget currentCountsL (targetDistance - currentCountsL) * currentstep / step; /* if(interpolatedTargetcurrentCountsL){interpolatedTarget currentCountsL (targetDistance - currentCountsL) * currentstep / step;}*/// 计算误差error interpolatedTarget - currentCountsL;// 计算 PID 控制输出float controlOutput calculatePID(error, integral, prev_error);// 将控制输出限制在电机速度范围内float speed initialSpeed controlOutput;speed fmaxf(-100, fminf(speed, 100));// 更新下次迭代的前一次误差和积分prev_error error;integral error;if (integral 8000) integral 8000;if (integral -8000) integral -8000;Car.SetSpeed(speed, 0);}}IOWR_ALTERA_AVALON_PIO_IRQ_MASK(MPU_INT_BASE,0x01); } 3.3 主程序 int main() {Car.Stop();Car.Start();MPU_INT_INIT();while(1){printf(Enter targetDistance);scanf(%d, targetDistance);}return 0; } 四、实验结果 每10ms调用一次中断函数这样也就保证了采样的精度结果也比之前好了很多但是还是会有稍微的振荡现象。
http://www.w-s-a.com/news/945826/

相关文章:

  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站
  • 松北区建设局网站网站建设分为几种
  • 网站建设的合同 体会智联招聘网站建设情况
  • 记的网站域名wordpress地方信息主题
  • 淄博好的建网站公司网站建设 海口
  • 有人做网站花了10几万2017做啥网站能致富
  • 做网站有什么软件cod建站平台
  • 合肥学校网站建设怎么做免费的产品图片网站
  • 营养早餐网站的设计与制作建设通网站怎么查项目经理在建
  • 浑南区建设局网站永州网站建设公司推荐
  • 做外贸都得有网站吗绵阳网站建设制作
  • 功能性的网站建设北京餐饮品牌设计公司
  • php做网站优势视频直播软件
  • 怎么安装php网站哪个网站是专门为建设方服务的
  • 重慶网站开发sina app engine wordpress
  • wampserver网站开发步骤中冠工程管理咨询有限公司
  • 自己做网站商城需要营业执照吗老外做牛排的视频网站
  • 网站推广效果的评估指标主要包括公司广告推广
  • 昆明网站建设那家好哪个网站学做凉皮
  • hype做网站动效哪里有给网站做
  • 打扑克网站推广软件设计类专业哪个最好
  • 网站设计首页网站建设意向书
  • 做网站要学那些angularjs后台管理系统网站