首页 > 编程知识 正文

pid控制的matlab仿真程序(matlab控制算法仿真)

时间:2023-05-06 16:25:54 阅读:74121 作者:2118

原标题:基于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 ) %调用函数

请注意函数名称和文件名匹配

得到的阶跃响应

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。