山东大学 自动控制原理实验3

javen
2022-04-25 / 0 评论 / 2 阅读 / 正在检测是否收录...
导读

运用MATLAB完成传递函数的表示和求解符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。相关指令为sym()和sysms()。一、 实验内容运用符号运算,编程完成书习题2-12(b)、2-15(d)、另任选其它题1题系统传递函数的表示和求解。二、 实验要求方案设计,分析解题文本,…

运用MATLAB完成传递函数的表示和求解

符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。相关指令为sym()和sysms()。

一、 实验内容

运用符号运算,编程完成书习题2-12(b)、2-15(d)、另任选其它题1题系统传递函数的表示和求解。

二、 实验要求

方案设计,分析解题文本,编程实现。

三、 实验步骤

2-12(b),求传递函数C(s)/R(s)和C(s)/N(s)

1. 结构框图

1.png

2. 结构框图分析
(1) 基本结构分析

当只考虑输入R(s)作用时,扰动输入N(s)=0:

根据上面的结构框图可以很明显的发现存在交叉,因此需要对结构框图进行等效化简。

1) G1(s)的比较点后移,将G2(s)和G3(s)构成的并联系统合并后的框图如下:

2.png

2) 将单位反馈回路的比较点前移,得到如下框图

3.png

3) 根据上面的结构框图即可很简单的设计系统函数的代码,

G1和G2+G2并联;

G4和G2+G3构成反馈回路;

前面的并联部分和后面的反馈部分构成串联系统。

4) 根据这个思路,编程实现即可

当只考虑扰动输入N(s)作用时,输入R(s)=0:

1) 将R(s)置0,等效结构图如下图所示:

4.png

2) 该结构图已经足够简化,后面直接进行代码设计即可

3) G2和G3构成并联负反馈;

G2和G3构成的并联整体与G4构成负反馈

得到结果

3. 源代码
% 当只考虑输入R(s)作用时,扰动输入N(s)=0:
G1=sym('G1');%符号定义G1
G2=sym('G2');%
G3=sym('G3');%
G4=sym('G4');%
sys1=G2+G3;%计算由G2和G3组成的串联结构
sys2=sys1+G1*G2;%G2+G3与G1G2构成并联结构
sys3=G4/(1+G4*sys1);%G4与G2+G3构成负反馈回路
sys=sys2*sys3%不加分号,在命令窗口打印结果,前后两部分的串联

%当只考虑扰动输入N(s)作用时,输入R(s)=0:
pause%暂停,空格继续
clc; %清空命令行窗口 
SYS1=G2+G3;%G2和G3构成并联结构
SYS=G4/(1+SYS1*G2)%不加分号,输出结果,G4与G2+G3构成负反馈结构

4. 实验结果及分析**

当只考虑输入R(s)作用时,扰动输入N(s)=0:

5.png

当只考虑扰动输入N(s)作用时,输入R(s)=0:

6.png

与实际计算结果保持一致

2-15(d),求传递函数C(s)/R(s)和C(s)/N(s)

1. 信号流图

7.png

2. 结构流图分析
(1) 基本结构分析

当只考虑R1时,R2为0:

该结构是存在交叉的,需要将下面的反馈回路的引出点后移,由于引出点后的系数为1,因此引出点后移后反馈回路的系数并未改变,引出点后移后的结构流图如下所示:

8.png

c和-f构成反馈回路h1;

b和h1构成串联结构g1;

a与g1构成并联结构g2;

e和-g构成反馈回路h2;

d和h2构成串联结构g3;

1和g3构成并联结构g4;

g2和g4构成串联结构g5;

g5和-h构成负反馈结构G;

当只考虑R2时,R1为0:

9.png

该结构图中,将-h的引出点进行了后移,但是由于后面的系数为1,因此引出点后移后反馈线的系数仍未-h;将1的引出点后移,系数变为d;

e和-g构成负反馈回路h1;

h1和1串联后与d并联构成g0;

c和-f构成负反馈回路h2;

b和h2构成串联结构g1;

g1和a构成并联结构g2;

d、g2和-h构成串联结构g3;

g3为负反馈支路,与g0构成负反馈结构g4;

源代码
clc;%清除命令行窗口
%当只考虑R1时,R2为0:
syms a b c d e f g h l;%定义符号变量
h1=c/(1+c*f);%c和f构成反馈回路h1
g1=b*h1;%b和h1构成串联结构g1
g2=a+g1;%a和g1构成并联结构g2
h2=e/(1+e*g);%e和g构成负反馈回路h2
g3=d*h2;%d和h2构成串联结构g3
g4=1+g3;%1和g3并联为g4
g5=g2*g4;%g2和g4串联结构g5
sys=g5/(1+g5*h)%g5和h构成总的负反馈回路sys


pause%
clc;%清除命令行窗口
%当只考虑R2时,R1为0:
h1=e/(1+e*g);%e和g构成负反馈回路h1
g0=h1+d;%h1和d构成并联结构g0
h2=c/(1+c*f);%c和f构成负反馈回路h2
g1=b*h2;%b和h2构成串联结构g1
g2=g1+a;%g1和a构成并联结构g2
g3=d*g2*h;%d和g2和h构成串联结构
g4=g0/(1+g0*g3);%g0和g3构成负反馈回路
sys=l*g4 %不加分号,在命令行窗口输出结果
4. 实验结果**

10.png

11.png

这里可以发现,和我们的实际计算结果还是存在着偏差,至少从表达形式上是存在不一致的。

下面是手动的计算结果:

12.png

习题2-11(e)求传递函数C(s)/R(s)

1. 结构框图

13.png

2.流图分析
(1) 基本结构分析

该结构是存在交叉的,是无法直接使用符号表达式求解传递函数的,因此需要将结构框图简化。将H2后面的引出点进行前移,H2→H2 G3;

将H1最前面的比较点后移,H1→G1H1;下面是比较点和引出点移动后的结构框图:

14.png

根据上面的等效结构框图,编程思路:

H2和G3串联H11;

G1和H1串联H22;

G2和H11,H22,H1构成负反馈结构G22;

G1,G22,G3构成串联结构G44;

G44与G4并联为整个系统结构sys;

3.源代码
clc;%清空命令行窗口
syms H1 H2 H3 G1 G2 G3 G4;%定义符号变量
H11=H2*G3;%H2、H3构成串联结构
H22=G1*H1;%G1和H1构成串联结构
G22=G2/(1+(H11-H22+H1)*G2);%三个反馈并联,然后与G2构成总的负反馈
G44=G1*G22*G3;%三部分串联
sys=G44+G4%中间所有合并的结构与G4并联,不加分号控制台打印输出结果
4.实验结果

15.png

与实际计算结果完全一致

四、 实验心得与收获

0

评论 (0)

取消