首页 > 代码库 > series compensator 串联校正 自动控制原理实验

series compensator 串联校正 自动控制原理实验

series compensator




最好看过
Introduction to lead/leg compensator
再看这个串联校正的笔记blog


通过波特图校正系统





校正系统就会有对系统的期望要求。图中对系统的期望是斜坡输入的稳态误差ess < 0.02 相角裕度是48度








      第一步是系统的定型(确定好系统的阶次),阶次太低是无法满足稳态误差的要求的,通过过多的增加积分环节,提高系统阶次也不好,阶次太高,系统复杂化,不便于处理.要知道,高阶系统都是会想尽办法降阶到二阶来进行系统分析的。


         第二步是满足系统的稳态误差,确定比例放大系数K,图中算出是K>49即可,douglas(vedio maker)取了50

 

           第三步是根据原传递函数画出bode plot,为满足系统的相角裕度,构造compensator








左图是典型的超前校正环节的bode plot,右图是通过加上这个校正环节后,传递函数的bode plot可能会变成什么样子






             可以看出超前校正在gain crossover点对应的频率处,增加了相角的同时也增加了频率响应增益。这是不可避免的,但是可以让增益受影响小一点。









         上面给出了lead compensator的相关系数计算公式,为此我还小郁闷了一会儿。。。不知道那个theta max是怎么算出来的
.这里谢谢峰哥,嘿嘿,和胡寿松打的交道太少,你比我多。



           第五版 胡寿松 自动控制原理 page 249~250 有讲,部分截屏,其余的细节自己翻书吧,其实感觉意义不大,因为我现在都已经记得这个公式了。。。下面证明的很细了











                  注意!最大相角记得加上15度的附加值,这是因为gain crossover point 由于增加的compensator右移了,于是对应的相角比实际的theta max要小。
其实,都不用想太多,峰哥给出的经验就是统统60°哈哈













自控实验的时候,实验书上用了所谓的“相消法”
上次做实验的blog
这个link的blog里面有电路仿真和“相消法”的步骤,这里不再赘述。





下面我用bode plot的方法来校正



校正对象:







惨不忍睹的单位阶跃响应,超调超过了60%,稳定时间长达4s






可以看出相角裕度只有16°。。。不够啊,45°是起码的要求





 
(1)超调量不超过 25%

(2)调节时间(过渡过程时间)1 s






         实验指导书上的要求是25%,这里我把要求再严格一下,不能超过10%,于是阻尼 epsilon 取 0.71要求的稳定时间有了,于是角频率可以求出,是Wn = 4/(epsilon*1) =4/(0.71*1) = 5.6338





根据之前求系数的公式:




去theta max = 60°可以求得

系数a2 等于13.9
于是tao = 1/(Wn*sqrt(a2)) = 0.0474



于是compensator就构造好了





compensated_closed_sys =
 
               3.266 s + 5
  -------------------------------------
  0.0047 s^3 + 0.1094 s^2 + 3.466 s + 5

最后的校正后的闭环系统传递函数如上!



最后系统的阶跃响应的比较图






%% ****************************************************************
% Series compensator demonstration
% Code writer : EOF
% Code date : 2014.05.27
% e-mail : jasonleaster@gmail.com
%    If you have any question about this code, you could touch me by e-mail.
% I glad to answer your question and study adaptive control together. Thank
% you.
% ****************************************************************************

clear all
clc

original_open_sys = tf([5],[0.1 0.2 0]);

original_closed_sys = feedback(original_open_sys,1);

compensator = tf([13.9*0.047 1],[0.047 1]);

compensated_open_sys = compensator * original_open_sys;

compensated_closed_sys = feedback(compensated_open_sys,1);

figure(1);
hold on;
step(original_closed_sys);
step(compensated_closed_sys);
grid on;
title('The different response between the original closed sytem and the complendted closed system');
legend('original closed system','compensated closed system');




















《The tower of babel》
Pieter Bruegel the Elder