状态空间与simulink仿真
- 格式:doc
- 大小:296.50 KB
- 文档页数:15
Simulink是Simulation和link仿真链接。
是一个附加组件,为用户提供了一个建模与仿真的工作平台,由于许多功能是基于MATLAB平台的。
必须在MATLAB环境中运行,也把他称为一个MATLAB的工具箱。
以前MATLAB仿真编程是在文本窗口中进行的。
输入函数是命令和MATLAB 函数,在simulink 中与用户的交互接口是基于windows的模型化图形输入,用户可以通过单击拖动鼠标的方式绘制和组织系统,并完成对系统的仿真。
因此对于我们来说只需知道这些功能模块的输入输出、功能以及图形界面的使用方法。
就可以用鼠标和键盘进行仿真。
三种方法进入Simulink1、在MATLAB菜单栏中单击FILE,在下拉菜单的NEW选项中单击MODEL.2、在MATLAB工具栏中单击彩色图标,然后在打开的模型库浏览器窗口中单击‘新建文件‘3、在MATLAB命令窗口中输入Simulink,然后在打开的模型库浏览器窗口中单击‘新建文件‘。
一、模块的提取左键拖曳右键add to二、模块的移动放大和缩小移动:左键拖曳选中后用方向键脱离线移动按住shift 然后拖曳缩放 : 点击模块四个角拖曳三、复制粘贴和删除和windows一样删除选择clear四、模块的旋转:右键点击然后选择Flip block 顺时针转180度 rotate block顺时针90度。
五、模块名的修改移动:单击该模块名出现一个小框可以像文本一样修改移动还可以右键单击然后Hide name六、模块参数设置:双击七、模块连接:光标的箭头对准模块的输出端变成+后按下左键拖曳到另一个输入端松开左键。
八、连线的弯折开始画线时,在需要弯折的地方松开鼠标停顿一下,然后继续按下鼠标左键改变方向即可。
移动光标指向要移动的线段,然后拖动鼠标即可删除选中要删除的部分,然后delete直流电动机的直接启动新建一个simulink 仿真平台打开simulink然后点击新建打开simpowersystems的加号在electrical source中选择D C Voltage Source拖曳到仿真平台Elements里面选BreakerConnectors 里面选择Ground output把电源正端接到断路器的1端,电源负端接地。
一、算法设置1.变步长(Variable—Step)求解器可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45;没有状态的系统用的是discrete。
1)ode45基于显式Runge—Kutta(4,5)公式,Dormand—Prince对.它是—个单步求解器(solver)。
也就是说它在计算y(tn)时,仅仅利用前一步的计算结果y(tn-1).对于大多数问题.在第一次仿真时、可用ode45试一下。
2)ode23是基于显式Runge—Kutta(2,3).Bogackt和Shampine对.对于宽误差容限和存在轻微刚性的系统、它比ode45更有效一些.ode23也是单步求解器。
3)odell3是变阶Adams-Bashforth—Moulton PECE求解器.在误差容限比较严时,它比ode45更有效.odell3是一个多步求解器,即为了计算当前的结果y(tn),不仅要知道前一步结果y(tn-1),还要知道前几步的结果y(tn-2),y(tn-3),…;4)odel5s是基于数值微分公式(NDFs)的变阶求解器.它与后向微分公式BDFs(也叫Gear 方法)有联系.但比它更有效.ode15s是一个多步求解器,如果认为一个问题是刚性的,或者在用ode45s时仿真失败或不够有效时,可以试试odel5s。
odel5s是基于一到五阶的NDF公式的求解器.尽管公式的阶数越高结果越精确,但稳定性会差一些.如果模型是刚性的,并且要求有比较好的稳定性,应将最大的阶数减小到2.选择odel5s求解器时,对话框中会显示这一参数.可以用ode23求解器代替。
del5s,ode23是定步长、低阶求解器。
5)ode23s是基于一个2阶改进的Rosenbrock公式.因为它是一个单步求解器,所以对于宽误差容限,它比odel5s更有效.对于一些用odel5s不是很有效的刚性问题,可以用它解决。
Simulink动态仿真仿真Simulink简介:Simulink是MATLAB的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。
1、启动方法:单击图标或在窗口输入simulink在启动Simulink模块库浏览器后再单击其工具栏中的New model 命令按钮,会弹出名字为untitled的模型编辑窗口。
在MATLAB主菜单中,选择File菜单中New菜单项的Model命令,也可打开模型编辑窗口。
利用模型编辑窗口,可以通过鼠标的拖放操作创建一个模型。
2、Simulink的退出为了退出Simulink,只要关闭所有模型编辑窗口和Simulink模块库浏览器窗口即可。
3、Simulink的基本模块4、掌握模块的编辑:添加,选取,复制删除。
5、掌握模块的连接举例:建立系统仿真x1=x2*tX2=x2*e(-0.5*t)操作步骤1) 在MATLAB主菜单中,选择File菜单中New菜单项的Model命令,打开一个模型编辑窗口。
(2) 将所需模块添加到模型中。
(3) 设置模块参数并连接各个模块组成仿真模型。
设置模块参数后,用连线将各个模块连接起来组成系统仿真模型。
模型建好后,从模型编辑窗口的File 菜单中选择Save 或Save as 命令将它存盘。
举例2:使用simlink 仿真下列曲线,取w=2*pix(wt)=sin(wt)+1/3*sin(3wt)+1/5*sin(5wt)+1/7*sin(7wt)+1/9*sin(9wt) 步骤:(1) 启动Simulink 并打开模型编辑窗口。
(2) 将所需模块添加到模型中。
(3) 设置模块参数并连接各个模块组成仿真模型。
设置模块参数后,用连线将各个模块连接起来组成仿真模型。
(4) 设置系统仿真参数。
(5) 开始系统仿真。
(6) 观察仿真结果。
作业:完成相关习题:1、使用simlink 仿真下列曲线,取w=2*pix(wt)=1/3*sin(5*wt)+ sin(wt)+sin(1/8*wt)2、使用simlink 仿真i=⎰+10)1ln(*dx x x。
SIMULINK动态结构图仿真实际工程的单闭环控制系统仿真通常是通过SIMULINK动态结构图实现的。
实现的思路是先将动态结构图转换为状态空间模型,然后再仿真。
具体过程是用SIMULINK提供的1inmod()和1inmod2()两个函数,从连续系统中提取线性模型。
两个函数命令执行后,都可以得到一个用[A,B,C,D]表达的状态空间模型。
然后就可以对这个状态空间模型来进行各种仿真。
这种方法之所以被普遍采用,是因为:其一,实际工程的控制系统,是由一个一个环节按特定控制要求连接而成,经抽象及近似处理后即得SIMULINK动态结构图,动态结构图就是可见的原始模型,不需要再费力费时做工作,动态结构图就可以用来进行仿真;其二,除开极少数简单问题外,有了动态结构图再求传递函数,一般都较复杂。
因此,通过SMUHNK动态结构图模型实现仿真是较好的方法。
需要特别注意,系统的SMULINK动态结构图模型的.mdl文件在计算机磁盘空间里存放的路径。
实例:简单闭环控制系统的MA TLAB仿真用转速负反馈构成的直流调速系统,其原理框图如图l所示。
图l 转速负反馈直流调速系统原理框图本系统用直流测速发电机TG作电动机转速n的检测元件,它与被控电动机轴硬性连接,可将电动机转速的变化转换为电压的变化,该电压经分压器分压,即是与转速n成正比的反馈电压U f,用它与给定电压U g比较后,得到偏差电压ΔU=U g—U f,该偏差电压ΔU经放大器放大后,其输出电压就是晶闸管触发器的移相控制电压U k。
晶闸管—直流电机单闭环调速系统(V—M系统)的SIMULINK动态结构图如图2所示。
图中直流电机P nom=10kW,U nom=220V,I nom=55A,n nom=1000r/min,电枢电阻R a=0.5Ω,V—M系统主电路总电阻R=1Ω,额定磁通下的电机电动势转速比C e=0.1925V.min/r,电枢回路电磁时间常数T a=0.017s,系统运动部分飞轮矩相应的机电时间常数Tm=0.075s,系统测速反馈系数Kt=0.01178V/rpm,图2 单闭环调速系统的SIMULINK动态结构图整流触发装置的放大系数K s=44,三相桥平均失控时间T s=0.00167s,比例积分调节器的两个系数T1=0.049s,T2=0.088s。
基于Simulink状态空间建模的系统分析方法程序实现荆晓莉(陕西理工学院物电学院电子信息科学与技术1101班,陕西汉中723001)指导老师:龙姝明[摘要] 无论用何种方法求高阶连续系统解析解都是十分棘手的问题。
实际上,科学研究和工程应用中更多地需要系统的数值解。
调用Matlab的Simulink工具包,可以用模块图标方法来编程,并通过运行系统模型文件的方法直接给出连续系统的数值解,而不需要将连续系统转换为离散系统再求解。
对于复杂LTI 系统直接写出微分方程再给出状态空间矩阵很困难,我们获得系统状态空间矩阵的方法是:先将系统映射到s 域,列出解(系统输出)函数的像函数满足的代数方程组,解代数方程组给出系统函数H(s),再调用Matlab的函数[a,b,c,d]=tf2ss(num,den)就得到系统的状态空间矩阵,从而完成系统的描述,再创建系统模型文件,写入状态空间矩阵、输入信号、初值条件及运行相关参数,最后编程调用sim()函数运行模型文件给出连续系统的数值解。
[关键字]连续系统;离散化;Simulink;M文件The implementation of the system analysis method based on Simulink state space modelingJing Xiaoli(Grade11,Class1,Major Electronic Information Science and Technology Department of Physics,ShannxiUniversity of Technology,Hanzhong,723001)Tutor: Long ShumingAbstract It is a difficult problem for the higher order continuous system to solve the problem.In fact,the numerical solution of the system is more needed for scientific research and engineering application.Calling Matlab Simulink toolkit can be programmed by using the method of module icon,and the direct method of operation system model file are given continuous system of numerical solution, without the need to convert the continuous system to discrete system, to be solved. Continuous model, mapped to directly write for complex LTI system differential equations and give the state space matrix is very difficult,we obtain the system state space matrix method is: first the system's domain, a list of solutions (output) function as function satisfies the algebraic equation group, the solution of algebraic equations gives the system function H(s), and then call the Matlab function [A,B,C,D]=tf2ss(num,den) system state space matrix,thus completing the system description, and then create a system file, write the state space matrix, input signal, the initial conditions and operating parameters,programming at last call to sim run the model file is system of numerical solutions.Keywords Continuous system,Discrete,Simulink,M file目录1 状态空间分析方法的概述 (1)2 快速创建LTI连续系统状态空间模型的方法 (2)2.1 创建LTI连续系统传递函数的方法 (2)2.2 构造描述LTI连续系统的状态空间模型矩阵 (3)3 用Simulink状态空间建模求解LTI系统数值解的思路 (4)3.1 LTI连续系统的描述 (4)3.2 创建系统的Simulink状态空间模型 (4)3.3 模块内部参数设置及数据存储 (5)4 利用Simulink状态空间建模求解LTI系统的优缺点 (7)4.1 状态空间建模求解LTI系统的优点 (7)4.2 状态空间建模求解LTI系统的缺点 (7)5 连续系统Simulink状态空间建模分析方法程序设计的思路 (7)5.1 调用模型文件及编程求解系统响应 (7)5.2 分析系统的频谱与相位 (9)6 状态空间分析方法的应用实例 (9)6.1 实际连续系统的描述 (9)6.2 在程序中设置参数 (10)6.3 运行程序,求解系统 (10)结语 (11)附录 (13)最近几年科学不断发展,系统的结构也渐渐复杂。
考虑以下系统u x X ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=102101110221[]xy 001=对系统设计一个状态反馈控制器使得闭环阶跃响应的超调量小于5%,且在稳态值1%范围的调节时间小于4.6S 。
○1主导二阶极点方法配置极点 分析:超调量小于5%,即%521≤--ξξπe算得69.0≥ξ稳态值1%范围的调节时间小于4.6S ,即6.46.4≤=σs t1≥σ下面首先对系统的能控性进行判断,以编程方式实现 a=[-1 -2 -2;0 -1 1;1 0 -1];b=[2;0;1]; %输入a ,b 矩阵 q=[b a*b a^2*b] rank(q)计算结果为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=511010042qq 的秩为3因此该系统为完全能控型系统,在满足系统要求的前提下,理论上能任意配置期望极点下面根据具体的求解思路进行编程求解反馈控制器kg=poly(a); %求原系统的特征方程 a2=g(2);a1=g(3);a0=g(4); w=[1 0 0;a2 1 0;a1 a2 1]; q1=[a^2*b a*b b];p=q1*w; %求解转换矩阵 deta=1; zeta=0.75;wn=deta/zeta; %输入满足条件的ζ和δden=conv([1 4],[1 2*deta wn^2]); %输入期望极点(-4,-1±0.88i ) aa2=den(2);aa1=den(3);aa0=den(4); k=[aa0-a0 aa1-a1 aa2-a2];k1=k*(inv(p)) %输出配置矩阵k得到[]0444.06444.14778.11=k 下面对系统进行验证,是否满足条件 ahat=a-b*k1; bhat=b; chat=[1 0 0]; dhat=0;sys=ss(ahat,bhat,chat,dhat); step(sys,'r'); sys1=ss(a,b,c,d); hold on; grid on;step(sys1,'.-');(其中sys1为未加控制器的原系统)由图可知,系统在进行配置之前并未满足系统要求,在增加控制器之后,系统要求得到满足。
考虑以下系统u x X ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=102101110221[]xy 001=对系统设计一个状态反馈控制器使得闭环阶跃响应的超调量小于5%,且在稳态值1%范围的调节时间小于4.6S 。
○1主导二阶极点方法配置极点 分析:超调量小于5%,即%521≤--ξξπe算得69.0≥ξ稳态值1%范围的调节时间小于4.6S ,即6.46.4≤=σs t1≥σ下面首先对系统的能控性进行判断,以编程方式实现a=[-1 -2 -2;0 -1 1;1 0 -1];b=[2;0;1]; %输入a ,b 矩阵q=[b a*b a^2*b]rank(q)计算结果为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=511010042qq 的秩为3因此该系统为完全能控型系统,在满足系统要求的前提下,理论上能任意配置期望极点下面根据具体的求解思路进行编程求解反馈控制器kg=poly(a); %求原系统的特征方程a2=g(2);a1=g(3);a0=g(4);w=[1 0 0;a2 1 0;a1 a2 1];q1=[a^2*b a*b b];p=q1*w; %求解转换矩阵deta=1;zeta=0.75;wn=deta/zeta; %输入满足条件的ζ和δden=conv([1 4],[1 2*deta wn^2]); %输入期望极点(-4,-1±0.88i ) aa2=den(2);aa1=den(3);aa0=den(4);k=[aa0-a0 aa1-a1 aa2-a2];k1=k*(inv(p)) %输出配置矩阵k得到[]0444.06444.14778.11=k下面对系统进行验证,是否满足条件ahat=a-b*k1;bhat=b;chat=[1 0 0];dhat=0;sys=ss(ahat,bhat,chat,dhat);step(sys,'r');sys1=ss(a,b,c,d);hold on;grid on; step(sys1,'.-');(其中sys1为未加控制器的原系统)由图可知,系统在进行配置之前并未满足系统要求,在增加控制器之后,系统要求得到满足。
○2对称根轨迹(SRL )方法配置极点 将SRL 方程写成标准的根轨迹形式0)()()()(1=--+s D s D s N s N ρ 由此,我们需要先将上面的状态空间形式转换为传递函数形式,编程实现如下: a=[-1 -2 -2;0 -1 1;1 0 -1];b=[2;0;1];c=[1 0 0];d=0;[num,den]=ss2tf(a,b,c,d)num=[ 0 2.0000 2.0000 -2.0000]den=[1.0000 3.0000 5.0000 5.0000]下面再画出根轨迹图,寻找满足条件的ρnum1=conv([2 2 -2],[2 -2 -2]); %此处计算的参数根据num(s)和num (-s) den1=conv([1 3 5 5],[-1 3 -5 5]); %此处计算的参数根据den(s)和den (-s) sys1=tf(num1,den1);rlocus(sys1); %画根轨迹图grid on;根据系统要求69.0≥ξ 和 1≥σ如图所示,配置的极点将满足系统要求,现选取两组进行验证1.ρ=2p1=[-2.09 -1.42+0.845*1i -1.42-0.845*1i];k1=acker(a,b,p1)得k1=[0.7079 0.1931 0.5143]如上题所写程序画出响应图(其中sys1为未加控制器的原系统)2.ρ=3得k1=[0.9271 0.2769 0.6857]作出响应图如下(其中sys1为未加控制器的原系统)将两个不同的ρ值阶跃响应图进行对比(sys2为ρ=3,sys为ρ=2)有比较可知:较小的ρ值的响应速度较慢,较大的ρ值响应速度快。
○3全阶观测器的设计 首先检验系统的是否完全能观a=[-1 -2 -2;0 -1 1;1 0 -1];c=[1 0 0];q=[c;c*a;c*a*a]rank(q)⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=241221001qrank(q)=3说明系统是完全能观的下面就是观测器期望极点选择,一般为了考虑观测器的响应速度要比闭环系统快,又要考虑干扰抑制,一般极点为闭环极点的2---5倍。
根据主导二阶极点方法所配置的极点为s1=-4 s2,3=-1±0.88i选择观测器极点为s1=-12 s2,3=-3±0.88i由此可进一步求出观测器增益矩阵la=[-1 -2 -2;0 -1 1;1 0 -1];c=[1 0 0];pe=[-12;-3+0.88*i;-3-0.88*i];lt=acker(a',c',pe);l=lt'求得l=[15;1.872;-25.2592];可得全维观测器的方程为yu x ly bu x lc bk a x ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------=++--=2592.25872.115102~0444.16444.17814.2411872.10888.22888.59556.18~)(~下面可依据上式构建simulink 图,据此观察观测器的跟踪能力跟踪效果图如下X1X2X3据此发现观测器跟踪效果较好。
○4降阶控制系统设计 从输出方程可以看出,此系统输出就等于第一个状态,即变换矩阵P 为单位阵,而最小阶观测器的阶次为2。
d d c cb ba a====最小阶观测器的期望特征根选为-3±0.88i⎥⎦⎤⎢⎣⎡=-=1021111a a []⎥⎦⎤⎢⎣⎡--=--=1011222212a a ⎥⎦⎤⎢⎣⎡==10221b b ]00[211==c c y l u b l b y a l a x a l a x q n q n +-+-+-=--)12()1121()1222(~ 据此求观测器增益a22=[-1 1;0 -1];a12=[-2 -2];pe=[-3+1i*2*7^(1/2)/3;-3-1i*2*7^(1/2)/3];lt=acker(a22',a12',pe);l=lt'求得⎥⎦⎤⎢⎣⎡-=5556.35556.1l得到y u y x x q n q n ⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--=--5556.35556.11112.81112.35556.25556.1~1112.81112.71112.41112.2~引入中间变量 y x ly x q n q n ⎥⎦⎤⎢⎣⎡--=-=--5556.35556.1~~η得最小阶观测器的状态方程为u y ⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡--=1112.81112.32224.15778.91112.81112.71112.41112.2ηη⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡++=y y y x 42~21ηη下面可依据上式构建simulink 图,据此观察观测器的跟踪能力 X2X3由上面可见,观测器跟踪能力较好。
○5带反馈观测系统的设计 由分离定理可知,观测器与反馈可单独设计,互不影响。
反馈[]0444.06444.14778.1=kl=[15;1.872;-25.2592]lcx bv x bk lc a x ++--=~)(~下面可依据上式构建simulink 图,据此观察观测器的跟踪能力其中Gain7为增益调整设计a=[-1 -2 -2;0 -1 1;1 0 -1];b=[2;0;1];k1=[1.4778 1.6444 0.0444];y=a-b*k1;c=[1 0 0];d=0;k=1/dcgain(y,b,c,d)k=-3.5554或使用书本上的参考输入法计算k⎥⎦⎤⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-----=⎥⎦⎤⎢⎣⎡-1000011101011022211u x N N ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=-=5.15.115.2X U N N 5554.3=+=X U KN N N结果相同下面看一下系统输出对阶跃的跟踪曲线一开始出现较大误差,但还是能跟踪上阶跃。
下面再看看系统对白噪声干扰的抑制能力由上图可见,系统的抗干扰能力一般。
○6积分控制器的设计 积分控制相当于增加了额外状态,状态方程变为ω⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡-⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡b r u b x x a c x x i i 001000 由题意可知原系统可等价于r u x x x x i i ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-----=⎥⎦⎤⎢⎣⎡000110201010110022100010 积分控制器的极点配置为s1=-12 s2,3=-3±0.88i s4=-4利用编程求出ka=[0 1 0 0;0 -1 -2 -2;0 0 -1 1;0 1 0 -1];>> b=[0;2;0;1];>> pe=[-12;-3+0.88*i;-3-0.88*i;-4];>> k=acker(a,b,pe)K=[-234.5856 -77.4275 77.3805 173.8550]构建simulink图有分别加入两个阶跃,先加step1,阶跃图有再加入step,响应图有在一起加step和step1,响应如图由此可见,积分控制系统对于干扰有很好的抑制作用,并且具有很好的跟踪效果,动态特性也相对于简单的参考输入设计有了一定的改善。
总结从以上的设计可总结出状态空间的控制器的设计思路。
1.首先对观测器的能观性与能控性进行判断;2.如果完全能观或能控,则进行以下分析;如果不是,可以进行能控与能观分解出来;3.如果使用原系统状态反馈,可以根据系统要求进行极点配置,进而设计出控制器;如果还需要设计观测器,可合理配置观测器极点,进而设计整个系统。
4.如果使用观测器状态反馈,由于分离定理,观测器与反馈可分别设计,所以设计过程基本和上面一样;5.对于以上系统都存在较大的余差,故需设计参考输入,或者采取积分控制器都可以很好的消除稳态余差。