MATLABSIMULINK最常见问题
matlab学习资料:Simulink学习中的100个问答

matlab学习资料:Simulink学习中的100个问答1.命令行如何运行simulink外部模式build和start用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
2.请问matlab中的仿真模块,可以看到起源程序吗?那些基本模块是看不了源代码的,有很多模块是用subsystem组成的,你可以用look under mask(鼠标右键)看到里面是怎样用子模块搭接的,还有很多是由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字)就可以看到源代码3.请问:在simulink参数中设置的步长是50e-6,在系统中有一个simout模块向MA TLAB 中传递数据,但是希望以1e-3的步长获取数据,因该如何设计?在simout模块中直接设定仿真步长是不能运行的。
需要插入一个"zero order hold"模块,将该模块的采样时间设置为1e-03就可以了4.simulink中IGBT等电力元件都有个m极,是什么作用的?用于测量流过IGBT电流及其电压5.用simlink画的图,在示波器中显示,如何复制到word中告诉你一个办法,在加上示波器的地方加上to workspace,改为array,在主窗口中plot,直接抓过去也行吧。
Edit下有copy model选项6.simulink中的mask问题,请问如何封装,prompt,varible填啥,如何初始化prompt中,填写变量的提示,如:直线斜率variable中填写变量名.如:k-------------------------------------------------------------------------有关神经网络工具箱1.为什么当训练和仿真时,命令窗口会出现一堆warning?如:*WARNING* TRAINBPX is an obsolete function.Use NNT2FF and TRAIN to update and train your network.Type NNTW ARN OFF to suppress NNT warning messages.2.trainbpx,simuff这些命令应该怎么用?你用的神经网络不太适合你的matlab版本,有点过时了,对于BP网络,像用newff训练就没问题,建议你可买一本较新的神经网络参考书。
Simulink中的常见问题

仿真命令: sim ---仿真运行一个simulink模块 sldebug ---调试一个simulink模块 simset ---设置仿真参数 simget ---获取仿真参数线性化和整理命令: linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法 dinmod ---从离散时间系统中获取线性模型 trim ---为一个仿真系统寻找稳定的状态参数构建模型命令:open_system --打开已有的模型close_system --关闭打开的模型或模块new_system --创建一个新的空模型窗口load_system --加载已有的模型并使模型不可见 save_system --保存一个打开的模型 add_block --添加一个新的模块 add_line --添加一条线(两个模块之间的连线) delete_block --删除一个模块 delete_line --删除一根线find_system --查找一个模块hilite_system --使一个模块醒目显示replace_block --用一个新模块代替已有的模块set_param --为模型或模块设置参数get_param --获取模块或模型的参数add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口bdroot --根层次下的模块名字gcb --获取当前模块的名字 gcbh --获取当前模块的句柄 gcs --获取当前系统的名字getfullname --获取一个模块的完全路径名slupdate --将1.x的模块升级为3.x的模块addterms --为未连接的端口添加terminators模块boolean --将数值数组转化为布尔值slhelp --simulink的用户向导或者模块帮助封装命令:hasmask --检查已有模块是否封装 hasmaskdlg --检查已有模块是否有封装的对话框 hasmaskicon --检查已有模块是否有封装的图标 iconedit --使用ginput函数来设计模块图标 maskpopups --返回并改变封装模块的弹出菜单项 movemask --重建内置封装模块为封装的子模块诊断命令:sllastdiagnostic --上一次诊断信息sllasterror --上一次错误信息sllastwarning --上一次警告信息 sldiagnostics --为一个模型获取模块的数目和编译状态用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut) 其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut 为外部输入向量。
simulink命令集及常见问题

