Simulink模块说明

Simulink模块库介绍(二)——连续离散模块 Simulink模块库介绍(二)——连续模块目录 目录 阅读详情
AI摘要

本文详细介绍了Simulink库中多个模块的功能。涵盖Commonly Used Blocks、Continuous库、Discontinuities模块等多个类别,包括Bus Creator、Constant、Derivative等模块,阐述了各模块的输入、输出及具体运算方式,如积分方法、逻辑运算等。

Simulink库

Commonly Used Blocks

image.png

Bus Creator

将一组输入元素合并成一条总线
**输入:**要包含在总线中的输入元素。
**输出:**由合并的输入元素组成的输出总线,指定为虚拟或非虚拟总线。

Bus Selector

Bus Selector 模块输出您从输入总线选择的元素。该模块可以单独输出所选的各元素或在一个新的虚拟总线中输出所选元素。
**输入:**输入总线,可以是虚拟总线,也可以是非虚拟总线。对于总线数组,您必须使用 Selector 模块来选择要与 Bus Selector 模块结合使用的总线。
**输出:**输入总线的所选总线元素。该模块自上而下地对每个输出元素使用一个单独的端口。

Constant

生成实数或复数常量值信号。使用此模块提供常量信号输入。
此模块的输出与常量值参数具有相同的维度和元素。如果为此参数指定向量,即您希望模块将其解析为向量,请选中将向量参数解释为一维向量复选框。否则,如果为常量值参数指定了向量,模块会将该向量视为一个矩阵。
**输出:**常量值,指定为实数或复数值标量、向量、矩阵或 N 维数组。

Data Type Conversion

Data Type Conversion 模块可将任何 Simulink® 数据类型的输入信号转换为您指定的数据类型。
**输入:**输入信号,指定为标量、向量、矩阵或 N 维数组。输入可以是任何实数或复数值信号。如果输入为实数,则输出也是实数。如果输入为复数,则输出也是复数。
**输出:**输出信号,转换为您指定的数据类型,具有与输入信号相同的维度。

Delay

Delay 模块会在一段延迟之后再输出模块的输入。此模块根据延迟长度参数的值来确定延迟时间。
输入:

  1. u - 数据输入信号:根据参数设置延迟的输入数据信号。
  2. d - 延迟长度:指定为从输入端口继承的延迟长度。当您对延迟长度:源参数选择“输入端口”时启用。
  3. Enable - 使能信号:使能信号,用于启用或禁用模块的执行。要创建此端口,请选择显示使能端口参数。
  4. 外部重置信号:将模块的执行重置为初始状态的外部信号。要创建此端口,请选择外部重置参数。
  5. x0 - 初始条件:指定为从输入端口继承的初始条件。当您对初始条件:源参数选择“输入端口”时启用。

输出:输出信号,它是按参数延迟长度指定的时间长度延迟后的输入信号。

Demux

Demux 模块提取输入向量信号的分量,再将它们输出为单独的信号。输出信号端口从上到下排列。
**输入:**Demux 模块从中选择标量信号或更小向量的向量输入信号。
**输出:**输出从输入向量中提取的信号。输出信号端口从上到下排列。

Discrete-Time Integrator

使用 Discrete-Time Integrator 模块替代 Integrator 模块来创建纯离散模型。
**输入:**输入信号,指定为标量、向量或矩阵。
IC - 状态的初始条件,指定为有限标量、向量或矩阵。
**输出:**Port_1 - 输入的离散时间积分或累积,指定为标量、向量或矩阵。
Port_2 - 饱和输出。指示状态何时受限的信号,指定为标量、向量或矩阵。信号具有以下三个值之一:

  • 1 表示正在应用上限。
  • 0 表示积分不受限制。
  • -1 表示正在应用下限。

Port_3 状态输出。模块状态,输出为标量、向量或矩阵。默认情况下,模块将此端口添加到模块图标的顶部。
积分方法或累积方法:
此模块可以使用前向欧拉、后向欧拉或梯形法对信号进行积分或累积。假定 u 为输入,y 为输出,x 为状态。对于给定步长 n,Simulink 将更新 y(n) 和 x(n+1)。在积分模式下,T 是模块的采样时间(如果是触发采样时间,则是 delta T)。在累积模式下,T = 1。模块采样时间决定计算输出的时间,而不是输出值。K 是增益值。值根据上限或下限进行剪切。
前向欧拉方法
前向欧拉方法(默认值),也称为正向矩形或左手逼近方法
该软件将 1/s 近似为 T/(z-1)。模块在第 n 个时间步的输出的表达式为:

x(n+1) = x(n) + K*T*u(n)
y(n)   = x(n)

模块按照以下时间步计算输出:

Step 0:          y(0)   = IC (clip if necessary)
                 x(1)   = y(0) + K*T*u(0)

Step 1:          y(1)   = x(1)
                 x(2)   = x(1) + K*T*u(1)

Step n:          y(n)   = x(n)
                 x(n+1) = x(n) + K*T*u(n) (clip if necessary)

使用此方法时,输入端口 1 没有直接馈通。
后向欧拉方法
后向欧拉方法,也称为反向矩形或右手逼近方法
该软件将 1/s 近似为 Tz/(z-1)。模块在第 n 个时间步生成的输出的表达式为:
y(n) = y(n-1) + K
T*u(n).
假设 x(n) = y((n)-1)。模块按照以下时间步计算输出。

  • 如果触发子系统和函数调用子系统的参数初始条件设置设置为“输出”或“自动”:
Step 0:          y(0) = IC (clipped if necessary)
                 x(1) = y(0)
  • 如果非触发子系统的参数初始条件设置设置为 “”:
Step 0:          x(0)   = IC (clipped if necessary)
                 x(1)   = y(0) = x(0) + K*T*u(0)

