Presentation is loading. Please wait.

Presentation is loading. Please wait.

例5 构造下列线性系统的S-函数 csfunc.m S-函数代码 switch flag, case 0 [sys,x0,str,ts]=…

Similar presentations


Presentation on theme: "例5 构造下列线性系统的S-函数 csfunc.m S-函数代码 switch flag, case 0 [sys,x0,str,ts]=…"— Presentation transcript:

1 例5 构造下列线性系统的S-函数 csfunc.m S-函数代码 switch flag, case 0 [sys,x0,str,ts]=…
2018年12月6日星期四 例5 构造下列线性系统的S-函数 csfunc.m S-函数代码 switch flag, case 0 [sys,x0,str,ts]=… mdlInitializeSizes(A,B,C,D); case 1 sys = mdlDerivatives(t,x,u,A,B,C,D); case 3 sys = mdlOutputs(t,x,u,A,B,C,D); case { 2, 4, 9 } sys = []; otherwise error(['Unhandled flag = ',num2str(flag)]); end %=============================== function [sys,x0,str,ts] = csfunc(t,x,u,flag) % CSFUNC An example M-file S-function for % defining a system of continuous state % equations: % x' = Ax + Bu % y = Cx + Du % Generate a continuous linear system: A=[ ; 1 0]; B=[ ; ]; C=[ ; ]; D=[ ; ];

2 编写该系统的S-函数, 初始条件作为参数输入。
2018年12月6日星期四 function [sys,x0,str,ts] = … mdlInitializeSizes(A,B,C,D) sizes = simsizes; sizes.NumContStates = 2; sizes.NumDiscStates = 0; sizes.NumOutputs = 2; sizes.NumInputs = 2; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = zeros(2,1); str = []; ts = [0 0]; %================================ function sys = mdlDerivatives(t,x,u,A,B,C,D) sys = A*x + B*u; function sys = mdlOutputs(t,x,u,A,B,C,D) sys = C*x + D*u; 例6. 考虑著名的Van der Pol 方程 令 得 编写该系统的S-函数, 初始条件作为参数输入。

3 Vdpol-sf.m S-函数代码 function[sys,x0,str,ts]=…
2018年12月6日星期四 Vdpol-sf.m S-函数代码 function[sys,x0,str,ts]=… Vdpol_sf(t,x,u,flag,x10,x20) switch flag case 0, [sys,x0,str,ts]=… mdlInitializeSizes(x10,x20); case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys-mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error(['Unhandled flag',num2str(flag)]); end %============================== function[sys,x0,str,ts]=… mdlInitializeSizes(x10,x20) sizes=simsizes; sizes.NumContStates=2; sizes.NumDiscStates=0; sizes.NumOutputs=2; sizes.NumInputs=0; sizes.DirFeedthrough=0; sizes.NumSampleTimes=1; sys=simsizes(sizes); x0=[x10,x20]; str=[ ]; ts=[0,0];

4 function sys=mdlDerivatives(t,x,u) x1dot=x(1)*(1-x(2)^2)-x(2);
2018年12月6日星期四 function sys=mdlDerivatives(t,x,u) x1dot=x(1)*(1-x(2)^2)-x(2); x2dot=x(1); sys=[x1dot;x2dot]; %=============================== function sys=mdlUpdate(t,x,u); sys=[ ]; function sys=mdlOutputs(t,x,u); sys=x; %================================ function sys=mdlGetTimeOfNextVarHit(t,x,u); sampleTime=1; sys=t+sampleTime; % sys=[]; function sys=mdlTerminate(t,x,u)

5 在对话框中填入S-函数名称Vdpol_sf 以及参数1, 0.1。
2018年12月6日星期四 仿真及封装 1 建立模块 2.设置模块 双击打开参数对话框 在对话框中填入S-函数名称Vdpol_sf 以及参数1, 0.1。

6 仿真及封装 1 建立模块 x轴设置为: x-min= –3; x-max= 3 y 轴设置为: 2.设置模块
2018年12月6日星期四 仿真及封装 1 建立模块 x轴设置为: x-min= –3; x-max= 3 y 轴设置为: y-min= –2.5; y-max= 2.5 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 双击打开参数对话框

