資源簡介
內有pid控制源碼,可通過qt creator打開進行pid仿真測試

代碼片段和文件信息
#include?
typedef?struct?_PIDS{
????//輸入
?????float?Set0;??//set
?????float?Set_b1;??//set-1
?????float?Set_b2;??//set-2
?????float?Get0;??//get
?????float?Get_b1;??//get-1
?????float?Get_b2;??//get-2
?????//輸出
?????float?Sumput;
?????float?ek0;??//ek
?????float?ek_b1;??//ek-1
?????float?ek_b2;??//ek-2
?????float?Kp;
?????float?Ki;
?????float?Kd;
?????float?Uk;
?????float?Uk_b1;
?????float?euk0;
?????float?euk_b1;
}PIDS;
PIDS?mpid;
void?init_pid(void){
????//初始化輸入輸出
????mpid.Set0=0;
????mpid.Set_b1=0;
????mpid.Set_b2=0;
????mpid.Get0=0;
????mpid.Get_b1=0;
????mpid.Get_b2=0;
????mpid.Sumput=0;
????mpid.ek0=0;
????mpid.ek_b1=0;
????mpid.ek_b2=0;
????mpid.Uk=0;
????mpid.Uk_b1=0;
????//初始化pid系數
????mpid.Kp=0.001;
????mpid.Ki=0.01;
????mpid.Kd=0.02;
}
//位置式
float?get_uk(void){
???mpid.ek0?=?mpid.Get0?-?mpid.Set0?;
???mpid.ek_b1?=?mpid.Get_b1?-?mpid.Set_b1?;
???mpid.ek_b2?=?mpid.Get_b2?-?mpid.Set_b2?;
???mpid.Sumput?+=?mpid.ek0;
???mpid.Uk_b1?=??mpid.Uk;
???mpid.euk_b1?=?mpid.euk0;
???mpid.Uk?=?(float)(mpid.Kp?*?mpid.ek0+?mpid.Ki?*?mpid.Sumput+mpid.Kd*(mpid.ek0?-?mpid.ek_b1));
??//?mpid.Uk?=?(float)(mpid.Kp?*?mpid.ek0?+?mpid.Kd*(mpid.ek0?-?mpid.ek_b1));
???mpid.euk0?=?mpid.Uk?-?mpid.Uk_b1;
???mpid.Get_b2?=?mpid.Get_b1;
???mpid.Get_b1?=?mpid.Get0;
???mpid.Set_b2?=?mpid.Set_b1;
???mpid.Set_b1?=?mpid.Set0;
???return?mpid.euk0;
??//?return??mpid.Uk;
}
int?main(int?argc?char?*argv[])
{
????float?ij;
????float?ggk;
????init_pid();
????//超量模擬
????for(j?=299?;j?>40;j--){
????????mpid.Set0?=j;
????????printf(“jded\n“);
????????while(1){
????????????????ggk?=?get_uk();
???????????????if(ggk<-0.001){
???????????????????mpid.Get0+=0.1;
??????????????????//?printf(“j:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????}else?if(ggk>0.001){
???????????????????mpid.Get0-=0.1;
?????????????????//??printf(“j:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????}else{
?????????????????//?????printf(“j:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????????break;
???????????????}
?????}
???}
????//欠量模擬
????for(j?=40?;j?220;j++){
????????mpid.Set0?=j;
????????printf(“jded\n“);
????????while(1){
????????????????ggk?=?get_uk();
???????????????if(ggk<-0.001){
???????????????????mpid.Get0+=0.1;
??????????????????//?printf(“j2:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????}else?if(ggk>0.001){
???????????????????mpid.Get0-=0.1;
??????????????????//?printf(“j2:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????}else{
??????????????????????printf(“j2:%fmpid.Get0:%fm:%f\n“jmpid.Get0ggk);
???????????????????break;
???????????????}
?????}
???}
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????726??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\.qmake.stash
?????文件???????4491??2017-09-18?18:49??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\main.o
?????文件??????49374??2017-09-18?18:49??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\testpid.exe
?????文件??????23093??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\Makefile
?????文件??????12619??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\Makefile.Debug
?????文件??????12650??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\Makefile.Release
?????文件???????2821??2017-09-18?18:49??qt_testpid\testpid\main.c
?????文件?????????92??2017-09-18?09:18??qt_testpid\testpid\testpid.pro
?????文件??????23832??2017-09-18?18:50??qt_testpid\testpid\testpid.pro.user
?????目錄??????????0??2017-09-18?18:49??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug
?????目錄??????????0??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug\release
?????目錄??????????0??2017-09-18?09:18??qt_testpid\build-testpid-Desktop_Qt_5_7_0_MinGW_32bit-Debug
?????目錄??????????0??2017-09-18?18:50??qt_testpid\testpid
?????目錄??????????0??2017-09-18?09:18??qt_testpid
-----------?---------??----------?-----??----
???????????????129698????????????????????14
- 上一篇:基流分割程序
- 下一篇:UnityAsset_UniMerge_v1.7.5
評論
共有 條評論