simulink命令集(转载)仿真命令:sim ---仿真运行一个simulink模块sldebug ---调试一个simulink模块simset ---设置仿真参数simget ---获取仿真参数线性化和整理命令:linmod ---从连续时间系统中获取线性模型(状态方程)linmod2 ---也是获取线性模型,采用高级方法dinmod ---从离散时间系统中获取线性模型trim ---为一个仿真系统寻找稳定的状态参数构建模型命令:open_system --打开已有的模型close_system --关闭打开的模型或模块new_system --创建一个新的空模型窗口load_system --加载已有的模型并使模型不可见save_system --保存一个打开的模型add_block --添加一个新的模块add_line --添加一条线(两个模块之间的连线)delete_block --删除一个模块delete_line --删除一根线find_system --查找一个模块hilite_system --使一个模块醒目显示replace_block --用一个新模块代替已有的模块set_param --为模型或模块设置参数get_param --获取模块或模型的参数add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口bdroot --根层次下的模块名字gcb --获取当前模块的名字gcbh --获取当前模块的句柄gcs --获取当前系统的名字getfullname --获取一个模块的完全路径名slupdate --将1.x的模块升级为3.x的模块addterms --为未连接的端口添加terminators模块boolean --将数值数组转化为布尔值slhelp --simulink的用户向导或者模块帮助封装命令:hasmask --检查已有模块是否封装hasmaskdlg --检查已有模块是否有封装的对话框hasmaskicon --检查已有模块是否有封装的图标iconedit --使用ginput函数来设计模块图标maskpopups --返回并改变封装模块的弹出菜单项movemask --重建内置封装模块为封装的子模块诊断命令:sllastdiagnostic --上一次诊断信息sllasterror --上一次错误信息sllastwarning --上一次警告信息sldiagnostics --为一个模型获取模块的数目和编译状态硬拷贝和打印命令:frameedit --编辑打印画面print --将simulink系统打印成图片,或将图片保存为m文件printopt --打印机默认设置orient --设置纸张的方向-----------------------------------------------------------------------------附件包含好多simulink的例程,对于初学者和高手都需要的东西,大家多多支持作者:mikle 发表时间:2008-8-18 12:15:00第1楼模块名(Source library) 用途Band_Limited White Noise 把白噪声加到连续系统中Chip Signal 产生一个频率不断增大的正弦波Clock 显示和提供仿真时间Constant 产生一个常值Digital Clock 在规定的采样间隔产生仿真时间From File 从文件读取数据From Workspace 从工作面上定义的矩阵中读数据Pulse Generator 在固定的时间间隔产生脉冲Random Number 产生正态分布的随机数Repeating Sequence 产生规律重复的任意信号Signal Generator 产生各种不同的波形Sine Wave 产生一个正弦波Step Input 产生一个阶跃函数模块名(Sinks library) 用途Auto_Scale Graph Scope 在MA TLAB自动调整显示比例的图形窗口显示信号Graph Scope 在MA TLAB图形窗口显示信号Hit Crossing 在规定值附近增加仿真步数Scope 在仿真过程中显示信号Stop Simulation 当输入不为零时停止仿真To File 把数据输出到文件中To Workspace 把数据输出到工作面上定义的一个矩阵中XY Graph Scope 在MA TLAB图形窗口中显示信号的X—Y图模块名(Discrete library) 用途Discrete-Time Integrator 对一个信号进行离散积分Discrete-Time Limited Integrator 对一个信号进行离散有限积分Discrete State-Space 建立一个离散状态空间模型Discrete Transfer Fcn 建立一个离散传递函数Discrete Zero-Pole 以零极点形式建立一个离散传递函数Filter 建立IIR和FIR滤波器First-Order Hold 建立一阶采样保持器Unit Delay 对一个信号延迟一个采样周期Zero-Order Hold 建立一个采样周期的零阶保持器模块名(Linear library) 用途Derivative 对输入信号进行微分Gain 对输入信号乘上一个常数增益Inner Product 对输入信号进行点积Integrator 对输入信号进行积分Matrix Gain 对输入信号乘上一个矩阵增益Slider Gain 以滑动形式改变增益State-Space 建立一个线性状态空间模型Sum 对输入信号进行求和Transfer Fcn 建立一个线性传递函数Zero-Pole 以零极点形式建立一个传递函数模块名(Nonlinear library) 用途Abs 输出输入信号的绝对值Backlash 用放映的方式模仿一个系统的特性Combinatorial 建立一张真值表Coulombic Friction 在原点不连续而在原点以外具有线性增益Dead Zone 提供一个死区Fcn 对输入进行规定的表示Limited Integrator 在规定的范围内进行积分Logical Operator 对输入进行规定的逻辑运算Look-up Table 对输入进行分段的线性映射MA TLAB Fcn 定义一个函数对输入信号进行处理Memory 输出本模块上一步的输入值Product 对输入信号进行乘积运算Quantizer 对输入信号进行量化处理Rate Limiter 限制信号的变化速率Relational Operator 对输入进行一定的关系运算Relay 在两个值中轮流输出Reset Integrator 在仿真中对积分器进行重新初始化Saturation 对输入信号进行限幅Sign 符号函数Swith 在两个输入之间进行开关Transport Delay 对输入信号进行一定的延迟2-D Look-Up Table 对两个输入信号进行分段的线性映射V ariable Transport Delay 对输入信号进行不定量的延迟模块名(Connections library) 用途Demux 把向量信号分开输出Inport 给系统提供一个外部输出Mux 把几个信号合并成向量形式Outport 给系统规定一个输出Subsystem 表示一个系统在另外一个系统中作者:mikle 发表时间:2008-8-18 12:58:00第2楼simulink常见问题集锦:命令行如何运行simulink外部模式build和start用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
Simulink中的常见问题要点

