自动控制原理课程设计本课程设计的目的着重于自动控制基本原理与设计方法的综合实际应用。
主要内容包括:古典自动控制理论(PID)设计、现代控制理论状态观测器的设计、自动控制MATLAB 仿真。
通过本课程设计的实践,掌握自动控制理论工程设计的基本方法与工具。
1 内容某生产过程设备如图1所示,由液容为C1与C2的两个液箱组成,图中Q 为稳态液体流量)/(3s m ,i Q ∆为液箱A 输入水流量对稳态值的微小变化)/(3s m ,1Q ∆为液箱A 到液箱B 流量对稳态值的微小变化)/(3s m ,2Q ∆为液箱B 输出水流量对稳态值的微小变化)/(3s m ,1h 为液箱A 的液位稳态值)(m ,1h ∆为液箱A 液面高度对其稳态值的微小变化)(m ,2h 为液箱B 的液位稳态值)(m ,2h ∆为液箱B 液面高度对其稳态值的微小变化)(m ,21,R R 分别为A,B 两液槽的出水管液阻))//((3s m m 。
设u 为调节阀开度)(2m 。
已知液箱A 液位不可直接测量但可观,液箱B 液位可直接测量。
图1 某生产过程示意图要求1. 建立上述系统的数学模型;2. 对模型特性进行分析,时域指标计算,绘出bode,乃示图,阶跃反应曲线3. 对B 容器的液位分别设计:P,PI,PD,PID 控制器进行控制;4. 对原系统进行极点配置,将极点配置在-1+j 与-1-j;(极点可以不一样)5. 设计一观测器,对液箱A 的液位进行观测(此处可以不带极点配置);6. 如果要实现液位h2的控制,可采用什么方法,怎么更加有效?试之。
用MATLAB 对上述设计分别进行仿真。
(提示:流量Q=液位h/液阻R,液箱的液容为液箱的横断面积,液阻R=液面差变化h ∆/流量变化Q ∆。
)2 双容液位对象的数学模型的建立及MATLAB 仿真过程一、对系统数学建模如图一所示,被控参数2h ∆的动态方程可由下面几个关系式导出: 液箱A:dt h d C Q Q i 111∆=∆-∆ 液箱B:dth d C Q Q 2221∆=∆-∆ 111/Q h R ∆∆= 222/Q h R ∆∆= u K Q u i ∆=∆消去中间变量,可得:u K h dt h d T T dth d T T ∆=∆+∆++∆222122221)( 式中,21,C C ——两液槽的容量系数21,R R ——两液槽的出水端阻力 111C R T =——第一个容积的时间常数 222C R T =——第二个容积的时间常数 2R K K u =_双容对象的放大系数其传递函数为:1)()()()(212212+++=∆∆=S T T S T T KS U S H S G二.对模型特性进行分析,绘出bode,奈氏图,阶跃反应曲线 当输入为阶跃响应时的Matlab 仿真: 令T1=T2=6;K=1112361)()()(22++=∆∆=S S S U S H S G 2)16(1+=S单位阶跃响应的MATLAB 程序: num1=[1];den1=[36 12 1]; G1=tf(num1,den1); figure(1); step(G1);xlabel('时间(sec)');ylabel('输出响应');title('二阶系统单位阶跃响应'); step(G1,100); 运行结果如下:阶跃反应曲线:图1c(∞)=1; c(t p )=1; t p =45、5s; t d =10s; t s =45、5s; 最大超调量:δ(t p )= [c(t p )- c(∞)]/ c(∞)*100%=0%稳态误差分析: 开环传递函数112361)()()(22++=∆∆=S S S U S H S G ,稳态误差1=ss e ;用MATLAB绘制的奈氏图如下图2所示,其程序如下: nyquist([1],conv([6 1],[6 1]))图2在工程实践中,一般希望正相角裕度r为45o~60o,增益裕度Kg10≥dB,即Kg3≥。
当系统为单位负反馈时的Bode图:用MA TLAB绘制的奈氏图如下图3所示,其程序如下:sys=tf([1],conv([6 1],[6 1]));margin(sys);figure图3三:对B容器的液位分别设计:P,PI,PD,PID控制器进行控制PID控制的原理与特点(1)P控制:取P=9; I=0; D=0;(2)PI控制:P=6,I=0、4,D=0;(3)PD控制:P=9,I=0,D=5;(4)PID控制:P=5,I=0、3,D=4;四.系统极点配置在-1+j; -1-j 根据传递函数1)()()()(212212+++=∆∆=S T T S T T KS U S H S G得微分方程 u K h dt h d T T dt h d T T ∆=∆+∆++∆222122221)( 令222212,,x h x h x h =∆=∆=∆ 得状态方程u K x x TT T T T T x xKu x T T T T x T T xx x ⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎥⎦⎤⎢⎢⎣⎡+--=⎥⎦⎤⎢⎣⎡++--==01101212121212122121121221+即:输出:1x y =极点配置: 令K=1; T1=T2=2;u x x x x u x x xx x⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡+--==10125.0102212121221+即:用MATLAB 确定状态反馈矩阵K,使得系统闭环极点配置在(-1+j,-1-j ),程序如下:A=[0 1;-0、25 -1]; B=[0;1];P=[-1+j;-1-j]; K=place(A,B,P) 运行结果为 K =1.7500 1、0000 仿真:仿真图五.设计一观测器,对液箱A 的液位进行观测 建立状态观测器: 根据传递函数1)()()()(212212+++=∆∆=S T T S T T KS U S H S G 得微分方程 u K h dt h d T T dt h d T T ∆=∆+∆++∆222122221)( 令222212,,x h x h x h =∆=∆=∆ 得状态方程uK x x T T T T T T x xKu x T T T T x T T xx x ⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎥⎦⎤⎢⎢⎣⎡+--=⎥⎦⎤⎢⎣⎡++--==01101212121212122121121221+即:输出:1x y = 全维观测器的建立:令⎥⎦⎤⎢⎣⎡''='21g g G ,得[]()1112122212121212121212122121212120101011111det det () 11g g A G C T T T T g g TT TT TT TT g T T g I A G C g T T g TT TT TT TT λλλλλ'-⎡⎤⎡⎤'⎡⎤⎢⎥⎢⎥'-=-=++⎢⎥⎢⎥⎢⎥'-----'⎣⎦⎢⎥⎢⎥⎣⎦⎣⎦'-⎡⎤'+-⎢⎥''--==+++⎡⎤+⎣⎦⎢⎥'++⎢⎥⎣⎦期望特征式:2 (a 2))(()( 22为设定值)a a a a f ++=++=*λλλλ对比1式与2式,得22112212112a T T g a g T T T T ='-='++得21212221121T T T T a g a T T g +-='-=' ⎥⎦⎤⎢⎣⎡''='∴21g g G所以全维状态观测器得方程就是1112221212ˆˆ()()010ˆ ()1x A G C x G y bu g g x y u T Tg g K TT TT ''=-++'-⎡⎤'⎡⎤⎡⎤⎢⎥=+++⎢⎥⎢⎥⎢⎥'---'⎣⎦⎣⎦⎢⎥⎣⎦本实验中,需观测的状态为水箱A 溶液的液位1h ,建立数学模型 R1=R2=1; c1=c2=1;;2;12122111h x h x dth d h h dth d h u ∆=∆=∆=∆-∆∆=∆-∆ ⎥⎦⎤⎢⎣⎡=∆⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡--=⎥⎥⎦⎤⎢⎢⎣⎡••21]01[0121110121x x y u x x x x⎥⎦⎤⎢⎣⎡=21]11[x x y 令状态观测器的极点为(-6-j,-6+j)设计此给定系统状态观测器的MATLAB 程序如下A=[-1 0;1 -1];B=[1 0];C=[1 1];A1=A';B1=C';C1=B';P=[-6-j -6+j];K=acker(A1,B1,P);G=K'运行结果为G =26-16仿真:仿真图:六、如果要实现液位h2的控制,可采用什么方法,怎么更加有效?试之前馈反馈控制方法这种调节系统中要直接测量干扰量的变化,液位h2作为反馈量,流量Q作为前馈量,可以克服流量Q干扰量的偏差,同时可以加快控制的速度,使调节更加及时有效。