#define PI (3.14159265)// 度数表示的角速度*1000#define MDPS (70)// 弧度表示的角速度#define RADPS ((float)MDPS*PI/180000)// 每个查询周期改变的角度#define RADPT (RADPS/(-100))// 平衡的角度范围;+-60度(由于角度计算采用一阶展开,实际值约为46度)#define ANGLE_RANGE_MAX (60*PI/180)#define ANGLE_RANGE_MIN (-60*PI/180)// 全局变量pid_s sPID; // PID控制参数结构体float radian_filted=0; // 滤波后的弧度accelerometer_s acc; // 加速度结构体,包含3维变量gyroscope_s gyr; // 角速度结构体,包含3维变量int speed=0, distance=0; // 小车移动的速度,距离int tick_flag = 0; // 定时中断标志int pwm_speed = 0; // 电机pwm控制的偏置值,两个电机的大小、正负相同,使小车以一定的速度前进int pwm_turn = 0; // 电机pwm控制的差异值,两个电机的大小相同,正负相反,使小车左、右转向float angle_balance = 0; // 小车的平衡角度。由于小车重心的偏移,小车的平衡角度不一定是radian_filted为零的时候
上传时间: 2022-06-01
上传用户:
PID-小车类-手机遥控十分mimi蓝牙小车V2资料全部开源/**************************************************************************函数功能:增量PI控制器入口参数:编码器测量值,目标速度返回 值:电机PWM根据增量式离散PID公式 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此类推 pwm代表增量输出在我们的速度控制闭环系统里面,只使用PI控制pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)**************************************************************************/int Speed_Incremental_PI (int Encoder,int Target){ static int Bias,Pwm,Last_bias; Bias=Encoder-Target; //计算偏差 Pwm+=Speed_Kp*(Bias-Last_bias)+Speed_Ki*Bias; //增量式PI控制器if(Pwm>500)Pwm=500;else if(Pwm<-500)Pwm=-500; Last_bias=Bias; //保存上一次偏差 return Pwm; //增量输出}
上传时间: 2022-06-01
上传用户:20125101110
首先介绍一下原理,其实很简单,磁力对悬浮物的控制,其基本原理是:霍尔传感器在浮子的正下方,当检测到浮子向左运动时,两边的线圈一个吸一个拉,把它推向右;反之如果浮子想右运动,那么两个线圈的电流都反向,总共两组共四个这样的线圈,就可以把浮子限制在二维平面之内了。但是线圈产生的力是比较小的,因此只能够推动浮子在水平面移动,要克服浮子的重力让它悬浮起来,就要在四个线圈下面再加一个大的环形磁铁提供斥力。为了让悬浮更加稳定,我们采用了PID控制的平衡算法,对PID算法的了解有助于我们对整个实验原理的理解,借用网上对PID的一段介绍:在工程实际中,PID控制是应用最为广泛的调节器控制机制。PID控制中得P代表比例,即proportion;I代表积分,即integral;D代表微分,即differential;因此,PID控制,即比例-积分-微分控制。当被控对象的结构和参数不能完全掌握,或者得不到精确的数学模型时,其他的控制方法难以采用,那么控制器的结构和参数必须结合经验和现场调试来决定,在这种情况下采用PID调节最为方便。首先,比例控制是一种最简单的控制方式,就像胡克公式中的比例系数一样,当控制器的输出与输入信号成比例关系,那么就可以得到一个比例系数。其次,积分控制是指控制器的输出与输入的误差信号的积分有关。就如同电路中的电感元件,某个时刻的电压与电流的积分有关。类似的,有时候信号的输出必须综合之前信号的输入,而这种综合往往是求和关系,因此使用积分控制简单易行。最后,微分控制是指控制器的输出与输入信号的微分有关。最简单的微分关系就是速度是位矢的微分。我们在控制悬浮物的平衡时,光知道悬浮物偏离平衡位置的位移从而采用比例控制是不够的,对于同样的偏离位移,悬浮物可能有不同的速度,那么要求我们对悬浮物有不同的处理方法,而恰恰速度是位矢的微分,于是我们可以通过对位移输入数据进行微分操作,来实现对悬浮物的精确实时控制。可见,PID控制器是一种那个动态的控制机制。 以上就是实现下推式磁悬浮的基本原理,借助以上的基本原理,结合一定的软件算法实现,我们就可以对悬浮物进行动态控制。
上传时间: 2022-06-07
上传用户:canderile
【摘要】在人们生活以及工业生产等诸多领域经常涉及到液位和流量的控制问题,例如居民生活用水的供应,饮料、食品加工,溶液过滤,化工生产等多种行业的生产加工过程,通常需要使用蓄液池, 蓄液池中的液位需要维持合适的高度,既不能太满溢出造成浪费, 也不能过少而无法满足需求。因此液面高度是工业控制过程中一个重要的参数, 特别是在动态的状态下, 采用适合的方法对液位进行检测、控制,能收到很好的效果。PID 控制(比例、积分和微分控制)是目前采用最多的控制方法。【关键词】水箱液位; PID 控制;液位控制; Matlab 仿真一.引言在人们生活以及工业生产等诸多领域经常涉及到液位和流量的控制问题, 例如居民生活用水的供应,饮料、食品加工,溶液过滤,化工生产等多种行业的生产加工过程, 通常需要使用蓄液池, 蓄液池中的液位需要维持合适的高度, 既不能太满溢出造成浪费, 也不能过少而无法满足需求。因此液面高度是工业控制过程中一个重要的参数, 特别是在动态的状态下, 采用适合的方法对液位进行检测、控制,能收到很好的效果。本论文利用PID 算法在matlab 中进行仿真并讲解实物搭接效果, 具体如下:1、利用指导书中推导的模型和实际的参数,建立水箱液位控制系统的数学模型,并进行线性化;2、构成水箱液位闭环无静差系统,并测其动态性能指标和提出改善系统动态性能的方法,使得系统动态性能指标满足σ%≤10%,调节器调节阀水槽测量变送出水阀系数<0.5 秒,静态误差小于2%;3、通过在matlab 编程中求取合适的反馈变量K,然后与仿真模型结合构成最优控制的水箱液位系统,通过图形分析是否满足系统的性能参数;
标签: pid调节控制系统
上传时间: 2022-06-18
上传用户:1208020161
随着近年来传动系统的发展,多电机传动已被越来越广泛地应用于各种领域中。为了提高多电机传动系统的动态和稳态性能,以及满足一些特定系统对于多电机精确同步的要求,多电机同步控制方法的研究也变得越来越重要。目前,有许多方法用来研究多电机同步控制策略,本文采用的是偏差耦合控制方法,利用模糊PID作为速度同步补偿器的控制算法,使用遗传算法来整定PID的参数范围,解决了多电机同步控制系统中多电机速度的同步控制问题。本文首先分析了多电机同步控制的原理及其特点,根据偏差耦合控制策略的优点,确立了基于模糊PID补偿器的多电机同步控制策略,提出了模糊PID补偿器的设计方法。其次,利用罗克韦尔实验室现有的设备,构造了一个与生产现场类似的试验环境,设计了电机同步控制系统的实验平台。在单个永磁同步电动机调速系统的基础上,实现了多电机同步控制。基于实验平台,分别对硬件和软件部分进行了设计,其中包括控制系统网络的组建和硬件连线的设计和对运动控制模块进行组态以及运动控制梯形图的编制。根据本文设计的多电机同步控制方法在保证系统具有优良抗干扰性能的同时,使系统获得了较好的跟随性能及同步跟踪精度。经过Matlab的仿真以及实验结果说明了本文设计的控制算法的有效性和实用性。最后,总结了所做的研究工作,并对多电机同步控制系统中存在的其它问题进行了简单的分析,以及对未来研究方向进行了阐述。关键词:多电机同步控制;:模糊PID;遗传算法;永磁同步电动机;偏差耦合控制
标签: 模糊PID补偿器
上传时间: 2022-06-18
上传用户:zhaiyawei
5.1 PID 控制原理与程序流程 5.1.1 过程控制的基本概念 过程控制――对生产过程的某一或某些物理参数进行的自动控制。…………
标签: pid控制
上传时间: 2022-06-22
上传用户:fliang
前言说明控制的方法远远不止PID这一招,在许多场合也未必是最佳的控制算法。对于学习能力较好的师弟也可以再去寻求一种更优秀的控制算法。PID的分类多如牛毛,例如:模糊PlD、数字PID、神经元PID等等。另外,本文档是参考几十个PID相关文档资料整合而成。由于个人能力等原因,从策划、编辑、排版等花了一个多月的时间才完成此次PlD法的整合。为了更有针对性和有效性,本文档主要讲解数字PID及其变种(改进式PID):位置式和增量式。以及这两种PID的C语言编程实现、参数的调整确定和PID控制的应用。我们为什么要用PID岸法呢?原国很商单:其一,PlD是一种比较成熟的控制算法,而且还有许多基于PID的变种算法(简称改进式PID)。其二,资杜多,学习难度路低,入门快。其三,多届师兄实践过,感觉效果还不错!但每年资料成指数增长,从上届师兄那搭贝了好几G资料,进PID控制的文档可以夸张的说跟天上的“星星”一样,看了之后眼花缭乱,而且有很多重复的。为了让更多人能快速上手使用PID控制算法,结合个人经验和相关文档将它浓缩如下:
标签: pid算法
上传时间: 2022-07-01
上传用户:
PID算法及PWM控制技术简介1.1PID算法控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能主要由控制算法来实现。目前提出的控制算法有很多。根据偏差的比例(P)、积分(ID,微分(D)进行的控制,称为PID控制。实际经验和理论分析都表明,PID控制能够满足相当多工业对象的控制要求,至今仍是一种应用最为广泛的控制算法之一。下面分别介绍模拟PID、数字PID及其参数整定方法。1.1.1模拟PID在模拟控制系统中,调节器最常用的控制规律是PID控制,常规PID控制系统原理框图如图1.1所示,系统由模拟PID调节器、执行机构及控制对象组成。PID调节器是一种线性调节器,它根据给定值r(1)与实际输出值c(1)构成的控制偏差:e()=r(t)-c(t)(1.1)将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进行控制,故称为PID调节器。在实际应用中,常根据对象的特征和控制要求,将P、I、D基本控制规律进行适当组合,以达到对被控对象进行有效控制的目的。例如,P调节器,PI调节器,PID调节器等。模拟PID调节器的控制规律为
上传时间: 2022-07-01
上传用户:
道理摆系统是一个典型的快速、多变量、非线性、不稳定系统,对倒立摆的控制研究无论在理论上和方法上都有深远的意义。本论文以实验室原有的直线一级倒立摆实验装置为平台,重点研究其PID控制方法,设计出相应的PID控制器,并将控制过程在MATLAB上加以仿真。本文主要研究内容是:首先概述自动控制的发展和倒立摆系统研究的现状;介绍倒立摆系统硬件组成,对单级倒立摆模型进行建模,并分析其稳定性;研究倒立摆系统的几种控制策略,分别设计了相应的控制器,以MATLAB为基础,做了大量的仿真研究,比较了各种控制方法的效果;借助固高科技MATLAB实时控制软件实验平台;利用设计的控制方法对单级倒立摆系统进行实时控制,通过在线调整参数和突加干扰等,研究其实时性和抗千扰等性能;对本论文进行总结,对下一步研究作一些展望。关键词:一级倒立摆,PID,MATLAB仿真
上传时间: 2022-07-02
上传用户:1208020161
#nclude<reg51.h>#include<intrins.h>#销nclude<math.h>#include<string.h>struct PID{unsigned int SetPoint;//设定目标 Desired Value unsigned int Proportion;//比例常数Proportional Const unsigned int integral;//积分常数Integral Const unsigned int Derivative://微分常数Derivative Const unsigned int LastError;//Emorl-1]unsigned int PrevError;//Errorl-2]unsigned int SumError;//Sums of Errors struct PID spid;//PID Control Structure unsigned int rout;//PID Response(Output)unsigned int rin://PID Feedback(Input)sbit data1=P100;sbit clk=P141;sbit plus=P240;sbit subs=P241:sbit stop=P22;sbit output=P34;sbit DQ=P33;unsigned char flag,flag_1=0;unsigned char high_time,low_time,.count=0,/占空比调节参数unsigned char set_temper=35;unsigned char temper;unsigned chari:unsigned charj=0;unsigned ints;
上传时间: 2022-07-02
上传用户:xsr1983