精华内容
下载资源
问答
  • 2021-04-19 07:19:59

    专家PID控制系统Matlab仿真

    摘要:分析了一个速度控制器的控制仿真。其传递函数为:

    使用专家PID控制系统,输入信号为阶跃信号,取采样时间为1ms,画出阶跃响应曲线和误差变化曲线。

    0引言

    专家控制(Expert Control)的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。利用专家经验来设计PID参数便构成专家PID控制。

    典型的二阶系统单位阶跃响应误差曲线如图1、2所示。对于典型的二阶系统阶跃响应过程作如下分析,根据误差及其变化,可设计专家PID控制器,该控制器可分为五种情况进行设计。

    1设计

    根据误差及其变化,可设计专家PID控制器,该控制器可分为以下五种情况进行设计:

    (1)当时,说明误差的绝对值已经很大,不论误差变化趋势如何,都应考虑控制器的输出应按最大〔或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。此时,它相当于实施开环控制。

    (2)当时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。此时,如果,说明误差也较大,可考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小误差的绝对值。此时,如果,说明尽管误差朝绝对值增大方向变化,但误差绝对值本身并不很大,可考虑控制器实施一般的控制作用,只要扭转误差的变化趋势,使其初误差绝对值减小方向变化。

    (3)当,或时,说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。

    (4)当,时,说明误差处于极值状态。如果此时误差的

    绝对值较大,可考虑实施较强的控制作用。

    (5)当时,说明误差的绝对值很小,此时加入积分,减少稳态误差。

    2仿真图

    图1 阶跃响应曲线

    图2 误差曲线

    3程序

    %Expert PID Controller

    clear all;

    close all;

    ts=0.001;

    sys=tf(5.235e005,[1,87.35,1.047e004,0]);

    dsys=c2d(sys,ts,'z');

    [num,den]=tfdata(dsys,'v');

    u_1=0.0;u_2=0.0;u_3=0.0;

    y_1=0;y_2=0;y_3=0;

    x=[0,0,0]';

    x2_1=0;

    kp=0.6;

    ki=0.03;

    kd=0.01;

    error_1=0;

    for k=1:1:500

    time(k)=k*ts;

    rin(k)=1.0; %Tracing Jieyue Signal

    u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller

    %Expert control rule

    if abs(x(1))>0.8 %Rule1:Unclosed control firstly

    u(k)=0.45;

    elseif abs(x(1))>0.40

    u(k)=0.40;

    elseif abs(x(1))>0.20

    u(k)=0.12;

    elseif abs(x(1))>0.01

    u(k)=0.10;

    end

    if x(1)*x(2)>0|(x(2)==0) %Rule2

    if abs(x(1))>=0.05

    u(k)=u_1+2*kp*x(1);

    else

    u(k)=u_1+0.4*kp*x(1);

    end

    end

    if (x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0) %Rule3

    u(k)=u(k);

    end

    if x(1)*x(2)<0&

    更多相关内容
  • 一个专家控制系统的Matlab程序实现.pdf
  • 专家PID控制matlab程序

    2022-04-17 10:42:10
    专家PID控制是一种直接型专家控制器。 典型的二阶系统单位阶跃响应误差曲线如图2一5所示。 令e(k)表示离散化的当前采样时刻的误差值,e(k-1),e(k-2)分别表示前一个和前两个采样时刻的误差值,则有 施,相当于...

    专家PID控制matlab程序
    1 专家PID控制
    专家PID控制的实质是:基于受控对象和控制规律的各种知识,无须知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。
    典型的二阶系统单位阶跃响应误差曲线如图2一5所示。
    在这里插入图片描述
    令e(k)表示离散化的当前采样时刻的误差值,e(k-1),e(k-2)分别表示前一个和前两个采样时刻的误差值,则有
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    施,相当于实施开环控制;II,IV,VI,…区域,误差绝对值朝增大的方向变化,此时,可根据误差的大小分别实施较强或一般的控制作用,以抑制动态误差。

    2 实例状态
    求三阶传递函数的阶跃响应
    在这里插入图片描述
    其中采样时间间隔为1ms。
    在这里插入图片描述
    在这里插入图片描述
    3 仿真结果
    1)轨迹跟踪
    在这里插入图片描述
    2)实时误差
    在这里插入图片描述
    4 matlab程序

    %% 专家PID控制
    clc
    clear 
    close all;
    ts=0.001;
    
    sys=tf(5.235e005,[1,87.35,1.047e004,0]);  %Plant
    dsys=c2d(sys,ts,'z');
    [num,den]=tfdata(dsys,'v');
    
    u_1=0;u_2=0;u_3=0;
    y_1=0;y_2=0;y_3=0;
    
    x=[0,0,0]';
    x2_1=0;
    
    kp=0.6;
    ki=0.03;     
    kd=0.01;
    
    error_1=0;
    for k=1:1:500
    time(k)=k*ts;
       
    r(k)=1.0;                    %目标轨迹
    
    u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID 控制器
    
    %专家控制规则
    %规则1
    if abs(x(1))>0.8      %Rule1:Unclosed control rule
       u(k)=0.45;
    elseif abs(x(1))>0.40        
       u(k)=0.40;
    elseif abs(x(1))>0.20    
       u(k)=0.12; 
    elseif abs(x(1))>0.01 
       u(k)=0.10;   
    end   
    。。。。。。略
    

    完整程序转链接:https://mp.weixin.qq.com/s?__biz=Mzg4MTc1MjE2Mg==&mid=2247484059&idx=1&sn=3a8aba06368b667ed5e33d7ca61d3a11&chksm=cf606396f817ea800c5a11ed43ea210141e1e528f96c4e1af4c389af22d921f3fa4c54e2c565&token=1073253120&lang=zh_CN#rd

    展开全文
  • 基于自适应模糊补偿的倒立摆PD控制\基于模糊规则表的模糊PD控制
  • 以弹簧自身质量不可忽略的阻尼器系统为例,通过Matlab的Control System Toolbox讲解控制系统的仿真,设弹簧控制系统的框图如下: 取m=1,k=1,c=2。1、建立传递函数:m=1;k=1;c=2;G1=tf(1,[1,0]);H=tf(k,[m,c]);ph=...

    以弹簧自身质量不可忽略的阻尼器系统为例,通过Matlab的Control System Toolbox讲解控制系统的仿真,设弹簧控制系统的框图如下:

    0818b9ca8b590ca3270a3433284dd417.png

    取m=1,k=1,c=2。

    1、建立传递函数:

    m=1;k=1;c=2;

    G1=tf(1,[1,0]);

    H=tf(k,[m,c]);

    ph=feedback(G1,H);

    G2=tf(1,[m,c]);

    syst=G2*ph;%传递函数

    [A,B,C,D]=ssdata(syst);

    syss=ss(A,B,C,D);%或syss=ss(syst) %状态空间表达式

    syszp=zpk(syst);%零-极-增益模型

    0818b9ca8b590ca3270a3433284dd417.png

    2、系统响应

    t=0:.2:15;

    y=impulse(syss,t);%冲激响应

    figure(1)

    plot(t,y,'r'),grid

    0818b9ca8b590ca3270a3433284dd417.png

    y=step(syss,t);%阶跃响应

    figure(2)

    plot(t,y,'r'),grid

    0818b9ca8b590ca3270a3433284dd417.png

    t=0:0.01:5;%自定义输入响应

    u=sin(t);

    lsim(syss,u,t)

    %系统对由u和t描述的自定义输入信号的响应。对MIMO系统,u是一个矩阵,第i行是输人信号在T(i)时刻的值

    0818b9ca8b590ca3270a3433284dd417.png

    3、留数定理

    disp('Residue Form')

    [num,den]=tfdata(syst);

    num=num{1};den=den{1};%将元胞数组转化成向量

    [r,p,k]=residue(num,den)

    disp('hit any key to continue'),pause4、频域仿真

    w=logspace(-2,2,100);%定义频率的对数区间

    [re,im]=nyquist(syss,w);%state space形式,w可省略

    re1=re(:);im1=im(:);

    g=re1+i*im1;

    mag=20*log10(abs(g));%幅值

    phase=angle(g)*180/pi;%相角

    semilogx(w,mag,'b') %%幅值曲线

    0818b9ca8b590ca3270a3433284dd417.png

    semilogx(w,phase,'b'),grid %相角曲线

    0818b9ca8b590ca3270a3433284dd417.png

    nyquist(systf),grid %绘制奈奎斯特图,或者用plot(re1,im1)

    0818b9ca8b590ca3270a3433284dd417.png

    暂时到这吧,日后有需要再更新。。。

    展开全文
  • 1.领域:matlab,基于自适应模糊补偿PD控制算法和专家PID控制算法 2.内容:基于自适应模糊补偿的倒立摆PD控制以及专家PID控制matlab仿真 +代码操作视频 3.用处:用于基于自适应模糊补偿PD控制算法和专家PID控制...
  • 专家PID控制就是基于被控对象和控制规律的各种知识,而不需要知道被控对象的精确模型,利用专家经验来设计PID参数。 答1疑2咨3询4企q鹅q号:1762016542 3、仿真分析 %Expert PID Controller clear all; close all;...

    1、内容简介


    2、内容说明

    专家PID控制就是基于被控对象和控制规律的各种知识,而不需要知道被控对象的精确模型,利用专家经验来设计PID参数。

    3、仿真分析

    %Expert PID Controller
    clear all;
    close all;
    ts=0.001;

    sys=tf(5.235e005,[1,87.35,1.047e004,0]);
    dsys=c2d(sys,ts,'z');
    [num,den]=tfdata(dsys,'v');
    u_1=0.0;u_2=0.0;u_3=0.0;
    y_1=0;y_2=0;y_3=0;

    x=[0,0,0]';
    x2_1=0;

    kp=0.6;
    ki=0.03;     
    kd=0.01;
    Kp=0.6;
    Ki=0.03;     
    Kd=0.01;
    error_1=0;
    for k=1:1:200
    time(k)=k;
       
    rin(k)=1.0;                   %Tracing Jieyue Signal

    u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller

    %Expert control rule
    if abs(x(1))>0.8      %Rule1:Unclosed control firstly
       u(k)=0.45;
    elseif abs(x(1))>0.40        
       u(k)=0.40;
    elseif abs(x(1))>0.20    
       u(k)=0.12; 
    elseif abs(x(1))>0.01 
       u(k)=0.10;   
    end   

    if x(1)*x(2)>0|(x(2)==0)       %Rule2
       if abs(x(1))>=0.05
          u(k)=u_1+2*kp*x(1);
       else
          u(k)=u_1+0.4*kp*x(1);
       end
    end
                                                                                                                                                                                                                                                                                                                                                                                                                  
    if (x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0)   %Rule3
        u(k)=u(k);
    end

    if x(1)*x(2)<0&x(2)*x2_1<0   %Rule4
       if abs(x(1))>=0.05
          u(k)=u_1+2*kp*error_1;
       else
          u(k)=u_1+0.6*kp*error_1;
       end
    end

    if abs(x(1))<=0.001   %Rule5:Integration separation PI control
       u(k)=0.5*x(1)+0.010*x(3);
    end

    %Restricting the output of controller
    if u(k)>=10
       u(k)=10;
    end
    if u(k)<=-10
       u(k)=-10;
    end

    %Linear model
    yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;
    error(k)=rin(k)-yout(k);

    %----------Return of PID parameters------------%
    u_3=u_2;u_2=u_1;u_1=u(k);
    y_3=y_2;y_2=y_1;y_1=yout(k);
       
    x(1)=error(k);                % Calculating P
    x2_1=x(2);
    x(2)=(error(k)-error_1)/ts;   % Calculating D
    x(3)=x(3)+error(k)*ts;        % Calculating I

    error_1=error(k);
    end
    figure(1);
    plot(time,rin,'b',time,yout,'r');
    xlabel('time(s)');ylabel('rin,yout');

    sys=tf(5.235e005,[1,87.35,1.047e004,0]);
    PID = tf([kd kp ki],[1 0]);
    sys_1 = feedback(sys*PID,1);
    figure
    step(sys_1,200*ts)
    % figure(2);
    % plot(time,rin-yout,'r');
    % xlabel('time(s)');ylabel('error');

     


    4、参考论文

    展开全文
  • 代码清晰有详细注释!可直接运行! 通过matlab模拟仿真PID控制系统和专家PID控制系统,对各参量单独变化对系统控制作用的影响进行讨论,得出结论。专家PID程序五条规则与算法五种情况对应。
  • 基于MATLAB的温室温度模糊专家控制仿真研究.pdf
  • PID专家控制matlab仿真

    万次阅读 多人点赞 2019-09-10 18:34:50
    PID专家控制matlab仿真 一、实验目的   使用matlab针对某二阶或三阶系统,结合专家控制规则,设计相应的专家PID控制器,使得其闭环系统能快速跟踪阶跃信号。 (1)画出闭环输出响应,误差响应曲线; (2)画出...
  • 本科毕业论文 设计 论文 设计题目 专家PID 控制在快速系统中的仿真及应用 学 院 专 业 班 级 学 号 学生姓名 指导教师 2010 年 06 月 07 日 贵州大学本科毕业论文 设计 诚信责任书 本人郑重声明本人所呈交的毕业论文...
  • 专家PID控制Matlab仿真

    千次阅读 2021-01-22 13:11:52
    专家PID控制专家PID控制不同于常规意义下的PID控制,是专家经验与PID控制算法的结合,是基于PID控制器的智能化优化。 专家PID控制就是基于被控对象和控制规律的各种知识,而不需要知道被控对象的精确模型,利用...
  • 倒立摆稳定的PID控制 自营模糊补偿的倒立摆PD控制 模糊自适应控制
  • 基于 MA TLAB 的空调系统专家PID 控制的建模与仿真 天津大学 曹国庆 ☆ 涂光备 安大伟 娄承芝 摘要 以一个典型的空调系统为研究对象 ,建立了空调房间的简化数学...关键词 空调系统 专家控制 PID 控制 计算机仿真 ...
  • 基于matlab的PID和专家PID控制,用于工业控制过程
  • 专家PID的控制算法-MATLAB实现

    千次阅读 2020-08-07 10:09:20
    PID专家控制的实质,是基于受控对象和控制规律的各种知识,利用专家经验设计一些规则并结合的PID参数进行控制,无需知道被控对象的精确模型。 控制对象设置 采用专家控制对一个3阶的传递函数进行控制,Gp(s)=...
  • 研制出一种低成本、高可靠性和高稳定性的倒立摆硬件系统,同时提出一种专家模糊控制策略以及基于Matlab的实时控制途径。采用模糊组合变量来减少模糊规则数,并根据摆角来选择不同模糊规则库从而提高控制性能。用...
  • 一个专家控制系统的Matlab程序实现梁洁【期刊名称】《微计算机信息》【年(卷),期】2007(000)05X【摘要】本文首先简述基于粗集方法的专家控制系统的基本构成、知识表达方式及学习推理方法,通过研究导师的知识与学习者...
  • 其次,针对电加热炉炉温控制系统的非线性、迟滞性等问题,传统PID控制器存在参数整定困难等问题,搭建普通PID和专家PID控制器两种控制器的模型,采用MATLAB建模仿真分析,利用采用本文的专家系统PID模型进行仿真分析...
  • 先进PID控制MATLAB仿真

    2018-07-04 09:26:18
    全书共分14章,包括基本的PID控制、PID控制器的整定、时滞系统的PID控制、基于微分器的PID控制、基于观测器的PID控制、自抗扰控制器及其PID控制、PD鲁棒自适应控制、模糊PD控制专家PID控制、神经PID控制、基于遗传...
  • 模糊控制matlab主程序

    2017-09-13 11:24:36
    这种控制方法既保持了基于规则方法的价值和用模糊集处理带来的灵活性,同时把专家系统技术的表达与利用知识的长处结合起来,能够处理更广泛的控制问题。模糊控制以现代控制理论为基础,同时与自适应控制技术、人工...
  • 资源名:matlab仿真 无刷直流电机双闭环控制系统 程序源码.zip 资源类型:程序源代码 源码说明: 基于matlab的无刷直流电机双闭环控制系统仿真程序,包含转速外环、电流内环,包含完整源码和注释 非常适合借鉴学习 ...
  • 第二章 专家控制 第三章 模糊控制理论基础 第四章 模糊控制 第五章 自适应模糊控制 第六章 神经网络基础 第七章 典型神经网络 第八章 高级神经网络 第九章 神经网络控制 第十章 遗传算法
  • 专家PID和模糊PID控制;神经PID控制;遗传算法PID控制;多变量PID控制;几种先进的PID控制;灰色PID控制;伺服系统PID控制;机器人的PID控制;PID实时控制。 随书光盘以前好象有了,但电子书好象还没有,...
  • 包括基本的PID控制、PID控制器的整定、时滞系统PID控制、基于微分器的PID控制、基于观测器的PID控制、自抗扰控制器及其PID控制、PD鲁棒自适应控制专家PID控制和模糊PD控制、神经网络PID控制、基于差分进化的PID...
  • 毕业设计基于Matlab专家PID控制在快速系统中的仿真及应用.doc
  • Completed has driven the type hydraulic servo straight the design, used Matlab for the system to make the step signal response, as well as different frequency, different inertial load sine signal ...
  • 模糊PID控制程序源代码算法Matlab/STM32/simulink/LabVIEW 1、基于Matlab的模糊自适应PID控制器仿真研究源代码(传统PID在对象变化时,控制器 的参数难以自动|但整。将模糊控制与PID控制结合,利用模糊推理方法实现...
  • 模糊控制系统的MATLAB实现

    千次阅读 2021-04-24 13:51:28
    基于MATLAB 的模糊控制器设计及仿真专业:学号:姓名:控制科学与工程 [1**********]7 许兴培摘 要在深入了解系统的基础上针对传统控制精度不高、系统稳定性差的问题进行创新和探索研究详细介绍了模糊控制原理和实现...
  • matlab模糊控制工具箱使用和模糊控制pid实例参考

    万次阅读 多人点赞 2019-02-28 13:26:17
    Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,312
精华内容 1,324
关键字:

matlab专家控制

matlab 订阅