温控仪C语言程序,(转载)温控器PID算法的实现(C语言),未实验

硬件原理:加热电阻为400,电源为市电,固态继电器控制通断,并提取市电的过零信号,单片机采用mega48,继电器通断最小时间为10ms,通断PWM的周期为100个过零信号.

本程序采用绝对式PID算法,当温度相差很多时,采用P算法(比例算法),当到达设定温度时,采用PID算法,实际实用稳定性还可以,上下波动在0.5度以内.

#include

#include "PID.h"

//static PID sPID;

//static PID *sptr=&sPID;

TADD Tadd1;

TADD Tadd2;

void IncPIDInit(PID *sptr)

{

sptr->SumError=0;

sptr->LastError=0;

sptr->PrevError=0;

//sptr->Proportion = 900;

//sptr->Integral=20;

//sptr->Derivative = 2;

//sptr->SetPoint = 0;

}

typedef struct

{

int SetPoint; //设定目标值

int32_t SumError; //误差累计

//int Proportion;

//int Integral; //积分常数

//int Derivative; //微分常数

int LastError; //Error[-1]

int PrevError; //Error[-2]

}PID;

#de

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值