Step 1:          y(1)   = x(1) + K*T*u(1)
                 x(2)   = y(1)

Step n:          y(n)   = x(n) + K*T*u(n)
                 x(n+1) = y(n)

使用此方法时,输入端口 1 具有直接馈通。
梯形法
对于此方法,本软件将 1/s 近似为 T/2*(z+1)/(z-1)。
当 T 固定时(等于采样周期),计算输出的表达式为:

x(n) = y(n-1) + K*T/2*u(n-1)
y(n) = x(n) + K*T/2*u(n)
  • 如果触发子系统和函数调用子系统的参数初始条件设置设置为“输出”或“自动”:
Step 0:          y(0)   = IC (clipped if necessary)
                 x(1)   = y(0) + K*T/2*u(0)
  • 如果非触发子系统的参数初始条件设置设置为 “”:
Step 0:          x(0)   = IC (clipped if necessary)
                 y(0)   = x(0) + K*T/2*u(0)
                 x(1)   = y(0) + K*T/2*u(0)

Step 1:          y(1)   = x(1) + K*T/2*u(1)
                 x(2)   = y(1) + K*T/2*u(1)

Step n:          y(n)   = x(n) + K*T/2*u(n)
                 x(n+1) = y(n) + K*T/2*u(n)

这里,x(n+1) 是下一个输出的最佳估计值。它与状态的不同之处在于,x(n) 不等于 y(n)。
使用此方法时,输入端口 1 具有直接馈通。
当 T 为变量时
当 T 是变量时(例如,从触发时间获得),模块将按照以下时间步计算输出。

  • 如果触发子系统和函数调用子系统的参数初始条件设置设置为“输出”或“自动”:
Step 0:          y(0)   = IC (clipped if necessary)
                 x(1)   = y(0)
  • 如果非触发子系统的参数初始条件设置设置为 “”:
Step 0:          x(0)   = IC (clipped if necessary)
                 x(1)   = y(0) = x(0) + K*T/2*u(0)

Step 1:          y(1)   = x(1) + T/2*(u(1) + u(0))
                 x(2)   = y(1)

Step n:          y(n)   = x(n) + T/2*(u(n) + u(n-1))
                 x(n+1) = y(n)

Gain

Gain 模块将输入乘以一个常量值(增益)。输入和增益可以是标量、向量或矩阵。
**输入:**Gain 模块接受实数或复数值标量、向量或矩阵输入。Gain 模块支持定点数据类型。如果 Gain 模块的输入为实数,增益为复数,则输出为复数。
**输出:**Gain 模块的输出是输入乘以常量增益值。当 Gain 模块的输入为实数且增益为复数时,输出为复数。

Ground

接地
**输出:**Ground 模块输出具有零值的标量信号,其数据类型与所连接的端口相同。

In1

Inport 模块将信号从系统外部链接到系统内。
**输出:**通过输入端口流入系统的输入信号。

Integrator

通过输入端口流入系统的输入信号。
输入:

  1. 被积函数信号(double)
  2. 外部重置信号:将状态重置为初始条件。要启用此端口,请启用外部重置参数。
  3. x0 - 初始条件:根据外部信号设置模块状态的初始条件。要启用此端口,请将初始条件参数设置为“外部”。(double)

输出:

  1. 输出信号(double)
  2. 显示输出饱和:指示状态何时受到限制。当积分由指定的饱和上限限制时,信号的值为 1。当信号由饱和下限限制时,信号值为 -1。当积分介于饱和限制之间时,信号值为 0。(double)
  3. 状态:输出模块的状态。通过启用显示状态端口参数来启用此端口。(double)

Logical Operator

Logical Operator 模块对其输入执行指定的逻辑运算。输入值为非零值时为 true (1),为零时则为 false (0)。

Mux

将相同数据类型和复/实性的输入信号合并为虚拟向量

  1. 输入:要包含在复路信号中的输入信号,指定为标量或向量。Mux 模块的输入信号可以是标量和向量的任意组合,但它们必须具有相同的数据类型和复/实性。
  2. 输出:由合并的输入信号组成的输出复路信号,以向量形式返回。输出复路信号的元素按照输入信号的端口顺序排列。

out1

为子系统或外部输出创建输出端口
输入:通过输出端口流向外部子系统或模型的输入信号。

Product

标量和非标量的乘除运算或者矩阵的乘法和逆运算
image.png

Relational Operator

双输入模式

image.png

单输入模式

image.png
image.png

Saturation

将输入信号限制在饱和上界和下界值之间
image.png

Scope

image.png

Subsystem

对各模块进行分组以创建模型层次结构

  1. 输入:在子系统中放置一个 Inport 模块会向 Subsystem 模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。使用 Inport 模块可以从局部环境中获取信号。
  2. 输出:在子系统中放置一个 Outport 模块会从 Subsystem 模块添加一个输出端口。Subsystem 模块上的端口标签是 Outport 模块的名称。使用 Outport 模块可以向局部环境发送信号。

Sum

输入信号的加减运算

Switch

Switch 模块根据第二个输入的值,传递第一个输入或第三个输入信号。第一个和第三个输入是数据输入。第二个输入是控制输入。可以使用首个输入传递条件和阈值参数指定模块传递第一个输入的条件。

Terminator

终端
使用 Terminator 模块终止输出端口未连接其他模块的模块。如果您运行的仿真中有一些模块的输出端口未连接任何模块,Simulink® 将发出警告消息。使用 Terminator 模块终止这些模块,可以防止出现此类警告消息。

Vector Concatenate

Vector Concatenate 和 Matrix Concatenate 模块串联输入信号,以创建一个非虚拟输出信号,其元素位于内存中的连续位置。


Continuous库

Derivative

