matlab非线性控制系统分析
MATLAB优化应用非线性规划

MATLAB优化应用非线性规划非线性规划是一类数学优化问题,其中目标函数和约束条件都是非线性的。
MATLAB作为一种强大的数值计算软件,提供了丰富的工具和函数,可以用于解决非线性规划问题。
本文将介绍如何使用MATLAB进行非线性规划的优化应用,并提供一个具体的案例来演示。
一、MATLAB中的非线性规划函数MATLAB提供了几个用于解决非线性规划问题的函数,其中最常用的是fmincon函数。
fmincon函数可以用于求解具有等式约束和不等式约束的非线性规划问题。
其基本语法如下:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)其中,fun是目标函数,x0是变量的初始值,A和b是不等式约束的系数矩阵和右端向量,Aeq和beq是等式约束的系数矩阵和右端向量,lb和ub是变量的上下界,nonlcon是非线性约束函数,options是优化选项。
二、非线性规划的优化应用案例假设我们有一个工厂,需要生产两种产品A和B,目标是最大化利润。
产品A 和B的生产成本分别为c1和c2,售价分别为p1和p2。
同时,我们需要考虑两种资源的限制,分别是资源1和资源2。
资源1在生产产品A和B时的消耗分别为a11和a12,资源2的消耗分别为a21和a22。
此外,产品A和B的生产量有上下限限制。
我们可以建立以下数学模型来描述这个问题:目标函数:maximize profit = p1 * x1 + p2 * x2约束条件:c1 * x1 + c2 * x2 <= budgeta11 * x1 + a12 * x2 <= resource1a21 * x1 + a22 * x2 <= resource2x1 >= min_production_Ax2 >= min_production_Bx1 <= max_production_Ax2 <= max_production_B其中,x1和x2分别表示产品A和B的生产量,budget是预算,min_production_A和min_production_B是产品A和B的最小生产量,max_production_A和max_production_B是产品A和B的最大生产量。
非线性规划的MATLAB解法及其应用

题 目 非线性规划的MATLAB 解法及其应用(一) 问题描述非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。
非线性规划是20世纪50年代才开始形成的一门新兴学科。
70年代又得到进一步的发展。
非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。
在经营管理、工程设计、科学研究、军事指挥等方面普遍地存在着最优化问题。
例如:如何在现有人力、物力、财力条件下合理安排产品生产,以取得最高的利润;如何设计某种产品,在满足规格、性能要求的前提下,达到最低的成本;如何确定一个自动控制的某些参数,使系统的工作状态最佳;如何分配一个动力系统中各电站的负荷,在保证一定指标要求的前提下,使总耗费最小;如何安排库存储量,既能保证供应,又使储存 费用最低;如何组织货源,既能满足顾客需要,又使资金周转最快等。
对于静态的最优化 问题,当目标函数或约束条件出现未知量的非线性函数,且不便于线性化,或勉强线性化后会招致较大误差时,就可应用非线性规划的方法去处理。
具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。
非线性规划研究一个n 元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。
目标函数和约束条件都是线性函数的情形则属于线性规划。
本实验就是用matlab 软件来解决非线性规划问题。
(二) 基本要求掌握非线性规划的MATLAB 解法,并且解决相关的实际问题。
题一 :对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?题二: 某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大. 所谓产销平衡指工厂的产量等于市场上的销量.符号说明:z(x 1,x 2)表示总利润;p 1,q 1,x 1分别表示甲的价格、成本、销量; p 2,q 2,x 2分别表示乙的价格、成本、销量; a ij ,b i ,λi ,c i (i ,j =1,2)是待定系数.题三:设有400万元资金, 要求4年内使用完, 若在一年内使用资金x 万元, 则可得效益x 万元(效益不能再使用),当年不用的资金可存入银行, 年利率为10%. 试制定出资金的使用计划, 以使4年效益之和为最大.(三) 数据结构题一:设剪去的正方形的边长为x ,则水槽的容积为:x x )23(2-;建立无约束优化模型为:min y=-x x )23(2-, 0<x<1.5题二:总利润为: z(x1,x2)=(p1-q1)x1+(p2-q2)x2若根据大量的统计数据,求出系数b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,λ1=0.015,c1=20, r2=100,λ2=0.02,c2=30,则问题转化为无约束优化问题:求甲,乙两个牌号的产量x1,x2,使总利润z 最大.为简化模型,先忽略成本,并令a12=0,a21=0,问题转化为求:z1 = ( b1 - a11x1 ) x1 + ( b2 - a22x2 ) x2的极值. 显然其解为x1 = b1/2a11 = 50, x2 = b2/2a22 = 70,我们把它作为原问题的初始值.题三:设变量i x 表示第i 年所使用的资金数,则有 4,3,2,1,04.5321.121.1331.14841.121.14401.1400..max 43213212114321=≥≤+++≤++≤+≤+++=i x x x x x x x x x x x t s x x x x z i(四) 源程序题一:编写M 文件fun0.m:function f=fun0(x)f=-(3-2*x).^2*x;主程序为wliti2.m:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval题二:建立M-文件fun.m:function f = fun(x)y1=((100-x(1)- 0.1*x(2))-(30*exp(-0.015*x(1))+20))*x(1); y2=((280-0.2*x(1)- 2*x(2))-(100*exp(-0.02*x(2))+30))*x(2); f=-y1-y2;输入命令:x0=[50,70];x=fminunc(‘fun ’,x0),z=fun(x)题三:建立M 文件 fun44.m,定义目标函数:function f=fun44(x)f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));建立M 文件mycon1.m 定义非线性约束:function [g,ceq]=mycon1(x)g(1)=x(1)-400;g(2)=1.1*x(1)+x(2)-440;g(3)=1.21*x(1)+1.1*x(2)+x(3)-484;g(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.4;ceq=0主程序youh4.m 为:x0=[1;1;1;1];vlb=[0;0;0;0];vub=[];A=[];b=[];Aeq=[];beq=[];[x,fval]=fmincon('fun44',x0,A,b,Aeq,beq,vlb,vub,'mycon1')(五) 运行结果题一:运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.题二:运行结果为:x=23.9025, 62.4977, z=6.4135e+003即甲的产量为23.9025,乙的产量为62.4977,最大利润为6413.5.题三:运行结果为:x1=86.2;x2=104.2;x3=126.2;x4=152.8;z=43.1(六) 相关知识用Matlab 解无约束优化问题一元函数无约束优化问题21),(m in x x x x f ≤≤常用格式如下:(1)x= fminbnd (fun,x1,x2)(2)x= fminbnd (fun,x1,x2 ,options)(3)[x ,fval]= fminbnd (...)(4)[x ,fval ,exitflag]= fminbnd (...)(5)[x ,fval ,exitflag ,output]= fminbnd (...)其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。
Matlab技术控制系统性能分析指南

MatIab技术控制系统性能分析指南概论当今社会,控制系统已成为各种领域中重要的技术和应用之一。
它们被广泛用于工业自动化、机电设备、航天航空等众多领域中。
控制系统的性能分析是确保系统正常运行和提高系统性能的必要步骤。
Mat1ab作为一种功能强大的工具,为控制系统性能分析提供了多种方法和技术。
本文将介绍一些基本的MaIIab技术,帮助读者进行控制系统性能分析。
一、系统建模在进行控制系统性能分析之前,首先需要进行系统建模。
系统建模是将实际物理系统抽象为数学模型的过程。
掌握系统建模方法对于准确分析系统性能至关重要。
Mat1ab提供了一系列工具和函数,可以用于快速建立系统模型。
有两种常用的系统建模方法:时域建模和频域建模。
1.时域建模时域建模基于系统的时间响应特性。
通过测量系统的输入和输出信号,并对其进行采样和离散化,可以得到系统的差分方程。
MaUab中的State-space函数是进行时域建模的常用工具。
它可以根据系统的状态方程和输出方程生成系统模型。
可以使用如下代码进行建模:A=∏2;341;B=[1;1];C=[10];D=O;sys=ss(A,B,C,D);其中,A、B、C和D分别表示状态空间方程的系数矩阵。
利用该函数建立的系统模型可以方便地进行时域性能分析。
2.频域建模频域建模基于系统的频率响应特性。
通过测量系统的输入和输出信号的频谱,并进行信号处理,可以得到系统的传递函数。
Mat1ab中的tf函数是进行频域建模的常用工具。
它可以根据系统的传递函数生成系统模型。
可以使用如下代码进行建模:num=[1];den=[11];sys=tf(num,den);其中,num和den分别表示传递函数的分子和分母系数。
利用该函数建立的系统模型可以方便地进行频域性能分析。
二、系统性能评估建立了系统模型之后,就可以进行系统性能的评估了。
针对不同的性能指标,可以使用不同的分析方法。
1稳态误差分析稳态误差衡量了系统在输入信号为稳态信号时的输出误差。
MATLAB中的非线性优化算法详解

MATLAB中的非线性优化算法详解在计算机科学和工程领域,非线性优化是一个非常重要的问题。
它涉及到在给定一些约束条件下,寻找使得目标函数取得最优值的变量取值。
MATLAB作为一种强大的数值计算工具,提供了多种非线性优化算法来解决这个问题。
本文将详细介绍一些常用的非线性优化算法,并探讨它们的特点和适用场景。
1. 数学背景在介绍非线性优化算法之前,我们先来了解一下非线性优化的基本数学背景。
一个非线性优化问题可以表示为以下形式:minimize f(x)subject to g(x) ≤ 0h(x) = 0其中,f(x)是目标函数,g(x)是不等式约束条件,h(x)是等式约束条件。
x是优化变量。
目标是找到x使得f(x)取得最小值,并且满足约束条件。
2. 黄金分割法黄金分割法是一种经典的非线性优化算法。
它基于一个简单的原则:将搜索区间按照黄金分割比例分为两段,并选择一个更优的区间进行下一次迭代。
该算法的思想简单明了,但是它的收敛速度比较慢,特别是对于高维问题。
因此,该算法在实际应用中较少使用。
3. 拟牛顿法拟牛顿法是一类比较常用的非线性优化算法。
它通过近似目标函数的梯度信息来进行迭代优化。
拟牛顿法的核心思想是构造一个Hessian矩阵的近似矩阵,来更新搜索方向和步长。
其中,DFP算法和BFGS算法是拟牛顿法的两种典型实现。
DFP算法是由Davidon、Fletcher和Powell于1959年提出的,它通过不断迭代来逼近最优解。
该算法的优点是收敛性比较好,但是它需要存储中间结果,占用了较多的内存。
BFGS算法是由Broyden、Fletcher、Goldfarb和Shanno于1970年提出的。
它是一种变种的拟牛顿法,通过逼近Hessian矩阵的逆矩阵来求解最优解。
BFGS算法在存储方面比DFP算法更加高效,但是它的计算复杂度相对较高。
4. 信赖域法信赖域法是一种迭代优化算法,用于解决非线性优化问题。
它将非线性优化问题转化为一个二次规划问题,并通过求解这个二次规划问题来逼近最优解。
非线性规划的MATLAB解法

非线性规划问题通常具有多个局部最 优解,解的稳定性与初始条件有关, 需要使用特定的算法来找到全局最优 解。
非线性规划的应用场景
数据拟合、模型选择、参 数估计等。
生产计划、物流优化、设 备布局等。
投资组合优化、风险管理、 资本预算等。
金融
工业
科研
非线性规划的挑战与解决方法
挑战
非线性规划问题可能存在多个局部最优解,且解的稳定性与初始条件密切相关,需要使用特定的算法来找到全局 最优解。
共轭梯度法
总结词
灵活、适用于大型问题、迭代方向交替
详细描述
共轭梯度法结合了梯度下降法和牛顿法的思 想,通过迭代更新搜索方向,交替使用梯度 和共轭方向进行搜索。该方法适用于大型非 线性规划问题,具有较好的灵活性和收敛性。
04
非线性规划问题的约束 处理
不等式约束处理
处理方式
在Matlab中,可以使用 `fmincon`函数来求解非线性规划 问题,该函数可以处理不等式约 束。
要点二
详细描述
这类问题需要同时考虑多个目标函数,每个目标函数可能 有不同的优先级和权重。在Matlab中,可以使用 `gamultiobj`函数来求解这类问题。该函数可以处理具有 多个目标函数的约束优化问题,并允许用户指定每个目标 函数的权重和优先级。
谢谢观看
具体操作
将等式约束条件表示为线性方程组,并使用`Aeq`参 数指定系数矩阵,使用`beq`参数指定常数向量。
注意事项
等式约束条件需要在可行域内满足,否则会 导致求解失败。
边界约束处理
处理方式
边界约束可以通过在目标函数中添加惩罚项来处理,或者使用专门的优化算法来处理。
具体操作
在目标函数中添加惩罚项时,需要在目标函数中添加一个与边界约束相关的项,并调整 其权重以控制边界约束的重要性。
基于MATLAB语言的非线性系统相空间分析

基于MATLAB语言的非线性系统相空间分析一、简述非线性系统相空间分析是研究非线性系统的动力学行为和稳定性的一种方法。
在MATLAB语言中,我们可以通过构建合适的数学模型来描述非线性系统,并利用其强大的数值计算和绘图功能进行相空间分析。
本文将介绍如何使用MATLAB语言对非线性系统进行相空间分析的基本步骤和技巧,包括:建立非线性系统方程、求解方程组、绘制相空间轨迹图等。
通过这些内容的学习,读者可以掌握MATLAB 在非线性系统相空间分析中的应用方法,为进一步深入研究非线性系统提供基础支持。
1. 非线性系统的概念和特点非线性系统是指其行为不能通过线性组合得到的系统,在自然科学、工程技术和社会科学等领域中,非线性系统无处不在,例如:自然生态系统、经济市场、生物医学过程等。
非线性系统的特点是它的输出不仅仅取决于输入,还受到内部状态的影响,这种影响通常是复杂的、难以预测的。
非线性系统的相空间分析是一种处理非线性系统的方法,在MATLAB语言中,我们可以通过使用各种工具箱进行相空间分析,包括解常微分方程(ODE)、解偏微分方程(PDE)以及求解复杂动力学系统等。
首先我们需要理解非线性系统的数学模型,这通常通过将系统的动态方程表示为微分方程来完成。
然后我们可以使用MATLAB的ODE 求解器来求解这些方程,得到系统的相空间轨迹。
此外我们还可以使用MATLAB的PDE工具箱来求解偏微分方程,得到系统的相空间曲面。
除了基本的数值方法外,MATLAB还提供了多种高级功能,如优化工具箱、控制工具箱等,这些都可以用于非线性系统的分析和设计。
例如我们可以使用优化工具箱来寻找最优的控制策略,或者使用控制工具箱来设计自适应控制器。
MATLAB为非线性系统的相空间分析提供了强大的支持,无论是对于理论研究还是实际应用都具有很高的价值。
2. 相空间分析的基本概念和方法相空间分析是一种研究非线性系统动态行为的方法,它通过将系统的微分方程组表示为相空间中的轨迹方程来描述系统的演化过程。
使用Matlab进行非线性系统辨识与控制的技巧

使用Matlab进行非线性系统辨识与控制的技巧在控制系统领域,非线性系统一直是研究的重点和难点之一。
与线性系统不同,非线性系统具有复杂的动力学特性和响应行为,给系统的建模、辨识和控制带来了挑战。
然而,随着计算机技术的快速发展,现在可以利用强大的软件工具如Matlab来进行非线性系统辨识与控制的研究。
本文将分享一些使用Matlab进行非线性系统辨识与控制的技巧,希望对相关研究人员有所帮助。
一、非线性系统辨识非线性系统辨识是指通过实验数据来确定系统的数学模型,以描述系统的动态行为。
在非线性系统辨识中,最常用的方法是基于系统响应的模型辨识技术。
这种方法通常包括以下几个步骤:1. 数据采集和预处理:首先,需要采集实验数据以用于系统辨识。
在数据采集过程中,应尽量减小噪声的影响,并确保数据的可靠性。
然后,对采集到的数据进行预处理,如滤波、采样等,以消除噪声和干扰。
2. 模型结构选择:在进行非线性系统辨识时,应选择合适的模型结构来描述系统的动态特性。
常见的模型结构包括非线性自回归移动平均模型(NARMA),广义回归神经网络(GRNN)等。
选择合适的模型结构对于准确地描述系统非线性特性至关重要。
3. 参数估计:根据选定的模型结构,使用最小二乘法或其他参数估计算法来估计模型的参数。
MATLAB提供了多种估计算法和工具箱,如系统辨识工具箱(System Identification Toolbox)等,可方便地进行参数估计。
4. 模型验证与评估:在参数估计完成后,应对辨识的模型进行验证和评估。
常用的方法是计算模型的均方根误差(RMSE)和决定系数(R-squared),进一步提高模型的准确性和可靠性。
二、非线性系统控制非线性系统控制是指通过设计控制策略来实现对非线性系统的稳定和性能要求。
与非线性系统辨识类似,非线性系统控制也可以利用Matlab进行研究和设计。
以下是一些常用的非线性系统控制技巧:1.反馈线性化控制:线性化是将非线性系统近似为线性系统的一种方法。
控制系统设计与分析MATLAB

控制系统设计与分析MATLAB1. 引言控制系统是现代工程中的重要部分,它在各个领域中起着至关重要的作用。
MATLAB (Matrix Laboratory) 是一种广泛应用于科学与工程计算的高级技术计算与模型设计与仿真软件。
本文将介绍使用MATLAB进行控制系统的设计与分析的基本原理和方法。
2. 控制系统设计2.1. 控制系统概述控制系统主要由输入、输出和控制器组成。
输入是指系统的外部输入信号,输出是系统产生的响应信号,而控制器则决定输出信号如何调整以使系统达到所需的性能指标。
2.2. 开环控制系统设计开环控制系统是一种不考虑系统输出信号对控制器的影响的控制系统。
在MATLAB中,可以使用控制系统工具箱进行开环控制系统的设计。
首先,我们需要构建系统的传递函数模型,然后可以使用工具箱中的函数来设计控制器。
2.3. 闭环控制系统设计闭环控制系统是一种通过系统输出信号反馈给控制器来调整输出信号的控制系统。
在MATLAB中,可以使用控制系统工具箱进行闭环控制系统的设计。
与开环控制系统类似,我们需要构建系统的传递函数模型,并使用工具箱中的函数设计控制器。
不同的是,闭环系统设计中还需要考虑稳定性和性能指标。
2.4. 调整控制器参数在控制系统设计过程中,控制器的参数调整对系统性能有很大影响。
MATLAB 提供了多种方法来帮助我们调整控制器参数,例如PID调节器和根轨迹设计等。
通过实时仿真和反馈,我们可以调整控制器参数以满足系统性能要求。
3. 控制系统分析3.1. 系统响应分析控制系统的性能可以通过分析系统的响应来评估。
在MATLAB中,可以使用step函数、impulse函数和freqresp函数等来分析系统的阶跃响应、脉冲响应和频率响应。
通过分析这些响应,我们可以评估系统的稳定性、阻尼性能和频率特性等指标。
3.2. 频域分析频域分析是通过将输入和输出信号在频域上进行转换来分析系统的特性。
在MATLAB中,可以使用fft函数和bode函数等来进行频域分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例1:构建如图16.1分段线性的非线性特性模块。
(3,1) (4,1) (-1,0) (2,0) (-3,-1) (-2,-1)
图16.1 例1非线性特性
1.新建一个空白模型。在模型中添加子模块集Lookup Tables中 的Lookup Table模块。 2.设置模块属性。双击Lookup Table模块进入其属性设置窗口, 如图16.2,并添加非线性特性值。其中,Vector of input values栏为横坐标向量,而Table data栏为纵坐标向量。需要 注意的是,如果仅添加了图中的所有转折点坐标,则位于最左 侧与最右侧外边的特性将无法表现。因此还应该在特性曲线的 两侧再找两点,从而完整地表现非线性特性。根据非线性函数, 位于最左侧转折点(-3,-1)之外的点取为(-4,-2),位于最右侧 转折点(4,1)之外的点取为(5,2)。
0
0.2
0.4
0.6
0.8
1
1.2
1.4
图16.11 例3输出的相轨 迹
• 系统阶跃响应输出如图16.12所示。
图16.12 系统阶跃响应输出
由16.11分析可知,系统的稳定点在(1,0)点,即稳态值为1。
16.4 描述函数法
16.4.1 描述函数法概述 P.J.Daniel于1940年首先提出了描述函数法。非线性特性的 描述函数法是线性部件频率特性在非线性特性中的推广。 它是对非线性特性在正弦信号作用下的输出进行谐波线性 化处理之后得到的,是非线性特性的一种近似描述。
inrease
decrease
simout To Workspace
>= Sine Wave Relational Operator Memory Scope Switch
图16.7 例2非线性特性在正弦输入的Simulink模型
• 本例给定输入为正弦信号,其幅值分别设为2、 4,其输出可以用示波器模块直接观察,也可 以输出到工作空间后,使用plot函数绘制。其 Simulink模型如图16.7。本例输出到工作空间 变量名设为simout,其保存格式设为Array, 在命令窗口使用plot函数绘制,运行结果如图。 >> plot(tout,simout(:,1),tout,simout(:,2))
2
0
很小,则非线性环节的输出近似为
y (t ) Y1 sin(t 1 )
• 可见,其近似结果和线性环节频率响应形式相似,依 照线性环节的频率特性的定义,非线性环节的输入输 出特性可由描述函数表示:
N ( A) N ( A) e
jN ( A)
B1 jA1 Y1 j1 e A A
(3,2)
(2,2)
(-1,0) (2,0)
(-2,0) (1,0)
(-2,-2)
(-3,-2)
(a) 输入上升分支
(b) 输入下降分支
图16.4 特性分解后的两个单值函数
输入上升分支
输入下降分支
1 In 1
>= Relational Operator Memory Switch
1 Out1
ห้องสมุดไป่ตู้
图16.5 例2非线性特性的Simulink模型
16.1 非线性系统概述
• 含有非线性元件或环节的控制系统称为非线性控制 系统。
• 一般非线性系统的数学模型可表示为: d n x(t ) d n 1 x(t ) dx(t ) d mu (t ) F[ , ,..., , x(t ), ,..., u(t )] 0 n n 1 m dt dt dt dt 写成多变量的形式为:
N ( A)
1 被 N ( A)
G( j )
包围,则系统是不稳定的系统。
G( j )包围的区域称为不稳定区域,不包围的区域称为稳定区域。
1 沿着 G( j) ,则在交点处,若 N ( A) A 值增加的方向由不稳定区域进入稳定区域,则自激振荡是稳 定的,否则,自激振荡是不稳定的。
1 如果 N ( A) 与
n 1 n 1
其中,为直流分量,和是第n次谐波的幅值和相角, 且有
An
Bn
1
0
1
2
0
y (t ) cos ntd (t ), n 0,1,...
2
y(t )sin ntd (t ), n 1, 2,...
2
An Yn An Bn , n arctan Bn 若 A 0 ,且 n 1 Yn 时
1. 描述函数法的定义: 设非线性环节的输入输出关系为 非线性环节输入正弦信号
x(t ) A sin(t )
y f ( x)
非线性环节的输出通常也为周期信号,可以分解为傅立叶级数
y(t ) A0 ( An cos nt Bn sin nt ) A0 Yn sin(nt n )
图16.2 非线性特性属性设置窗口
例2:构建如图16.3的回环非线性特性模块。
(2,2) (3,2)
(-2,0) (-1,0) (1,0) (2,0)
(-3,-2) (-2,-2)
图16.3 例2非线性特性
• 分析:该特性在输入信号增加时走一条折线,而在输入信号减小 时走另一条折线。可以将特性分解为两个单值函数。如图16.4。 • 根据例1的结果,这两个单值函数都可以用查表模块实现。这里 有两个问题需要解决。一是如何判断输入是增加还是减小?在判 断输入信号是否为增加时,可通过比较输入信号的当前值和它的 上一步值进行判断。而Simulink离散模块组中提供的Memory模 块,可以用来记忆上一个计算步长的信号值,这样将输入信号的 当前值和它的上一步值分别作为比较模块(Relational Operator) 的输入,即可输出代表上升还是下降的逻辑值1 和0。二是如何 控制特性曲线走不同折线?Simulink中的Signal Routing子模 块组中Switch模块,使用比较模块的输出作为输入控制,即可 使模块对输入信号的不同变化走不同折线。具体实现如图16.5:
MATLAB 与控制系统仿真实践
第16章 非线性控制系统分析
主要内容
• • • • 原理要点 非线性系统概述 相平面法 描述平面法
• 原理要点 • 非线性系统的研究方法由于系统的复杂性和多 样性而成为控制界的研究热点,从而产生了很 多理论方法。比较基本的有李雅普诺夫第二法, 小范围线性近似法,描述函数法,相平面法, 计算机仿真等等。
图16.10 仿真参数设置窗口
4.开始仿真。 相轨迹可以直接观察XYGraph输出,也可使用输出到工作空间的 参数绘制,如图16.11所示。
>> plot(simout(:,1),simout1(:,1)) >> grid
0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1
对于非线性控制系统的描述函数分析方法,常用的负倒 描述函数为:
1 1 jN ( A ) e N ( A) N ( A)
对于如图16.13 的等效非线性系统, G( j ) 且 在开环幅相平面上无右半平面的极点,稳定性判据为: 1 不被 G( j ) 包围,则系统是稳定的,如果 如果
X (t ) f [ X (t ), U (t ), t ]
• 在F与f函数中,如果相应的算子为线性, 则称为线性系统,否则称为非线性系统。 如果不显含t,则为时不变系统,若显含t, 则称为时变系统。 • 非线性系统输出暂态响应曲线的形状与 输入信号的大小和初始状态有关,非线 性系统的稳定性亦与输入信号的大小和 初始状态有关。非线性系统常会产生持 续振荡。
• 相平面法是一种求解二阶以下线性或非线 性微分方程的图解方法。 • 对于形如下式的二阶系统
x f ( x, x ) 0
• 涉及的概念有: • 1. 相平面:以为横坐标,为纵坐标的直角坐标平面 构成相平面。 • 2. 相轨迹:以时间为参变量,由表示运动状态的分 别作为横坐标和纵坐标而绘制的曲线称为相轨迹, 每根相轨迹与起始条件有关。表示了质点在时刻的 位置和速度。 • 3. 相平面图:同一系统,不同初始条件下的相轨迹 是不同的。由所有相轨迹组成的曲线族所构成的图 称为相平面图。
16.2 非线性特性模块的构建及示例
• 典型的非线性特性有死区非线性、饱和非线性、 间隙非线性、继电非线性等。Simulink给出了 部分非线性特性模块。这在Simulink一章中已 列出。在系统仿真中可以直接使用。但对于没 有提供的模块则需要我们自己构建。那么如何 根据需要构建任意的非线性模块呢?事实上, 任意的静态非线性模块,无论其是单值非线性, 还是多值非线性,都可以由Simulink构建,并 直接用于仿真。
10 s+4 Step Saturation Transfer Fcn
1 s Integrator
XY Graph
Scope
图16.9 例3的Simulink模型
• 3.设置仿真参数。如图16.10,将Solver options下的Type 项选为Fixed-step,Solver项选ode5(Dormand-Prince), Fixed-step size 设为0.01。
1. 典型的非线性特性 典型的非线性特性有死区非线性、饱和非线性、间隙非线性、 继电非线性等。Simulink给出了部分非线性特性模块。用 户也可以自行构建非线性特性模块。 2. 非线性控制系统 含有非线性元件或环节的控制系统称为非线性控制系统。 非线性系统输出暂态响应曲线的形状与输入信号的大小和初 始状态有关,非线性系统的稳定性亦与输入信号的大小和 初始状态有关。非线性系统常会产生持续振荡。
3. 描述函数法 非线性特性的描述函数法是线性部件频率特性在非线性特 性中的推广。它是对非线性特性在正弦信号作用下的输 出进行谐波线性化处理之后得到的,是非线性特性的一 种近似描述。 4. 用描述函数研究系统的稳定点的方法 用描述函数研究系统的稳定点的方法,是建立在线性系统 Nyquist稳定判据基础上的一种工程近似方法。其基本思 想是把非线性特性用描述函数来表示,将复平面上的整 个非线性曲线()理解为线性系统分析中的临界点,再将线 性系统有关稳定性分析的结论用于非线性系统。