1-1 什么是仿真?它所遵循的基本原则是什么?
答:仿真是建立在控制理论,相似理论,信息处理技术和计算技术等理论基础之上的,
以计算机和其他专用物理效应设备为工具,利用系统模型对真实或假想的系统进行
试验,并借助专家经验知识,统计数据和信息资料对试验结果进行分析和研究,进
而做出决策的一门综合性的试验性科学。
它所遵循的基本原则是相似原理。
1-2 在系统分析与设计中仿真法与解析法有何区别?各有什么特点?
答:解析法就是运用已掌握的理论知识对控制系统进行理论上的分析,计算。它是一种
纯物理意义上的实验分析方法,在对系统的认识过程中具有普遍意义。由于受到理
论的不完善性以及对事物认识的不全面性等因素的影响,其应用往往有很大局限
性。
仿真法基于相似原理,是在模型上所进行的系统性能分析与研究的实验方法。
1-3 数字仿真包括那几个要素?其关系如何?
答: 通常情况下,数字仿真实验包括三个基本要素,即实际系统,数学模型与计算机。
由图可见,将实际系统抽象为数学模型,称之为一次模型化,它还涉及到系统辨识
技术问题,统称为建模问题;将数学模型转化为可在计算机上运行的仿真模型,称
之为二次模型化,这涉及到仿真技术问题,统称为仿真实验。
1-4 为什么说模拟仿真较数字仿真精度低?其优点如何?。
答:由于受到电路元件精度的制约和容易受到外界的干扰,模拟仿真较数字仿真精度低
但模拟仿真具有如下优点:
(1) 描述连续的物理系统的动态过程比较自然和逼真。
(2) 仿真速度极快,失真小,结果可信度高。
(3) 能快速求解微分方程。模拟计算机运行时各运算器是并行工作的,模拟机的
解题速度与原系统的复杂程度无关。
(4) 可以灵活设置仿真试验的时间标尺,既可以进行实时仿真,也可以进行非实
时仿真。
(5) 易于和实物相连。
1-5 什么是 CAD 技术?控制系统 CAD 可解决那些问题?
答:CAD 技术,即计算机辅助设计(Computer Aided Design),是将计算机高速而精确
的计算能力,大容量存储和数据的能力与设计者的综合分析,逻辑判断以及创造性
思维结合起来,用以快速设计进程,缩短设计周期,提高设计质量的技术。
控制系统 CAD 可以解决以频域法为主要内容的经典控制理论和以时域法为主要内容
的现代控制理论。此外,自适应控制,自校正控制以及最优控制等现代控制策略都
可利用 CAD 技术实现有效的分析与设计。
1-6 什么是虚拟现实技术?它与仿真技术的关系如何?
答:虚拟现实技术是一种综合了计算机图形技术,多媒体技术,传感器技术,显示技术
以及仿真技术等多种学科而发展起来的高新技术。
1-7 什么是离散系统?什么是离散事件系统?如何用数学的方法描述它们?
答:本书所讲的“离散系统”指的是离散时间系统,即系统中状态变量的变化仅发生在
一组离散时刻上的系统。它一般采用差分方程,离散状态方程和脉冲传递函数来描
述。
离散事件系统是系统中状态变量的改变是由离散时刻上所发生的事件所驱动的系
统。这种系统的输入输出是随机发生的,一般采用概率模型来描述。
1-8 如图 1-16 所示某卫星姿态控制仿真实验系统,试说明:
(1) 若按模型分类,该系统属于那一类仿真系统?
(2) 图中“混合计算机”部分在系统中起什么作用?
(3) 与数字仿真相比该系统有什么优缺点?
答:(1)按模型分类,该系统属于物理仿真系统。
(2) 混合计算机集中了模拟仿真和数字仿真的优点,它既可以与实物连接进行实
时仿真,计算一些复杂函数,又可以对控制系统进行反复迭代计算。其数字
部分用来模拟系统中的控制器,而模拟部分用于模拟控制对象。
(3) 与数字仿真相比,物理仿真总是有实物介入,效果逼真,精度高,具有实时
性与在线性的特点,但其构成复杂,造价较高,耗时过长,通用性不强。
星光模拟器
地球模拟器
太阳模拟器
地球敏感器
太阳敏感器
星敏感器
射
频
模
拟
器
射频敏感器
姿态控制系统电子装置
数字部分 接口
模拟部分
卫星动力学
混合计算机
陀螺
指令译码器
角度读
出装置
三轴机械转台
力矩器
转台电子
驱动器
指令与控制台
题1-8卫星姿态控制仿真试验系统
2-1 思考题:
(1)数学模型的微分方程,状态方程,传递函数,零极点增益和部分分式五种形式,
各有什么特点?
(2)数学模型各种形式之间为什么要互相转换?
(3)控制系统建模的基本方法有哪些?他们的区别和特点是什么?
(4)控制系统计算机仿真中的“实现问题”是什么含意?
(5)数值积分法的选用应遵循哪几条原则?
答:(1)微分方程是直接描述系统输入和输出量之间的制约关系,是连续控制系统其他
数学模型表达式的基础。状态方程能够反映系统内部各状态之间的相互关系,适用于多
输入多输出系统。传递函数是零极点形式和部分分式形式的基础。零极点增益形式可用
于分析系统的稳定性和快速性。利用部分分式形式可直接分析系统的动态过程。
(2)不同的控制系统的分析和设计方法,只适用于特定的数学模型形式。
(3)控制系统的建模方法大体有三种:机理模型法,统计模型法和混合模型法。
机理模型法就是对已知结构,参数的物理系统运用相应的物理定律或定理,经过合理的
分析简化建立起来的各物理量间的关系。该方法需要对系统的内部结构和特性完全的了
解,精度高。统计模型法是采用归纳的方法,根据系统实测的数据,运用统计规律和系
统辨识等理论建立的系统模型。该方法建立的数学模型受数据量不充分,数据精度不一
致,数据处理方法的不完善的影响,很难在精度上达到更高的要求。混合法是上述两种
方法的结合。
(4)“实现问题”就是根据建立的数学模型和精度,采用某种数值计算方法,将模
型方程转换为适合在计算机上运行的公式和方程,通过计算来使之正确的反映系统各变
量动态性能,得到可靠的仿真结果。
(5)数值积分法应该遵循的原则是在满足系统精度的前提下,提高数值运算的速
度和并保证计算结果的稳定。
2-2.用 matlab 语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式
的模型参数,并分别写出其相应的数学模型表达式:
(1)
(2)
G(s)=
3
s
10
s
7
s
3
2
35
24
s
2
s
50
24
s
4
s
24
.
X =
2.25 -5 -1.25 -0.5
2.25 -4.25 -1.25 -0.25
0.25 -0.5 -1.25 -1
1.25 -1.75 -0.25 -0.75
X
4
2
2
0
u
y=[0 2 0 2] X
(1) 解:(1)状态方程模型参数:编写 matlab 程序如下
>> num=[1 7 24 24];
>> den=[1 10 35 50 24];
>> [A B C D]=tf2ss(num,den)
-10 -35 -50 -24
1 0 0 0
0 1 0 0
0 0 1 0
得到结果:A=
,B=
1
0
0
0
,C=
1 7 24 24 ,D=[0]
所以模型为:
.
X =
-10 -35 -50 -24
1 0 0 0
0 1 0 0
0 0 1 0
X+
1
0
0
0
u,y=
1 7 24 24 X
(2) 零极点增益:编写程序 >> num=[1 7 24 24];
>> den=[1 10 35 50 24];
>> [Z P K]=tf2zp(num,den)
得到结果 Z= -2.7306 + 2.8531 , -2.7306 - 2.8531i ,-1.5388
P= -4, -3 ,-2 ,-1
K=1
(3) 部分分式形式:编写程序>> num=[1 7 24 24];
>> den=[1 10 35 50 24];
>> [R P H]=residue(num,den)
得到结果 R= 4.0000 ,-6.0000, 2.0000, 1.0000
-4.0000, -3.0000 , -2.0000 ,-1.0000
P=
H=[]
G(s)=
4
s
4
6
3
s
2
s
2
1
1
s
(2)解:(1)传递函数模型参数:编写程序>> A=[2.25 -5 -1.25 -0.5
2.25 -4.25 -1.25 -0.25
0.25 -0.5 -1.25 -1
1.25 -1.75 -0.25 -0.75];
>> B=[4 2 2 0]';
>> C=[0 2 0 2];
>> D=[0];
>> [num den]=ss2tf(A,B,C,D)
得到结果
num =
0
den =1.0000
4.0000
4.0000
14.0000
6.2500
22.0000
5.2500
15.0000
2.2500
G s
( )
3
4 s + 14 s + 22 s + 15
2
4
s + 4 s + 6.25 s + 5.25 s + 2.25
3
2
(2) 零极点增益模型参数:编写程序>> A=[2.25 -5 -1.25 -0.5
2.25 -4.25 -1.25 -0.25
0.25 -0.5 -1.25 -1
1.25 -1.75 -0.25 -0.75];
>> B=[4 2 2 0]';
>> C=[0 2 0 2];
>> D=[0];
>> [Z,P,K]=ss2zp(A,B,C,D)
得到结果 Z =-1.0000 + 1.2247i -1.0000 - 1.2247i
-1.5000
P= -0.5000 + 0.8660i
-0.5000 - 0.8660i
-1.5000
-1.5000
K = 4.0000
表达式
G s
( )
s+0.5-0.866i
4 s+1-1.2247i
s+1+1.2247i
s+1.5
s+0.5+0.866i
(3)部分分式形式的模型参数:编写程序>> A=[2.25 -5 -1.25 -0.5
2.25 -4.25 -1.25 -0.25
0.25 -0.5 -1.25 -1
1.25 -1.75 -0.25 -0.75];
>> B=[4 2 2 0]';
>> C=[0 2 0 2];
>> D=[0];
>> [num den]=ss2tf(A,B,C,D)
>> [R,P,H]=residue(num,den)
得到结果 R = 4.0000
-1.5000
P =
-0.0000
-1.5000
0.0000 - 2.3094i
-0.5000 + 0.8660i
0.0000 + 2.3094i
-0.5000 - 0.8660i
H =[]
( )
G s
4
1.5
s
s
i
2.3094
0.5 0.866
i
s
i
2.3094
0.5 0.866
i
2-3.用欧拉法求下面系统的输出响应 y(t)在 0≤t≤1 上,h=0.1 时的数值。
y
'
,
y y
(0) 1
要求保留 4 位小数,并将结果与真解 ( )
y t
t
e 比较。
解:欧拉法
y
y
1
k
(
y
f
t
k
(
y t
y
)
k
'
0
,
y
k
k
* (
h f
t
,
)
y
k
)
(前向欧拉法,可以自启动)其几何意义:把 f(t,y)在[
t
,k
y ]
k
0
区间内的曲边面积用矩形面积近似代替。利用 matlab 提供的 m 文件编程,得到算法公
式。如下所示
(1) m 文件程序为 h=0.1;
disp('函数的数值解为'); %显示 ‘’中间的文字%
disp('y='); %同上%
y=1;
for t=0:h:1
m=y;
disp(y); %显示 y 的当前值%
y=m-m*h;
end
保存文件 q2.m
在 matalb 命令行中键入>> q2
得到结果 函数的数值解为
y=
1
0.3487
0.9000
0.8100
0.7290
0.6561
0.5905
0.5314
0.4783
0.4305
0.3874
(2)另建一个 m 文件求解
y
t
e 在 t[0,1]的数值 ( %
y
t
e 是 '
y
,
y y
(0) 1
的
真解%)
程序为 h=0.1;
disp('函数的离散时刻解为');
disp('y=');
for t=0:h:1
y=exp(-t);
disp(y);
end
保存文件 q3.m
在 matalb 命令行中键入>> q3
函数的离散时刻解为
y= 1
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
比较欧拉方法求解与真值的差别
0.9000
0.8100
0.7290
0.6561
0.5905
0.5314
0.4783
0.4305
0.3874
0.3487
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
-0.0048
-0.0007
–0.0118
–0.0142
–0.0160
–0.0174
–0.0183
–0.0188
-0.0192
-0.0192
1
1
0
欧
拉
真
值
误
差
显然误差与 2h 为同阶无穷小,欧拉法具有一阶计算精度,精度较低,但算法简单。
2-4 用二阶龙格库塔法求解 2-3 的数值解,并于欧拉法求得的结果比较。
解:我们经常用到 预报-校正法 的二阶龙-格库塔法,
k
k
1
y
y
(
k
f
t
1
k
(
k
f
t
2
k
( ,
)
f
t y
,
y
'
y
(
k
1
h
2
)
k
,
h y
k
2
)
此方法
hk
1
)
k
可以自启动,具有二阶计算精度,几何意义:把 f(t,y)在[
t
,k
y ]区间内的曲边面积用
k
上下底为 kf 和 1kf 、高为 h 的梯形面积近似代替。利用 matlab 提供的 m 文件编程,
得到算法公式。如下所示