Derivative 模块可近似计算输入信号 u 相对于仿真时间 t 的导数。方法是计算数值差异 Δ_u_/Δ_t_,其中 Δ_u_ 是输入值的变化,Δ_t_ 是自上一个仿真(主要)时间步以来的时间变化。
此模块接受一个输入并生成一个输出。模块的初始输出为零。具体的计算原理为:
image.png
其中 t 是当前仿真时间,Tprevious 是上次仿真输出的时间。后者与上次主时间步的时间相同。
Derivative 模块的输出可能对整个模型的动态比较敏感。输出信号的准确度取决于仿真中采用的时间步长的大小。步长越小,此模块的输出曲线就越平滑和准确。但是,与具有连续状态的模块不同,当此模块的输入快速变化时,求解器不会采用较小的步长。根据驱动信号和模型的动态,此模块的输出信号可能包含意外波动。这些波动主要是由驱动信号输出和求解器步长导致的。由于存在这种敏感度,电路模型中最好采用Integrator模块而不是Derivative模块。

Descriptor State-space

image.png
建立线性隐式系统模型:
image.png
E是系统的质量矩阵(mass matrix)。当E是非奇异矩阵时,其可逆,故可将其写为显式形式:
image.png
然后使用State-space模块建模。当E是奇异矩阵时,方程中不存在系统因变量的一个或多个导数。这些变量称为代数变量。包含这些代数变量的微分方程称为代数微分方程。它们的状态方程表示为:
image.png

  • x:状态向量
  • u:输入向量
  • y:输出向量

输入和输出变量的数据Type为’double’。

Entity Transport Delay

实体(entity)传输延迟块将实体延迟一段时间,称为传输延迟。第一个输入是在速度随时间变化的恒定长度表面上从点A传输到点B的实体。第二个输入的值是瞬时延迟。
表面的速度是瞬时延迟的倒数。瞬时延迟与速度的乘积恒等于1。

First Order Hold

FOH模块输出其输入的连续分段线性逼近。使用 First Order Hold 模块将采样的离散信号转换为连续信号,而不触发求解器重置。

慢速算法(避免过冲法)

慢速或低通算法执行的线性外插可以描述为:image.png
image.png

快速算法(最小化误差法)

快速或高通算法执行的线性外插可以描述为:image.png
image.png
快速算法通过在模块的更新方法期间尝试预测下一个输入来最小化误差。模块的预测输出中的误差减少与用于过冲输入信号的趋势之间进行折衷。

Integrator

Integrator 模块输出其输入信号相对于时间的积分值。模块动态由以下方程指定:
image.png

限制积分

此操作会使该模块起到限量积分器的作用。当输出达到界限时,积分操作将关闭以防止积分饱和。
image.png

  • 1 表示正在应用上限。
  • 0 表示积分不受限制。
  • -1 表示正在应用下限。

Second-Order Integrator

Second-Order Integrator 模块和 Second-Order Integrator Limited 模块用来求解器二阶初始值问题:
image.png
其中 u 是系统的输入信号。因此,此模块是一个动态系统,它具有两个连续状态:x 和 dx/dt。
image.png

Second-Order Integrator Limited

Second-Order Integrator Limited 模块除了默认情况下基于指定的上限和下限值来限制状态外,它与 Second-Order Integrator 模块完全相同。

Discrete PID Controller

Discrete PID Controller 模块实现一个 PID 控制器(PID、PI、PD、仅 P 或仅 I)。此模块的输出是输入信号、输入信号积分和输入信号导数的加权和。权重为比例、积分和导数增益参数。通过一阶极点筛选导数操作。要检查模块及其可变子系统的内部结构体,请右键点击该模块,然后选择封装 > 查看封装内部。

Transfer Fcn

Transfer Fcn 模块通过拉普拉斯域变量 s 的传递函数为线性系统建模。此模块可为单输入单输出 (SISO) 和单输入多输出 (SIMO) 系统建模。
image.png

传递函数

image.png
其中 u 和 y 分别代表系统输入和输出,nn 和 nd 分别是分子和分母系数。num(s) 和 den(s) 包含分子和分母的 s 降幂系数。
注意:分母的阶必须大于或等于分子的阶。对于多输出系统,所有传递函数具有相同的分母,而所有分子具有相同的阶次。

Transport Delay

image.png
Transport Delay 模块可按指定的时间量延迟输入。可使用此模块实现时滞的仿真。此模块的输入应为连续信号。
在仿真开始时,模块输出初始输出参数,直到仿真时间超过时滞参数。然后,模块开始生成延迟的输入。在仿真期间,模块将输入点和仿真时间存储在缓冲区中。可通过初始缓冲区大小参数指定此大小。
如果需要某个时间的输出,而存储的输入值没有对应的时间,模块会在点之间进行线性插值。当延迟小于步长时,模块会根据最后一个输出点外插,这可能会导致结果不准确。因为模块没有直接馈通,无法使用当前输入来计算输出值。例如,假定一个定步长仿真的步长为 1,当前时间为 t = 5。如果延迟为 0.5,模块必须在 t = 4.5 时生成点。因为最新存储的时间值是 t = 4,模块将执行正向外插。
Transport Delay 模块不会对离散信号进行插值。相反,模块会返回所需时间处的离散值。

Variable Time Delay/ Variable Transport Delay

在此模式中,当前时间步的模块输出等于之前的时间步(等于当前时间减去传输延迟)的数据(顶部或左侧)输入的值。
y ( t ) = u ( t − t d ( t ) ) y(t)=u(t-t_d(t)) y(t)=u(t−td​(t))
通过解析以下方程计算传输延迟:
image.png
此方程涉及到一个瞬时时滞 ti(t),由时滞(底部或右侧)输入指定:
image.png

Zero-Pole

Zero-Pole 模块可以使用零点、极点和拉普拉斯域传递函数增益定义的系统进行建模。此模块可为单输入单输出 (SISO) 和单输入多输出 (SIMO) 系统建模。

