单片机中实现模糊控制PID程序

发布者:大树下的大白菜y最新更新时间:2016-09-08 来源: eefocus关键字:单片机  模糊控制  PID程序 手机看文章 扫描二维码
随时随地手机看文章
#define KPU 0.01

#define KIU 0.0005
#define KDU 0.1
#define KE 0.06
#define KEC 3
char code dkp[13][13]={
{6,6,6,5,4,4,4,3,3,2,0,0,0},
{6,6,6,5,4,3,3,3,3,2,0,-1,-1},
{6,6,6,5,4,3,3,3,3,2,0,-1,-2},
{5,5,5,5,4,3,3,2,2,0,-1,-1,-2},
{4,4,4,4,4,3,3,2,0,-1,-2,-2,-2},
{4,4,4,3,3,2,2,0,-1,-1,-3,-3,-3},
{4,4,4,3,3,2,0,-1,-2,-3,-3,-3,-3},
{3,3,3,2,2,0,-1,-1,-2,-3,-3,-3,-3},
{3,3,3,2,0,-1,-2,-2,-2,-3,-3,-3,-3},
{3,2,2,0,-1,-1,-3,-3,-3,-3,-3,-4,-4},
{3,2,0,-1,-2,-3,-3,-3,-3,-3,-3,-4,-6},
{2,2,0,-1,-3,-3,-3,-3,-3,-4,-4,-4,-5},
{0,0,0,-1,-3,-3,-3,-3,-3,-4,-6,-5,-6}
}; //K模糊控制表
char code dki[13][13]={{-6,-5,-6,-4,-3,-3,-3,-3,-2,-1,0,0,0},
{-5,-5,-5,-4,-3,-3,-3,-3,-2,-1,0,0,0},
{-6,-5,-6,-4,-3,-3,-2,-2,-2,-1,0,0,0},
{-5,-4,-4,-3,-3,-3,-2,-1,-1,0,2,2,2},
{-6,-4,-3,-3,-2,-2,-2,-1,0,2,3,3,3},
{-4,-4,-3,-3,-2,-1,-1,0,2,2,3,3,3},
{-3,-3,-3,-3,-2,-1,0,2,3,3,4,4,4},
{-3,-3,-3,-1,-1,0,2,2,3,3,4,5,5},
{-3,-3,-2,-1,0,2,3,3,3,3,4,5,6},
{-1,-1,-1,0,2,2,3,3,3,4,5,5,6},
{0,0,0,2,3,3,3,3,4,5,6,6,6},
{0,0,0,2,3,3,3,3,4,5,6,6,6},
{0,0,0,2,3,3,4,4,4,5,6,6,6}
};
char code dkd[13][13]={{3,0,-2,-3,-6,-5,-6,-5,-6,-4,-3,0,3},
{3,0,-2,-3,-5,-4,-4,-4,-4,-3,-3,0,2},
{3,0,-2,-3,-6,-4,-3,-3,-3,-3,-2,-1,0},
{2,0,-2,-3,-4,-4,-3,-3,-3,-3,-2,-1,0},
{0,-1,-2,-3,-3,-3,-3,-3,-2,-2,-2,-1,0},
{0,-1,-2,-3,-3,-3,-3,-3,-2,-2,-2,-1,0},
{0,-1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,0},
{0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0},
{2,1,-1,0,2,2,2,2,2,2,2,2,2},
{6,1,-2,0,3,3,3,3,3,3,3,4,6},
{6,2,1,2,3,3,3,3,3,3,3,4,6},
{6,5,4,4,4,4,4,3,3,3,3,4,6}
};

 /*=========================================== 
函数功能:温度自动调节函数 
============================================*/
void fuzzypid(void)
{
uchar te=0,tec=0;
float kp,ki,kd;
kp=0.35;
ki=0.001;kd=1.8;
 Error = setPoint - rellytemp; 
sumError+=Error;
dError =Error - LastError;
LastError=Error; 
te=(uchar)(KE*Error+0.5)+6;
tec=(uchar)(KEC*dError+0.5)+6;
kp=kp+KPU*dkp[te][tec];
ki=ki+KIU*dki[te][tec];
kd=kd+KDU*dkd[te][tec];
uout=kp*Error+ki*sumError+kd*dError;
open_time=(int)(uout+0.5);
if(open_time>40)//PID限幅
open_time=40;
if(open_time<1)
open_time=0;
}

关键字:单片机  模糊控制  PID程序 引用地址:单片机中实现模糊控制PID程序

上一篇:ADDA系列PCF8591的驱动程序
下一篇:DS18B20智能温度传感器驱动程序

推荐阅读最新更新时间:2024-03-16 15:09

