Simulink中步长、powergui采样时间、模块采样时间、控制周期的关系
最近在搭模型的时候,对simulink中的各个“时间”产生了概念上的混淆,网上的资料也是鱼龙混杂,看了之后更是一知半解。因此本文针对Simulink中的各个时间做一个概念上的总结和辨析,也算是为后人避个坑。
仿真步长
步长是matlab仿真时运算每步的时间,在Simulink中可以针对离散系统和连续系统,选择性的设置定步长仿真和变步长仿真。设置的渠道在下图。
这里介绍几个概念:
- 仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
- 仿真补偿模式
- 定步长仿真:求解器按照固定步长来进行仿真,这个步长可以根据系统的精度来进行设置。步长越小,
- 变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测,变步长系统Matlab会不断迭代缩小步长,直到结果满足误差要求具体的采样点的个数有误差精度来决定,精度越高,采样步长就越多,仿真一次需要的时间就越长。
总体来说,步长反应的时系统描述的精度,步长越小,系统的精度越高,反映在曲线上就是曲线采样点越多,曲线越平滑。用硬件的思想来理解的话,这个步长可以等效为主频,即每一个步长周期等效为处理器的时钟周期。
控制周期
这个问题在搭建控制系统模型仿真中会遇到,模拟负责控制的单片机发指令,隔一段时间发一次指令,因此就有了控制周期,也可以用控制频率表示。表示完成一次控制所需要的时间,比如对于电机的FOC控制来说,电机的控制周期就是进行一次矢量控制的时间,即控制周期等于开关管的开关频率。
模块采样时间
既然是模块的采样时间,那么该系统一定是个离散系统。采样是数据更新的时间,控制的核心是反馈,控制器需要系统的输出才能给出下一步的控制指令,但是系统输出是一个连续信号,但是我们需要的是一个离散信号,因此在测量时就涉及到采样频率,也就是我多久测量一次系统的输出。同样以上述电机为例,这个采样时间可以理解为电机三相相电流的采样周期。值得注意的是,采样周期要小于控制周期,这样才能保证系统稳定运行。
Powergui的采样时间
当你的系统如果用到了电气元件,就需要在仿真中配置Powergui模块。powergui的采样时间,指的是整个电气模型的数据更新时间长短,具体来说指的是电气信号的采样时间,比如电源。powergui的采样时间越短,则说明Simulink描述电气模型描述的越准确。同时powergui的设置是不影响非电气信号的,两个或两个以上的采样时间设置,若同时作用在同一个模块上,以最大的为准。
各模块的关系
用在同一个模块上,以最大的为准。
各模块的关系
控制周期>模块的采样时间/powergui的采样时间>仿真步长时间
|