传递函数

image.png
其中 Z 表示零点,P 表示极点,K 表示传递函数增益。

  • 极点数必须大于或等于零点数。
  • 如果极点和零点为复数,它们必须是复共轭对组。
  • 对于多输出系统,所有传递函数必须具有相同的极点。零点的值可以不同,但每个传递函数的零点数必须相同。

Discontinuities模块

Backlash

image.png
Backlash 模块实现这样一个系统,其中输入信号的改变使得输出信号产生相同的改变量,输入改变方向时除外。当输入信号方向改变时,输入信号的初始变化不会影响输出。系统的侧隙称为死区。死区位于输出信号的中心。下图显示了初始状态,默认死区宽度为 1,初始输出为 0。
image.png
image.png

Coulomb and Viscous Friction

image.png
Coulomb and Viscous Friction 模块用于对库仑(静态)摩擦和粘性(动态)摩擦进行建模。此模块可以对值为零时的不连续性以及非零时的线性增益进行建模。

y = sign(x) .* (Gain .* abs(x) + Offset)

其中 y 是输出,x 是输入,Gain 是非零输入值的信号增益,Offset 是库仑摩擦。此模块接受一个输入并生成一个输出。输入可以是标量、向量或包含实数和复数元素的矩阵。

Dead Zone

在指定的区域(死区)内生成零值输出。死区下限:LL;死区上限:UL

输入输出
U >= LL 和 U <= UL零
U > ULU – UL
U < LLU – LL

Dead Zone Dynamic

image.png
死区上限up和死区下限lo可变(动态变化)

Hit Crossing

检测输入何时在由穿越方向属性指定的方向上到达穿越偏移量参数值。
image.png输出为1或0。

PWM

生成与输入占空比相对应的理想脉宽调制信号。
脉宽调制(PWM)是一种使用方脉冲对模拟信号进行编码的技术。这种编码是通过控制被设置为高的方波的一个周期的分数来实现的。这个分数是信号的占空比。调制信号和输入占空比之间的关系可以简单地描述为:
y = D y m a x + ( 1 − D ) y m i n y=Dy_{max}+(1-D)y_{min} y=Dymax​+(1−D)ymin​
PWM块的占空比限制在[0,1]

  • 输入:D
  • 输出:由输入占空比决定的PWM信号

Quantizer

按照给定间隔将输入离散化
image.png
Quantizer 模块使用量化算法离散化输入信号。该模块使用舍入到最接近整数方法将信号值映射到由量化区间定义的输出端的量化值。平滑的输入信号在量化后可能会呈现阶梯形状。
舍入到最接近整数方法:
y = q ⋅ round ( u q ) y=q\cdot\text{round}(\frac{u}{q}) y=q⋅round(qu​)

  • y:量化输出
  • u:输入
  • q:量化区间

Quantizer输出的量化级别是量化区间的整数倍,默认值为0.5。

Rate Limiter

限制通过它的信号的一阶导数。输出的变化速率不大于指定的限制,导数的计算公式为:
image.png
其中 u ( i ) u(i) u(i)和 t ( i ) t(i) t(i)是当前第i步的模块的输入和时间。通过将rate与上升沿速率和下降沿速率参数进行比较来决定输出:

  • 如果 rate 大于上升沿压摆率参数 (R),则输出的计算公式为_y_(i)=Δ_t_⋅_R_+y(_i_−1).
  • 如果 rate 小于下降沿压摆率参数 (F),则输出的计算公式为_y_(i)=Δ_t_⋅_F_+y(_i_−1).
  • 如果 rate 介于 R 和 F 之间,则输出的变化等于输入的变化:y(i)=u(i)

当模块在连续模式下运行时(例如,采样时间模式为“继承”,驱动模块的采样时间为零),将会忽略初始条件。t = 0 时的模块输出等于初始输入:
y ( 0 ) = u ( 0 ) y(0)=u(0) y(0)=u(0)
当模块在离散模式下运行时(例如,采样时间模式为“继承”,驱动模块的采样时间不为零),将会保留初始条件:
y ( − 1 ) = I c y(-1)=I_c y(−1)=Ic​
其中 I c I_c Ic​是初始条件。t=0时模块输出按照假设rate超出R和F的界限来计算。当t=0时,rate的计算公式为:
image.png

Relay

image.png
在两个常量输出之间切换
Relay 模块的输出在两个指定值之间切换。打开中继时,它会一直保持打开,直到输入低于关闭点参数的值为止。关闭中继时,它会一直保持关闭,直到输入高于开启点参数的值为止。此模块接受一个输入并生成一个输出。

Saturation

将信号限制在饱和上界和饱和下界之间
image.png

Saturation Dynamic

image.png

输入输出
lo ≤ 输入值 ≤ up输入值
输入值 < lo下限
输入值 > up上限

Variable Pulse Generator

image.png
输出描述:
image.png

  • D:占空比
  • P:输出信号的连续上升沿之间的时间,较小的值表示较高的频率。

Wrap to Zero

如果输入大于阈值,则将输出设置为零。当输入小于等于阈值时,输出等于输入。


Discrete模块

Delay

Delay模块按照设定的延迟后输出模块的输入。延迟时间由延迟长度所决定。在仿真的前几个时间步的输出取决于模块的采样时间、延迟长度和仿真开始时间。此模块支持指定或继承离散采样时间,以确定采样之间的时间间隔。

仿真时间范围模块输出
(Tstart) 到 (Tstart + Toffset)零
(Tstart + Toffset) 到 (Tstart + Toffset + n * Tsampling)初始条件参数
在 (Tstart + Toffset + n * Tsampling) 之后输入信号

Difference

image.png
计算一个时间步内的信号变化。输出当前输入值减去上一步的输入值的差值。

Discrete Derivative

计算可缩放性的离散导数:
y ( t n ) = K ( u ( t n ) − u ( t n − 1 ) T s ) y(t_n)=K(\frac{u(t_n)-u(t_{n-1})}{T_s}) y(tn​)=K(Ts​u(tn​)−u(tn−1​)​)
离散步长 T s T_s Ts​必须是固定值。K为增益因子。

Discrete Filter

image.png
使用指定的数字IIR滤波器单独对输入信号的每个通道进行滤波。可以将滤波器结构指定为 Direct form I、Direct form I transposed、Direct form II 或 Direct form II transposed。该模块实现了具有固定系数的静态滤波器。可以调整这些静态滤波器的系数。
此模块随时间的推移单独对输入信号的每个通道进行滤波。输入处理参数用于指定该模块如何处理输入的每个元素。您可以指定将输入元素作为独立通道处理(基于采样的处理),或将输入的每个列作为独立通道处理(基于帧的处理)。

Discrete-Time Integrator

image.png
对于第一个时间步,模块状态为n=0,具有初始输出y(0)=IC或初始状态x0=IC,具体取决于初始条件设置的参数值。
对于仿真时间为t(n)的给定步长n>0,更新输出为:

  • 前向欧拉方法:

y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n-1)

  • 后向欧拉方法:

y(n) = y(n-1) + K*[t(n) - t(n-1)]*u(n)

  • 梯形法:

y(n) = y(n-1) + K*[t(n)-t(n-1)]*[u(n)+u(n-1)]/2
Simulink 根据模块的采样时间(可以是显式或触发的采样时间)自动选择这些输出方程的状态空间实现。当使用显式采样时间时,对于所有 n > 0 的步长,t(n)-t(n-1) 将减小到采样时间 T。

Memory

image.png
输出上一个时间步的输入

Tapped Delay

image.png

  • 输入:输入信号
  • 输出:延迟的输入信号的所有版本。使用输出向量排序参数指定输出向量中延迟信号的排序。

Unit Delay

image.png
Unit Delay 模块按指定的采样周期保持和延迟输入。当放置于迭代子系统中时,该模块将其输入保持并延迟一个迭代。此模块相当于 z − 1 z^{-1} z−1离散时间运算符。此模块接受一个输入并生成一个输出。每个信号可以是标量,也可以是向量。如果输入为向量,模块会按相同的采样周期保持和延迟向量中的所有元素。

模块模块的用途引用示例
Unit Delay使用您指定的离散采样时间实现延迟。该模块接受并输出具有离散采样时间的信号。
- Engine Timing Model with Closed Loop Control(Compression 子系统)
Memory将信号延迟一个主积分时间步。在理想情况下,该模块接受连续(或在子时间步中固定)的信号并输出在子时间步中固定的信号。
- Building a Clutch Lock-Up Model(Friction Mode Logic/Lockup FSM 子系统)
- Capture the Velocity of a Bouncing Ball with the Memory Block
Zero-Order Hold将具有连续采样时间的输入信号转换为具有离散采样时间的输出信号。
- Developing the Apollo Lunar Module Digital Autopilot
- 使用 MATLAB Function 模块的雷达跟踪
  • 输出:延迟了一个采样周期的输入信号。

Logic and Bit Operations模块

Bit Clear

image.png

  • 输入:存储的整数的指定位
  • 输出:由设置为零的指定位组成。
  • 位索引参数:位0是最低有效位。

Bit Set

  • 输入:具有存储整数的指定位的输入信号
  • 输出:指定位信号设置为1

Bit to Integer Converter

将输入向量中的比特组映射到输出向量中的整数。

  1. 如果M是由每整数位数(M)参数指定的,对于无符号整数,块将每组M位映射到范围为[0, 2M-1]的整数。其结果,输出向量长度是输入向量长度的1/M倍。
  2. 对于有符号整数,块将每组M位映射到范围为[-2M-1,2M-1-1]。
  • 输入:指定为位的标量或列向量。其长度是每整数位数(M)参数中指定值的倍数。输入必须是0或1的位。
  • 输出:以整数或整数列向量形式返回。位packing后,将结果整数值视为参数指定输入位是被视为无符号还是被视为有符号。

当输入位被视为无符号时,每个整数输出都在[0,(2M–1)]范围内。
当输入位被视为有符号时,每个整数输出都在[(–2M-1),(2M–1–1)]范围内。

Bitwise Operator

对输入执行指定的按位运算
为一个或多个操作数指定的按位运算。按位运算将操作数视为位向量,而不是单个值。Bitwise Operator 模块不支持移位运算。对于移位运算,请使用 Shift Arithmetic 模块。当配置为多输入 XOR 门时,此模块将按照 IEEE 逻辑元素标准的规定执行模 2 加法。

  1. 输入:
  • 对于单个向量输入,模块会将运算(除 NOT 运算符外)应用于向量的所有元素。
  • 对于两个或更多输入,模块将在所有输入之间执行运算。如果输入为向量,模块将在对应的向量元素之间执行运算以生成向量输出。
  1. 输出:指定为输出数据类型的输出信号,模块从驱动模块继承该输出数据类型,且该数据类型必须准确表示零。满足此条件的数据类型包括有符号整数和无符号整数数据类型。

模块输出的大小取决于输入的数量、向量大小以及您选择的运算符。如果您不指定位掩码,则输出为标量。如果您指定位掩码,则输出为向量。

按位逻辑运算符

AND(默认)| OR | NOR | NAND | XOR | NOT
Combinatorial Logic 模块实现一个标准真值表,用于建模可编程逻辑数组 (PLA)、逻辑电路、决策表和其他布尔表达式。此模块与 Memory 模块一起使用,以实现有限状态机或触发器。

Compare To Constant

Compare To Constant 模块用于将输入信号与常量进行比较。在常量值参数中指定常量。使用运算符参数指定输入与常量值的比较方式。

  • 输出:若比较结果为false则输出0;若比较结果为true则输出1

Detect Fall Negative

当信号值降至严格负值,且其先前值为非负时,检测下降沿。
Detect Fall Negative块确定输入是否小于零,以及其先前值是否大于或等于零。
此块仅支持离散采样时间。

  • 输出:

当输入信号小于零时为真(等于1),并且其先前值大于或等于零;当输入信号大于或等于零时为false(等于0),或者如果输入信号为负值,则其先前值也是负值。

Detect Change

Detect Change 模块确定输入信号是否不等于其上一个值。初始条件确定上一个输入 U/z 的初始值。
此模块仅支持离散采样时间。

  • 输出:

当输入信号不等于上一个值时,为 true(等于 1);当输入信号等于上一个值时,为 false(等于 0)。

Extract Bits

image.png
Extract Bits 模块允许您从输入信号的存储整数值中输出选择的连续位。使用提取位参数定义选择输出位的方法。

  • 选择 Upper half 输出一半的输入位,其中包含最高有效位。如果输入信号中有奇数数量的位,则按以下方程计算输出位数number of output bits = ceil(number of input bits/2)
  • 选择 Lower half 输出一半的输入位,其中包含最低有效位。如果输入信号中有奇数数量的位,则按以下方程计算输出位数number of output bits = ceil(number of input bits/2)
  • 选择 Range starting with most significant bit 以输出一定数量的输入信号最高有效位。在位数参数中指定要输出的最高有效位数。
  • 选择 Range ending with least significant bit 以输出一定数量的输入信号最低有效位。在位数参数中指定要输出的最低有效位数。
  • 选择 Range of bits 以在位索引参数中指定要输出的输入信号的一系列连续位。需要以 [start end] 格式指明范围,而输入位的索引将从 0(最低有效位)开始连续标记。

Integer To Bit Converter

Integer to Bit Converter块将输入矢量中的每个整数(或定点值)映射到输出矢量中的一组位。
此块为单速率和单通道。块将每个整数值(或使用定点输入时存储的整数)映射到一组M位,使用输出位顺序的选择来确定最高有效位。结果输出矢量长度是输入矢量长度的M倍。

Interval Test

如果输入介于下限和上限指定的值之间,Interval Test 模块将输出 true (1)。如果输入在这些值的范围之外,模块将输出 false (0)。当输入等于下限或上限时,模块的输出取决于选中左半闭区间还是右半闭区间复选框。

Logical Operator

Logical Operator 模块对其输入执行指定的逻辑运算。输入值为非零值时为 true (1),为零时则为 false (0)。

运算描述
AND如果所有输入均为 TRUE,则为 TRUE
OR如果至少有一个输入为 TRUE,则为 TRUE
NAND如果至少有一个输入为 FALSE,则为 TRUE
NOR如果所有输入均不为 TRUE,则为 TRUE
XOR如果有奇数个输入为 TRUE,则为 TRUE
NXOR如果有偶数个输入为 TRUE,则为 TRUE
NOT如果输入为 FALSE,则为 TRUE

如果选择“不同”作为图标形状,则模块的外观会指示其功能。Simulink® 软件将按照 IEEE® 逻辑函数的图形符号标准,显示所选运算符的独特形状。

要指定输入端口的数量,请使用输入端口数目参数。使用输出数据类型参数指定输出类型。如果为 TRUE,则输出值为 1,如果为 FALSE,则输出值为 0。

Relational Operator

Relational Operator 模块对输入执行指定的关系运算。为关系运算符参数选择的值确定模块是接受一个还是两个输入信号。


Math Operations

image.png

Simulink仿真 第八节 积分模块 积分模块对信号求积分 功能 Integrator 模块输出其输入信号相对于时间的积分值。 Integrator Limited 模块与 Integrator 模块相同,但前者会根据饱和上界和下界限制该模块的输出。 阅读详情

相关推荐

Simulink模块库介绍(四)—自定义模块

Simulink模块库介绍(四)——自定义模块目录上升沿、下降沿if-then-else定时器 目录 正常情况下,simulink自带的模块库已经足够使用了,但是,在实际项目开发过程中,基于功能需求,需要将自带的模块库组合,从而适应于实际项目开发需求,比如 1、需要监控上升沿、下降沿; 2、需要定时器,针对某种工况定时一段时间 3、需要状态选择,if-then-else语句(自带switch模块容易懵) 4、需要信号处理,如低通滤波 5、需要求导,微分变差分(实际系统都是离散的) 。。。 上升沿、下降沿 在

1万+

Simulink常用模块库(Integrator/Discrete-TimeIntegrator)

汽车热管理系统工程师备技能之一——matlab/Simulink部分11——Simulink常用模块库(Integrator/Discrete-TimeIntegrator)

m0_64651092的博客 3万+

Simulink之如何辨别可生成代码模块说明

在我们搭建完仿真之后,可能需要将搭建的模型生成代码进行实际的测试,但是有时候模型中的模块可能在无法生成代码,这个时候我们需要将无法生成的代码的模块找出来,然后将其用可能生成模块进行代替或者去掉。

jk_101的博客 626

Matlab-Simulink_连续模块

1 Derivative模块 对输入求导数 2 Integrator模块 对输入求积分 3 Transfer Fcn模块 传递函数 y(s)为系统输出,u(s)为系统输入 4 transport delay模块 用于延时系统的输入 5 Zero-Pole模块 表征一个以Laplace算子s为变量的零点、极点和增益的系统 ​​​​​​​ 6State-Space模块 表征一个控制系统的状态空间,表达式如下: A...

qq_41955225的博客 7380

DBeaver连接ClickHouse保姆级教程:从安装到成功测试(附驱动下载问题解决)

