PIDアルゴリズムを室内温度制御C言語に適用して実現した.


最近PIDアルゴリズムを勉強しています.これに興味があります.ですから、皆さんと分かち合って、足りないところがあれば、指摘してください.ありがとうございます.
PIDアルゴリズムの基本内容はこのブログでは説明しません.インターネットには多くの資料があります.
文章のテーマはC言語でPIDアルゴリズムを実現することです.より良い理解のために、私はソフトウェアを使って室内温度制御の方式をシミュレーションして皆と分かち合います.
シミュレーション原理は簡単で、23度が人間の快適な環境だと仮定しています.夏の室外温度は37度です.室内で23度ぐらい維持したいです.だからPIDアルゴリズムで調整する必要があります.もし室内の温度が毎分0.1℃上がると仮定して、保冷剤を持っています.各パックを釈放すると5度下がることができます.製熱剤があります.同じように、各パックを放出すると5度上がることができます.
実现するのも简単です.放出当初は37度だったと仮定して、制冷剤の関数を呼び出して、部屋の温度を23度ぐらいまで下げます.PIDアルゴリズムを使って、摂氏23度にもっと接近させます.ここまで読めば、私達は考えを発散できます.実際の温度は23正負0.5度以内で、私達は加熱または冷凍を停止して、資源を節約します.温度がこの範囲を超えたら、相応の関数を呼び出します.
具体的にコードを見てください.詳細なメモを書きました.変数名と関数名は単語を意味します.
 


#include 
#include
#include
#include
#include

typedef struct PID_Value
{
	float ErrVal[3];			//      
	float Kp;					//     
	float Ki;					// integral   
	float Kd;					// derivative   
	float Integral;				//   
	float SetTemperature;
	float ActualTemperature;
}PID_ValueStr,*PID_ValueT;

PID_Value pid;

#define		outdoorTemperature		36.2
#define		TemperatureErr			3
#define		ComfortTemperature		0.5
#define		IncrementTemperature	1			//           

int lastTimeFlag = 0;

void AcquireTemperature(int hour, int minute, int second);
void PID_controlTemperature();
void Refrigeration();
void init_PID();
void IncrementPID_realize();
void PositionPID_realize();

, 。