资源简介
内有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
相关资源
- 基于8086的小型直流电机闭环调速系统
- 基于8086的小型直流电机闭环调速系统
- 一级倒立摆的PID控制设计
- 电机PID控制
- 基于仿真的PID控制器参数优化
- 51单片机PID控制含DAC0832DA转换程序完全
- 三菱PLC温度PID控制
- 基于BP神经网络的机械臂模糊自适应
- 二自由度机械臂模糊PID控制.zip
- 基于单片机的数字PID控制直流电机P
- PID控制阶跃响应源程序
- 水温的恒温控制程序——PID控制
- PID控制直流电机调速含proteus仿真
- 一种非线性PID控制器建模与仿真
- 基于LabVIEW的模拟PID控制程序
- 用labview演示PID控制规律225921
- 几种PID控制器参数整定方法的比较研
- 神经网络和PID控制
- 飞思卡尔 舵机和电机的PID控制算法
- 51单片机增量式PID控制算法
- labviewPID控制
- 温度控制PIDLabview
- 汽车仿真驾驶员模型-适合新手入门
- labvIEW PID控制程序
- PID控制系统和模糊自适应PID控制系统
- S7-200PLC的PID控制功能
- 单神经网络PID
- 模糊PID控制的一个简单
- 基于DSP的多路温度控制系统的设计
- 基于视觉的智能车模糊PID控制算法
评论
共有 条评论