《自动控制理论》课程设计指导书 霍爱清薛朝妹 自动化教研室
《自动控制理论》课程设计指导书 霍爱清 薛朝妹 自动化教研室
目录 1控制系统的数学描述… 1.1微分方程… 1.2传递函数… 1.3状态空间描述… 14模型转换… 2控制系统的校正… …15 2.1单变量系统的两种主要校正方式… 2.2PI、PD、PID校正… 15 2.3串联校正举例…………………… …18 3 MATLAB在自动控制系统中的应用… 3.1概述………… 24 3.2控制系统函数全集 …30 3.3应用实例…… 4 SIMULINK简介 4.1引导 42 SIMULINK模型的构建……… 5自动控制系统设计任务……… 51任务一………… 52任务 53任务 54任务四……………… …54 6附录… 56 6.1时域分析例题及程序………………… 62根轨迹分析例题及程序 6.3频域分析例题及程序 6
目 录 1 控制系统的数学描述…………………………………………………………………………1 1.1 微分方程………………………………………………………………………………1 1.2 传递函数………………………………………………………………………………6 1.3 状态空间描述…………………………………………………………………………9 1.4 模型转换………………………………………………………………………………11 2 控制系统的校正………………………………………………………………………………15 2.1 单变量系统的两种主要校正方式……………………………………………………15 2.2 PI、PD、PID 校正……………………………………………………………………15 2.3 串联校正举例…………………………………………………………………………18 3 MATLAB 在自动控制系统中的应用………………………………………………………24 3.1 概述……………………………………………………………………………………24 3.2 控制系统函数全集……………………………………………………………………30 3.3 应用实例………………………………………………………………………………31 4 SIMULINK 简介………………………………………………………………………………41 4.1 引导……………………………………………………………………………………41 4.2 SIMULINK 模型的构建………………………………………………………………45 5 自动控制系统设计任务………………………………………………………………………50 5.1 任务一…………………………………………………………………………………50 5.2 任务二…………………………………………………………………………………52 5.3 任务三…………………………………………………………………………………53 5.4 任务四…………………………………………………………………………………54 6 附录…………………………………………………………………………………………56 6.1 时域分析例题及程序…………………………………………………………………56 6.2 根轨迹分析例题及程序………………………………………………………………64 6.3 频域分析例题及程序…………………………………………………………………66
第一章控制系统的数学描述 1.1微分方程 111物理系统的微分方程 利用机械学、电学、流体力学和热力学等的物理规律,我们可以得到物理系统的动态 方程。它们通常用常系数线性微分方程来描述 1.1.2数值解 通过拉普拉斯变换和反变换,可得到线性时不变方程的解析解,也可用状态转移矩阵 φ(t)求解。这些分析方法通常只限于常系数的线性微分方程。解析解是精确的,然而通常寻 找解析解是困难的,甚至是不可能的。而数值分析方法直接在时域里求解微分方程,不仅适 用于线性时不变方程,也适用于非线性以及时变微分方程。 MATLAB提供了两个求微分方程数值解的函数,它们采用龙格-库塔( Ode23和ode45分别表示采用2阶和4阶龙格-库塔公式,后者具有更高的精度 n阶微分方程必须化为n个首1的一阶微分方程组,且放入M文件中,以便返回方程 状态变量的导数,下面的例子介绍这些函数的用法。 例1.1对图1-1的机械系统,已知三个量一一拉力、摩擦力、以及弹簧力都影响质量 M的加速度 利用牛顿运动定理,建立系统的力平衡方程式 d x+b-+Kx=f(t) B d. 令x1=X,X2=,有 (t) x(t) dx dtx2 图1-1 =[f(t)-Bx2-Kx1] 设质量M=lkg,摩擦系数B=5Nm/sec,弹簧常数K=25N/m。在=0时刻,施加25N的 拉力。上述方程及已知量在M文件 mechsys m中定义如下 function dot=mechsys(t, x) F=25
1 第一章 控制系统的数学描述 1.1 微分方程 1.1.1 物理系统的微分方程 利用机械学 、电学、流体力学和热力学等的物理规律,我们可以得到物理系统的动态 方程。它们通常用常系数线性微分方程来描述。 1.1.2 数值解 通过拉普拉斯变换和反变换,可得到线性时不变方程的解析解,也可用状态转移矩阵 φ(t)求解。这些分析方法通常只限于常系数的线性微分方程。解析解是精确的,然而通常寻 找解析解是困难的,甚至是不可能的。而数值分析方法直接在时域里求解微分方程,不仅适 用于线性时不变方程,也适用于非线性以及时变微分方程。 MATLAB 提供了两个求微分方程数值解的函数,它们采用龙格-库塔(Runge-kutta)法。 Ode23 和 ode45 分别表示采用 2 阶和 4 阶龙格-库塔公式,后者具有更高的精度。 n 阶微分方程必须化为 n 个首 1 的一阶微分方程组,且放入 M-文件中,以便返回方程 状态变量的导数,下面的例子介绍这些函数的用法。 例 1.1 对图 1-1 的机械系统,已知三个量——拉力、摩擦力、以及弹簧力都影响质量 M 的加速度。 利用牛顿运动定理,建立系统的力平衡方程式 Kx f(t) dt dx B d t d x M 2 2 令 dt dx x1 x, x2 ,有 2 1 x dt dx 设质量 M=1kg,摩擦系数 B=5N/m/sec,弹簧常数 K=25N/m。在 t=0 时刻,施加 25N 的 拉力。上述方程及已知量在 M-文件 mechsys.m 中定义如下: function xdot=mechsys(t, x); F=25; [f(t) Bx Kx ] M 1 dt dx 2 1 2
M=1B=5K=25 xdot=[x(2);M*(F-B*x(2)-K*x(1) 下面的M文件使用ode23对系统在零初始条件下进行仿真: t0=0: tfinal=3 %时间间隔0~3秒 x0=[0,0]; %零初始条件 tol=0.001; %精度 %如果非零,则打印出每一步的计算值 It, x]=ode23(mechsys, to, tfinal, xO, tol,trace) ubplot(21 1),plot(t, x) title (Time response of mechanical translational system) text(2, 1.2, displacement) text(2,. 2, veloclty') subplot(2 12),plot(d, v); title (velocity versus displacement) xlabel (displacement) ylabel (velocity) subplot(lll) 仿真结果如图1-2 Time response of mechanical translational system 2 0.6 displacement 图1-2
2 M=1;B=5;K=25; xdot=[x(2);1/M*(F-B*x(2)-K*x(1))]; 下面的 M-文件使用 ode23 对系统在零初始条件下进行仿真: t0=0; tfinal=3; %时间间隔 0~3 秒 x0=[0,0]; %零初始条件 tol=0.001; %精度 trace=0; %如果非零,则打印出每一步的计算值 [t, x]=ode23(’mechsys’,t0,tfinal,x0,tol,trace) subplot(211),plot(t, x); title (’Time response of mechanical translational system’) xlabel (’Time-sec’) text (2,1.2,’displacement’) text (2,.2,’veloclty’) d=x(:,1);v=x(:,2); subplot(212),plot(d,v); title (’velocity versus displacement’) xlabel (’displacement’) ylabel (’velocity’) subplot(111) 仿真结果如图 1-2。 0 0.5 1 1.5 2 2.5 3 -1 0 1 2 3 Time response of mechanical translational system Time-sec displacement veloclty 0 0.2 0.4 0.6 0.8 1 1.2 1.4 -1 0 1 2 3 velocity versus displacement displacement velocity 图 1-2
例12电路图见图1-3。R=149,L=2H,C=0.32F。初始状态:电感电流为零,电容 电压为0.5V。t=0时刻接入1伏的电压。求0<t<15秒时i(t)和vt的值,并且画出电流与 电容电压的关系曲线。 根据基尔霍夫定律[RLC]有 di Ri+L-+V。=V 1.4 0.32F 令 得 以上方程式在M文件 electsys.m中定义如下: function xdot= Felectsys(t,x),%状态导数 V=1; %阶跃输入 R=14:L=2:C=0.32 dot=x(2)C, 1/L *(V-x(1)-R*X(2))1 下面的M-文件使用函数ode23对系统进行仿真 t0=0 tfinal=15 时间间隔0~15秒 x0=[0.5,0 %初值条件x1=0.5,x2=0 tol=0.001; %精度 %若非零值则打印出每一步的计算值 It, x=ode23('electsys', to, tfinal, xO, tol, trace); subplot(211),plot(t, x); of a rlc series circuit) xlabel(Time-sec'") text(8, 1.05, Capacitor voltage,), text(8, 0.05, current) vc=x(:,1),=x(,2) subplot(2 12),plot( vc, 1); title('current versus capacitor voltage") xlabel(Capacitor Voltage,) ylabel(current') subplot(lll) 仿真结果见图1-4 3
3 例 1.2 电路图见图 1-3。R=1.4Ω,L=2H,C=0.32F。初始状态:电感电流为零,电容 电压为 0.5V。t=0时刻接入1伏的电压。求 0<t<15 秒时 i(t)和 v(t)的值,并且画出电流与 电容电压的关系曲线。 根据基尔霍夫定律[RLC]有: v0 vs dt di Ri L 和 dt dv i C 0 令 x v , x i 1 0 2 得 1 2 x C 1 x (v x Rx ) L 1 x2 s 1 2 以上方程式在 M-文件 electsys.m 中定义如下: function xdot=electsys(t, x); %状态导数 V=1; %阶跃输入 R=1.4; L=2; C=0.32; xdot=[x(2)/C;1/L*(V-x(1)-R*x(2))]; 下面的 M-文件使用函数 ode23 对系统进行仿真。 t0=0;tfinal=15; ﹡时间间隔 0~15 秒 x0=[0.5,0]; %初值条件 x1=0.5,x2=0 tol=0.001; %精度 trace=0; %若非零值则打印出每一步的计算值 [t, x]=ode23('electsys',t0,tfinal,x0,tol,trace); subplot(211), plot(t, x); title('Time response of a RLC series circuit') xlabel('Time-sec') text(8,1.05,'Capacitor voltage'),text(8,0.05,'current') vc=x(:,1), i=x(:,2); subplot(212),plot(vc, i); title('current versus capacitor voltage') xlabel('Capacitor Voltage') ylabel('current') subplot(111) 仿真结果见图 1-4。 图 1-3