本文提供了一份详细的DBeaver连接ClickHouse实战指南,重点解决了驱动下载失败等常见问题。文章从环境准备、DBeaver安装讲起,详细阐述了手动配置ClickHouse驱动的可靠方案,并逐步指导完成连接配置与测试,最后介绍了基础操作与查询优化技巧,旨在帮助用户高效完成连接并快速上手使用。

pink的博客 879

机房电脑的“还原”秘密:如何应对重启即清零的困境

机房电脑重启后自动还原是常见的现象,这主要依靠硬件还原卡或软件还原系统(如冰点还原)实现。这类技术会定期将系统盘恢复初始状态,但通常不保护非系统盘。要高效使用公共电脑,建议:1)将个人文件存储在D/E盘;2)使用绿色便携软件;3)必要时可尝试通过热键临时关闭还原功能;4)养成云端备份习惯。掌握这些技巧既能遵守机房规定,又能保证学习资料安全,培养良好的数字资产管理能力。

一位主要以学校学生信息技术,社会工作生活讲解科普拓展的博主 1456

simulink中mpc模块怎么使用_simulink中mpc模块的详细说明

【实例简介】simulink中mpc模块的详细说明,希望给你的设计带来帮助!Printing history: Jan 2000DraftMPC Graphical User Interface -3MPC Simulink libraryPrefaceDisclaimerState of DevelopmentThe MPC Simulink Library is in a developmen...

weixin_39543478的博客 3213

ChatBI告别“NL2SQL依赖症”!从准确率50%到90%,3大技术路线+4个企业案例拆解核心玩法

摘要: ChatBI通过自然语言交互实现数据民主化,其核心是“语义理解+数据执行+知识沉淀”的全链路能力,而非单一的NL2SQL技术。行业采用三大技术路线提升准确率:专有知识库(提升30%)、指标标签语义层(准确率85%)、JSON中间层(多轮对话提升25%)。数据执行方案包括NL2SQL、NL2API等,需结合场景选择。企业落地需解决四大痛点:跨表查询准确率低(引入拓扑图)、模糊查询(用户干预机制)、响应慢(预计算缓存)、多轮对话(上下文池)。Spring AI Alibaba提供轻量级集成方案,助力企业

weixin_52610848的博客 1656

simulink命令集及常用模块说明

文章目录一、simulink的命令集1、仿真命令2、构建模型命令3、封装命令4、库命令5、诊断命令6、硬拷贝和打印命令二、常用Simulink模块简介0、Sources库中模块1、Sink库中模块2、Discrete库中的模块3、Continuous库中的各模块4、Discontinuities库中的各模块5、Math 库中的模块 一、simulink的命令集 1、仿真命令 命令 说明 sim 仿真运行一个simulink模块 sldebug 调试一个simulink模块 simse

罗伯特祥的博客 1万+

基于深度学习的三维重建算法——详解与实现

随着深度学习技术的迅猛发展,基于深度学习的三维重建算法在最近几年取得了显著的进展。而基于深度学习的三维重建算法通过利用深度神经网络,能够从大规模数据中学习到更准确、鲁棒的三维结构表示。本文综述了基于深度学习的三维重建算法,并给出了相应的源代码。随着深度学习技术的不断发展,我们相信基于深度学习的三维重建算法将会在未来得到更广泛的应用。实验结果表明,基于深度学习的三维重建算法在准确性和鲁棒性方面取得了显著的提升。以上是关于基于深度学习的三维重建算法的详细介绍与实现,希望对您有所帮助。

CyberGenius的博客 1228

【项目实战】分布式日志系统 之 Exactly-once 语义:确保数据处理的精确性

在分布式系统的数据传输与处理中,是一种核心可靠性保障,其目标是确保数据“仅被处理一次”——既不重复(避免多次处理),也不遗漏(避免未处理)。与,二者共同保障数据处理的精确性。Exactly-once 语义是分布式系统中数据可靠性的高级目标,其核心通过“幂等设计”(解决重复问题)和“分布式事务”(解决原子性问题)实现。在实际应用中,常结合 At-Least-Once 语义与幂等性,或通过事务 API 与唯一 ID 去重的组合,平衡可靠性与系统性能。

奶爸的编程之路,也就一周冷个三天 167

Simulink TCP/IP 模块使用说明

Simulink TCP/IP 模块使用说明 【下载地址】SimulinkTCPIP模块使用说明 本项目提供了专为Simulink模型设计的TCP/IP通信模块,包含服务器端和客户端功能,通过C MEX S-function与Winsock2技术实现高效数据交换。资源文件中包含服务器和客户端的动态链接库及示例模型文件,用...

gitblog_06711的博客 953

uniapp [全端兼容] - 详细实现全局修改设置字体大小功能效果,统一修改页面字号字体大小,一键改变字号整个项目立即生效,大中小字号预设、老年人大字模式场景,uniApp全平台兼容控制页面字号大小

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,修改字体大小,一键调整UniApp字体大小,实时改变不用刷新,动态设置字体大小,uniapp全局修改字体字号大小,如何控制全局字号,可调整显示的字体,全项目生效,老年人大字模式,改变所有页面的字体,全局设置字体大小,实现小中大的字体切换,设置改变全局字体大小功能,如何做到全平台兼容,H5APP实现全局字体大小调整,不兼容报错,用户设置字号,全局设置应用字体大小,大中小字体修改,页面设置page-me

🏆 前端领域优质创作者 1万+

【亲测免费】 Simulink中MPC模块详细说明资源下载

Simulink中MPC模块详细说明资源下载 【下载地址】Simulink中MPC模块详细说明资源下载分享 这份PDF文件是经过亲测的优质资源,内容详实且易于理解。无论你是初学者还是有一定经验的用户,这份文档都能为你提供有价值的参考。它详细解释了MPC模块的各个方面,包括但不限于:- MPC模块的基本概念和原理- 模块的...

