系统仿真导论答案文档格式.docx
《系统仿真导论答案文档格式.docx》由会员分享,可在线阅读,更多相关《系统仿真导论答案文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![系统仿真导论答案文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/28/283de481-533e-4a10-89d5-8591ba45c114/283de481-533e-4a10-89d5-8591ba45c1141.gif)
其中n为系统的阶次,ai(i=0,1,2,?
n)为系统的结构参数,cj(j?
1,2,?
n)为输入函数的结构参数,它们均为实常数。
2.
传递函数
若系统的初始条件为零,即系统在t=0时已处于一个稳定状态,那么对(1.1)式两边
取拉氏变换后可得:
sny(s)?
a1sn?
1y(s)?
1sy(s)?
any(s)
c1s
稍加整理,并记:
n?
1
u(s)?
c2s
2
cnu(s)
g(s)?
y(s)
u(s)
c
j?
0nj?
j
sj
(1.2)
j
as?
n?
(1.2)式称为系统的传递函数。
3.
权函数
若系统(初始条件为零)受一理想脉冲函数?
(t)的作用,其响应为g(t),则g(t)就称为该系统的权函数,或称脉冲过渡函数。
理想的脉冲函数?
(t)的定义为:
t?
0?
(t)?
0,t?
0(1.3)?
(t)dt?
若在系统上施加一个任意作用函数u(t),则其响应y(t)可通过以下卷积积分求出:
y(t)?
u(?
)g(t?
)dt(1.4)
可以证明g(t)与g(s)构成一对拉氏换对,即:
l[g(t)]?
g(s)(1.5)
4.
状态空间描述
以上三种模型都只描述了系统输入与输出之间的关系,而没有描述系统内部的情况,所以这些模型称为外部模型。
从仿真的角度来看,为在计算机上对系统的模型进行试验,就要在计算机上复现(实现)这个模型。
有时,仅仅实现系统输入与输出之间的关系是不够的,还必须复现模型的内部变量?
状态变量,因此仿真要求采用系统内部模型,即状态空间模型。
状态空间描述的一般形式为:
=ax+bu(1.6)x
y=cx(1.7)
(1.6)称为状态方程,(1.7)称为输出方程。
其中a是n?
n维矩阵,b是n?
1维矩阵,c是1?
n维矩阵。
对形如(1.1)式的单输入/单输出的n阶系统,易于将其转换为上述形式的状态方程.引进n个内部状态变量x1,x2,…,xn,作用函数U为单输入u,输出变量Y为单输出y,
仿真时,必须将系统的外部模型转换成内部模型,也就是建立与输入/输出特性等价的状态方程。
这个问题在控制理论中称为实现问题。
在1.2节中我们将介绍几种模型结构变换方法。
1.1.2离散时间模型
假定一个系统的输入量、输出量及其内部状态量是时间的离散函数,即为一时间序列:
{u(kt)},{y(kt)},{x(kt)},其中t为离散时间间隔(有时为简单起见,在序列中不写t,而直接用{u(k)},{y(k)},{x(k)}来表示),那么我们可以用离散时间模型来描述它。
离散时间模型也有差分方程,z传递函数,权序列,离散状态空间模型四种形式:
1.
差分方程
差分方程的一般表达形式为:
a0y(n?
k)?
a1y(n?
k?
1)?
any(k)?
b1u(n?
bnu(k)(1.8)
--
不失一般性,可设a0=1。
若引进后移算子q1,q1y(k)=y(k-1),则(1.8)式可改写成:
aq
jj?
n
y(n?
bjq?
ju(n?
k)
即:
u(n?
bq
1n
或
jj
y(k)
u(k)
(1.9)
2.z传递函数
若系统的初始条件均为零,即y(k)=u(k)=0,(k0),对(1.8)式两边取z变换,则可得:
(a0?
a1z
anz?
n)y(z)?
(b1z?
bnz?
n)u(z)
y(z)
u(z)
定义h(z)?
则g(z)称为系统的z传递函数,则:
bz
h(z)?
(1.10)
az
可见,在系统初始条件均为零的情况下,z-1与q-1等价。
3.权序列
若对一初始条件均为零的系统施加一单位脉冲序列?
(k),则其响应被称为该系统的权序列:
{h(k)},?
(k)定义为:
(k)?
1,?
0,
k?
0k?
k
若输入序列为任意一个{u(k)},则根据卷积公式可得,此时系统响应y(k)为:
y(k)?
u(i)h(k?
i)(1.11)
i?
可以证明:
zh(k)?
h(z)(1.12)4.离散状态空间模型
以上三种模型由于只描述了系统的输入序列与输出序列之间的关系因此称为外部模型。
仿真要求采用内部模型,即离散状态空间模型。
比如对(1.8)式所示之系统,若设:
x(n?
u(k)(1.13)
并令qx(n?
xn?
j?
1(k)
(j?
n)(1.14)
则有:
a0x(n?
ax
(k)?
设a0=1,并令x(n?
xn(k?
1),则不难得到:
u(k)(1.15)
根据(1.14)及(1.15)式可列出以下n个一阶差分方程:
x1(k+1)=x2(k)
x2(k?
x3(k)
xn?
1(k?
xn(k)
xn(k?
anx1(k)?
1x2(k)?
a1xn(k)?
u(k)写成矩阵形式:
x(k?
fx(k)+gu(k)(1.16)
其中
f=?
an10?
01?
g=?
a1?
将(1.13)式代入(1.8)式,可得:
ajqy(k)?
bjqu(k)?
bjq
nnn
aq?
jx(n?
k)j?
故有y(k)?
bjxn?
1(k)?
x(k)(1.17)
其中?
bn
bn?
b1
(1.16)式及(1.17)式就称为系统离散状态空间模型。
同样,它也是非唯一的。
1.1.3连续?
离散混合模型
假定有一系统,它的诸环节中有的环节的状态量是连续变量,而有的环节的状态量是离散变量。
比如用数字计算机控制一连续对象而组成的计算机控制系统就是属于这一类系统(如图1.1所示)。
图中t表示以t为周期的采样开关。
对于这类系统,它的离散部分(如图1.1中的数字计算机)可用离散时间模型来描述,而它的连续部分(如图1.1中的连续对象)则可用连续时间模型来描述。
图中的保持器是一个将离散信号{u(kt)}恢复成连续信号装置,它又应怎样来描述呢?
这就要用到脉冲序列函数的概念。
首先我们假设数字计算机完成的运算关系
为1,即:
u(kt)=e(kt)
则图1.1中的数字计算机和保持器两部分可合并为图1.2
设保持器为零阶,即它使离散信号{e(kt)}变成阶梯状分段信号u(t),即:
u(t)=?
e(kt)[1(t-kt)-1(t-kt-t)]
图1.1计算机控制系统
图1.2采样开关及保持器
对上式取拉氏变换可得:
e?
skt?
s(k?
1)t?
st
e(kt)?
ssk?
e(kt)e
skt
(1.18)
令
1?
st(s)?
则有:
u(s)=g(s)t(s)(1.19)
t(s)?
l?
e(t)?
(t?
kt)?
e*(t)?
(1.20)
因此可以设想,e*(t)是左图(图1.3)所示的虚拟系统所产生的脉冲
列。
图中的开关设想为每隔t秒闭合一次,以产生脉冲列e*(t)=?
(t-kt)
e(t)
t
t)
同理,保持器可以定义为将e*(t)这样的脉冲列变成阶梯状波形的环节。
综上所述,图1.4a)与b)这两个系统是等价的。
*图1.4采样与保持器
图1.3e*(t)的等效
因此图1.1的计算机控制系统的数学模型如图1.5所示。
其中d(z)为e*(t)与u*(t)拉氏变换之比,并取z=est后所得的z传递函数,可以证明它与e(kt)与u(kt)直接取z变换之比是完全相同的。
gh(s)为保持器传递函数,g(s)为连续对象的传递函数。
【篇三:
仿真复习资料】
本矩阵和函数的操作
1.已知x=[246],y=[135]
1)a=x+ya=3711加法
2)b=x*y’b=44y’表示矩阵的转置
3)c=x.*yc=21230直接相乘
4)d=x.^yd=2647776前者为底数后者为指数
5)e=conv(x,y)e=210283830代数式相乘(conv只能用于两
个相乘,多了就要嵌套)
6)f=poly(x)f=1-1244-48(x-2)(x-2(x-6)的系数
7)g=roots(f)g=2.000;
4.000;
6.000求根
8)h=polyval(x,3)h=36赋值
9)m=polyder(x)m=44求导
10)x(5)=7x=24607第五项赋值为5,第四项自动为0
2.已知x=[246],y=[135]多项式拟合。
x=[246];
y=[135];
p=polyfit(x,y,3)3表示拟合的阶数
p=-0.02080.25000.08330
3,常用的函数
sin(),cos(),tin(),cot(),esp(x)=ex,sqrt(x)=x,a^b=ab,abs(x)=|x|
asin(x)=arcsin(x),atant(),acos()
round(x):
四舍五入至最近整数
log(x):
以e为底的对数,log10(x)以10为底的对数
log2(x):
以2为底的对数,pow2(x):
2的指数
例如:
y?
y=sqrt(1-sin(x));
二,基本的二维画图指令
plot(x,y)表示y对x的函数图象;
subplot(m,n,p)表示将一个窗口分成m*n,取第p个窗口;
polar(x,y)表示在极坐标下y对x的函数图象;
semlilogx(x,y)表示x轴对数坐标图;
semlilogy(x,y)表示y轴对数坐标图;
loglog(x,y)表示x轴和y轴都为对数的坐标图;
plot(x1,y1,x2,y2)表示在同一坐标系下划两个图;
xlabel()表示对x轴注解;
ylabel()表示对y轴注解;
title()表示对当前图象的标题。
x=0:
0.01:
10;
subplot(221);
plot(x,y);
title(正常坐标图);
subplot(222);
polar(x,y);
title(极坐标图);
subplot(223);
semilogx(x,y);
title(x轴对数坐标图);
subplot(224);
semilogy(x,y);
title(y轴对数坐标图);
图象见试题
三,矩阵的赋值和运算
函数zeros
b=zeros(size(a))%生成与矩阵a相同大小的全零阵
函数eye
y=eye(size(a))%生成与矩阵a相同大小的单位阵
函数ones
y=ones(size(a))%生成与矩阵a相同大小的全1阵
命令正态分布随机矩阵
函数randn
命令产生线性等分向量
函数linspace
格式y=linspace(a,b)%在(a,b)上产生100个线性等分点
y=linspace(a,b,n)%在(a,b)上产生n个线性等分点
函数logspace
a格式y=logspace(a,b)%10在(b)之间产生50个对数等分向量,10
y=logspace(a,b,n)
y=logspace(a,pi)
函数deconv
格式[q,r]=deconv(v,u)%多项式v除以多项式u,返回商多项式q和余多项式r。
矩阵的转置a=a’
格式d=det(x)%返回方阵x的多项式的值
函数trace
格式b=trace(a)%返回矩阵a的迹,即a的对角线元素之和。
格式k=rank(a)%求矩阵a的秩
函数diag
格式x=diag(v,k)%以向量v的元素作为矩阵x的第k条对角线元素,
当k=0时,v为x的主对角线;
当k0时,v为上方
第k条对角线;
当k0时,v为下方第k条对角线。
x=diag(v)%以v为主对角线元素,其余元素为0构成x。
v=diag(x,k)%抽取x的第k条对角线元素构成向量v。
k=0:
抽取
主对角线元素;
k0:
抽取上方第k条对角线元素;
k0
抽取下方第k条对角线元素。
v=diag(x)%抽取主对角线元素构成向量v。
格式b=fliplr(a)%将矩阵a左右翻转
格式b=flipud(a)%将矩阵a上下翻转
四,系统的一些基本操作
1,传递函数,状态空间,零极点增益的基本操作
注意在以下表示中用num表示传递函数的分子,den表示传递函数的分母;
a,b,c,d为状态空间表示,z,p,k为零极点增益。
如(s+1)/(s+2),num=[11],den=[12],从右往左为常数项到最高次的系数。
系统的表示
tf(num,den)表示以num为分子以den为分母的传递函数;
ss(a,b,c,d);
zp(z,p,k);
不同表示之间的转化
[num,den]=ss2tf(a,b,c,d);
将状态空间转化为传递函数;
[z,p,k]=ss2zp(a,b,c,d);
将状态空间转化为零极点增益;
以下类似[a,b,c,d]=zp2ss(z,p,k);
[num,den]=zp2tf(z,p,k);
[r,p,k]=residue(num,den)
[num,den]=residue(r,p,k)
2.系统之间的连接
先定义两个系统g1和g2,g1=tf(num1,den1);
g2=ft(num2,den2);
串联[num,den]=series(g1,g2);
或g=g1*g2;
并联[num,den]=paralle(g1,g2);
反馈[num,den]=feedback(g1,g2).
3,系统的仿真
先定义系统g=tf(num,den);
或g=ss(a,b,c,d);
或g=zp(z,p,k)
单位阶跃响应step(g);
step(num,den);
step(a,b,c,d).
4,根轨迹
rlocus(g);
rlocus(num,den);
rlocus(a,b,c,d)
5,奈氏曲线
nyquist(g);
nyquist(num,den);
nyquist(a,b,c,d)
6,波特图
[m,p,w]=bode(g);
或bode(num,den);
[mag,phase,wc,wg]=margin(g);
或margin(num,den);
五,数值积分法仿真
一下程序中加粗加下划线的为需要变化的,其他的不变。
1,欧拉法
dy/dt=f(t,y),y(t0)=y0,y(k+1)=y(k)+hf(t(k),y(k)).
例题:
已知dy/dt=2t,y(0)=0,试用欧拉法进行仿真
h=0.01;
tf=10;
t=0;
;
m=tf/h;
对y赋初值
fori=1:
my(i+1)=y(i)+h*f(t(i),y(i))
t=[t,t(i)+h];
end
plot(t,y);
grid
状态空间的欧拉仿真状态空间输入y,u初始化值
m=tf/h;
m
x=x+h*(a*x+b*u);