非线性仿真.docx
- 文档编号:24817870
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:17
- 大小:148.68KB
非线性仿真.docx
《非线性仿真.docx》由会员分享,可在线阅读,更多相关《非线性仿真.docx(17页珍藏版)》请在冰豆网上搜索。
非线性仿真
2.5系统非线性环节的仿真
在实际系统中,往往存在各种非线性特性,可将此当作非线性环节处理,这种环节的输入和输出之间关系是一种非线性函数关系,因此非线性环节的仿真就是用仿真语言来描述这些关系。
本节介绍几种典型的非线性环节的仿真算法。
2.5.1饱和环节
饱和环节在控制系统中较普遍,例如饱和放大器、限幅装置、
伺服阀饱和特性等。
饱和环节特性如图所示。
图2.5-1饱和特性
该特性对应的数学表达式为:
uu兰C
y=*cu>c(2.5-1)
—cu<—c
式中,c为饱和环节特征参数,斜率为1,该环节特性可用
MATLAB编程仿真,利用上面算法的编写的MATLAB函数
SATURATION,调用格式为:
y=saturation(u,c)
其中,u为输入;c为饱和环节特征参数,y为饱和环节输出
Saturation.m;amp209.m
2.5.2死区环节
在控制装置中,放大器的不灵敏区,伺服阀和比例阀阀芯正
遮羞特性,传动元件静摩擦等造成的死区特性。
典型死区非线性
环节特性如图2.5-2所示。
可用下面数学关系来描述:
0u兰c
y=*u-cu>c(2.5-2)
u+cuc—c
式中,c为死区特征参数,斜率为1。
该环节可根据上述算法编写MATLAB函数deadzone供调用,格式如下:
y二deadzone(u,c)
其中,u为环节输入;c为死区环节特征参数,y为死区环节输出。
Deadzone.m;amp210m
2.5.3齿隙非线性环节
齿轮传动副和丝杆螺母传动副中存在传动间隙都属这一类非线性因素,它对系统精度带来影响。
齿隙非线性环节特性如图2.5-3所示。
图2.5-3齿隙特性
当输入u增加时,输出沿a>b>d线段变化;当输入u减小时,输出沿d>e>a线段变化。
在线段bd上,输入增加时,当前输出值y(k)总是大于前一时刻的输出值y(k-1)。
而在ea上,输
入减小时,当前输出y(k)总是小于前一时刻的输出值y(k-1)。
在
ab段和de段,y(k)=y(k-1)。
以上特性的数学描述如下:
u(k)-c当Uk)-u(k-1)0且y(k-1)乞u(k)-c
y(k)=』u(k)+c当Uk)_u(k_1)<0且y(k_1)启u(k)_c(2.5-3)
y(k—1)其余
式中,c为齿隙环节特征参数,斜率为1。
根据(2.5-3)算法编写的MATLAB函数backlash,调用格式如下:
y1=backlash(u1,uO,yO,c)
其中,uO,u1分别为前一时刻和当前时刻输入值;yO,y1分别为前一时刻和当前时刻输出值;c为齿隙特征参数。
Backlash.m,
amp211.m.
2.5.4继电非线性环节
继电非线性环节特性如图2.5-4所示,(b)为具有死区继电环
节,(a)为(b)特例,即c=0。
对于图(b)所示特性,可用下面数学
关系描述:
V1
cu
——-1
⑹
图2.5-4继电环节特性
0u(k)vc
y=*1u(k)^c(2.5-4)
-1u(k)兰一c
根据(2.5-4)算法编写的MATLAB函数relaydead,调用格
式如下:
y=relaydead(u,c)
其中,u为环节输入,c为环节输出,y为死区特征参数。
Relaydead.m,amp212.m.
2.5.5具有滞环的继电环节
具有滞环的继电非线性环节特性如图所示,可用下面数学关
系描述:
图2.5-5带滞环继电特性
hu(k)nu(k-1)且u(k)nc
y(k)=«—hu(k)cu(k—1)且u(k)£-c(2.5-5)
y(k-1)其他
根据(2.5-5)算法编写的MATLAB函数relaydelay,调用格
式如下:
y=relaydelay(u1,u0,yO,c,h)
其中,u0,u1分别为前一时刻和当前时刻环节输入值;y0,y1分别为前一时刻和当前时刻输出值;c,h为环节特征参数。
Relaydelay.m,amp213.m.
2.5.6库仑一粘性摩擦力环节
图2.5-6库仑-粘性摩擦特性
机械摩擦具有非线性如图所示,它由库仑摩擦和粘性摩擦两
部分组成。
当物体运动速度不为零时,出现的库仑摩擦力为和相对运动速度相反的、与速度大小无关的恒定力,而粘性摩擦力则速度大小成正比。
上述特性可用数学关系来描述:
cv(k)=0且v(k十1)>0
f(k)=」—cv(k)=0)且v(k+1)<0(2.5-6)
sign(u)(Guc)其他
根据式(2.5-6)的算法,编写的MATLAB函数friction,调
用格式为:
y=friction(u,u1,c,G)
其中,u,u1分别为当前时刻和下一时刻的输入值(速度);y为输出值(摩擦力);c为库仑摩擦力值;G为粘性摩擦系数。
2.6采样控制系统仿真
2.6.1采样控制系统的基本组成
采样控制系统是指系统一处或几处信号是以采样形式来传递
的,而被控对象是连续的。
典型的采样控制,是一种连续一离散
混合系统,系统如图2.6-1所示
图2.6-1采样控制系统
随着计算机技术的发展,计算机控制系统成为采样控制系统的主要形式。
系统(a)和系统(b)的主要区别在于系统闭环的输入信号类型,前者是模拟信号,后者是数字信号。
系统中的A/D转换器是采样开关,将连续模拟量转变为离散的数字量并根据计算量的位数进行进行量化处理;D/A转换器是将离散的数字
量转变为模拟量,同时它也是一个保持器,且一般具有零阶保持器特征。
A/D和D/A转换器在模拟量和数字量之间存在确定的比例关系,相当于系统中的比例环节。
262采样控制系统仿真特点
采样控制系统包含连续部分和离散部分。
对于连续部分仿真方法和连续系统仿真一样,可采用数值积分法或离散相似法。
若
采用数值积分法则需要确定积分步长,若采用离散相似法则需要
确定虚拟的采样周期。
对于离散部分,A/D转换器和D/A转换
器是实际存在的,采样周期和保持器类型也均是实际存在的。
因
此采样控制系统仿真中,仿真步距或虚拟采样周期和系统实际采样周期之间存在同步问题。
263仿真步长和采样周期
对采样控制系统进行仿真时,连续部分仿真步长的选择必须根据被控对象的动态特性、系统采样周期大小、仿真精度的要求等综合考虑。
一般按下面两种情况处理:
(1)仿真步长h等于采样周期T;
(2)仿真步长h小于采样周期T。
第一种方法适用于系统连续部分参数变化较缓慢或系统幅
值穿越频率c较小的系统。
对于大多娄机电类采样控制系统,系统连续部分参数变化较快,常采用第二种方法,以保证系统中连续部分足够的仿真精度。
若仿真步长h小于采样周期T,为了全球仿真程序的实现,
通常取采样周期T恰好是仿真步长h的整数倍速,即h=T,其
N
中N为正整数。
采样系统仿真采用定步距,对于连续部分在每个计算点均作仿真运算,而对于离散部分(数字控制器)只有在采样时刻才执行仿真运算,在其他计算点不执行仿真运算。
在仿真程序中,采样时刻点可借助仿真时间/采样周期为整数的关系来确定。
采样控制系统仿真程序流程如图2.6-2所示。
264采样控制系统仿真方法
如前所述,采样控制系统分为连续部分和离散部分。
对于连续部分仿真有不同的处理办法,采样控制系统仿真方法分为两种。
一、基于数值积分法
图2.6-2采样控制系统仿真程序流程图
对系统连续部分仿真采用数值积分法,图2.6-2是基于数值积分的采样控制系统仿真程序框图。
这种方法需选择连续部分仿真步长、仿真数值积分方法等。
一般采用定步距,且仿真步长一般小于离散部分采样周期。
离散部分仿真是基于递推法,十分简单。
二、基于离散相似法
系统的连续部分先进行z变换,若连续部分模型G(s)已知,则可借助MATLAB函数C2D将连续模型转换为离散模型G(z),将G(z)和原系统离散部分模型D(z)合并后可求得采样控制系统的离散模型W(z),这样就可以进行仿真运算。
在连续部分离散化时,可优先选择虚拟的采样周期和系统实际采样周期相同。
在仿真运
算时可根据仿真速度和精度要求,采用不同的采样周期,但这时
需用MATLAB函数D2D对模型W(z)进行变换。
以下实例介绍基于数值积分法的采样控制系统仿真程序的编
[例2-9]已知一个计算机控制的电液伺服位置控制系统框图
如图2.6-3所示,度用MATLAB编写仿真程序。
隊血同步器
图2.6-3例2-9示意图
系统主要参数如下:
(1)数字控制器,仅考虑比例控制,取Kp=2;
(2)数字限幅:
_1024;
(3)12位D/A转换器系数Kda=5V/2048;
(4)伺服放大器:
电压放大器增益系数Ka=1.2;电压/电流
转换系数Kvi=48mA/2.5V;电流限幅:
_40mA;
(5)伺服模型:
■'nv
Q
Gv(s)节
Ksv
s,2'v
或以状态空间表达式描述,状态空间参数矩阵如下:
1021
-'nv_■2v'nv
bi
_K<20]
Cv-Ksv”*nv0
式中,伺服阀自然频率r=200rad/s;伺服阀阻尼比.=0.5;伺服阀流量系数Ksv可通过阀额定参数和实际工作点计算;伺服阀额定工作电流为—40mA;
(6)液压缸动力模型
Y(s)1/A
Gh(s)厂
Q(s)zs22h4、
s(p+盲s+1)
■'nh''nh
或以状态空间模型来描述,状态空间系数矩阵为:
01
1
-2~h^nh
0
2nh
c=100】
其中,状态变量X二[X1,X2,X3]=[y,y,y],“h为液压缸固有频率,h为液压缸阻尼比,A为液压缸面积。
(7)数字式位移检测装置:
感应同步器,精度一个脉冲/0.01mm。
(8)感应同步器接口电路:
感应同步器脉冲信号转换为数字量,
1/bit每个脉冲。
这是一个典型的采样控制系统,包含有连续部分:
电液伺服阀、伺服放大器、液压缸装置;离散部分:
计算机控制器;接口部分:
D/A转换器、感应同步器接口板等。
系统采样周期为10ms,采用四阶R-K法对连续部分进行仿真,仿真步长为1ms,仿真程序包括:
主程序hm45.m,电液伺服阀模型的m函数valve(),液压缸模型的m函数hysys(),数据文件svdada.m。
主程序运行时首先调入数据文件,两个m函数文件,给一些参数初始化,然后进行仿真循环计算,最后输出仿真结果及存储仿真数据。
主程序中用到MATLAB函数FEVAL,其功能是执行字符串所描述的函数,调用格式为:
[Y1,,Yn]二feval[F,X1,,Xn]其中,F为一个函数名的字符串;X1,…,Xn为该函数的输入参数;Y1,…,Yn为该函数的输出参数。
程序运行结果如图2.6-4所示。
改变比例控制器增益Kp可看出Kp对系统动态性能的影响。
图2.6-4系统的阶次响应
2.7Simulink动态仿真
Simulink是MATLAB软件包之一,用于可视化的动态系统仿真,它适用于连续系统和离散系统,也适用于线性系统和非线性系统。
它采用系统模块直观地描述系统典型环节,可十分方便地建立系统模型而不需要花较多时间编程。
利用Simulink进行系统仿真的步骤是:
(1)启动Simulink,打开Simulink模块库和模型窗口;
(2)在Simulink模型窗口下,创建系统框图模型并调整模块参数;
(3)设置仿真参数,进行仿真;
(4)输出仿真结果。
2.7.1启动Simulink
启动Simulink就是进入Simulink的工作环境,并且打开Simulink模块库和一个Simulink模型窗口,为建立系统的Simulink模型作准备。
2.7.2系统Simulink模型的建立
系统Simulink模型是一种以系统环节方块图为基础的方块图模型,十分直观。
系统典型环节或常用环节的方块图在Simulink模块库中都可以找到,因此建立系统的Simulink模型十分方便和快捷。
建立新的系统Simulink模型的主要步骤如下:
(1)打开Simulink模型窗口(untitled);
(2)选取模块或模块组;
(3)模块拷贝及删除;
(4)模块调整;
(5)模块参数设置;
(6)模块的连接;
(7)模块文件的取名和保存。
2.7.3系统仿真运行
在建立系统的Simulink框图模型后,就可以进行系统动态仿真。
系统仿真运行有两种方式进行,一种是利用Simulink模型窗
口的菜单Simulation下的选项,二是在MATLABCOMMAND窗口下输入命令。
一、Simulink模型窗口下仿真
Simulink模型窗口下仿真的具体步骤如下:
(1)开系统的Simulink模型窗口,窗口内有已建立的系统框图模型。
(2)在模型窗口选取菜单Simulation-;Parameters,设置仿真参数。
(3)在对话框模型窗口内选取Simulation-•Start,仿真开始,在设置的仿真终止时间仿真结束。
由上可知,在系统Simulink模型窗口下仿真,主要工作是利
用SimulationParameters对话框设置仿真参数,仿真参数设置包括:
solver(数值积分法),WorkspaceI/O(工作空间输入/输出),
Diagnostics(诊断)和Real-TimeWorkspace(实时工作空间)
(一)Solver页有关参数设置
设置内容有:
(1)Simulationtime(仿真时间)
(2)Solveroptions(仿真解法选择项)
Typt:
Variable-step(变步距)和Fixed-step(定步距)两种。
(3)变步距解法选择项仿真算法
(4)定步距解法选择项
(5)输出选择项
(二)WorkspaceI/O页
设置内容有:
(1)Loadfromworkspace(从工作空间调入数据)
[例2-10]若系统Simulink框图模型hexam1,如图2.7-1所示,
采用从Workspace调入数据的步骤如下:
TransferIFcn1
图2.7-1例2-10系统框图模型
1.激活WorkspaceI/O页;
2.在input:
输入[t,ua];
3.在MATLABCOMMAND窗口下工作空间内装入矩阵格
式数据t和ua。
对于简单输入数据可直接在MATLAB工
作空间内直接手工输入;对于较复杂输入数据可用M文
件。
本例amp216.m。
模型hexaml仿真运行结果。
(2)Savetoworkspace(保存数据到工作空间)
仿真结果的数据可以保存到MATLAB工作空间,这些
数据包括:
Time(时间)、States(状态)、Output(系统输出)和Finalstate(最终状态)。
注意若选择Output(系统输出),则模型框图中必须有相应的输出端口。
二、在MATLABCOMMAND窗口下的仿真运行
较麻烦。
2.7.4仿真结果的输出和保存
Simulink允许用户通过下面三种方式快捷地获得仿真参数的动态轨迹,观察仿真结果。
1利用Scope模块
如图2.7-2所示,系统输入u和输出y由模块MUX合并成矩阵yout,Scope模块显示两个参数的动态轨迹。
图2.7-2利用scope模块输出的系统
2利用out模块
利用Out模块可实现将仿真数据保存在MATLAB工作空间
中,供调用和分析。
图2.7-3利用out模块输出的系统
如图2.7-3所示,要使变量u和变量y的仿真数据保存在
MATLAB工作空间,并用图形显示其动态过程。
方法是:
(1)建立系统simulink模型hexam4,变量u和变量y分另I」连接Out1模块和Out2模块。
(2)在SimulationParameters对话框中,设置参数:
Output设置成yout;Time设置为tout.
(3)运行仿真模型。
此时,仿真时间向量tout和输出yout均存放在MATLAB工作空间内。
(4)查阅数据yout:
为两列矩阵,第一列为变量u,第二
列为变量y.。
(5)观察u和y的仿真曲线,可键入:
plot(tout,yout)
2.7.5子系统的创建和封装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 非线性 仿真