Simulink仿真设置和Scope示波器的使用[方案]

时间:2024-05-31 10:42:39

详细:http://www.docin.com/p-1590326155.html

一) 仿真设置:(窗口菜单”Simulation”→”Configguration parameters…”)

在了解这些设置之前必须先了解一下Simulink的工作原理:我们在Simulink中连线的过程实际上是定义微分(差分)方程(组)的过程。而仿真则是求微分(差分)方程(组)数值解的过程。

1.       Solver中的参数设置:

 

Simulink仿真设置和Scope示波器的使用[方案]

(1)“Type”:设置微分(差分)方程求解类型,”Variable-step”表示采用变步长算法。”Fixed-step”表示采用定步长算法。(参阅微分方程数值解的书籍)

(2)当求解类型是”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”——设置绝对容许误差限。

在变步长算法中,步长大小与信号变化快慢反向相关。容许误差限的作用是控制计算精度。当误差超过容许误差限时会自动修正步长。在迭代的每一步(不妨设是第i次迭代),程序都会将计算出来的值与期望值相见得出一个误差e(i),若e(i)满足:e(i)<=max(相对容许误差限*|y(i)|, 绝对容许误差限),则表明第i次迭代是正确的,否则,程序会自动将步长减小,再来验证上述不等式是否成立。重复上述过程,直到上述不等式成立为止。

(3)当求解类型是”Fixed-step”时,有以下选项:

1”Fixed step size”——设置步长

2”Tasking mode for periodic sample times” ——设置模型类型。

(4)无论是定步长还是变步长,都可以用Solver下拉框选择求解微分(差分)方程数值解的算法。算法的选择可以参考以下原则:

1如果模型全部是离散的,则对于变步长和定步长,解法都采用discrete方式。

2ode45和ode23实际上都是采用Runge-Kutta法,而ode23达到同样的精度时要比ode45步长小。

3ode23s和ode15s可以解Stiff方程。

4ode113是变阶的Adams法,可以多步预报校正。

关于上述算法具体细节有什么不明白的欢迎和我讨论!

2. Data Import/Export中的参数设置:

 

Simulink仿真设置和Scope示波器的使用[方案]

关于这个,我不想多说了,只要理解了simulink的工作原理,应该不难。只是要强调一点,把那就是Ipute栏中的向量可以是两列,如[t,u],也可以是多列。若为多列,则第一列是时间向量,后面几列按顺序依次为对应的输入端口。

 

(二)例子:(包括示波器scope的设置)

例1:如下图连线:(方针时间设为10秒)

 

Simulink仿真设置和Scope示波器的使用[方案]

Sine Wave参数设置如下:

 

Simulink仿真设置和Scope示波器的使用[方案]

示波器Scope设置如下

 

在Configguration parameters…为默认的情况下运行后的结果如下所示:

 

 

若把Configguration parameters…改为:(把max step size改为2)

 

Simulink仿真设置和Scope示波器的使用[方案]

则运行后的图如下图中的折线所示:

 

Simulink仿真设置和Scope示波器的使用[方案]

这时在上图上点击右键,在popup menu中选autoscale,这时可以得到下图:

 

Simulink仿真设置和Scope示波器的使用[方案]

至于为什么是这样子我就不用多说了吧?

再把max step size改为1.0,同时确认示波器属性设置为:Sampling→Decimation→1

则输出如下:

 

Simulink仿真设置和Scope示波器的使用[方案]

此时再将示波器属性设置为:Sampling→Decimation→2

则输出如下:

 

Simulink仿真设置和Scope示波器的使用[方案]

注:示波器的Decimation 设置显示频度。若取n,则每隔(n-1)个数据点给予显示

这时再看command 窗口,有1个warning:

Warning: The model '你的mdl文件名' does not have continuous states, hence using the solver 'VariableStepDiscrete' instead of the solver 'ode45' specified in the Configuration Parameters dialog.

这时只要将Configguration parameters…中的Solver改为discrete就行了

若你的Configguration parameters…中的max step size设置为auto,则还会有一个warning:

Warning: Using a default value of 0.2 for maximum step size. The simulation step size will be limited to be less than this value.

这里之所以是0.2前面已经说过了!(0.2=(10-0)/50)

注:若把max step size改小则图像更精确!但计算量会增大!

 

如果我们把max step size改为0.0001,则可以看到输出波形如下:

 

Simulink仿真设置和Scope示波器的使用[方案]

这是为什么呢?原来是示波器属性设置不对!我们看到示波器属性如下:

 

Simulink仿真设置和Scope示波器的使用[方案]

这就意味着示波器只显示从后往前数5000个点,故显示只有横坐标从9.5到10这一段!

如果我们把Limit data points to last改为100001 (这里100001=(10-0)/ 0.0001 1)。那么波形就对了!如下图所示:

 

Simulink仿真设置和Scope示波器的使用[方案]