实验二 Matlab优化工具箱的使用
一.实验目的
通过上机操作熟悉Matlab优化工具箱的主要功能及其使用方法,掌握优化工具箱中常用函数的功能和语法,并利用其进行极值运算、求解线性和非线性问题等,为进一步的仿真设计和研究打下基础。
二. 实验设备
个人计算机,Matlab软件。
三. 实验准备
预习本实验有关内容(如教材第6章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容
1. 应用Matlab优化工具箱求解优化问题
例题6.6~6.10,选做2题,要求自行修改方程系数,并比较运行结果。
例6.6 例如我们希望求解非线性方程:初始值为x0 = [-5 -5]
function Fun=Fun(x)
Fun=[x(1)-x(2)-exp(-x(1));-x(1)+x(2)-exp(-x(2))];
x0=[-3; -3];
options=optimset('Display','iter');
[x,fval]=fsolve(@Fun,x0,options)
例6.7 利用Matlab语言求解下列线性规划问题
f=[-2 -1.3 -5]';
A=[1 2 4 -1; 2 3 -1 1; 1 0 1 1; -1 0 0 0; 0 -1 0 0; 0 0 -1 0; 0 0 0 -1];
b=[6 12 4 0 0 0 0]';
X=linprog(f,A,b)
例6.8:利用Matlab命令求解下面的无约束非线性规划问题。
function f=fun(x)
f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)
end
x0=[-1 1];
options=[];
[x,options]=fminunc(fun,x0,options)
2. 应用Matlab优化工具箱求解极值问题
已知函数f(x)=10*exp(-x)*cos(x) ,求函数的极值。
(1)x∈[2,5]时,求函数的最小值,并画出函数的曲线。
求解程序如下:
f=inline('10*exp(-x)*cos(x)');
[x,min]=fminbnd(f,2,5)
figure(1);ezplot(f,[1,9])
x =
2.3562
min =
-0.6702
(2)x∈[3,9]时,求函数的最大值,并画出函数的曲线。
为了求解原函数的最大值,即为求解负的原函数的最小值所以求解方程变为f1=-10*exp(-x)*cos(x)。
求解程序如下:
f1=inline('-10*exp(-x)*cos(x)');
[x,max]=fminbnd(f1,3,9)
figure(2);ezplot(f1,[1,9])
x =
5.4978
max =
-0.0290
五.总结与体会
第二篇:计算机仿真Matlab 实验报告二
实验二 非线性系统的数字仿真实验
一、实验目的
学会用数字仿真方法分析线性和非线性系统的动态特性以及各种典型非线性环节对控制系统动态特性的影响。
二、实验内容
系统模型如习题2.17所示。根据控制理论分析,该系统将出现振幅为0.3,频率为0.8的自激振荡。
1. 按实验目的、要求和已知条件,建立系统的Simulink模型。
2. 在不引入非线性环节的情况下运行仿真模型,观察纪录系统动态特性的变化。
3. 在同样的条件下,引入滞环继电特性非线性环节,再运行仿真模型,观察纪录该非线性环节对系统过渡过程的影响。
4. 将滞环继电特性非线性环节换成饱和非线性环节,C1仍为0.3,运行仿真模型,观察纪录饱和非线性环节对系统过渡过程的影响。
实验解答:
1.按实验目的、要求和已知条件,建立系统的Simulink模型。
建立Simulink模型如下:
2. 在不引入非线性环节的情况下运行仿真模型,观察纪录系统动态特性的变化。
去掉上图中的非线性环节—Relay,得到下图仿真结果:
从
图可以看出,开始会有突变,之后趋于稳定。
3. 在同样的条件下,引入滞环继电特性非线性环节,再运行仿真模型,观察纪录该非线性环节对系统过渡过程的影响。
如下,加入了滞环继电特性非线性环节
从图中可以看出,系统产生了自激振荡,可以通过编程找到仿真曲线上的极值点,求出该图线的周期、角频率以及振幅。通过仿真,由仿真图像可以很明白地看出,产生了自激振荡,且该自激振荡幅度约为0.6,周期约为8,则角频率约为0.8。仿真结果与题目一致。
4. 将滞环继电特性非线性环节换成饱和非线性环节,C1仍为0.3,运行仿真模型,观察纪录饱和非线性环节对系统过渡过程的影响。
由图可得,仿真曲线的变化趋于缓和,但同时进入稳定的速率变慢。即加入的饱和环节在系统中起到了限幅的作用。饱和非线性环节使得系统更加平和的进入了稳定状态。