MCU从“控制”迈向“智能互联”,国内厂商机会何在?
受益于和汽车电子的发展,2018年微控制器()的市场规模达到186.15亿美元,出货量达到306亿颗,预计2019年营收将保持9%增长率,增长至203.57亿元,并有望在2022年创下238.75亿美元的新高年收入记录。 MCU发展趋势 随着“+”融合类应用市场的兴起,如今的MCU开始踏上了AIoT的技术整合之路,从单一的主“控制”开始向“智能互联”目标迈进。在AIoT时代,MCU将不再只是负责控制,推理和运算等AI能力将成为MCU的标配。 在去年的技术峰会上,ST就推出了一个STM32Cube.AI,帮助工程师将运行在其他平台上的AI算法转换成可以在STM32 MCU上运行的算法,可以运行的人工智能算法包括图像分类
[机器人]
一种基于单片机的交流频率检测系统
1 引言 由于频率信号具有抗干扰性强、易于传输、测量准确度较高等优点,因此许多非频率量的传感信号都转换为频率量来进行测量和处理。因此频率测量方法愈来愈引起关注和研究。 频率测量是测量和控制系统领域的最基本测量之一。当今用的最多的测量信号频率的仪器是频率计,由于频率计在测量过程中需要一个时基信号作为测量信号频率的时基。时基信号一般是由本机振荡电路发生的,尽管现在多用石英晶体振荡器,但是仍然不能保证时基信号的精度,因此频率计的测量精度也就成了问题。传统的频率测量方法有两种 :一种是测频法,在一定时间间隔T内测出待测信号重复变化次数N,频率即为 ;另一种方法是测周法,在被测信号的一个周期内测出标准高频信号f的个数N,则被测频率
[测试测量]
NEC电子推出8款低功耗低端车载8位微控制器
NEC电子日前推出8款待机功耗为业绩最低的马达及照明控制等车身控制用8位微控制器,并于即日起开始提供样品。 新产品皆为内置全闪存的微控制器,包括3款外部引脚16pin的“78K0/FY2-L”、3款外部引脚为20pin“78K0/FA2-L”、2款外部引脚为30pin的“78K0/FB2-L”,可耐受很广的温度范围,待机时的消费电流仅为0.65µA,为业界低功耗最低的产品。新产品的样品价格根据存储容量及引脚数的不同而有别,以16KB全闪存、768B RAM、外部引脚数为30的8位微控制器“78K0/FY2-L”为例,样品价格为400日元/个。 近年来,随着汽车产业明显向多功能、高性能方向发展,车载电子不断进步,车内所及之处
[单片机]
汽车用 MCU 系列集成 Altia 人机交互代码生成器
赛普拉斯半导体公司 和 Altia 今日共同宣布为赛普拉斯 Traveo™ 汽车用微控制器 (MCU) 系列集成 Altia 人机交互代码生成器。本次合作为汽车制造商能够在仪表盘、平视显示器和 HVAC 显示器中实现丰富图形和先进功能相结合提供了低成本高效益的平台。Traveo 系列的 Altia 代码生成解决方案已被多家国际汽车制造商和顶级供应商采纳应用。 赛普拉斯Traveo汽车用 MCU 系列集成 Altia 人机交互代码生成 赛普拉斯 Traveo MCU 系列产品搭载具有Arm® Cortex®-R5 240-Mhz 内核的32-位 RISC 微控制器,以单芯片 MCU 解决方案实现高端图形功能。该系列微控制器
[汽车电子]
基于8250的多机通信设计
实现串行通信的方法很多,例如可以根据通信协议的要求,用编写程序的方法完成串行通信中数据字符的接收和发送,但这种方法比较麻烦;为了快速、简便、有效的实现串行通信,PC系列及其兼容机都可以采用一个可编程异步串行通信接口芯片来执行异步串行通信协议。这种异步通信接口芯片的核心是一个大规模集成通信组件,称为通用异步接收/发送器,或简称UART(Universal Asynchronous Receiver/Transmitter)。 1﹒ 8051实现多机通信原理 8051串行通信相关的三个控制寄存器SCON(Serial Controller)、PCON(Power Controller)和IE(Interrupted Enhance
[单片机]
单片机程序开发时,初级工程师常犯的一个错误
这里利用一个实际发生的例子,针对初级工程师经常犯的一个小错误,或者经常要走的一个弯路,做了针对性的纠正。希望可以帮到大家,文笔不好文章中有叙述不清的地方大家多多指教。 这篇文章我不是想说编程的规范性的东西,如果你想让自己的程序文件最起码直观的看起来美观、可读性强,推荐找华为的 C语言编程规范 。我只想说一说当我们的单片机遇到多个模块的数据需要处理,类似于 多任务 时我们应该怎么办? 背景是这样的,去年9月份开始安排一个工程师开始做电动汽车交流充电桩,机械设计部分由公司机械结构部门负责。充电桩的电子部分总体上分为X个部分(用到的资源),电阻触摸屏(RS232),M1卡读写(RS232),电能计量表(RS485),语音提示(SPI),
[单片机]
德州仪器推出最新低成本 Stellaris MCU 套件
日前,德州仪器 (TI) 宣布推出四款可支持基于 ARM Cortex-M3 的第四代 Stellaris MCU 的低成本开发套件,能够在工业、消费类电子以及医疗应用等领域对高级连接与复杂控制功能的需求不断增长的情况下,充分满足对高性能集成微处理器 (MCU) 以及可靠配套工具与软件的需求。最低全新套件可帮助开发人员立即开展设计工作,并充分发挥最新 32 位 Stellaris MCU 的高级连接性、数据高效性以及运动控制特性等优势。为进一步简化开发,每个套件均包含有全面的 StellarisWare® 外设驱动器库、图形库、USB 库以及代码示例。 两款全新评估套件、一款开发套件与一款参考设计套件现已开始供货,可
[单片机]
海速芯8位MCU-TM52F1376用于电动剃须刀
电动剃须刀由不锈钢网罩、内刀片、微型电动机和壳体组成,其中主控方面控制按键开关、电机驱动、电源管理等,为保证性能,电动剃须刀需要选用一个稳定性能好的MCU。本文将推荐海速芯高性能、高稳定性的8位MCU-TM52F1376应用于电动剃须刀。 海速芯8位MCU-TM52F1376的主要应用优势特点如下: ①采用8051内核、8bit的MCU,主频高达18MHz,因而拥有高性价比、稳定性好的特点,适合电动剃须刀上的应用,节约成本; ②拥有3ch PWM控制资源,满足电动剃须刀对于电机方面的控制; ③封装形式多样,满足不同设计需求,同时可以有效简化PCB面积; ④工作温度为-40℃~85℃,非常适合对于消费类电子产品即电动剃须刀上的应
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved