原标题:基于MATLAB的PID控制算法仿真
一.初学者的学习目的
1、Matlab/Simulink实现PID控制算法;
2、观察不同PID参数对控制性能的影响;
3、掌握PID参数整定的方法。
二、实践内容
1、在二次系统中
为被控对象,【k=(135 )】,根据阶跃输入信号,在simulink上建立PID控制系统,绘制阶跃响应曲线,记录相应的PID参数;
2、在前面的问题中,在matlab中用程序语句的方式实现问题1的PID控制算法,要求PID参数与问题1一致,并比较阶跃响应曲线,分析系统的时域特性;
3、针对问题1,采用自定义函数方式实现PID控制算法,主程序调用该函数实现PID控制,要求同2。
示例: functiony=myPID(KC、Ki、Kd、g ) )。
Kc、Ki、Kd :分别为PID比例、积分、微分系数
g :被控对象传递函数
三.结果及分析
基于simulink
a )
Kp=1时; Ki=1; Kd=1; 阶跃响应曲线
Kp=10时; Ki=1; Kd=1; 阶跃响应曲线
Kp=1; Ki=10; Kd=1; 阶跃响应曲线
2 .程序代码Kp=1; %比例
Ki=1; %积分
Kd=1; %微分
s=TF(s );
GC=(KD*s^2KP*ski )/s; %PID控制器
%g=zpk([ ) ],[-1 -1 -2],1 );
g=135/(s^2) sqrt (135 ) ) s );
step (反馈) GC*g,1 ) ) %阶跃响应
a )阶跃响应曲线
3 .函数程序代码functionmyPID(KP、Ki、Kd、g )。
s=TF(s );
GC=(KD*s^2KP*ski )/s;
step (反馈(GC * g,1 ) )
结束
主程序调用代码
num=135;
den=[1sqrt(135 )0]
g=TF(num,den ) )。
Kp=input ('请输入整数:'); %输入比率
Ki=input ('请输入整数: '; %输入点
Kd=input ('请输入整数: '; %输入微分
mypid(KP,Ki,Kd,g ) %调用函数
请注意函数名称和文件名匹配
得到的阶跃响应
责任编辑: