zoukankan      html  css  js  c++  java
  • 《机电传动控制》----直流电机调速仿真作业

     

    老师的controller中只加入了比例环节,为了获得更好的调节性能,加入了积分环节和微分环节,即采用PID调节

    一、PID调节三个参数的作用:

    1.比例系数Kp的作用是加快系统的响应速度,提高系统的调节精度。Kp越大,系统的响应速度越快,系统的调节精度越高,但是容易产生差调,甚至会使系统不稳定。Kp取值过小,则会降低调节精度,使响应速度缓慢,从而延长调节时间,是系统静态、动态特性变差; 

     

    2.积分作用系数Ki的作用是消除系统的稳态误差。Ki越大,系统的静态误差消除的越快,但是Ki过大,在响应过程的初期会产生积分饱和的现象,从而引起响应过程的较大超调。若Ki过小,将使系统静态误差难以消除,影响系统的调节精度;

     

    3.微分系数Kd的作用是改善系统的动态特性,其作用主要是在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。但是kd过大,会使响应过程提前制动,从而延长调节时间,而且会降低系统的抗干扰性。

    二、PID算法的离散化

    假设采样间隔为T,则在第KT时刻:偏差err(K)=rin(K)-rout(K);

    积分环节用加和的形式表示,即err(K)+err(K+1)+……;

    微分环节用斜率的形式表示,即[err(K)-err(K-1)]/T

    三、controller代码

    block Controller 
    
    InPort command(n=1);
    InPort feedback(n=1);
    OutPort outPort(n=1);
    
    Real error;
    Real error_i;
    Real error_d;
    Real pout;
    parameter Real Kp=5;
    parameter Real Ki=0.1;
    parameter Real Kd=25;
    parameter Real Max_Output_Pos = 10;
    parameter Real Max_Output_Neg = -10;
    
    algorithm
    
    error := command.signal[1] - feedback.signal[1];
    error_i:=error_i+error;
    error_d:=error-pre(error);
    pout := Kp * error+Ki*error_i+Kd*error_d;
    
    if pout > Max_Output_Pos then
    outPort.signal[1] := Max_Output_Pos;
    elseif pout < Max_Output_Neg then
    outPort.signal[1] := Max_Output_Neg;
    else 
    outPort.signal[1] := pout;
    end if;
    
    end Controller;
    

    四、仿真图像

    五、仿真结果:

    上升时间tp=0.0329s,超调量Mp=1.43%,响应良好。

  • 相关阅读:
    《构建之法》心得体会
    简单工厂模式加减乘除器
    个人简介
    单元测试和代码覆盖率工具的使用
    Bookstore系统缺陷报告
    《构建之法读后感》
    3137102432_ 施少兵_ lab3
    3137102432_施少兵_实验2
    个人简介
    第六次作业:购物系统缺陷
  • 原文地址:https://www.cnblogs.com/wuchuan/p/5567034.html
Copyright © 2011-2022 走看看