在本课中,我们要用一个按键来实现跑马灯的 10 级调速。这又会涉及到键的去抖的问 题。 本课的试验结果是,每按一次按键,跑马速度就降低一级,共 10 级。 这里我们又增加了一个变量 speedlever,来保存当前的速度档次。 在按键里的处理中,多了当前档次的延时值的设置。 请看程序: ―――――――――――――――― #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一个 52 标准内核的头文件 sbit P10 = P1^0; //头文件中没有定义的 IO 就要自己来定义了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //长定时溢出标记,预置是 0 uchar speed=10; //设置一个变量保存默认的跑马灯的移动速度 uchar speedlever=0; //保存当前的速度档次 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的 //一个按键控制的 10 级变速跑马灯试验 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//预定的写入 P1 的值 uchar ledi; //用来指示显示顺序 uint n; RCAP2H =0x10; //赋 T2 的预置值 0x1000,溢出 30 次就是 1 秒钟 RCAP2L =0x00; TR2=1; //启动定时器 ET2=1; //打开定时器 2 中断 EA=1; //打开总中断 while(1) //主程序循环 { if(ldelay) //发现有时间溢出标记,进入处理 { ldelay=0; //清除标记 P1=ledp[ledi]; //读出一个值送到 P1 口 ledi++; //指向下一个 if(ledi==4) { ledi=0; //到了最后一个灯就换到第一个 } } if(!K1) //如果读到 K1 为 0 { for(n=0;n<1000;n++); //等待按键稳定 while(!K1); //等待按键松开 for(n=0;n<1000;n++); //等待按键稳定松开 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //档次和延时之间的预算法则,也可以用查表方法,做出 不规则的法则 } } } //定时器 2 中断 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比较一个变化的数值,以实现变化的时间溢出,同时限制了最慢速 度为 1 秒 { t=0; ldelay=1;//每次长时间的溢出,就置一个标记,以便主程序处理 } } ―――――――――――――――――――――― 请打开 lesson11 目录的工程,编译,运行,看结果: 按 K1,速度则降低一次,总共 10 个档次。
上传时间: 2017-11-06
上传用户:szcyclone
【摘要】在人们生活以及工业生产等诸多领域经常涉及到液位和流量的控制问题,例如居民生活用水的供应,饮料、食品加工,溶液过滤,化工生产等多种行业的生产加工过程,通常需要使用蓄液池, 蓄液池中的液位需要维持合适的高度,既不能太满溢出造成浪费, 也不能过少而无法满足需求。因此液面高度是工业控制过程中一个重要的参数, 特别是在动态的状态下, 采用适合的方法对液位进行检测、控制,能收到很好的效果。PID 控制(比例、积分和微分控制)是目前采用最多的控制方法。【关键词】水箱液位; PID 控制;液位控制; Matlab 仿真一.引言在人们生活以及工业生产等诸多领域经常涉及到液位和流量的控制问题, 例如居民生活用水的供应,饮料、食品加工,溶液过滤,化工生产等多种行业的生产加工过程, 通常需要使用蓄液池, 蓄液池中的液位需要维持合适的高度, 既不能太满溢出造成浪费, 也不能过少而无法满足需求。因此液面高度是工业控制过程中一个重要的参数, 特别是在动态的状态下, 采用适合的方法对液位进行检测、控制,能收到很好的效果。本论文利用PID 算法在matlab 中进行仿真并讲解实物搭接效果, 具体如下:1、利用指导书中推导的模型和实际的参数,建立水箱液位控制系统的数学模型,并进行线性化;2、构成水箱液位闭环无静差系统,并测其动态性能指标和提出改善系统动态性能的方法,使得系统动态性能指标满足σ%≤10%,调节器调节阀水槽测量变送出水阀系数<0.5 秒,静态误差小于2%;3、通过在matlab 编程中求取合适的反馈变量K,然后与仿真模型结合构成最优控制的水箱液位系统,通过图形分析是否满足系统的性能参数;
标签: pid调节控制系统
上传时间: 2022-06-18
上传用户:1208020161
请波抑制在提升电能质量以及保障供用电设备的安全稳定运行等方面有若关键性作用;无功功率不仅对于供电侧来说十分重要,而且在负载的正常运行过程中扮演着不可替代的角色。伴随功率半导体开关器件的飞速发展,大量的非线性负载涌现在电力系统中,由此带来的谐波污染和无功功率问题愈发严峻。在上述背景下,一方面可以对谐波进行抑制,另一方面又可以补偿无功功率的有源电力滤波器则受到了国内外学者们的青睐。有源电力滤波器的主电路拓扑结构是系统中最基础的部分,本文将由此出发,分别介绍各主电路的结构特征以及基本原理。简单叙述了有源电力滤液器常用的语波检测方法,比较其各白的优劣,其中着重突出本文所用到的基于瞬时无功功率的改进的ip-i法。针对传统电流跟踪控制策略对谐波信号跟踪动态效果差、控制目标单一的问题,在三相四线制不对称负载系统中,提出了一种多目标优化模型预测电流控制策略。首先建立四桥臂有源电力滤波器基于ap坐标系的离散化数学模型.以此来实现自然解耦控制:其次对预测电流进行两步预测,实现对数字处理延时效应的补偿,设置电流跟踪偏差和开关频率为目标函数,量化控制目标,预先评估各开关状态的控制效果,根据评估结果决定变流器的开关状态,去了PWM调制环节;再次讨论了采样频率以及加权系数这两个系统变量的取值对开关频率和电流畸变率所造成的影响;文章的最后,为了验证所提方法的有效性,在Matlab/Simulink仿真环境下进行实验,结果证实所提策略谐波电流跟踪性能良好
上传时间: 2022-06-22
上传用户:slq1234567890
道理摆系统是一个典型的快速、多变量、非线性、不稳定系统,对倒立摆的控制研究无论在理论上和方法上都有深远的意义。本论文以实验室原有的直线一级倒立摆实验装置为平台,重点研究其PID控制方法,设计出相应的PID控制器,并将控制过程在MATLAB上加以仿真。本文主要研究内容是:首先概述自动控制的发展和倒立摆系统研究的现状;介绍倒立摆系统硬件组成,对单级倒立摆模型进行建模,并分析其稳定性;研究倒立摆系统的几种控制策略,分别设计了相应的控制器,以MATLAB为基础,做了大量的仿真研究,比较了各种控制方法的效果;借助固高科技MATLAB实时控制软件实验平台;利用设计的控制方法对单级倒立摆系统进行实时控制,通过在线调整参数和突加干扰等,研究其实时性和抗千扰等性能;对本论文进行总结,对下一步研究作一些展望。关键词:一级倒立摆,PID,MATLAB仿真
上传时间: 2022-07-02
上传用户:1208020161
无刷直流电机是是永磁电机的一种,如果换个角度看,它将是一个非线性、多变量的集成系统与微电子元器件、电力电子元器件有着精密联系,无刷直流电机正是伴随前两者出现的。无刷直流电动机优点很多,跟交流电动机一样,基本结构简单、工作运行可靠、维护修理方便等一系列优点都具备,而又与交流电动机的许多特性相似,如其工作运行效率高、没有励磁损耗以及调节速度的性能好等,故广泛应用于当今国民经济的各个领域,中小功率的调速系统正逐步被无刷直流电机调速系统所取代。无刷直流电机的关键技术之一是控制策略。本文采用双闭环调速控制系统,实现转速的抗干扰调节,使得无刷直流电机在稳态时无静差。文章详细介绍了无刷直流电机的基本结构、运行工作原理、研究目的和应用状况,建立简单的无刷直流电机数学模型,并利用强大的仿真平台,建立控制系统的仿真模型,对无刷直流电动机速度闭环控制系统进行仿真。通过对模型仿真,结果清楚的显示:该控制模型工作运行可靠、平稳,没有什么波动,具有良好的静、动态特性。
上传时间: 2022-07-24
上传用户:
先进PID控制MATLAB仿真
上传时间: 2013-05-15
上传用户:eeworm
MATLAB语言与自动控制系统设计
上传时间: 2013-05-15
上传用户:eeworm
电视墙显示及控制技术
上传时间: 2013-04-15
上传用户:eeworm
电气控制与PLC 浙江水电专科精品课件 PPT版
上传时间: 2013-04-15
上传用户:eeworm
过程控制教程 ppt版
上传时间: 2013-06-14
上传用户:eeworm