7 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 单击仿真开始
2018年12月6日星期四 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 单击仿真开始 5. 模型窗口仿真

8 右键单击图标,在下拉菜单中选择marsk s-function 编辑文档页
2018年12月6日星期四 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 5. 模型窗口仿真 6.模块的封装 双击图标,将参数设置成变量 编辑参数页 右键单击图标,在下拉菜单中选择marsk s-function 编辑文档页

9 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 5. 模型窗口仿真
2018年12月6日星期四 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 5. 模型窗口仿真 6.模块的封装 7. 命令行仿真 双击图标设置初始状态

10 >> subplot(121),plot(tout,yout)
2018年12月6日星期四 仿真及封装 1 建立模块 2.设置模块 3.设置仿真时间为30s, 相对误差为1e-6 4. 设置XY Graph 5. 模型窗口仿真 6.模块的封装 7. 命令行仿真 在模型窗口仿真后可输入下列命令 >> subplot(121),plot(tout,yout) >> subplot(122),plot(yout(:,1),yout(:,2))

11 离散系统S-函数 例7. 单位延迟系统 sfundsc2.m S-函数代码
2018年12月6日星期四 离散系统S-函数 function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 1; sizes.NumOutputs = 1; sizes.NumInputs = 1; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = 0; str = []; ts = [.1 0]; % Sample period of % 0.1 seconds (10Hz) %============================== function sys = mdlUpdate(t,x,u) sys = u; function sys = mdlOutputs(t,x,u) sys = x; 例7. 单位延迟系统 sfundsc2.m S-函数代码 function [sys,x0,str,ts] = sfundsc2(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts] = mdlInitializeSizes; case 2, sys = mdlUpdate(t,x,u); case 3, sys = mdlOutputs(t,x,u); case 9, sys = []; otherwise error(['unhandled flag = ',num2str(flag)]); end %===============================

12 2018年12月6日星期四

13 设繁殖率为r, 资源为k, 初始人口数量为init, 则人口变化规律为:
2018年12月6日星期四 例8. 人口系统S-函数 case 2, sys=mdlUpdate(t,x,u,r,K); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error(['Unhandled flag = ',num2str(flag)]); end %=============================== function [sys,x0,str,ts]=… mdlInitializeSizes(init) sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 1; sizes.NumOutputs = 1; sizes.NumInputs = 0; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; 设繁殖率为r, 资源为k, 初始人口数量为init, 则人口变化规律为: 构造S-函数, 并将r, k, init 作为参数输入. sfun_population.m S-函数代码 function [sys,x0,str,ts] = … sfu_population(t,x,u,flag,r,K,init) % population dynamics. Rate(r), % resources(K),and initial population(init) % are user inputs. switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes(init); case 1, sys=mdlDerivatives(t,x,u);

14 sys = simsizes(sizes); x0 = [init]; str = []; ts = [1 0];
2018年12月6日星期四 sys = simsizes(sizes); x0 = [init]; str = []; ts = [1 0]; %=============================== function sys=mdlDerivatives(t,x,u) sys = []; function sys=mdlUpdate(t,x,u,r,K) sys = [r*x*(1-x/K)]; function sys=mdlOutputs(t,x,u) sys = [x]; function sys=… mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1;. sys = t + sampleTime; function sys=mdlTerminate(t,x,u)

15 选择变步长ode45求解器, 仿真取100个时间单位, 并取初始人口数分别为105和104, 仿真结果如图所示.
2018年12月6日星期四 选择变步长ode45求解器, 仿真取100个时间单位, 并取初始人口数分别为105和104, 仿真结果如图所示.

16 例9. 如图所示, 系统是有一个连续的积分器和一个离散单位延迟组成的混合系统
2018年12月6日星期四 混杂系统S-函数 sfun_mix.m S-函数代码 例9. 如图所示, 系统是有一个连续的积分器和一个离散单位延迟组成的混合系统 利用S-函数实现系统的功能. function [sys,x0,str,ts] = sfun_mix(t,x,u,flag) %Sampling period and offset for unit delay. dperiod=1; doffset=0; switch flag, case 0, [sys,x0,str,ts]=… mdlInitializeSizes(dperiod,doffset); case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u,dperiod,doffset); case 3, sys=mdlOutputs(t,x,u,dperiod,doffset); case 4, sys=[]; case 9, otherwise error(['Unhandled flag = ',num2str(flag)]); end 系统模型如下: 系统的状态为: x = [xc xd]T

