用simulink实现分段函数

用simulink实现分段函数,第1张

如果函数只分了两段的话可以用switch模块,如果分三段的话可以用if模块,但是使用if模块的时候需要跟merge模块以及If Action Subsystem模蚂行块结合,还有一种方式就是用matlab fcn模块,

如图所示:

例子:

已知函数f(x)= 求f(3)的值。

解:由3∈(-∞,6),知f(3)=f(3+2)=f(5),

又5∈(-∞,6),所以f(5)=f(5+2)=f(7).

又由7∈[6,+∞)所以f(7)=7-2=5,因此,f(3)=5。

求分段函数的函数值的方法:先确定要求值的自变量属于哪一段区间,然后按该段的表达式去并毕求值,直到求出值为止。

扩展资料:

求二次函数f(x)=x2-2(2a-1)x+5a2-4a+2在[0,1]上的最小值g(a)的解析式。

解:二次函数f(x)=x2-2(2a-1)x+5a2-4a+2=[x-(2a-1)]2+a2+1

图像开口向上,对称轴是x=2a-1 .

(1)若2a-1<0即a<时。

二次函数f(x)在[0,1]上的最小值是

g(a)=f(0)=5a2-4a+2 ;

(2)若绝物芹0≤2a-1<1即 ≤a<1时。

二次函数f(x)在[0,1]上的最小值是

g(a)=f(2a-1)=a2+1;

(3)若2a-1≥1即a≥1时。

二次函数f(x)在[0,1]上的最小值是

g(a)=f(1)=1-2(2a-1)+5a2-4a+2

=5a2-8a+5 。

综上所述,二次函数f(x)在[0,1]上的最小值是

g(a)=求分段函数的表达式的常用方法有:待定系数法、数形结合法和公式法等。本题采用数形结合法。

参考资料来源:百度百科-分段函数

选中xy Graph,然后点鼠标右键,点look under mask会看到他其实是用

sfunxy来画图,你用edit sfunxy打开这个s函数御缺

里面找到function FigHandle=CreateSfunXYFigure(359行)

在360行,你会发现一些图形的设置,将其中的

'Menubar', 'none',...那一行去掉,运行出来的图也带有菜单,当中

也会有copy figure等等(都能用),你还可以修改图形的设置(增加也可)

设置和在matlab下用命令一样

还可以告扰用print命令来做,help print

在377行往下,是设置坐标轴的代码,你可以自己加你喜欢的设置

比如说加上set(ud.XYAxes,'xgrid','on')就可以实现加上x方向的grid

其对坐标轴的设置也和workspace下的袜拆旦设置方法一样

下面是实现代码

FigHandle = figure('Units', 'pixel',...

'Position', [100 100 400 300],...

'Name', get_param(gcbh,'Name'),...

'Tag','SIMULINK_XYGRAPH_FIGURE',...

'NumberTitle','off',...

'IntegerHandle', 'off',...

'IntegerHandle', 'off',...

'IntegerHandle', 'off',...

'DeleteFcn', 'sfunxy([],[],[],''DeleteFigure'')')

set(ud.XYAxes,'Visible','on')

set(ud.XYAxes,'xgrid','on')

set(ud.XYAxes,'ygrid','on')

、1、演示一个simulink的简单程序,例1:创建一个正弦信号的仿真模型,在matlab的命令窗口中运行simulink命令,或单击工具栏的的图标,就可以打开Simulink 模块库浏览器(Simulink Library Browser) 窗口,如图1所式,(3) 在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击 Source),或者直接在左侧模块和工具箱栏单击 Simulink 下的Source 子模块库,便可看到各种输入源模块,(2) 单击工具栏上的 图标或选择菜单“File”“New ”“Model”,新建一个名为“untitled”的空白模型窗口,(4) 用鼠。

2、标单击所需要的输入信号源模块“Sine Wave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“Sine Wave” 模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave”模块,单击鼠标右键,在快捷菜单中选择“add to untitled” 命令,就可以将“Sine Wave”模块添加到untitled 窗口。如图2所示,(6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模 块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图3所示,(5) 。

3、用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示腔念波器)拖放到“untitled ”窗口中。,(7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink”“Start”,则仿真开 始。双击“Scope”模块出现示波器显示屏,可以看到黄销碰色的正弦波形。如图4所示,图三,图四,8) 保存模型,单击工具栏的 图标,将该模型保存为“Ex0701.mdl”文件 。,2、Simulink 的文件 *** 作,(1) 新建文件 新建仿真模型文件有几种 *** 作: 在MATLAB的命令窗口中选择菜单“File”“New”“Model”。 在图一的Simul。

4、ink模块库浏览器窗口中选择菜单“File”“New”“伍斗困Model”,或 者单击 图标。 在图三的Simulink模型窗口选择菜单“File”“New”“Model”,或者单击 图标。,(2)打开文件 在MATLAB 的命令窗口输入不加扩展名的文件名,该文件必须在当前搜索路径 中,例如输入“Ex0701”。 在MATLAB 的命令窗口选择菜单“File”Open”或者单击工具栏的图标打开文件。 在图图一 的Simulink 模块库浏览器窗口选择菜单“File”“Open”或者单击 图标打开“.mdl”文件。 在图三 的Simulink 模型窗口中选择菜单“File” “Open”或者单击工具栏。

5、的 图标打开文件。,3、Simulink 的基本模块,Simulink 的基本模块包括几个子模块库。,(1)输入信号源模块库(Sources) (2)接收模块库(Sinks) (3)连续系统模块库(Continuous) (4)离散系统模块库(Discrete) (5)离散系统模块是用来构成离散系统的环节,常用的离散系统模块如表一所示,表一,【例2 】控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环,反馈环引入了零阶保持器,输入为阶跃信号。,4、离散系统仿真,创建模型并仿真:,(1)选择两个“Scope”模块,选择一 个“Gain”模块,在“Discrete”模块库选择一个“Dis。

6、crete Filter ”和一个“Zero-Order Hold ”模块。 (2) 连接模块,将反馈环的“Gain”模块和“Zero-Order Hold ”模块翻转。 (3) 设置参数,“Discrete Filter”和“Zero-Order Hold ”模块的“Sample time”都设置为0.1s。 (4) 添加文本注释,系统框图如图所示。,(5) 设置颜色,Simulink 为帮助用户方便地跟踪不同采样频率的运作范围和信号流向,可以采用不同的颜色表示不同的 采样频率,选择菜单“Format ” “Sample time color”,就可以看到不同采样频率的模块颜色不同。 (6)。

7、 开始仿真,在Simulink 模型窗口,选择菜单“Simulation”? “Simulation parameters”,将“Max step size”设置 为0.05s,则两个示波器“Scope”和“Scope1”的显示如图五 所示,图五,可以看出当T=0.6 而Tk=0.1 时,系统出现振荡。,(7)修改参数,将“Discrete Filter ”模块的“Sample time”设置为0.6s,“Zero-Order Hold ”模块的“Sample time”不变; 选择菜单“Edit” “Update diagram ”命令修改颜色,就可以看到“Discrete Filter”模块的颜色变化了;然后开始仿真,则示波器显示如图六所示,图六,可以看出当T=0.6 而Tk=0.1 时,系统出现振荡。,图六,(8) 修改参数,将“Discrete Filter ” 和“Zero-Order Hold”模块“Sample time”都设置为0.6s,更新框图颜色,开始仿真,则示波器显示如图七所示。,图七,可以看出当T=Tk=0.6 时,系统出现强烈的振荡。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8257590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存