# 示例
# 框图建模
Buck 电路控制仿真
Buck 电路是一种常见的直流降压型开关电源,其基本功能是将较高的直流电压高效转换为较低的直流电压,广泛应用于手机充电器、电池管理系统、电机驱动器等场景中。其核心由功率开关管、电感、电容及续流二极管构成,通过高频率地控制开关元件的导通与关断,实现能量在电感与电容之间的传递和稳定输出。
打开示例
Sysblock 基础(1):对系统算法进行建模
本文以质点 - 弹簧 - 阻尼机械系统为例,详细介绍如何使用 Sysblock 进行系统建模和仿真。通过本教程,读者可以了解 Sysblock 的基本操作流程,掌握系统建模的方法,以及学习使用不同类型的输入输出模块进行仿真分析。
打开示例
Sysblock 基础(2):创建模型组件
本文以 Sysblock 基础(1):对系统算法进行建模为基础,详细介绍如何使用 Sysblock 进行系统建模和仿真。通过本教程,读者可以了解 Sysblock 的基本操作流程,掌握状态机建模与子系统的创建。
打开示例
Sysblock 基础(3):记录仿真信号
本文以 Sysblock 基础(2):创建模型组件为基础,详细介绍如何使用 Sysblock 进行系统建模和仿真。通过本教程,读者可以了解 Sysblock 的基本操作流程,并学会如何记录仿真信号。
打开示例
Sysblock 基础(4):管理模型数据
本文以 Sysblock 基础(3):记录仿真信号为基础,详细介绍如何使用 Sysblock 进行系统建模和仿真。通过本教程,读者将掌握 Sysblock 的基本操作流程,学会使用模型数据管理器来设置参数的值、数据类型和其他特性。
打开示例
Sysblock 基础(5):总线管理
本文以 Sysblock 基础(4):管理模型数据为基础,详细介绍如何使用 Sysblock 进行系统建模和仿真。通过本教程,读者可以了解 Sysblock 的基本操作流程,学会如何减少信号线的数量来简化模型。
打开示例
使用 PID Controller 模块进行抗饱和控制
此示例展示在执行器发生饱和时,如何通过抗饱和策略避免 PID 控制器出现积分饱和。Sysblock 中的 PID Controller 模块内置 “ 反算 ” 抗饱和方法,并提供 “ 跟踪模式 ” 以应对更复杂的工业场景。
打开示例
基于 If 模块与动作子系统的条件控制示例
此示例展示了如何用状态机产生控制信号,并通过 If 模块选择性地激活不同的动作子系统:当 u1 为非零时开启电压并计数,否则关闭电压并计数。通过 merge 模块将分支输出统一到硬件端口,实现清晰高效的决策执行,同时便于统计各分支的运行次数。
打开示例
带触发的使能子系统
此示例展示了 Sysblock 中带触发的使能子系统的完整搭建过程,通过配置不同的使能状态(reset 和 held)和触发类型(rising),展示了子系统在事件驱动控制下的执行行为,并进行相关仿真。
打开示例
触发子系统
此示例展示了 Sysblock 中触发子系统的完整搭建过程,通过配置不同的触发类型(rising、falling、either),展示了子系统在事件驱动控制下的执行行为,并进行相关仿真。
打开示例
连续与离散使能子系统
此示例展示了 Sysblock 中离散控制信号和连续控制信号的处理流程,以及复位状态和保持状态两种管理机制的不同输出行为,展示了子系统在条件驱动控制下的执行行为,并进行相关仿真。
打开示例
While 循环子系统
此示例展示了 Sysblock 中 While 子系统的迭代执行机制,以及 Whilelterator 模块的条件控制与最大迭代次数设置,展示了子系统在条件驱动下的重复执行行为,并演示了逐次累加直至满足阈值的处理流程,进行相关仿真。
打开示例
Do_While 循环子系统
此示例展示了 Sysblock 中 Do-While 子系统的先执行后判断迭代机制,以及 Whilelterator 模块的条件控制与最大迭代次数设置,展示了子系统在条件驱动下的重复执行行为,并演示了逐次累加直至满足给定上限 N 的处理流程,进行 1 到 N 求和的仿真。
打开示例
使用状态保持的 If 模块示例
此示例展示了 Sysblock 中 If-Action 子系统在“状态保持”管理机制下的条件选择与执行流程,以及基于 if(u1>0) 的分支控制;展示了子系统在禁用阶段保持内部状态与可选保持输出的行为,并演示分支重新使能后从历史状态继续计算的现象。示例采用 Abs 与 Saturation 分支、merge 合并与偏置求和的结构,在 scope 中观察连续输出。
打开示例
使用 JuliaFunction 模块在 Sysblock 中实现 Julia 函数
此示例从零开始搭建一个包含 JuliaFunction 模块的模型,详细介绍了如何自定义该模块来计算值矩阵的均值和标准差。
打开示例
合并信号示例
此示例搭建了一个包含条件执行子系统和Merge模块的模型,详细介绍了如何通过Merge模块将两个不同时间更新的输入信号合并为单一输出,并确保任何时刻的输出值等于其驱动端最近一次计算的输出。
打开示例
使用 FromFile 模块加载数据
此示例搭建了一个包含 FromFile 模块和多种数据加载方式的模型,详细介绍了如何通过 FromFile 模块从 CSV 文件加载不同格式的仿真输入数据,并确保数据能够正确导入到仿真系统中进行后续处理。
打开示例
基于 If 模块与动作子系统的错误示例
此示例搭建了一个包含 If 模块与动作子系统 IfBody 的模型,详细说明在模块 B 驱动 IfBody 的前提下,执行顺序设置不当为何会导致非法执行与代数环错误,并给出通过插入 unitDelay 模块打破代数环的处理思路。
打开示例
基于 switch-case 模块和动作子系统的错误示例
此示例搭建了一个包含 SwitchCase 模块与动作子系统 CaseBody 的模型,详细说明了执行顺序设置不当时为何会导致非法执行与代数环错误,并给出通过插入 unitDelay 模块打破代数环的处理思路。
打开示例
仿真具有可变传输延迟现象的系统
此示例用 VariableTransportDelay 模块演示随时间变化的输运延迟建模,包含基于车速的车轮位移和基于流速的管道温度案例,并说明延迟计算、最大延迟/初始输出/缓冲区设置及在 Scope 中比较验证的方法。
打开示例
使用 FromWorkspace 模块加载数据
此示例使用 FromWorkspace 模块演示如何从工作区加载多种格式的输入数据(数组、总线、总线数组),并说明数据组织、维度设置及在 Scope 查看结果的方法。
打开示例