在Simulink中建立起系统模型框图后,运行菜单Simulation→Start就可以用Simulink对模型进行动态仿真了。一般在仿真运行前需要对仿真参数进行设置,运行菜单Simulation→Parameters完成设置,如图2-16所示。
1.算法设置(Solver)
在Solver里需要设置仿真起始和终止时间、选择合适的解法(Solver),并指定参数、设置一些输出选择。
(1)设置起始时间和终止时间(Simulation time)
选择菜单Simulation→Start time设置起始时间,而选择菜单Stop time设置终止时间,单位为“s”。
(2)算法设置(Solver options)
1)算法类型设置:仿真的主要过程一般是求解常微分方程组,选择菜单Solver options→Type用来选择仿真算法的类型是变化的还是固定的。
变步长解法可以在仿真过程中根据要求调整运算步长,在采用变步长解法时,应该先指定一个容许误差限(Relative tolerance或Absolute tolerance),使得当误差超过误差限时自动修正仿真步长。Max step size用于设置最大步长,在默认情况下为“auto”,并按下式计算最大步长:
最大步长=(终止时间-起始时间)/50
图2-16 Solver设置
选取定步长解法时,通过选择菜单Mode→MultiTasking、SingTasking和auto来选择模型类型,其中多任务模型指模型中的有些模块具有不同的采样速率,并对模块间的采样速率传递进行检测。单一任务模型的各个模块采样速率是相同的,不检测采样速率的传递,auto则根据模型中模块的采样速率是否相同决定采用单一任务模型还是多任务模型。
2)仿真算法设置:
①离散模型:对变步长和定步长解法均采用discrete(no continuous state)。
②连续模型:变步长解法有ode45、ode23、ode113、ode15s、ode23s 5种,但ode45和ode23较为常用。
ode45:四阶/五阶Runge-Kutta(龙格-库塔)算法,属单步解法;
ode23:二阶/三阶Runge-Kutta算法,属单步解法。
定步长解法有ode4、ode5、ode3、ode2、ode15种。
ode5:定步长的ode45解法;
ode4:四阶Runge-Kutta算法;(www.xing528.com)
ode3:定步长ode23算法;
ode2:Henu方法,即改进的欧拉法;
ode1:欧拉法。
在Simulink中系统默认采用变步长的四阶/五阶龙格-库塔积分法,即ode45()函数进行仿真,若采用其他算法可在算法设置中进行选择。
(3)设置输出选项
图2-17 二阶系统的仿真曲线
对同样的信号,选择不同的输出选项,则得到输出设备上的信号是不完全一样的。要根据需要选择合适的输出选项以达到满意的输出效果。
对于上例的二阶系统,首先运行菜单Simulation→Parameters,进行系统的仿真参数设置,如仿真时间为2s,仿真算法选择定步长的四阶Runge-Kutta算法,然后运行菜单Simulation→Start进行系统仿真,最后双击示波器,得到系统的仿真曲线如图2-17所示。
2.工作空间设置(Workspace I/O)
工作空间设置窗口如图2-18所示,可以设置Simulink和当前工作空间的数据输入、输出。通过设置,可以从工作空间输入数据、初始化状态模块,也可以把仿真结果、状态变量、时间数据保存到当前工作空间。
图2-18 设置Workspace I/O
(1)从工作空间读入数据(Load from workspace)
Simulink通过设置模型的输入端口,实现在仿真过程中从工作空间读入数据,常用的输入端口模块为信号与系统模块库(Signals&Systems)中的In1模块。设置的方法是选中input前的复选框,并在后面的编辑框键入输入数据的变量名,并可以用命令窗口或M文件编辑器输入数据。Simulink根据输入端口参数中设置的采样时间读取输入数据。
(2)保存数据到工作空间(Save to workspace)
可以选择保存的选项有时间、端口输出、状态、最终状态。选中选项前面的复选框并在选项后面的编辑框输入变量名,就会把相应的数据保存到指定的变量中。常用的输出模块为信号与系统模块库(Signals&Systems)中的Out1模块和输出方式库(Sink)中的To Workspace模块。
(3)初始化状态模块
状态模块初始化的方法有两种:使用模块本身的参数设置和从工作空间读入。用于初始化变量中的元素个数要和状态模块数目一致,而且当从工作空间载入数据时,模块本身的参数设置初始值无效。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。