17 %=============================== function [sys,x0,str,ts]=…
2018年12月6日星期四 %=============================== function [sys,x0,str,ts]=… mdlInitializeSizes(dperiod,doffset) sizes = simsizes; sizes.NumContStates = 1; sizes.NumDiscStates = 1; sizes.NumOutputs = 1; sizes.NumInputs = 1; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 2; sys = simsizes(sizes); x0 = [0]; str = []; ts = [0 0;dperiod doffset]; %============================== function sys=mdlDerivatives(t,x,u) sys = u; %============================= function sys=… mdlUpdate(t,x,u,dperiod,doffset) if abs(round((t-doffset)/dperiod)-… (t-doffset)/dperiod)<1e-8 sys=x(1); else sys = []; end mdlOutputs(t,x,u,dperiod,doffset) sys=x(2);

18 将正弦信号作为输入, 仿真时间为15秒, 相当于积分后经过单位延迟, 仿真结果如下.
2018年12月6日星期四 将正弦信号作为输入, 仿真时间为15秒, 相当于积分后经过单位延迟, 仿真结果如下.

19 2018年12月6日星期四 第七章 控制系统设计

20 2018年12月6日星期四 一. 概述 The design of a control systems is concerned with the arrangement, or the plan, of the system structure and the selection of suitable components and parameters. A compensator is an additional component or circuit that is inserted into control system to compensate for a deficient performances. 反馈补偿 输入补偿 串联补偿 输出补偿

21 峰值 Am , 峰值频率m , 频带 b , 箭切频率 c , 模值稳定裕度 Lh , 相角稳定裕度  .
2018年12月6日星期四 系统设计性能指标 静态性能指标: 稳态误差 ess 静态误差系数 静态速度误差系数 静态加速度误差系数 二. Bode图超前校正设计 1. 串联补偿 从而有 动态性能指标: (1)时域指标: 超调量 %, 峰值时间 tp, 调节时间 ts (2)频域指标: 峰值 Am , 峰值频率m , 频带 b , 箭切频率 c , 模值稳定裕度 Lh , 相角稳定裕度  . 从Bode图上看, 串联补偿的结果是, 补偿后开环系统的幅值分贝是补偿前开环系统幅值分贝与补偿器幅值分贝之和. 补偿后开环系统的相位是补偿前开环系统相位与补偿器相位之和.

22 问题化为选择补偿器的零点 zi, 极点pj 及增益K. 考虑一阶控制器的传递函数
2018年12月6日星期四 设补偿器为: 问题化为选择补偿器的零点 zi, 极点pj 及增益K. 考虑一阶控制器的传递函数 当 z < p 时, 称补偿器为相位超前超前网络(phase-lead network) 从图中可以看出, 当[0, )时, 总有(j + z)  (j + p) , 从而Gc(j)  0. 当z在原点附近, 且|p|>> | z|时, 补偿器近似一个微分算子 一般情况下 其中: T=1/p, p =  z, K1= K/. 如取 K1 =1, p = 1, z = 0.1, 则 =10 幅值与相位如图所示. j * z p

23 其中幅值增加不超过20log, 最大斜率为 20dB/dec. 相位的频域特性为:
2018年12月6日星期四 最大相位对应的频率: 最大相位: m随变化如图所示, m 70o. 其中幅值增加不超过20log, 最大斜率为 20dB/dec. 相位的频域特性为:

24 (7)绘出校正后的Bode图, 并校验性能指标.
2018年12月6日星期四 2. Bode图设计方法 (1)求出满足题目给定误差系数性能 指标的开环增益K值. (4)根据m求  值 (注意有些书中给出的是的倒数) (2)根据求得的K值, 画出校正前原系 统的Bode图, 并计算出模稳定裕 度Gm, – 穿越频率cg, 相位稳定 裕量1(即Pm), 剪切频率c1 (即 cp), 以检验性能指标是否满足要 求. 若不满足, 则执行下一步. (5)确定校正后的剪切频率c2 在m 处|Gc(jm)/K1|=10log, 所以c2 应选在使得未被校正系统的模值L() = –10log  处. 所以取c2 为: L(c2) = –10log  的解, 且令m = c2 . (3)计算超前网络必须提供的相位超 前角: (6)求校正补偿器的传递函数 1, 2 : 校正前后的相位稳定裕量. c2 : 校正后的剪切频率. (7)绘出校正后的Bode图, 并校验性能指标. |[·]| : 校正前后由箭切频率变化所带 来的原系统的滞后量, 取5 ~ 10o (8)使系统闭环, 验证闭环系统响应.

25 试用Bode图设计方法对系统进行超前串联校正设计, 使之满足: (1)在斜坡信号r(t)=v0t 的作用下, 系
2018年12月6日星期四 例1. 已知单位负反馈受控对象的传递函数为: 试用Bode图设计方法对系统进行超前串联校正设计, 使之满足: (1)在斜坡信号r(t)=v0t 的作用下, 系 统的稳态误差ess  0.001v0. (2)校正后系统的相角裕度为: 43o ~ 49o. (2)作未校正系统的Bode图与阶跃响应曲线, 检查是否满足要求. >>l6201a Gm = 1.0098 Pm = 0.0558 Wcp = Wcg = 解: (1)求K0 取K0 =1000s–1. 受控对象传递函数为

26 补偿前后开环系统的 Nyquist 图 补偿前开环系统Nyquist图 希望补偿后开环系统Nyquist图 相位增加的大小
2018年12月6日星期四 补偿前后开环系统的 Nyquist 图 补偿前开环系统Nyquist图 希望补偿后开环系统Nyquist图 相位增加的大小

27 相稳定裕度与模稳定裕度几乎为零. 阶跃响应剧烈振荡, 系统不能工作. (3) 求超前校正器传递函数
2018年12月6日星期四 相稳定裕度与模稳定裕度几乎为零. 阶跃响应剧烈振荡, 系统不能工作. (3) 求超前校正器传递函数 根据要求, 取相角稳定裕度 =45o+5o 希望补偿后如图所示

28 运行程序l6201b (4)校验系统校正后是否满足题目要 求. 相位稳定裕量:Pm= 48.2224 deg
2018年12月6日星期四 运行程序l6201b >>l6201c Transfer function: s + 1 s + 1 (4)校验系统校正后是否满足题目要 求. 相位稳定裕量:Pm= deg 箭切频率: cg= rad/sec 43o <  < 50o基本满足要求. 运行程序后

29 (5)计算校正后阶跃响应曲线及性能指标 mp = 1.2654 (峰值) tp = 0.0158 (峰值时间) b1 =
2018年12月6日星期四 (5)计算校正后阶跃响应曲线及性能指标 mp = (峰值) tp = (峰值时间) b1 = (第一波峰值) b2 = (第二波峰值) n = (衰减比) pusi = (衰减率) T = (周期) f = Inf (频率) >>l6201d sigma = (超调量%) tp = (峰值时间s) ts = (调节时间s)

30 设未经校正系统的传递函数为:G0(s) = K0 G0’(s) , K0满足系统误差系数性能指标的开环增益.
2018年12月6日星期四 3.Bode图设计的解析方法 其中: tz = T tp = T MG = |G0(jc)| G =  G0(jc) 设未经校正系统的传递函数为:G0(s) = K0 G0’(s) , K0满足系统误差系数性能指标的开环增益. 设串联校正补偿器的传递函数为: Gc(s) = (Ts +1)/(Ts +1), 串联后其频率特性为: 由上面等式, 可得其实部及虚部相等而构成的方程, 从中解出tz和tp 振幅频率特性在剪切频率c 处穿越横坐标, 为使系统有相位裕度Pm,此时有 由此确定串联校正器: 于是

