精华内容
下载资源
问答
  • PID控制程序 matlab

    2018-01-14 14:47:34
    最近在学习PID的一些知识,只是matlab的PID控制程序代码
  • 先进PID控制及其MATLAB仿真-matlab PID控制程序.rar 各种PID控制程序
  • 先进PID控制Matlab仿真自带源程序-先进PID控制Matlab仿真源程序.rar 附件是先进PID控制Matlab仿真自带源程序,希望对想用matlab进行PID控制仿真朋友有帮助。使用时对照书本进行适当修改即可。
  • matlab的pid控制程序

    2008-10-24 11:35:14
    pid控制相关程序,其中包括经典PID控制,模糊控制等等
  • MATLAB的pid控制

    2018-03-21 22:51:42
    使用MATLABcell2mat矩阵制作pid控制程序,可以供初学者参考一下,希望对您有所帮助,不喜勿喷
  • 该压缩文件包含先进PID控制的MATLAB仿真全部程序(刘金坤),书中也有代码但是仿真起来不方便,我特意找到了源代码文件这里提供给大家有兴趣可以下载看看。
  • 基于小脑模型自适应pid控制matlab程序
  • 利用遗传算法优化pid控制器三个参数的matlab程序 利用遗传算法优化pid控制器三个参数的matlab程序
  • 一、初学者学习目的1、利用Matlab/Simulink实现PID控制算法;2、观察不同PID参数对控制性能的影响;3、掌握PID参数整定的方法。...2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PI...

    一、初学者学习目的

    1、利用Matlab/Simulink实现PID控制算法;

    2、观察不同PID参数对控制性能的影响;

    3、掌握PID参数整定的方法。

    二、实践内容

    1、以二阶系统

    为被控对象,【K=(135)】,在阶跃输入信号的作用下,用simulink搭建PID控制系统,并绘制阶跃响应曲线,记录相应的PID参数;

    22476d8e6ab04c28833835e8bf2a4470.png

    2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PID参数与题1一致,对比阶跃响应曲线),并分析系统的时域特性;

    3、针对题1,用自定义函数的方式实现PID控制算法,主程序调用该函数实现PID控制,要求同2。

    例如:function y=myPID(Kc, Ki, Kd, G)

    Kc, Ki, Kd:分别为PID的比例,积分和微分系数

    G:被控对象传递函数

    三、结果以及分析

    1.基于simulink

    51acdbca7dcf861956d7d1140169036e.png

    a)

    当Kp=1;Ki=1;Kd=1;阶跃响应曲线

    42cc5d051a9bac834ed2dbf00b8f0eba.png

    当Kp=10;Ki=1;Kd=1;阶跃响应曲线

    800a10647baf58142c8c8ba6337e24e2.png

    Kp=1;Ki=10;Kd=1;阶跃响应曲线

    b2008853e1e917cc653066a41babe265.png

    2.程序代码

    Kp=1; %比例
    Ki=1; %积分
    Kd=1; %微分
    s=tf('s');
    Gc=(Kd*s^2+Kp*s+Ki)/s; %PID控制器
    %G=zpk([],[-1 -1 -2],1);
    G=135/(s^2+(sqrt(135))*s);
    step(feedback(Gc*G,1)) %阶跃响应

    a) 阶跃响应曲线

    8d2013d6cf0f4271bc55a4cd788068f1.png

    3.函数程序代码

    function myPID(Kp,Ki,Kd,G)
    s=tf('s');
    Gc=(Kd*s^2+Kp*s+Ki)/s;
    step(feedback(Gc*G,1))
    end

    主程序调用代码

    num=135;
    den=[1 sqrt(135) 0];
    G=tf(num,den)
    Kp=input('请输入一个整数:'); %输入比例
    Ki=input('请输入一个整数:'); %输入积分
    Kd=input('请输入一个整数:'); %输入微分
    myPID(Kp,Ki,Kd,G) %调用函数

    003a3e5b0fc82cae70e7124c6925d1fa.png

    注意函数名字和文件名一致

    得到的阶跃响应

    6342ebdbce57cce34220a80468fdda66.png

    展开全文
  • 基于粒子群算法的PID控制MATLAB程序
  • 线性时变系统PID控制的matlab仿真程序,包括两个simulink文件和一个m文件以及一个PDF文件
  • 一、初学者学习目的1、利用Matlab/Simulink实现PID控制算法;2、观察不同PID参数对控制性能的影响;3、掌握PID参数整定的方法。...2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PID参数与题...

    一、初学者学习目的

    1、利用Matlab/Simulink实现PID控制算法;

    2、观察不同PID参数对控制性能的影响;

    3、掌握PID参数整定的方法。

    二、实践内容

    1、以二阶系统

    为被控对象,【K=(135)】,在阶跃输入信号的作用下,用simulink搭建PID控制系统,并绘制阶跃响应曲线,记录相应的PID参数;

    865b89700733d651f2f4840300e4dd46.png

    2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PID参数与题1一致,对比阶跃响应曲线),并分析系统的时域特性;

    3、针对题1,用自定义函数的方式实现PID控制算法,主程序调用该函数实现PID控制,要求同2。

    例如:function y=myPID(Kc, Ki, Kd, G)

    Kc, Ki, Kd:分别为PID的比例,积分和微分系数

    G:被控对象传递函数

    三、结果以及分析

    1.基于simulink

    b2125615e14f5287dc08bc85bc9d4bda.png

    a)

    当Kp=1;Ki=1;Kd=1;阶跃响应曲线

    61d0019d8485d60c43d1db066a57fb20.png

    当Kp=10;Ki=1;Kd=1;阶跃响应曲线

    faef341628bdb0bce6a186d6c69108c8.png

    Kp=1;Ki=10;Kd=1;阶跃响应曲线

    630841ef89bd406bf85a3275c9fc0dc7.png

    2.程序代码

    Kp=1; %比例Ki=1; %积分Kd=1; %微分s=tf('s');Gc=(Kd*s^2+Kp*s+Ki)/s; %PID控制器%G=zpk([],[-1 -1 -2],1);G=135/(s^2+(sqrt(135))*s);step(feedback(Gc*G,1)) %阶跃响应

    a) 阶跃响应曲线

    213d33850c251961b64179a3876f5966.png

    3.函数程序代码

    function myPID(Kp,Ki,Kd,G) s=tf('s');Gc=(Kd*s^2+Kp*s+Ki)/s;step(feedback(Gc*G,1))end

    主程序调用代码

    num=135;den=[1 sqrt(135) 0];G=tf(num,den)Kp=input('请输入一个整数:'); %输入比例Ki=input('请输入一个整数:'); %输入积分Kd=input('请输入一个整数:'); %输入微分myPID(Kp,Ki,Kd,G) %调用函数
    520f110ef96abc4f4cb694cdbec43d5f.png

    注意函数名字和文件名一致

    得到的阶跃响应

    52c904c01617de8b6444ee5035251975.png
    展开全文
  • 先进PID控制及其MATLAB仿真经典书籍程序-先进PID4.rar 书中介绍了模糊结合PID,神经网络结合的PID程序很详细,值得深入学习
  • 先进PID控制及其MATLAB仿真经典书籍程序-先进PID5.rar 书中介绍了模糊结合PID,神经网络结合的PID程序很详细,值得深入学习
  • 先进PID控制及其MATLAB仿真经典书籍程序-先进PID3.rar 书中介绍了模糊结合PID,神经网络结合的PID程序很详细,值得深入学习
  • 先进PID控制及其MATLAB仿真经典书籍程序-先进PID2.rar 书中介绍了模糊结合PID,神经网络结合的PID程序很详细,值得深入学习
  • 先进PID控制及其MATLAB仿真经典书籍程序-先进PID1.rar 书中介绍了模糊结合PID,神经网络结合的PID程序很详细,值得深入学习
  • 先进PID控制的相关matlab程序,刘金琨最新版
  • 【项目代码】一级倒立摆系统的PID控制MATLAB仿真程序,PID控制为双闭环控制,有较好的控制效果.rar
  • 对传统PID进行重新认识 提出有自干扰控制 基于CMAC与PID并行控制的算法 神经网络自适应控制PID复合控制应用
  • 一、初学者学习目的1、利用Matlab/Simulink实现PID控制算法;2、观察不同PID参数对控制性能的影响;3、掌握PID参数整定的方法。...2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PID参数与题...

    一、初学者学习目的

    1、利用Matlab/Simulink实现PID控制算法;

    2、观察不同PID参数对控制性能的影响;

    3、掌握PID参数整定的方法。

    二、实践内容

    1、以二阶系统

    为被控对象,【K=(135)】,在阶跃输入信号的作用下,用simulink搭建PID控制系统,并绘制阶跃响应曲线,记录相应的PID参数;

    3967c8c6e1be84cbcb6f50319b212eeb.png

    2、在上题中,在matlab中用程序语句的方式实现题1中的PID控制算法(要求PID参数与题1一致,对比阶跃响应曲线),并分析系统的时域特性;

    3、针对题1,用自定义函数的方式实现PID控制算法,主程序调用该函数实现PID控制,要求同2。

    例如:function y=myPID(Kc, Ki, Kd, G)

    Kc, Ki, Kd:分别为PID的比例,积分和微分系数

    G:被控对象传递函数

    三、结果以及分析

    1.基于simulink

    33e2045671c0d79ecb66b07b1182c5f8.png

    a)

    当Kp=1;Ki=1;Kd=1;阶跃响应曲线

    cd538d74f03e61438c80b4c6daea07fd.png

    当Kp=10;Ki=1;Kd=1;阶跃响应曲线

    33aca606a612aec74a26b297c82e76ce.png

    Kp=1;Ki=10;Kd=1;阶跃响应曲线

    2f0d9d7766d73be9c56b045021bd0248.png

    2.程序代码

    Kp=1; %比例Ki=1; %积分Kd=1; %微分s=tf('s');Gc=(Kd*s^2+Kp*s+Ki)/s; %PID控制器%G=zpk([],[-1 -1 -2],1);G=135/(s^2+(sqrt(135))*s);step(feedback(Gc*G,1)) %阶跃响应

    a) 阶跃响应曲线

    b98fb03ce544ecea2e7b308cf8d9526e.png

    3.函数程序代码

    function myPID(Kp,Ki,Kd,G) s=tf('s');Gc=(Kd*s^2+Kp*s+Ki)/s;step(feedback(Gc*G,1))end

    主程序调用代码

    num=135;den=[1 sqrt(135) 0];G=tf(num,den)Kp=input('请输入一个整数:'); %输入比例Ki=input('请输入一个整数:'); %输入积分Kd=input('请输入一个整数:'); %输入微分myPID(Kp,Ki,Kd,G) %调用函数
    be9762a0c794e7bc31ba0954ede8aab5.png

    注意函数名字和文件名一致

    得到的阶跃响应

    6327ceac34c20d0be784c8a5bbdafe7c.png
    展开全文
  • 本文主要研究的课题是:炉温系统的PID控制器设计研究 ,并且在MATLAB的大环境下进行模拟仿真。 (1)第一章 介绍课题的研究背景、意义以及发展现状。 (2)第二章 建立炉温系统数学模型 (3)第三章 常规PID控制和对常规...
  • 文件中包含了带滤波器的PID控制算法PDF+MATLAB程序,全部测试通过
  • 先进PID控制及其MATLAB仿真,PID经典程序,工程上能直接能用
  • 基于matlab程序PID控制算法理解

    万次阅读 多人点赞 2016-12-23 11:57:23
    %用增量式PID控制算法编写仿真程序 %(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5], % 仿真曲线包括系统输出及误差曲线,并加上注释、图例)。 clear all; close all; ts=0.001; %采样...



    %设一被控对象G(s)=50/(0.125s^2+7s),
    %用增量式PID控制算法编写仿真程序
    %(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5],
    %  仿真曲线包括系统输出及误差曲线,并加上注释、图例)。
    
    clear all;
    close all; 
    ts=0.001;                 %采样时间
    sys=tf(50,[0.125,7, 0]); %tf是传递函数  即被控对象函数G();
    dsys=c2d(sys,ts,'z');    %把控制函数离散化
    [num,den]=tfdata(dsys,'v');% 离散化后提取分子、分母  
    u_1=0.0;
    u_2=0.0;
    y_1=0.0;
    y_2=0.0;
    x=[0,0,0]';
    error_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;             %初始化PID  
        rin(k)=1;                       %Step Signal 
    elseif S==2
        kp=10;ki=0.1;kd=15;             
        rin(k)=0.5*sin(2*pi*k*ts);       %Sine Signal     即实际输入    
    end 
    du(k)=kp*x(1)+kd*x(2)+ki*x(3);      %PID Controller   控制系数  
    u(k)=u_1+du(k);                     %Restricting the output of controller
    if u(k)>=5       
       u(k)=5;
    end
    if u(k)<=-5
       u(k)=-5;
    end
    %Linear model
    yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;          %实际输出
    error(k)=rin(k)-yout(k);                                       %Return of parameters 误差
    u_2=u_1;                                                       %保存上上次输入   为下次计算
    u_1=u(k);                                                      %保存上一次控制系数   为下次计算
    y_2=y_1;                                                       %保存上上次次输出   为下次计算
    y_1=yout(k);                                                   %保存上一次输出   为下次计算
    x(1)=error(k)-error_1;                                         %Calculating P
    x(2)=error(k)-2*error_1+error_2;                               %Calculating D
    x(3)=error(k);                                                 %Calculating I 
    error_2=error_1;                    
    error_1=error(k);                    
    end
    figure(1);
    plot(time,rin,'b',time,yout,'r');                        %输入 和实际控制输出
    xlabel('time(s)'),ylabel('rin,yout'); 
    figure(2);
    plot(time,error,'r')                                     %输入与输出误差输出曲线
    xlabel('time(s)');ylabel('error');
    


    3.1 建立数学建模

      设被控对象等效传递函数为

    3.2 仿真建模(略)


    3.3 仿真实验

      在传统的PID 调节器中,参数的整定问题是控制面临的最主要的问题,控制系统的关键之处便是将Kp、Ti、Td三个参数的值最终确定下来。而在工业过程控制中首先需要对PID 控制中三参量对系统动态性的影响进行实际深入地了解,才能确定怎样将三参数调节到最佳状态。在本实验中,对各参量单独变化对系统控制作用的影响进行讨论,其中在对一个参量变化引发的影响进行讨论时,需要将其余两个参数设定为常数。

      3.3.1 P 控制作用分析

      分析比例控制作用。设Td= 0、Ti=∞、Kp= 3 ~ 10.输人信号阶跃函数,分别进行仿真,如图3 所展示的系统的阶跃响应曲线。

      图3 显示的仿真结果表明:系统的超调量会随着Kp值的增大而加大,系统响应速度也会会随Kp值的增大而加快。但是系统的稳定性能会随着Kp的增大而变差。

      图3 单闭环调速系统P控制阶跃响应曲线

      3.3.2 比例积分控制作用的分析

      设比例积分调节器中Kp= 1,讨论Ti= 0.01 ~ 0.05 时。输人信号阶跃函数,分别进行仿真,如图4 所展示的系统的系统的阶跃响应曲线。

      图4 单闭环调速系统PI控制阶跃给定响应曲线

      系统的超调量会随着Ti值的加大而减小,系统响应速度随着Ti值的加大会略微变慢。

      3.3.3 微分调节作用的分析

      设Kp= 1、Ti= 0.01,讨论Td= 10 ~ 100 时对系统阶跃响应曲线的影响。输人信号阶跃函数,分别进行仿真,如图5 所展示的系统的阶跃响应曲线。

      图5 单闭环调速系统PID控制阶跃给定响应曲线

      图5 所显示的仿真结果表明:根据单闭环调速系统的参数配合情况,起始上升段呈现较尖锐的波峰,Kp= 1、Ti= 0.01不变时,随着Td值的加大,闭环系统的超调量增大,响应速度变慢。

      4 .结论

      (1)对于PID 参数采用MATLAB 进行整定和仿真,使用起来不仅快捷、方便,而且更为直观,同时也避免了传统方法反复修改参数调试。

      (2)系统的响应速度会随Kp值的增大而加快,同时也有助于静差的减小,而Kp值过大则会使系统有较大超调,稳定性变坏;此外,系统的动作会因为过小的Kp值减慢。

      (3)超调的减小、振荡变小以及系统稳定性的增加都取决于积分时间Ti的增大,但是系统静差消除时间会因为Ti的增大而变长。

      (4)增大微分时间Td对于系统的稳定性、系统响应速度的加快以及系统超调量的减小都会有所帮助。但是如果Td过大,则会使得调节时间较长,超调量也会增大;如果Td过小,同样地也会发生以上状况。

      (5)总之PID 参数的整定必须考虑在不同时刻三个参数的作用以及彼此之间的作用关系。


    (1)
    确定比例系数Kp
    确定比例系数Kp时,首先去掉PID积分项和微分项,可以令Ti=0Td=0,使之成为
    纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。
    (2)
    确定积分时间常数Ti
    比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。
    (3)
    确定微分时间常数Td
    微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。
    (4)
    系统空载、带载联调
    PID参数进行微调,直到满足性能要求。

    展开全文
  • 倒立摆稳定的PID控制 自营模糊补偿的倒立摆PD控制 模糊自适应控制
  • PID程序-先进pid控制及其matlab仿真.part6.rar 刘金琨编著《先进PID控制及其MATLAB仿真》随书光盘程序

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 279
精华内容 111
关键字:

matlab的pid控制程序

matlab 订阅