gitblog_06692的博客 421

ArcMap|时空地理加权回归(GTWR)

ArcGIS的GTWR插件下载地址:https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Valid_till_Dec_31_2022 更详细的操作参考: https://www.bilibili.com/video/BV1fR4y1M7xB?spm_id_from=333.999.0.0 https://blog.youkuaiyun.com/weixin_40008135/article/details/112693520 双击“GTWR_Be

个人学习笔记 1万+

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

data+scenario+science+insight 649

07-Simulink 模块库主要分类说明

本文对Simulink模块库进行了系统分类说明,包括16个主要模块类别。常用模块提供基础建模工具,连续/离散系统模块分别用于模拟连续和离散时间系统。数学运算、矩阵运算和逻辑位运算模块支持各类计算需求。信号路由模块管理信号流向,查找表实现非线性映射。输入/输出源模块提供激励信号和结果显示功能。高级模块包括仪表盘交互控件、子系统封装、模型验证、字符串处理以及用户自定义函数接口等。这些模块分类覆盖了从基础建模到高级仿真的完整功能,支持复杂系统的模块化设计。

ai12345678900008的博客 689

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

simulink模块说明

文章目录Quantizer支持数据类型参数说明 Quantizer 量化器. ## 简介 量化器将输入的连续信号转化为阶梯型输出.计算方法采用 round-to-nearest 算法,所以输出是关于0对称的. 输出函数如下: y=q⋅roud(uq) y = q \cdot roud(\frac uq) y=q⋅roud(qu​) 其中y为输出,u为输入,q为 Quantization int...

突破吧!次元壁 4951

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Simulink电池模块搭建资源下载说明

Simulink电池模块搭建资源下载说明 【下载地址】Simulink电池模块搭建资源下载说明 本开源项目提供了一个Simulink电池模块的搭建资源,专为需要进行特定课题研究的用户设计。该模块允许用户自定义电池模型,深入分析电池的动态特性,适用于无法直接使用Simulink自带模块的场景。资源包含一个已搭建完成的电池模...

gitblog_06713的博客 457

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Matlab-Simulink中Interpreted MATLAB Fcn模块说明

1、Interpreted MATLAB Fcn模块作用: Interpreted MATLAB Fcn模块的作用是将一个函数插入simulink中作为一个模块使用; 这里函数sin可以用用户自己写的.m文件中的函数名取代;然后默认Collapse 2-D results to 1-D是被勾选了的,这个地方需要注意,如果希望输出的是一个二维的数据则需要取消勾选;如下: 这里Interpreted MATLAB Fcn输出的是一个3×2的矩阵,而V是个2×1的矩阵;所以不能将其变为一个一维...

rouyu308的博客 2万+

Simulink电池模块搭建资源下载说明:项目核心功能/场景

Simulink电池模块搭建资源下载说明:项目核心功能/场景 【下载地址】Simulink电池模块搭建资源下载说明 本开源项目提供了一个Simulink电池模块的搭建资源,专为需要进行特定课题研究的用户设计。该模块允许用户自定义电池模型,深入分析电池的动态特性,适用于无法直接使用Simulink自带模块的场景。资源包含一...

gitblog_06741的博客 913

【亲测免费】 SimulinkTCP/IP模块使用说明:实现Simulink模型的TCP/IP通信

SimulinkTCP/IP模块使用说明:实现Simulink模型的TCP/IP通信 【下载地址】SimulinkTCPIP模块使用说明 本项目提供了专为Simulink模型设计的TCP/IP通信模块,包含服务器端和客户端功能,通过C MEX S-function与Winsock2技术实现高效数据交换。资源文件中包含服务...

gitblog_06777的博客 1371

Simulink 环境基础知识(九)--指定模块属性

目录 设置模块注释属性 指定模块回调 指定模块执行优先级和标记 使用模块说明标识模块 以编程方式创建模块注释 对于模型中的每个模块,可以设置常规模块属性,例如: 模块说明 模块执行顺序 模块注释 模块回调函数 要设置模块属性,使用 Property Inspector。当模块处于选中状态时,可以在 Property Inspector 的Properties和Info选项卡上设置属性。也可以使用 Block Prop...

jk_101的博客 9340

电动汽车模型Simulink仿真系统:各模块整合及详细建模过程说明

车轮模块的滑移率计算用了魔改后的Burckhardt模型,但工程师在注释里吐槽:"这个公式在低μ路面像喝醉了一样不准"。后来他们在文档的附录F里贴了实车在冰面上采集的修正系数,据说能让模型预测精度提高18%。最后说个文档里埋的彩蛋——第78页底部用小字写着:"所有模块的sample time建议保持0.001s,除非你想看到电机转速在示波器上跳disco"。电动汽车模型的各模块的Simulink模型,包括驾驶员模块,整车控制器模块,电机模块,变速器模块,主减速器模块,车轮模块,车速模块以及BMS模块。

2502_94431433的博客 265

Simulink仿真模型:锂电池供电与充电系统,自动切换工作模式与手动控制,附使用说明与模块详解

它集成了直流电压源、双向DCDC变换器、动态负载和锂离子电池组,最秀的是能自动根据电池SOC切换供电/充电模式。咱们先看个实战场景:深夜电价低谷时系统自动给电池充电(模式2),白天高峰时段切换电池供电(模式1),这种策略能让电费账单直接瘦身30%。最后扔个彩蛋:模型里有个隐藏的故障注入模块(按Ctrl+Shift点击DCDC模块可见),可以模拟MOSFET短路、电流传感器失效等23种异常工况。仿真时如果不设这个,你会看到电流波形像心电图室颤似的——别问我怎么知道的,说多了都是泪。

2503_94130034的博客 399
上一篇: Simulink模块说明
下一篇: 半导体物理基础-笔记
uestc_Venn
博客等级 码龄6年 445粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值