31 例2.继上题, 试用解析法对系统进行 超前串联校正设计, 使之满足: (1)在斜坡信号r(t) = v0t 的作用下, 系
2018年12月6日星期四 例2.继上题, 试用解析法对系统进行 超前串联校正设计, 使之满足: (1)在斜坡信号r(t) = v0t 的作用下, 系 统的稳态误差ess  0.001v0. (2)校正后系统的相角裕度  48o. (3)剪切频率c  170.0s–1 解: (1)由上题 K0 = 1000s–1, 取:  = 50o , c = 170.0s–1 由题意编写程序L6202a.m >>l6202a Transfer function: s + 1 s + 1

32 调用leadc( ), 同样会得到校正器的传递函数.
2018年12月6日星期四 调用leadc( ), 同样会得到校正器的传递函数. 模稳定裕度 Gm = dB –穿越频率cp = s–1 相稳定裕度 Pm = deg 剪切频率 cg = s–1 校正后系统: 相稳定裕度  = o < 48o 剪切频率 c = s–1 > 170 s–1 (2)校验串联校正后系统是否满足题 目要求 >>l6202c

33 函数leadc( ) key =1, 表示已知相位超前角度 key = 2, 表示已知校正后的剪切频率
2018年12月6日星期四 函数leadc( ) key =1, 表示已知相位超前角度 key = 2, 表示已知校正后的剪切频率 key = 3, 表示已知相位超前角度和校正后的剪切频率 , 并利用解析法计算补偿器 key =1时var中给定相位超前角度. Key=2时var中给定的是校正后的剪切频率. Key=3时var(1)中给定的是相位超前角度, var(2)中给定的是校正后的剪切频率. 这里实际上用的是的倒数 3阶样条函数, 以确定校正后的剪切频率。

34 函数leadc( ) key = 2, 表示已知校正后的剪切频率 这时var中给定的是校正后的剪切频率. 利用公式
2018年12月6日星期四 函数leadc( ) key = 2, 表示已知校正后的剪切频率 这时var中给定的是校正后的剪切频率. 利用公式

35 2018年12月6日星期四 函数leadc( ) key = 3, 表示已知相位超前角度和校正后的剪切频率 , 并利用解析法计算补偿器.这时var(1)中给定的是相位超前角度, var(2)重给定的是校正后的剪切频率.

36 其中z = 1/T, p=1/T,  >1, z =  p Bode图设计相位滞后校正器步骤:
2018年12月6日星期四 三. Bode图滞后校正设计 设一阶滞后补偿器传递函数为: 其中z = 1/T, p=1/T,  >1, z =  p Bode图设计相位滞后校正器步骤: (1)求出满足题目给定误差系数性能 指标的开环增益K值. (2)根据求得的K值, 画出校正前原系 统的Bode图.

37 补偿前后开环系统的 Nyquist 图 补偿前开环系统Nyquist图 希望补偿后开环系统Nyquist图 幅值减小的大小
2018年12月6日星期四 补偿前后开环系统的 Nyquist 图 补偿前开环系统Nyquist图 希望补偿后开环系统Nyquist图 幅值减小的大小

38 从理论上讲, z = 1/T 离c2越远越好, 故1/T 选得越小越好. 当1/T 距c2一定远时, 1/T 的减小对c2 点的相
2018年12月6日星期四 并计算出模稳定裕度Gm, – 穿越 频率cp, 相位稳定裕量1(即Pm), 剪切频率c1 (即cg), 以检验性能 指标是否满足要求. 若不满足, 则 执行下一步. 位滞后量的变化影响不大. (3)选择新的剪切频率c2 , 使得在该 处原系统的相位滞后角为: 0 系统校正后期望的相角稳定裕量. (6)画出校正后的系统的Bode图, 并 校验性能指标. (7) 构成闭环系统, 验证闭环系统的 响应. (4)求校正网络的值, 在c2 处有 L(c2) – 20log  = 0 例3 已知单位负反馈系统被控对象 的传递函数为: (5)选择校正网的零点 从理论上讲, z = 1/T 离c2越远越好, 故1/T 选得越小越好. 当1/T 距c2一定远时, 1/T 的减小对c2 点的相 试用Bode图设计方法对系统进行滞后串联校正设计, 使之满足: (1)在单位斜坡信号r(t) = t 作用下, 系统的速度误差系数: Kv 30s–1;

