欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言寫好的pid函數(shù) 溫控pid算法實(shí)例c語(yǔ)言

PID算法的C語(yǔ)言實(shí)現(xiàn)

基本流程

目前成都創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鐘山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

積分環(huán)節(jié):主要是用來(lái)消除 靜差 (系統(tǒng)穩(wěn)定后輸出值和設(shè)定值之間的差值,積分環(huán)節(jié)實(shí)際上就是偏差累積的過(guò)程,把累積的誤差加到原來(lái)系統(tǒng)上以抵消系統(tǒng)造成的靜差)

微分環(huán)節(jié):反映了偏差信號(hào)的變化規(guī)律,根據(jù)偏差信號(hào)的變化規(guī)律來(lái)進(jìn)行超前調(diào)節(jié),從而增加系統(tǒng)的快速性

對(duì)上述公式進(jìn)行離散化(采樣):兩個(gè)公式

增量型PID:

通過(guò)增量型PID公式可以看出,最終表達(dá)結(jié)果和最近三次的偏差有關(guān),最終輸出結(jié)果應(yīng)該為:

首先定義結(jié)構(gòu)變量體:

然后初始化變量

最后編寫控制算法

基本算法,沒有考慮死區(qū)問(wèn)題,沒有設(shè)定上下限

在啟動(dòng)、結(jié)束或大幅度增減設(shè)定時(shí),短時(shí)間內(nèi)系統(tǒng)輸出有很大的偏差,會(huì)造成PID運(yùn)算的積分積累,導(dǎo)致控制量超過(guò)執(zhí)行機(jī)構(gòu)可能允許的最大動(dòng)作范圍對(duì)應(yīng)的極限控制量,從而引起較大的超調(diào),甚至是振蕩。

為了克服這個(gè)問(wèn)題,引入積分分離的概念,即當(dāng)被控量和設(shè)定值偏差較大時(shí),取消積分作用;當(dāng)被控量接近設(shè)定值時(shí),引入積分控制,以消除靜差,提高精度。

abs :絕對(duì)值

令index=0使積分環(huán)節(jié)失效

積分飽和現(xiàn)象:如果系統(tǒng)存在一個(gè)方向的偏差,PID控制器的輸出由于積分作用的不斷累加而加大,從而導(dǎo)致執(zhí)行機(jī)構(gòu)達(dá)到極限位置。此時(shí)計(jì)算器輸出量超出正常運(yùn)行范圍而進(jìn)入飽和區(qū),一旦系統(tǒng)出現(xiàn)反向偏差,輸出量將逐漸從飽和區(qū)退出,進(jìn)入飽和區(qū)越深則退出飽和區(qū)時(shí)間越長(zhǎng),在這段時(shí)間里,執(zhí)行機(jī)構(gòu)仍然停留在極限位置而不隨偏差反向而立即做出相應(yīng)改變,造成性能惡化。

采用梯形積分能夠減小余差,提高精度

改變積分系數(shù),若偏差大,積分作用減弱,系數(shù)減??;若偏差小,積分作用增強(qiáng),系數(shù)增大。

變積分PID的基本思想是設(shè)法改變積分項(xiàng)的累加速度,使其與偏差大小對(duì)應(yīng)。

使整個(gè)系統(tǒng)的穩(wěn)定速度非常快

比例系數(shù)Kp的作用是加快系統(tǒng)的響應(yīng)速度提高系統(tǒng)的調(diào)節(jié)精度

積分系數(shù)Ki的作用是消除系統(tǒng)的穩(wěn)態(tài)誤差

微分系數(shù)Kd的作用是改善系統(tǒng)的動(dòng)態(tài)特性

反應(yīng)系統(tǒng)性能的兩個(gè)參數(shù)是系統(tǒng)誤差和誤差變化律

求一個(gè)單片機(jī)C語(yǔ)言編寫的PID控制程序。謝謝!!

#include stdlib.h

#include "global_varible.h"

/****************************************************************************

* 模塊名: PID

* 描述: PID調(diào)節(jié)子程序

* 采用PID-PD算法。在偏差絕對(duì)值大于△e時(shí),用PD算法,以改善動(dòng)態(tài)品質(zhì)。

* 當(dāng)偏差絕對(duì)值小于△e時(shí),用PID算法,提高穩(wěn)定精度。

* PIDout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]

*============================================================================

* 入口: 無(wú)

* 出口: 無(wú)

* 改變: PID_T_Run=加熱時(shí)間控制

*****************************************************************************/