仿真命令:sim ---仿真运行一个simulink模块sldebug ---调试一个simulink模块simset ---设置仿真参数simget ---获取仿真参数线性化和整理命令:linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法dinmod ---从离散时间系统中获取线性模型trim ---为一个仿真系统寻找稳定的状态参数构建模型命令:open_system --打开已有的模型close_system --关闭打开的模型或模块new_system --创建一个新的空模型窗口load_system --加载已有的模型并使模型不可见save_system --保存一个打开的模型add_block --添加一个新的模块add_line --添加一条线(两个模块之间的连线)delete_block --删除一个模块delete_line --删除一根线find_system --查找一个模块hilite_system --使一个模块醒目显示replace_block --用一个新模块代替已有的模块set_param --为模型或模块设置参数get_param --获取模块或模型的参数add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口bdroot --根层次下的模块名字gcb --获取当前模块的名字gcbh --获取当前模块的句柄gcs --获取当前系统的名字getfullname --获取一个模块的完全路径名slupdate --将1.x的模块升级为3.x的模块addterms --为未连接的端口添加terminators模块boolean --将数值数组转化为布尔值slhelp --simulink的用户向导或者模块帮助封装命令:hasmask --检查已有模块是否封装hasmaskdlg --检查已有模块是否有封装的对话框hasmaskicon --检查已有模块是否有封装的图标iconedit --使用ginput函数来设计模块图标maskpopups --返回并改变封装模块的弹出菜单项sllastdiagnostic --上一次诊断信息sllasterror --上一次错误信息sllastwarning --上一次警告信息sldiagnostics --为一个模型获取模块的数目和编译状态用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
matlab simulink中中电池并联电流分配