39 (2)校正后的剪切频率: c  2.3s–1; (3)校正后相角稳定裕度:   40o. 解 (1)求K0 . G0为I型系统,
2018年12月6日星期四 (2)校正后的剪切频率: c  2.3s–1; (3)校正后相角稳定裕度:   40o. (1)求K0 . G0为I型系统, 取K0 = 30s–1, 则 (2)做原系统的Bode图与阶跃响应曲 线, 检查是否满足题目要求. 为此 给出下列程序.

40 取校正后的剪切频率c2 = 2.3s–1.求串联滞后校正器.
2018年12月6日星期四 未校正系统的频域性能: 模稳定裕量 Gm = –6.0dB; 穿越频率 cp = 7.1s–1; 相稳定裕量 Pm = –17.1 deg; 剪切频率 cg = 9.8s–1; 系统不能正常工作, 必须校正. >>l6203b Transfer function: 4.348 s + 1 50.21 s + 1 (4)校验系统校正后频率性能是否满 足题目要求 校正后系统传递函数为: (3)求滞后校正器的传递函数 取校正后的剪切频率c2 = 2.3s–1.求串联滞后校正器.

41 校正后系统的频域性能: 模稳定裕量 Gm = 14.854dB; 穿越频率 cp = 6.84s–1;
2018年12月6日星期四 >>l6203c 校正后系统的频域性能: 模稳定裕量 Gm = dB; 穿越频率 cp = 6.84s–1; 相稳定裕量 Pm = deg; 剪切频率 cg = s–1; 满足校正后相角稳定裕度:   40o的要求. 补偿前后性能比较如图.

42 (5)计算校正后系统阶跃响应曲线及 (5)计算校正后系统阶跃响应曲线及 其性能指标 其性能指标 校正后系统
2018年12月6日星期四 (5)计算校正后系统阶跃响应曲线及 其性能指标 >>l6203d sigma = tp = 1.2019 ts = 1.9729 (5)计算校正后系统阶跃响应曲线及 其性能指标 校正后系统 超调: sigma = 峰值时间: tp = 调节时间: ts = 阶跃响应曲线如图所示.

43 当Key=1时, vars = gama, 是根据要求校正后稳定裕度计算滞后校正器;
2018年12月6日星期四 函数lagc( ) 当Key=1时, vars = gama, 是根据要求校正后稳定裕度计算滞后校正器; 当Key=2时, vars = wc, 是根据要求校正后的剪切频率计算校正器. 若已知系统的开环传递函数与要求校正后的相角稳定裕度或剪切频率, 求系统串联后校正器传递函数时, 可调用此函数.

44 已知晶闸管-直流电机闭环调速系统的SIMULINK动态结构图如图所示. 试按以下要求设计调速控制器 (滞后校正): 校正后
2018年12月6日星期四 例4 已知晶闸管-直流电机闭环调速系统的SIMULINK动态结构图如图所示. 试按以下要求设计调速控制器 (滞后校正): 校正后 相角稳定裕量   50o; 剪切频率 c  40.0s–1; 超调量  %  30%; 调节时间 ts  0.1 s. 解: (1) 检验被控对象是否满足要求. 开环结构如图所示

45 计算频域性能指标程序如下 (2)求滞后校正器传递函数 调用lagc( ) >>l6204b
2018年12月6日星期四 计算频域性能指标程序如下 (2)求滞后校正器传递函数 调用lagc( ) >>l6204b Warning: Input port 2 of block 't6211/Sum' is not connected. Transfer function: s + 1 s + 1 这样的系统不能正常工作,必须校正.

46 满足校正后相角稳定裕度:  > 50o, 剪切频率c > 40 s–1的要求.
2018年12月6日星期四 (3) 检验校正后系统的频域性能指标 校正后系统的频域性能: 模稳定裕量 Gm = dB; 穿越频率 cg = s–1; 相稳定裕量 Pm = deg; 剪切频率 cp = s–1; 满足校正后相角稳定裕度:  > 50o, 剪切频率c > 40 s–1的要求. (4)检验校正后的时域性能指标

