基于 Simulink 的物理系统建模与仿真全流程:以 RLC 二阶电路(含初始条件)为例

基于 Simulink 的物理系统建模与仿真全流程:以 RLC 二阶电路(含初始条件)为例
一、关于simulink1、simulink与matlab的关系Matlab一种以矩阵来处理数据的 计算软件应用范围十分广泛该铲平由若干模块组成simulink是其中一个利用图形化的工具来进行建模与仿真。2、什么是simulinksimulink 是基于 matlab 的框图设计环境可以用来对各种动态系统进行建模、分析和仿真它的应用领域十分广泛任何能用数学模型来描述的系统都可以在 simulink 中进行仿真分析如空气动力学、导航制导、通讯、电子、机械、热力学等诸多领域这些系统从数学角度来描述多涉及连续、离散、非线性、时变、条件执行、多速率混合等用解析方法难以求解的系统他们都可以通过 simulink 进行建模与仿真从而指导系统的分析与设计。3、simulink的特点交互式建模提供大量功能模块便于用户快速建立模型建模仅需利用鼠标拖放功能块并将其连接起来。交互式仿真仿真结果可以动态显示并可以在仿真过程中随时修改参数。扩展与定制提供了一个开放式的环境允许用户扩充功能可以将 C、fortran 编写的算法集成到框图中。专业的模型库针对不同行业和领域提供了专业模型库二、simulink专业模块库1. 建模、控制与优化核心工具控制工程常用Simulink图形化建模仿真环境最基础、最核心的平台。Simulink Accelerator模型加速器用于提高复杂模型的仿真运行速度。Simulink Control Design线性化控制系统设计工具用于 Bode 图分析、根轨迹及 PID 自动调参。Simulink Parameter Estimation模型参数预估/系统辨识工具利用实测数据反推拟合模型的未知参数。Simulink Response Optimization响应优化工具可根据设定好的性能指标如超调量、响应时间自动寻找最优参数。Simulink Fixed Point定点系统仿真工具用于把浮点算法转化为适合微控制器运行的定点数算法。2. 系统验证、逻辑驱动与文档工具Stateflow基于逻辑驱动的建模工具用有限状态机FSM处理复杂系统的状态切换与逻辑判定。Stateflow Coder将 Stateflow 状态机逻辑直接生成嵌入式 C/C 代码的工具。Simulink Verification and Validation模型验证与测试工具用于检查模型是否符合行业规范。Simulink Report Generator自动文档生成工具将仿真模型和结果直接导出为 Word 或 PDF 报告。3. 特定物理与工程领域仿真模块库Simscape 扩展SimPowerSystem电力电子与电机系统仿真专业模块库。SimMechanics机械系统/多体动力学仿真模块库。SimHydraulic液压系统仿真模块库。SimDriveline车辆传动系统仿真模块库。SimBiology生物与药物动力学系统仿真模块库。4. 特定应用与信号处理工具箱Simulink HDL Coder将模型直接生成用于 FPGA 开发的 HDLVerilog/VHDL硬件描述代码。Video and Image Processing Blockset视频与图像处理仿真模块库。Communication Blockset通讯系统调制/解调、信道建模仿真模块库。Aerospace Blockset航空航天与国防专业模块库如飞行器动力学建模。Gauges Blockset虚拟仪器仪表模块库用于搭建可视化仪表盘界面。5.库浏览器首先打开Matlab点击simulink点击库浏览器左边就是simulink库浏览器的主界面目录相当于总仓库整个列表按照“Simulink 基础核心库”和“各种专业领域工具箱Toolboxes / Blocksets”进行分类。在顶层的Simulink展开项下包含搭建控制系统模型最常用的模块目录1、控制系统仿真模块Commonly Used Blocks常用模块汇总了所有库里用得频率最高的基本模块如 Constant 常数、Gain 增益、Sum 加减、Scope 示波器等。Continuous连续系统库控制工程核心包含传递函数Transfer Fcn、积分器Integrator、状态空间State-Space、微分器Derivative以及 PID 控制器等。用于搭建电解槽的机理模型。Sources信号源库输入端提供各种输入信号如Step阶跃信号模拟突发干扰、Constant设定值/参考浓度、Sine Wave正弦波等。Sinks接收器/输出库输出端用于显示或导出数据如Scope示波器实时看电压/浓度波形、To Workspace将数据发给 MATLAB 绘图/分析。2. 核心数学与控制逻辑目录Discrete离散系统库嵌入式/边缘控制核心包含离散传递函数Discrete Transfer Fcn、延迟模块Delay等。当你把算法移植到单片机/PCB 上按固定周期如 $T_s 0.1\text{s}$采样时用这个库里的模块。Math Operations数学运算库包含加减乘除、绝对值、三角函数、矩阵运算等常规数学逻辑。Logic and Bit Operations逻辑与位运算包含与或非门、逻辑判断、比较器等用于写控制使能开关。Discontinuities非线性/非连续库模拟真实物理世界包含Saturate饱和限制模拟输出电压/加料量上限、Dead Zone死区、Relay继电器开关等。Lookup Tables查表库包含一维/二维查表模块。模糊控制Fuzzy或离散查表 PID经常将计算好的规则存成表格在这里调用。3. 系统结构与信号管理目录Ports Subsystems端口与子系统用于将复杂的电路/算法框图打包成一个简单的子系统模块Subsystem让你的 Simulink 界面保持干净整洁。Signal Routing信号路由包含Mux信号复用/多路合一方便一条线画多条曲线、Demux信号解复用、Switch条件切换开关等。Signal Attributes信号属性用于改变数据类型如 double 变 int16或信号维度。User-Defined Functions用户自定义函数允许你用 MATLAB 代码MATLAB Function或 C 语言直接在 Simulink 里写逻辑算法。4.专业领域工具箱列表下方是MATLAB针对不同行业开发的扩展工具箱这里列举几个库名称简介Control System Toolbox控制系统工具箱包含高阶 PID 调参工具、频域分析与 Bode 图绘制等。Fuzzy Logic Toolbox模糊逻辑工具箱Automated Driving Toolbox自动驾驶工具箱AUTOSAR Blockset汽车电子软件架构工具箱Audio / Deep Learning Toolbox音频 / 深度学习工具箱Computer Vision Toolbox计算机视觉工具箱三、建模仿真流程通过一个实例来了解simulink仿真的过程这是一个RLC震荡电路1、求解总响应首先根据基尔霍夫电压定律可得到如下表达式回路电流相等将电流的表达式代入dvl中得到带入数值整理后u0(t)是阶跃信号t0设解因为方程右边是常数 3根据待定系数法得特解。列出特征方程并求根将题目给的初始条件带入通解式A式B最后解k1,k2,s1,s2,最后得2、画出系统框图根据我们可以画出方框图3、选择模块搭建仿真根据这个方框图我们就可以选择相应的模块如果嫌查找比较麻烦双击空白处就可以选择想要的模块从左到右依次需要一个阶跃信号三个增益一个加法器两个积分环节一个示波器用来检测输出。4、设置参数注意这里双击相应的模块可以调整属性这里加法器需要接三个输入相应的就需要把他的符号列表添一个对于其他模块也是这样需要修改属性双击即可配置参数点击仿真栏下信号表右侧的箭头打开列表找到模型设置或者快捷键CtrlE这里开始时间和结束时间默认即可类型选择变步长求解器的选择不同最后仿真的结果也不同这里先不做解释选择ode45。如果这里直接开始仿真得到的波形是单调上升的但RLC震荡电路的波形并不是这样原因是因为没有用到题目中所给的初始条件sum模块的输出是,经过一个积分器后输出对应电容电压的变化率也正比于电感电流因为题目给出所以一阶导数初始值。因此Integrator1的初始条件设置为 0。对再次积分输出的是原函数即电容电压题目中给出因此Integrator2的初始条件设置为 0.5。5、开始仿真这时再点击仿真得到正确的仿真图四、总结将一个实际物理系统如 RLC 电路、电解槽控制等转化为 Simulink 仿真的完整闭环流程可以提炼为以下 6 个核心步骤1、数学建模问题抽象分析物理系统的运行机理推导并建立其微分方程、传递函数 G(s) 或状态空间方程。2、框图推导结构化将高阶微分方程或时域方程进行移项降阶转化为包含“积分、增益、加减”的系统控制框图。3、搭建模型Simulink 还原在 Simulink 中使用对应的Integrator、Gain、Sum等基础模块按照推导出的框图进行拓扑连线。4、参数配置物理与初始状态拟合设置各个模块的硬件参数如电阻/电感/电容值、增益倍数以及关键初始条件。5、解算器设置仿真环境配置在 Solver 参数中选择合适的求解步长固定步长/变步长与数值积分算法如 ODE45。6、运行与分析结果验证启动仿真利用Scope示波器观察系统响应曲线超调量、调节时间等验证数学模型与算法的正确性。