预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共83页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章动态仿真集成环境-Simulink6.4离散系统的仿真采样时间参数设定离散模块状态改变的采样时间,通常,采样时间被设成标量变量,然而,它也可以通过在该参数域中指定一个包含有两个元素的向量来指定一个时间偏移量。例如若仅在采样时间(Sampletime)参数设定栏填写一个标量参数,那么它就是采样时间。若在此栏中填写二元向量[Ts,offset],那么该量的第一个元素指定采样时间Ts,第二个元素设置偏移时间offset,实际采样时间为t=n*Ts+offset。在此,n为整数,offset是绝对值小于采样时间Ts的实数。若要求模型必须在某时刻更新,或要求一些离散模块必须比另外一些离散模块更新得早一些或晚一些时,就必须借助offset的设置来实现。1.纯离散系统的仿真 纯离散系统可使用任何一种积分算法进行仿真,而不会影响输出结果。若只要采样瞬间的输出数据,那么应把最小步长设置得比最大的采样间隔大 例6-12设人口变化的非线性离散系统的差分方程为 其中k表示年份,p(k)为某一年的人口数目,p(k-1)为上一年的人口数目。 如果设人口初始值p(0)=200000,人口繁殖速率r=1.05,新增资源所能满足的个体数目N=1000000,要求建立此人口动态变化系统的系统模型,并分析人口数目在0至100年之间的变化趋势。图6-53图6-542.离散—连续混合系统仿真 由于Simulink的每个离散模块都有一个内置的输入采样器和输出零阶保持器,故连续模块和离散模块混用时,它们之间可直接连接。在仿真时,离散模块的输入输出每个采样周期更新一次,即在采样间隔内它的输入输出保持不变;而连续模块的输入输出每个计算步长更新一次。仿真算法可以采用前面介绍过的任何一种。3.多频采样系统的仿真 多频采样系统包含有不同采样速率的离散模块,在Simulink中,多频采样系统和多频采样-连续混合系统的建模与仿真都可以进行。 例6-13对图6-55所示双速率采样系统进行仿真。解(1)离散传递函数模块复制于离散系统模块库(Discrete)中,设两个离散传递函数模块的采样时间和偏离时间分别为[1,0.1]和[0.7,0],并把两个离散模块的标题分别改为“Tf=1,offset=0.1”和“Tf=0.7,offset=0”,如图6-55所示; (2)把阶跃函数的阶跃时刻设置为0; (3)Format|Sampletimecolor命令可以用颜色显示出两个模块采样时间的不同; (4)运行以下指令,可得图6-61所示曲线。 >> [t,x,y]=sim(‘ex6_13’,3); stairs(t,y) legend(‘y1’,‘y2’) 6.5仿真系统的线性化模型1.平衡点的确定 利用Simulink提供的trim()函数可根据系统的模型文件来求出系统的平衡点,但在绘制Simulink模型时注意首先应该将系统的输入和输出用输入/输出接口模块(In1/Out1)来表示。该函数的调用格式如下 [x,u,y,dx]=trim(‘model’,x0,u0,y0,ix,iu,iy) 由于该函数是通过极小化的算法来求出系统的平衡点,所以有时不能保证状态向量的变化率等于零。也即除非问题本身的极小值唯一,否则不能保证所求的平衡点是最佳的,因此,若想寻找全局最佳平衡点,必须多试几组初始值。 当系统有不连续状态时,trim()函数一般不适用,而trim4()函数也许能给出较好的结果。 对于以上函数的调用,也可写成如下的格式 [x,u,y,dx]=trim(‘model’) 这时会在默认的输入与输出下求出系统的平衡点来,这样的方法尤其对线性系统是有效的。2.连续系统的线性化模型 利用Simulink提供的函数linmod()和linmod2()可以根据模型文件(同上系统的输入和输出必须由Connections库中的In1和Out1模块来定义)得到线性化模型的状态参数A、B、C和D,它们的调用格式为 [A,B,C,D]=linmod(‘model’,x,u,pert,xpert,upert,p1,…,p10) [A,B,C,D]=linmod2(‘model’,x,u,pert,apert,bpert,cpert,dpert,p1,…,p10)由linmod2()所得线性模型比linmod()准确,当然所需的运行时间也更多。 对于线性系统上面的调用格式可简写为 [A,B,C,D]=linmod(‘model’) [A,B,C,D]=linmod2(‘model’)3.离散系统的线性化模型 Simulink提供的函数dlinmod()能够从非线性多频率采样离散--连续混和系统中提取一个在任何给定的采样周期Ts下的近似线性模型。当Ts取零时,就可得到近似的连续线性模型,否则,得到离散线