47 剪切频率左移, 减小系统在剪切频率处的相位滞后(从而使得在新的剪切频率处, 相位大于-180o, 且有一定的裕度).
2018年12月6日星期四 >>l6204d sigma = tp = 0.0517 ts = 0.0879 四. Bode图滞后-超前校正设计 滞后校正: 剪切频率左移, 减小系统在剪切频率处的相位滞后(从而使得在新的剪切频率处, 相位大于-180o, 且有一定的裕度). 超前校正: 在新的剪切频率处提供一个相位超前量, 用以增大系统在剪切频率处的稳定裕量.

48 (1)根据要求的稳态品质指标, 求开环增益K值.
2018年12月6日星期四 步骤: (1)根据要求的稳态品质指标, 求开环增益K值. (4)选择一个新的系统剪切频率c2, 使在这一点原系统加上滞后校正器综合幅频特性衰减为0dB, 即L曲线在c2点穿越横坐标. (2) 根据所求K值, 画出校正前原系统的Bode图, 并计算: 模稳定裕量: Gm –穿越频率: cg 相角稳定裕量: 1 (即 Pm) 剪切频率: c1 (即 cp) 检验性能指标是否满足要求, 若否, 则执行下一步. (5)确定超前校正传递函数  > 1, 由下一表达式决定 L为原系统加上滞后校正器后幅频分贝值. 由 求出, T (= T2). (3)确定滞后校正器传递函数  > 1, 1/T1 < c1且距离c1 越远越好. 1/(T1) < c1. 通常取 (6)画出校正后系统Bode图, 校验系统性能指标. (7) 检验闭环系统的响应.

49 例5. 已知单位负反馈系统被控对象的传递函数为:
2018年12月6日星期四 例5. 已知单位负反馈系统被控对象的传递函数为: 试用Bode图设计方法对系统进行超前-滞后串联校正设计, 使校正后系统满足: (1)在斜坡信号r(t) = t 作用下, 速度误差系数Kv = 10s–1; (2)剪切频率 c  1.5 s–1; (3)相稳定裕度   45o; (4)时域指标:   25%, tp 2s, ts  6s. (2)作Bode图,校验指标 运行程序后可求得: 模稳定裕量: Gm = 10.424dB –穿越频率: cp = s-1 相角稳定裕量: Pm = 28.033deg 剪切频率: cg = s-1 解: (1)求K0 得K0 = 20s–1.

50 (3)求滞后校正器传递函数 取c = 1.5 s–1;  = 9.5. 编写程序 从而 >>l6205b
2018年12月6日星期四 (3)求滞后校正器传递函数 取c = 1.5 s–1;  = 9.5. 编写程序 >>l6205b Transfer function: 6.667 s + 1 63.33 s + 1 从而

51 (4)求超前校正器的传递函数 串联滞后校正器后的开环传递函数: 调用leadc( ) (5)校验校正后系统 >>l6205c
2018年12月6日星期四 (4)求超前校正器的传递函数 串联滞后校正器后的开环传递函数: 调用leadc( ) (5)校验校正后系统 >>l6205c Transfer function: 2.13 s + 1 s + 1

52 (6)计算阶跃响应及性能指标 运行程序后可求得: 模稳定裕量: Gm = 12.023dB –穿越频率: cp = 3.4829s-1
2018年12月6日星期四 (6)计算阶跃响应及性能指标 >>l6205e sigma = tp = 1.9151 ts = 5.9580 运行程序后可求得: 模稳定裕量: Gm = dB –穿越频率: cp = s-1 相角稳定裕量: Pm = deg 剪切频率: cg = s-1

53 校正后 Pm = 47.119deg > 45o cg= 1.4832s-11.5s-1
2018年12月6日星期四 校正后 Pm = deg > 45o cg= s-11.5s-1  = % < 25% tp = s < 2s ts = s <6s 满足设计要求.


Download ppt "例5 构造下列线性系统的S-函数 csfunc.m S-函数代码 switch flag, case 0 [sys,x0,str,ts]=…"

Similar presentations


Ads by Google