void PID_Math(void)

{

signed long ee1; //偏差一階

//signed long ee2; //偏差二階

signed long d_out; //積分輸出

if(!Flag_PID_T_OK)

return;

Flag_PID_T_OK=0;

Temp_Set=3700; //溫度控制設(shè)定值37.00度

PID_e0 = Temp_Set-Temp_Now; //本次偏差

ee1 = PID_e0-PID_e1; //計(jì)算一階偏差

//ee2 = PID_e0-2*PID_e1+PID_e2; //計(jì)算二階偏差

if(ee1 500) //一階偏差的限制范圍

ee1 = 500;

if(ee1 -500)

ee1 = -500;

PID_e_SUM += PID_e0; //偏差之和

if(PID_e_SUM 200) //積分最多累計(jì)的溫差

PID_e_SUM = 200;

if(PID_e_SUM -200)

PID_e_SUM = -200;

PID_Out = PID_kp*PID_e0+PID_kd*ee1; //計(jì)算PID比例和微分輸出

if(abs(PID_e0) 200) //如果溫度相差小于1.5度則計(jì)入PID積分輸出

{

if(abs(PID_e0) 100) //如果溫度相差大于1度時(shí)積分累計(jì)限制

{

if(PID_e_SUM 100)

PID_e_SUM = 100;

if(PID_e_SUM -100)

PID_e_SUM = -100;

}

d_out = PID_ki*PID_e_SUM; //積分輸出

if(PID_e0 -5) //當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)積分累計(jì)限制

{

if(PID_e_SUM 150)

PID_e_SUM = 150;

if(PID_e_SUM 0) //當(dāng)前溫度高于設(shè)定溫度0.5度時(shí)削弱積分正輸出

d_out = 1;

}

PID_Out += d_out; //PID比例,積分和微分輸出

}

else

PID_e_SUM=0;

PID_Out/=100; //恢復(fù)被PID_Out系數(shù)放大的倍數(shù)

if(PID_Out 200)

PID_Out=200;

if(PID_Out0)

PID_Out=0;

if(PID_e0 300) //當(dāng)前溫度比設(shè)定溫度低3度則全速加熱

PID_Out=200;

if(PID_e0 -20) //當(dāng)前溫度高于設(shè)定溫度0.2度則關(guān)閉加熱

PID_Out=0;

Hot_T_Run=PID_Out; //加熱時(shí)間控制輸出

PID_e2 = PID_e1; //保存上次偏差

PID_e1 = PID_e0; //保存當(dāng)前偏差

}

////////////////////////////////////////////////////////////void PID_Math() end.

用C語(yǔ)言編寫的PI調(diào)節(jié)器函數(shù),采用位置式算法,求大神指教

typedef?struct{??

float?limit;????//輸出限幅??

float?target;???//設(shè)置量??

float?feedback;?//實(shí)測(cè)量??

float?Kp;???????//比例系數(shù)

float?Ki;???????//積分系數(shù)

float?Kd;???????//微分系數(shù)

float?eSum;?????//誤差積分

float?e0;???????//當(dāng)前誤差??

float?e1;???????//上一次誤差??

}PIDType;??

#define?max(a,?b)???????????(ab??a:b)??

#define?min(a,?b)???????????(ab??a:b)??

#define?range(x,?a,?b)??????(min(max(x,?a),?b))??

float?pid_pos_update(PIDType?*p)??

{??

float?pe,?ie,?de;??

float?out=0;??

//計(jì)算當(dāng)前誤差??

p-e0?=?p-target?-?p-feedback;??

//誤差積分??

p-eSum?+=?p-e0;??

//誤差微分??

de?=?p-e0?-?p-e1;??

pe?=?p-e0;??

ie?=?p-eSum;??

p-e1?=?p-e0;??

//數(shù)據(jù)增量??

out?=?pe*(p-Kp)?+?ie*(p-Ki)?+?de*(p-Kd);??

//輸出限幅??

out?=?range(out,?-p-limit,?p-limit);??

return?out;??

}

文章標(biāo)題:c語(yǔ)言寫好的pid函數(shù) 溫控pid算法實(shí)例c語(yǔ)言
網(wǎng)站網(wǎng)址:http://chinadenli.net/article42/dodegec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站App開發(fā)、網(wǎng)站維護(hù)營(yíng)銷型網(wǎng)站建設(shè)、虛擬主機(jī)外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站