• matlab练习程序(ZN法整定)


    PID调参时可以先利用Z-N法估算一个大概的量,然后再精确调参。

    Z-N法可以形象的用以下图表表示:

    其中切线是响应曲线转折点切线,即过曲线斜率最大点的切线。

    K是系统开环稳态响应。

    L是转折点切线和0值交点对应的时刻。

    L + T是转折点切线和稳态响应交点对应的时刻。

    表中的alpha = L / T。

    matlab代码如下:

    clear all;close all;clc;
    
    ts = 0.02;
    t = 0:ts:10;
    
    K = 0.5;
    sys = tf(1,[2 3 2]);        %plant传递函数
    c = step(sys,t);
    subplot(3,1,1);
    plot(t,c);
    hold on;
    plot([0 10],[K K],'r-.');
    plot([0 10],[0 0],'r-.');
    
    %微分求得斜率最大值及切线
    dc = diff(c);
    [k,max_x] = max(dc);
    max_y = c(max_x);
    max_x = (max_x-1)*ts;
    k = k/ts;
    b = max_y - max_x*k;
    plot(max_x,max_y,'o');
    
    x = 0:0.01:3;
    y = x*k+b;
    plot(x,y);
    
    %根据切线和两条水平线计算T和tao
    MaxT = (K-b)/k;
    tao = (0-b)/k;
    plot(MaxT,K,'ro');
    plot(tao,0,'ro');
    T = MaxT-tao;
    
    %画出z-n法整定结果
    Kp = 1.2*(T/tao);
    Ti = 2*tao;
    Td = 0.5*tao;
    s = tf('s');
    G = Kp*(1+1/(Ti*s)+Td*s);
    subplot(3,1,2);
    step(feedback(G*sys,1));
    
    %利用pidtune整定
    C0 = pidstd(1,1,1); 
    C = pidtune(sys,C0);
    s = tf('s');
    G = C.Kp*(1+1/(C.Ti*s)+C.Td*s);
    subplot(3,1,3);
    step(feedback(G*sys,1));

    结果如下:

  • 相关阅读:
    xilinx下载器,JTAG-HS3和Platform Cable USB II 速度对比
    LATTICE下载器HW-USBN-2B使用说明
    altera下载器高速版本 PL-USB2-BLASTER 使用说明
    FPGA流程设计
    关于fpga的后仿真重要性
    使用MyBatis分页插件PageHelper遇到的问题
    java 面试题总结01
    netty Demo
    netty 概念篇
    pom.xml 简述
  • 原文地址:https://www.cnblogs.com/tiandsp/p/16862590.html
Copyright © 2020-2023  润新知