Waveform Generator
使用信号符号输出波形
库:
Simulink /
Sources
描述
Waveform Generator 模块根据您在波形定义表中输入的信号符号输出波形。
此模块支持下列用于信号符号的语法:
此模块支持普通、快速和快速加速模式以及快速重启。
支持的运算符
运算 | 运算符 |
---|---|
绝对值 | abs() |
加法 | + |
除法 | / |
乘法 | * |
括号 | () |
减法 | - |
一元减法 | - |
Waveform 模块遵循以下运算符优先规则:
( )
+ -
(一元)* /
+ -
支持的运算
Waveform Generator 模块一次输出一个信号。您可以更改此输出信号。以弧度表示频率和相位偏移量参数。您还可以:
嵌套信号符号,例如:
sin('Amplitude',sin('Amplitude',1,'Frequency',1,'Phase',0),'Frequency',1,'Phase',1)
在基础工作区或模型工作区中引用实数标量变量,例如:
sin('Amplitude',x,'Frequency',y,'Phase',z)
x、y 和 z 存在于基础工作区中。
有关波形的详细信息,请参阅“算法”部分。
要快速确定系统对不同类型输入的响应,您可以在仿真过程中更改 Waveform Generator 模块的输出信号。
示例
Switch Between Output Waveforms During Code Execution for Waveform Generator Block
Generate code that enables you to switch between stimulus waveforms during code execution.
(Embedded Coder)
限制
在执行使用 Simulink® Coder™ 生成的代码期间,您不能调整波形的参数,例如频率或振幅。在这种情况下,您可以另行生成代码,以在指定的波形变体之间切换。有关详细信息,请参阅Switch Between Output Waveforms During Code Execution for Waveform Generator Block (Simulink Coder)。
端口
输出
Port_1 — 生成的输出信号
标量 | 向量
由波形定义表中的条目指定的输出信号。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| bus
参数
常设
输出信号 — 输出信号的波形
1 (默认) | 整数
选择波形定义以指定输出信号。该数字对应于波形定义表中的行项。您可以在仿真运行时更改此参数。
编程用法
模块参数:SelectedSignal |
类型:字符向量 |
值:标量 |
默认值:'1' |
波形定义 — 波形信号符号
常量 | gaussian(mean,variance,seed)
| pulse(amplitude,trigger_time,duration)
| sawtooth(amplitude,frequence,phase_offset)
| sin(amplitude,frequence,phase_offset)
| square(amplitude,frequence,phase_offset)
| step(step_time,initial_value,final_value)
在波形定义表中输入信号符号,每行一个波形定义。有关语法的详细信息,请参阅“算法”。
信号属性
数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 。有关详细信息,请参阅使用数据类型助手指定数据类型。
输出最小值 — 范围检查的最小输出值
[]
(默认) | 标量
Simulink 检查的输出范围的下限值。
Simulink 使用最小值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
注意
输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
模块参数:OutMin |
类型:字符向量 |
值:'[ ]' | 标量 |
默认值:'[ ]' |
输出最大值 — 范围检查的最大输出值
[]
(默认) | 标量
Simulink 检查的输出范围的上限值。
Simulink 使用最大值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
注意
输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
模块参数:OutMax |
类型:字符向量 |
值:'[ ]' | 标量 |
默认值:'[ ]' |
输出数据类型 — 指定输出数据类型
double (默认) | 继承: 通过反向传播继承 | single | int8 | int32 | uint32 | int64 | uint64 | fixdt(1,16,2^0,0) | <数据类型表达式> | ...
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType
。
编程用法
模块参数:OutDataTypeStr |
类型:字符向量 |
值:'Inherit: Inherit via back propagation' 、'single' 、'int8' 、'uint8' 、int16 、'uint16' 、'int32' 、'uint32' 、'int64' 、'uint64' 、fixdt(1,16,0) 、fixdt(1,16,2^0,0)、fixdt(1,16,2^0,0) 。'<data type expression>' |
默认值:'Double' |
锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖数据类型
off
(默认) | on
选中此选项将锁定此模块的输出数据类型设置,从而防止通过定点工具和定点顾问进行更改。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)。
编程用法
模块参数:LockScale |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
锁定数据类型设置以防止被定点工具更改 — 防止定点工具覆盖数据类型
off
(默认) | on
选择此选项可锁定数据类型设置,防止使用定点工具和定点顾问进行更改。有关详细信息,请参阅Lock the Output Data Type Setting (Fixed-Point Designer)。
编程用法
模块参数:LockScale |
值:'off' | 'on' |
默认值:'off' |
整数舍入模式 — 指定定点运算的舍入模式
向下 (默认) | 向上 | 收敛 | 最邻近值 | 舍入 | 最简 | 零
选择下列舍入模式之一。
- 向上
将正值和负值朝正无穷方向舍入。等同于 MATLAB®
ceil
函数。- 收敛
将数值舍入到最邻近的可表示值。如果出现结值,则舍入到最邻近的偶数整数。等同于 Fixed-Point Designer™
convergent
函数。- 向下
将正值和负值朝负无穷方向舍入。等同于 MATLAB
floor
函数。- 最邻近值
将数值舍入到最邻近的可表示值。如果出现结值,则朝正无穷方向舍入。等同于 Fixed-Point Designer
nearest
函数。- 舍入
将数值舍入到最邻近的可表示值。如果出现结值,则将正数朝正无穷方向舍入,将负数朝负无穷方向舍入。等同于 Fixed-Point Designer
round
函数。- 最简
自动选择是向负无穷大方向舍入还是向零舍入,以生成尽可能有效的舍入代码。
- 零
将数值向零舍入。等同于 MATLAB
fix
函数。
编程用法
模块参数:RndMeth |
类型:字符向量 |
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
默认值:'Floor' |
另请参阅
有关详细信息,请参阅舍入 (Fixed-Point Designer)。
对整数溢出进行饱和处理 — 溢出操作的方法
off
(默认) | on
指定对溢出是进行饱和处理还是绕回处理。
操作 | 原理说明 | 对溢出的影响 | 示例 |
---|---|---|---|
选中此复选框 ( | 您的模型可能有溢出,并且您希望在生成的代码中具有显式饱和保护。 | 将溢出饱和处理为数据类型能够表示的最小值或最大值。 |
|
不选中此复选框 ( | 您需要优化所生成代码的效率。 您希望避免过度地指定信号超出范围时的处理方式。有关详细信息,请参阅信号范围错误故障排除。 | 溢出会绕回到由数据类型表示的适当值。 |
|
如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。通常,代码生成过程可以检测何时不会发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程用法
模块参数:SaturateOnIntegerOverflow |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
采样时间 — 采样时间间隔
0.1
(默认) | 标量
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
算法
在波形定义表中输入信号符号,每行一个波形定义。要添加波形定义,请点击 Add。新波形显示为空字符向量。模块将空字符向量或空白字符向量解释为接地。
要删除波形定义,请点击删除。您可以使用 Ctrl + 点击或 Shift + 点击来选择多个波形。
常量
常量值可以是:
数字
工作区变量
仅限标量实数变量
内置 MATLAB 常量
pi
1
1.1
x
pi
高斯噪声
gaussian(mean
,variance
,seed
)
gaussian('Mean',mean
,'Variance',variance
,'Seed',seed
)
mean
- 随机变量输出的均值。默认值:0
variance
- 随机变量输出的标准差。默认值:1
值:正常量或正实数标量变量
seed
- 随机数生成函数的初始种子值。默认值:0
值:常量或实数标量变量
gaussian('Mean',0,'Variance',10,'Seed',1)
脉冲
pulse(amplitude
,trigger_time
,duration
)
pulse('Amplitude',amplitude
,'TriggerTime',trigger_time
,'Duration',duration
)
amplitude
- 脉冲高时的信号值。默认值:1
trigger_time
- 信号变为振幅时经过的仿真时间,以秒为单位。默认值:1
值:常量或实数标量变量
duration
- 信号在返回为接地值之前保持给定振幅的时间长度,以秒为单位。默认值:1
值:正常量或正实数标量变量
pulse('Amplitude',1,'TriggerTime',1,'Duration',1)
锯齿波
sawtooth(amplitude
,frequency
,phase_offset
)
sawtooth('Amplitude',amplitude
,'Frequency',frequency
,'Phase',phase_offset
)
amplitude
- 锯齿波峰值。默认值:1
frequency
- 波形频率,以 rad/s 为单位。默认值:1
phase_offset
- 基于经过的仿真时间(以秒为单位)的水平信号移位。默认值:0
sawtooth('Amplitude',1,'Frequency',1,'Phase',0)
正弦波
sin(amplitude
,frequency
,phase_offset
)
sin('Amplitude',amplitude
,'Frequency',frequency
,'Phase',phase_offset
)
amplitude
- 正弦波的振幅。默认值:1
frequency
- 波形频率,以 rad/s 为单位。默认值:1
phase_offset
- 相位偏移量,以弧度为单位。默认值:0
sin('Amplitude',1,'Frequency',1,'Phase',0)
要得到余弦波形,请使用以下语句:
sin('Amplitude',1,'Frequency',1,'Phase',pi/2)
方波
square(amplitude
,frequency
,phase_delay
,duty_cycle
)
square('Amplitude',amplitude
,'Frequency',frequency
,'Phase',phase_delay
,... 'DutyCycle',duty_cycle
)
amplitude
- 信号的振幅。默认值:1
frequency
- 以 rad/s 为单位的波形频率。默认值:1
phase_delay
- 基于经过的仿真时间(以秒为单位)的水平信号移位。默认值:0
duty_cycle
- 每个周期的高信号百分比 (0–100%)。模块将最小信号定为 0%,将最大信号定为 100%。默认值:50
square('Amplitude',1,'Frequency',1,'Phase',0,'DutyCycle',50)
时间步
step(step_time
,initial_value
,final_value
)
step('StepTime',step_time
,'InitialValue',initial_value
,'FinalValue',final_value
)
step_time
- 信号从initial value
变为final value
经过的仿真时间,以秒为单位。默认值:1
值:常量或正实数标量变量。
initial_value
- 经过的仿真时间(以秒为单位)小于step_time
时的信号值。默认值:0
final_value
- 当经过的仿真时间(以秒为单位)大于或等于步长时间时的信号值。默认值:1
step('StepTime',1,'InitialValue',0,'FinalValue',1)
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
不建议用于生产代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2015b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)