matlab simulink中中电池并联电流分配在Matlab Simulink中,电池并联电流分配是一种常见的问题。
当我们将多个电池并联连接时,电流会在这些电池之间分配。
这种分配取决于各个电池的内部电阻和电压。
在Simulink中,我们可以使用电路模型来模拟这个过程,并计算出每个电池的电流分配情况。
首先,我们需要创建一个Simulink模型来表示电池的并联连接。
我们可以使用Simulink库中的电源模块来表示电池,并使用连接线将它们连接在一起。
为了简化模型,我们可以假设所有的电池具有相同的内部电阻和电压。
接下来,我们需要设置每个电池的内部电阻和电压。
在Simulink中,我们可以使用参数设置模块来设置这些参数。
通过调整这些参数的值,我们可以模拟不同的电池配置和工作条件。
然后,我们需要添加一个电流测量模块来测量每个电池的电流。
在Simulink中,我们可以使用示波器模块来进行测量。
将示波器模块连接到每个电池的正极和负极之间,就可以测量到每个电池的电流值。
在模拟运行之前,我们需要设置模拟参数。
在Simulink中,我们可以设置模拟时间、步长和其他参数。
通过调整这些参数的值,我们可以获得更准确的模拟结果。
当一切准备就绪后,我们可以开始运行模拟。
在Simulink中,我们可以点击“运行”按钮来启动模拟。
模拟过程会根据设置的参数进行运行,并计算出每个电池的电流分配情况。
在模拟完成后,我们可以查看结果。
在Simulink中,我们可以使用示波器模块来显示每个电池的电流曲线。
通过观察这些曲线,我们可以了解到每个电池的电流分配情况。
总结起来,Matlab Simulink提供了一种方便的方法来模拟并联电池的电流分配。
通过创建一个Simulink模型,并设置适当的参数,我们可以计算出每个电池的电流分配情况,并观察到结果。
这对于设计和优化并联电池系统非常有帮助。
希望这篇文章对你有所帮助!。
simulink问题

simulink问题命令⾏如何运⾏simulink外部模式build和start⽤sim()函数该函数的调⽤格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options 为模型控制参数;ut为外部输⼊向量。
--------------------------------------------------------------------------------请问matlab中的仿真模块,可以看到起源程序吗?那些基本模块是看不了源代码的,有很多模块是⽤subsystem组成的,你可以⽤look under mask(⿏标右键)看到⾥⾯是怎样⽤⼦模块搭接的,还有很多是由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字) 就可以看到源代码--------------------------------------------------------------------------------请问:在simulink参数中设置的步长是50e-6,在系统中有⼀个simout模块向MATLAB中传递数据,但是希望以1e-3的步长获取数据,因该如何设计?在simout 模块中直接设定仿真步长是不能运⾏的。
需要插⼊⼀个"zero order hold"模块,将该模块的采样时间设置为1e-03就可以了。
--------------------------------------------------------------------------------simulink中IGBT等电⼒元件都有个m极,是什么作⽤的?⽤于测量流过IGBT电流及其电压--------------------------------------------------------------------------------⽤simlink画的图,在⽰波器中显⽰,如何复制到word中告诉你⼀个办法,在加上⽰波器的地⽅加上to workspace改为array在主窗⼝中plot直接抓过去也⾏吧。
simulink小问题锦集

simulink命令集、小问题集锦仿真命令:sim ---仿真运行一个simulink模块sldebug ---调试一个simulink模块simset ---设置仿真参数simget ---获取仿真参数线性化和整理命令:linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法dinmod ---从离散时间系统中获取线性模型trim ---为一个仿真系统寻找稳定的状态参数构建模型命令:open_system --打开已有的模型close_system --关闭打开的模型或模块new_system --创建一个新的空模型窗口load_system --加载已有的模型并使模型不可见save_system --保存一个打开的模型add_block --添加一个新的模块add_line --添加一条线(两个模块之间的连线)delete_block --删除一个模块delete_line --删除一根线find_system --查找一个模块hilite_system --使一个模块醒目显示replace_block --用一个新模块代替已有的模块set_param --为模型或模块设置参数get_param --获取模块或模型的参数add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口bdroot --根层次下的模块名字gcb --获取当前模块的名字gcbh --获取当前模块的句柄gcs --获取当前系统的名字getfullname --获取一个模块的完全路径名slupdate --将1.x的模块升级为3.x的模块addterms --为未连接的端口添加terminators模块boolean --将数值数组转化为布尔值slhelp --simulink的用户向导或者模块帮助封装命令:hasmask --检查已有模块是否封装hasmaskdlg --检查已有模块是否有封装的对话框hasmaskicon --检查已有模块是否有封装的图标iconedit --使用ginput函数来设计模块图标maskpopups --返回并改变封装模块的弹出菜单项movemask --重建内置封装模块为封装的子模块诊断命令:sllastdiagnostic --上一次诊断信息sllasterror --上一次错误信息sllastwarning --上一次警告信息sldiagnostics --为一个模型获取模块的数目和编译状态硬拷贝和打印命令:frameedit --编辑打印画面print --将simulink系统打印成图片,或将图片保存为m文件printopt --打印机默认设置orient --设置纸张的方向命令行如何运行simulink外部模式build和start用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
simulink的若干小问题总结

