pidcontroller.cpp

来自「日本人设计的电子热水瓶的全部嵌入式源码,很好的实例」· C++ 代码 · 共 42 行

CPP
42
字号
////////////////////////////////////////////////////////
//	僼傽僀儖偺愢柧丗PID 僐儞僩儘乕儖偱偺搾暒偐偟惂屼僋儔僗娭悢
////////////////////////////////////////////////////////
#include "PIDController.h"

////////////////////////////////////////////////////////
//	僋儔僗丗PID 僐儞僩儘乕儖偱偺搾暒偐偟惂屼僋儔僗
//	婡  擻丗弶婜壔
//			慜夞偺壏搙愝掕傪弶婜壔偡傞
//	堷  悢丗側偟
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID	PIDController::initControl()
{
	this->beforeTemp = this->pSensorInfo->GetTemperature();		// 悈壏庢摼
}

////////////////////////////////////////////////////////
//	僋儔僗丗PID 僐儞僩儘乕儖偱偺搾暒偐偟惂屼僋儔僗
//	婡  擻丗栚昗壏搙傑偱壛擬偡傞
//			堦夞偺惂屼娫妘挷惍偟偨傜敳偗傞
//	堷  悢丗側偟
//	栠傝抣丗栚昗壏搙偲偺嵎
////////////////////////////////////////////////////////
SHORT PIDController::control()
{

	SHORT NowTemp;

	NowTemp = this->pSensorInfo->GetTemperature();		// 悈壏庢摼
	SHORT DistanceTarget = this->targetTemperature - NowTemp;	// 栚昗壏搙偲偺嵎傪媮傔傞
	SHORT DeltaTemp = NowTemp - this->beforeTemp;		// 悈壏偺曄壔検傪媮傔傞
	this->beforeTemp = NowTemp;							// 慜夞偺悈壏傪曐懚
	SHORT ControlRatio = this->PIDControlTableObj.GetNextControl( DeltaTemp, DistanceTarget );	//惂屼検傪媮傔傞
	setControlRatio( ControlRatio );					// 惂屼検愝掕
	waitControlPeriod();								// 壏搙惂屼

	// 栚昗壏搙偲偺嵎傪曉偡
	NowTemp = this->pSensorInfo->GetTemperature();		// 悈壏庢摼
	return this->targetTemperature - NowTemp;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?