MATLAB中Sine Wave模块工作机理

您所在的位置:网站首页 matlab的phase MATLAB中Sine Wave模块工作机理

MATLAB中Sine Wave模块工作机理

2024-07-10 05:15| 来源: 网络整理| 查看: 265

MATLAB中Sine Wave模块工作机理

本文结合MATLAB官方Sine Wave文档,阐述了Simulink中Sine Wave模块的工作机理。Sine Wave模块分为两种工作模式:基于时间的模式和基于采样的模式。

基于时间的模式

基于时间模式的输出结果组成式如下:

y = a m p l i t u d e × s i n ( f r e q u e n c y × t i m e + p h a s e ) + b a i s y=amplitude\times sin(frequency\times time+phase)+bais y=amplitude×sin(frequency×time+phase)+bais

上式中出现的成分均为Sine Wave中的设置参数。在设置面板中,Sample time 作为标志位界定连续与离散行为。

S a m p l e t i m e = 0 Sample time=0 Sampletime=0,Sine Wave工作于连续状态 S a m p l e   t i m e ≠ 0 Sample\ time\ne 0 Sample time​=0,Sine Wave工作于离散状态

不论工作于连续/离散模式,均会表现出累积误差。连续模式累计误差的误差机理是因time过大,因而出现精度损失(不理解,可能时间过长将会出现数据溢出)。离散模式累积误差出现的机理是因为每个时间步的输出计算都取决于上一个时间步的输出值。

离散状态下每个时间步的输出可表示如下:

s i n ( t + Δ t ) = s i n ( t ) c o s ( Δ t ) + c o s ( t ) s i n ( Δ t ) sin(t+\Delta t)=sin(t)cos(\Delta t)+cos(t)sin(\Delta t) sin(t+Δt)=sin(t)cos(Δt)+cos(t)sin(Δt)

c o s ( t + Δ t ) = c o s ( t ) c o s ( Δ t ) − s i n ( t ) s i n ( Δ t ) cos(t+\Delta t)=cos(t)cos(\Delta t)-sin(t)sin(\Delta t) cos(t+Δt)=cos(t)cos(Δt)−sin(t)sin(Δt)

上式中: t + Δ t t+\Delta t t+Δt 对应当前时间步, t t t 对应前一时间步,分析上式, l i m Δ t → 0 lim\Delta t\rightarrow0 limΔt→0,离散结果会逼近理论连续曲线,与之相对应的累计误差越小。因此可得出,累积误差可以被减小,但不会消除。

基于采样的模式

**此部分的工作机理可指导连续函数离散化编程。**基于采样模式的输出结果组成如下:

y = A s i n ( 2 π ( k + o ) / p ) + b y=Asin(2\pi(k+o)/p)+b y=Asin(2π(k+o)/p)+b

A是正弦波的幅值p是每个正弦波周期内的时间采样数k为重复的整数值,范围从0到p-1o是信号的偏移量(相位偏移)b是信号偏差(直流偏置)

Simulink在第一个时间步将k设置为0,并使用该公式计算输出模块。在下一个时间步,Simulink递增k,然后重新计算输出模块。当k达到p时,Simulink在计算模块输出之前将k置为0。此过程会一直持续,直到仿真结束。

参考文献

https://ww2.mathworks.cn/help/simulink/slref/sinewave.html?searchHighlight=sinewave&s_tid=srchtitle_sinewave_1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3