1.回调函数的设置a.整个模型的回调函数设置:File->Model properties(模型属性)->callback页中可设置整个模型的回调函数(通常可将一些初始化数据写成m脚本文件,然后在初始化回调函数中调用此m文件,完成初始化,免得每次运行模型前都要RUN m文件)b.单个模块回调函数的设置右击模块->Block properties(模块属性)callback页中可设置单个模块的回调函数2.数据点限制问题a.Scope(示波器)示波器默认的显示点数是5000,超过5000个点时,只会显示后5000个点;修改方法:示波器属性->Data history页->将limit data points to last前面的对勾去掉;b.out模块out模块输出数据到工作空间时,默认的点数是1000,超过1000点时只输出后1000点,修改方法:Simulation菜单->Configuration Paraments对话框->Data Import/Export页->limit data points to last前面的对勾去掉;使用simout模块就不存在这个问题。
(当需要将数据输出作谱分析时,应使用simout模块,这样才有恒定的采样时间)3.矩阵的相关操作a.矩阵乘除法乘法模块和除法模块默认的是点除,改成矩阵除法的方法,双击模块弹出属性对话框->Main页Multiplication项改为Matrix(*)同理,增益模块也可改为矩阵乘,有四个选项(其中K为增益矩阵,u为信号矩阵):K.*u,K*u,u*K,K*u(u为向量)b.矩阵的连接在simulink->Math Operation->Matrix Connection(矩阵组合模块);可以完成矩阵组合工作,一般不用mux来完成,因为其拼接的方式不好定义。
c.恒值向量当在恒值里输入一恒值行向量时,要将属性中的Interpret vector parameters as 1-D(1维的意思)前的对勾去掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 在变步长算法中,步长大小与信号变化快慢反向 相关。 • 容许误差限的作用是控制计算精度。当误差超过 容许误差限时会自动修正步长。在迭代的每一步 (不妨设是第i次迭代),程序都会将计算出来的值 与期望值相见得出一个误差e(i),若e(i)满足: e(i)<=max(相对容许误差限*|y(i)|, 绝对容许误差 限),则表明第i次迭代是正确的,否则,程序会自 动将步长减小,再来验证上述不等式是否成立。 重复上述过程,直到上述不等式成立为止。
• Initial step size(初始步长参数):一般建议使用“auto” 默认值即可。 仿真精度的定义(对于变步长模式) Relative tolerance(相对误差):它是指误差相对于状态 的值,是一个百分比,缺省值为1e-3,表示状态的计算值 要精确到0.1%。 Absolute tolerance(绝对误差):表示误差值的门限, 或者是说在状态值为零的情况下,可以接受的误差。如果 它被设成了auto,那么simulink为每一个状态设置初始绝 对误差为1e-6。 •
•
•
五、关于两种信号
• Simulink 和PSB 两种信号,前者的连线代 表着信号流的方向,后者则仅代表电气上 的连接 • 两种模块连接时必须要进行信号的转换, 可用电压测量模块和受控电流源模块来实 现两种信号之间的转换。
六、示波器多曲线识别
• Displaying Multiple Signals with the Scope Block • When displaying a vector or matrix signal on the same axis, the Scope block assigns colors to each signal element, in this order: • 示波器中的显示顺序 • Yellow • Magenta紫红,洋红色 • Cyan蓝绿,青色 • Red • Green • Dark Blue
七、Scope背景色设置
• 在matlab命令窗口运行下面两条命令: • set(0,'ShowHiddenHandles','on'); set(gcf,'menubar','figure'); • 之后scope会出现相应的菜单,然后edit>figure property,即可修改scope背景色 • 需要点击axis,然后修改colors • 对于scope中输出曲线的颜色,直接在 scope相应的曲线,即会弹出其属性设置窗, 从而设置曲线颜色。
多步法;Adams算法;高低 精度均可到 10-3~10-6 计算时间比 ode45 短
ode23t ode15s ode23s
适度刚性 采用梯形算法 刚性 刚性 多步法;Gear’s 反向数值微 分;精度中等 单步法;2 阶Rosebrock 算 法;低精度 梯形算法;低精度
适度刚性情形 若 ode45 失效时,可 尝试使用 当精度较低时,计算 时间比 ode15s 短 当精度较低时,计算 时间比ode15s短
• 当求解类型是”Variable-step”时,有以下选项: • 1”Max step size”——最大步长,若为auto,则最大 步长位(Stop time-Start time)/50。 • 2”Min step size”——最小步长。 • 3”Initial step size”——初始步长。 • 4”Relative tolerance”——设置相对容许误差限。 • 5”Absolute tolerance”——设置绝对容许误差限。
电力电子
三、关于求解器(solver)
• 一个适当算法的选择,可以有效的缩短仿 真时间和提供仿真的精度。
求解器
ode45
ODE类 型
非方法; 大部分场合的首选方 累计截断误差为 (△x)3 法
ode23
ode113
非刚性
非刚性
单步法;2,3 阶 R-K 方法; 使用于精度较低的情 累计截断误差为 (△x)3 形
生活中
宇航技术
• 宇航飞行器自动控制系统一般包含两个相 互作用但效应速度相差十分悬殊的子系统 • 一个是控制飞行器质心运动的系统,当飞 行器速度较大时,质心运动惯性较大,因 而相对来说变化缓慢; • 另一个是控制飞行器运动姿态的系统,由 于惯性小,相对来说变化很快,因而整个 系统就是一个刚性系统。
八、建模与结果输出
• • 元件的布局尽量合理、美观、整齐 一定要养成符合实际电路实验时,搭建电路的 习惯,先完成主电路,再连接测量元件。测量 电流和电压的元件,以及示波器等虚拟设备, 不要当成电路的一部分。 模型拷贝:edit>copy mode to clipboard,和输 出波形拷贝的方法。当然均可以采用屏幕打印 (printscreen)的方式。 波形输出
一、Simulink的工作原理
• 我们在Simulink中连线的过程实际上是定义 微分(差分)方程(组)的过程。而仿真 则是求微分(差分)方程(组)数值解的 过程。
二、关于刚性问题(stiff)
什么是刚性问题? 在用微分方程描述的一个变化过程中,若往往又包含 着多个相互作用但变化速度相差十分悬殊的子过程, 这样一类过程就认为具有 “刚性”。描述这类过程的 微分方程初值问题称为“刚性问题”。
ode23tb 刚性
• 如果模型全部是离散的,则对于变步长和 定步长,解法都采用discrete方式。 • ode45和ode23实际上都是采用RungeKutta法,而ode23达到同样的精度时要比 ode45步长小。 • ode23s和ode15s可以解Stiff方程。 • ode113是变阶的Adams法,可以多步预报 校正。
• continuous和discrete两种状态的主要差别 在于他们取值的时间问题,既在continuous 中,理论是无间隔 时间,计算机的做法可 能是很短时间内更新一次值,而discrete则 是很长时间更新一次值,这个很短和很长 的概念是他两相对来说的。 • 离散系统采用差分方程表示,和前一时刻 的状态有关,所以必须知道先前状态连续 系统采用微分方程描述 。
四、关于仿真参数配置
• 仿真时间 • 仿真时间:注意这里的时间概念与真实的 时间并不一样,只是计算机仿真中对时间 的一种表示,比如10秒的仿真时间,如果 采样步长定为0.1,则需要执行100步,若 把步长减小,则采样点数增加,那么实际 的执行时间就会增加。
• “Type”:设置微分(差分)方程求解类 型,”Variable-step”表示采用变步长算 法。”Fixed-step”表示采用定步长算法。