

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 增量式 PID 控制算法 Matlab 仿真程序 设一被控对象 G( s)=50/(0.125sA2+7s), 用增量式 PID 控制算法编写仿真程序 (输入分别为单位阶跃、正弦信号, 采样时间为 1ms,控制器输出限幅: -5,5,仿真曲线包括系统输出及误差 曲线,并加上注释、图例)。程序如下 clear all; close all; ts=0.001; sys=tf(50,0.125,7, 0); dsys=c2d(sys,ts,z); nu m,de n=tfdata(dsys,v); u_1=0.0;u_2=0.0; y_仁 0.0;y_2=0.0; x=0,0,0; error
2、_1=0; error_2=0; for k=1:1:1000 time(k)=k*ts; S=2; if S=1 kp=10;ki=0.1;kd=15; rin (k)=1; % Step Sig nal elseif S=2 kp=10;ki=0.1;kd=15; %Si ne Sig nal rin (k)=0.5*s in( 2*pi*k*ts); end du(k)=kp*x(1)+kd*x (2)+ki*x(3); % PID Con troller u(k)=u_1+du(k); %Restrict ing the output of con troller if u(k)=5
3、u(k)=5; end if u(k)=110 u(k)=110; end if u(k)=10 u(k)=10; end if u(k)=-10 u(k)=-10; end u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_ 仁 u(k); y_3=y_2;y_2=y_1;y_仁 yout(k); error_1=error(k); end figure(1); plot(time,ri n,b,time,yout,r); xlabel(time(s);ylabel(ri n, yout); figure (2); plot(time,u,r); xlabel(time(s
4、);ylabel(u); figure (3); plot(time,ri n-yout,r); xlabel(time(s);ylabel(error); figure(4); bode(Q,r); dcga in( Q); C 语言 PID 演示程序 #i nclude #in clude typedef struct PID double Comma nd; /输入指令 double Proportion; /比例系数 double In tegral; / 积分系数 double Derivative; / 微分系数 double preErr; / 前一拍误差 double sumE
5、rr; / 误差累积 PID; double PIDCale(PID *p,double feedback) double dErr,Err; Err=p-Comma nd-feedback; / 当前 误差 p-sumErr+=Err; / 误差累加 dErr=Err-p-preErr; / 误差微分 p-preErr=Err; return(p-Proportio n*Err / 比例项 +p-Derivative*dErr 微分项 +p-ln tegral*p-sumErr); / 积分项 void PIDI nit(PID *p) memset(p,0,sizeof(PID); /初始
6、化 typedef struct motor double lastY; double preY; double lastU; double preU; motor; void motorl nit(motor *m) memset(m,0,sizeof(motor); =%fn,k,sPID.Comma nd,y,sPID .Comma nd-y,u); u=PIDCale(&sPID,y); y=motorCal(&m_motor,u); 4 k+; prin tf(%fn,y); fclose(fp); double motorCal(motor *m,double u)
7、 double y=1.9753*m-lastY-0.9753*m-preY+0 .00003284*u+0.00006568*m-lastU+0. 00003284*m-preU; 二阶系统 m-preY=m-lastY; m-lastY=y; m-preU=m-lastU; m-lastU=u; return y; void mai n() FILE *fp=fope n(data.txt,w+); PID sPID; motor m_motor; int k=0; double u; double y=0; PIDI nit(&sPID); sPID.Proportio n=2;
8、 sPID.Derivative=1; sPID.I ntegral=0.00001; sPID.Comma nd=10; 增量式 PID 控制 C 语言代码 增量式 PID 控制 C 语言代码 / / /定义 PID 参数结构体 / / typedef struct PID /结构体定义 SetPoi nt / 设定值 iProporti on; / Proporti 比例系数 iIn tegral; / In tegral 积分系数 iDerivative; / Derivativ 微分系数 iLastError; / Error-1 前一拍误差 iPreError; / Error-2
9、前两拍误差 PID;motorI nit(&m _motor);5 while(k=1000) ? fprin tf(fp,%d 设定值=%f 被控量=%f 偏差=%f 控 制 量 mai n() PID vPID; /定义结构变量名 PIDInit ( &vPID ); /Initialize Structure vPID.Proportio n = 10; /Set PID Coefficients vPID.I ntegral = 10; / Set PID Integral vPID.Derivative = 10; / Set PID Derivative vPID.
10、 SetPoi nt = 根据实际情况设定 while(1) Verror=Measure(); 得到 AD 的输出值 Error =vPID. SetPoint- Verr or; /与设定值比较,得到误差值 tempi=PIDCal(&vPID, Error; laser.Value+=tempi; / Value 与 Num2为共同体,共同 体名 laser LASERH=laser.NumO; LASERL=laser.Num1; / / /Title:PID 参数初始化 /Descripti on: Proporti on=0 / In tegral=0 / LastErro
11、r=0 /Input: PID 的 P、I 控制常数和之前 的误差量(PID *pp) /Return: / / void PIDInit (PID *pp) /PID 参数初始化,都置 0 memset ( pp,O,sizeof(PID); memset()的函数, 它可以一字节一 字节地把整个数组设置为一个指定的 值。 / memset()函数在 mem.h头文件中 声明,它把数组的起始地址作为其第 一个参数, /第二个参数是设置数组每个字节的 值,第三个参数是数组的长度(字节数, 不是元素个数)。 /其函数原型为: void *memset(voi d*, int,unsigned);
12、 / 头文件 / / /Title:增量式 PID 算法程序 /Description:给出一个误差增量 /Input: PID 的 P、I 控制常数和之前 的误差量(PID *pp )&当前误差量(T hisError) /Return:误差增量 templ / / int PIDCal( PID *pp, int ThisError ) /增量式 PID 算法(需要控制的不是 控制量的绝对值,而是控制量的增量) int pError,dError,iError; long templ; pError = ThisError-pp-LastErr or; iError = ThisError; dError = ThisError-2*(pp-Last
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融科技助推银行网点数字化转型策略
- 香蕉购销合同协议书范本
- 砂石出售合同协议书范本
- 2025秋五年级上册语文(统编版)-【27 我的长生果】作业课件
- 煤炭产品买卖合同协议书
- 健身房协议书合同
- 购房合同转卖协议书范本
- 成都智能电表项目商业计划书模板范文
- 拟定合同签约协议书怎么写
- 铅酸蓄电池公司绿色建筑方案分析(范文)
- 部编版小学道德与法治四年级下册期末复习简答及分析题专练(含答案)
- 电子商务那些事学习通超星课后章节答案期末考试题库2023年
- 环境及理化因素损伤-冻伤
- Unit7SeasonPartALetslearn(教学设计)闽教版英语四年级下册
- 世界文化遗产武当山古建筑群的资料
- 医院医疗设备采购项目HIS系统及硬件采购投标文件
- 【橡胶工艺】-橡胶产品生产工艺规程
- 推销实战技巧与客户优秀服务技巧
- 福建新费用定额交底材料
- 器质性精神障碍患者的护理
- 木鱼湖湿地公园景观设计
评论
0/150
提交评论