代码生成 | 安时积分法模型搭建

安时积分法是电池电量计量最基础的方法,今天我们用simulink建模的方式做一个安时积分模型,从而更好地理解安时积分的思想也掌握建模的基础操

​新建文件

打开MATLAB启动simulink新建一个模型文件

定义变量

和手写代码一样,先定义几个后面要用到的变量,在simulink建模时新建变量用Data Store Memory模块。双击填入要定义的变量名,然后在signal attributes赋初值

如此方法新建四个变量current(电流)初值1000mA、tatol_cap(总容量)初值2Ah、now_cap(当前容量)初值3600、soc(电量);

当鼠标放置在Data Store Memory模块上时左右两边会出来两个箭头,按住鼠标拖动左边的箭头可以出来Data Store Write也就是写变量给变量写入一个值,拖动右边的箭头可以出来Data Store Read即读出变量的值;

搭建模型

先把current的单位换算成mA用到了gain模块除以1000,时间单位为1累计的电流和当前容量加和用到的add模块再将新值赋给now_cap

对总容量进行单位转换将Ah乘以3600分别用到常数模块和乘法运算模块这样上半部分和下半部分的单位都是As

 

最后用当前容量除以总容量就得出了SOC,添加几个显示模块便于验证结果

验证结果

点击设置仿真,由于处理器不是连续系统,处理速度和频率有关因此要设置为定步长,stop time设为1 步长为0.1也就是计算10次

运行结果显示当前SOC为50.15%,当前容量是3610由于now_cap的初值3600As也是1Ah加上1A电流对时间10次积分的结果整好是3610,当然改变仿真步长或者时长仿真结果也会发生变化。

生成代码

进一步设置仿真生成代码,选择tlc文件也是就你要将模型翻译成那种语言

勾选生成报告,点击生成代码

生成代码的报告

可以看到生成的代码和我们手动写的代码一样

 

生命不息、学习不止,加油!

 

 

 

 

### Simulink 中离散化模型搭建教程 #### 一、创建新模型并设置采样时间 启动 MATLAB 并打开 Simulink 新建空白模型窗口。对于离散系统而言,设定全局采样时间为第一步,在 Model Configuration Parameters 的 Solver 页面中选择固定步长(Fixed-step),并将 Stop time 设置为适当数值以便观察整个过程动态特性[^2]。 #### 二、添加必要的模块组件 从 Library Browser 添加如下基本元件到工作区: - **Sine Wave Generator**: 用于生成正弦波作为输入信号源。 - **Discrete-Time Integrator Block**: 实现积分运算功能,构建控制器部分。 - **Transfer Fcn Block**: 输入待仿真的对象传递函数表达式,注意这里应采用 z 域形式表示法来描述离散化的数学关系[^1]。 - **Zero-Order Hold (ZOH)** 或其他保持器:连接模拟世界与数字世界的桥梁,确保数据平滑过渡。 - **Scope Module**: 显示输出曲线变化趋势,便于分析结果准确性[^4]。 #### 三、配置参数及连线操作 完成上述各部件放置之后,按照实际需求调整各个模块内部属性值,并通过鼠标拖拽方式建立合理的逻辑关联路径。特别是针对 Transfer Function 和 Discrete-Time Integrators 这样的核心计算单元,需仔细核对其系数矩阵是否正确反映了目标系统的物理意义[^3]。 ```matlab % 此处提供一段简单的MATLAB脚本示例, % 展示如何利用命令行快速定义一个离散传递函数并将其导入至Simulink环境当中: num = [0.5]; % 分子多项式的系数向量 den = [1, -0.9]; % 分母多项式的系数向量 sysd=tf(num, den, Ts); % 创建离散LTI对象,Ts代表采样周期 writeBlockParameter('YourModelName/TransferFcn', 'Numerator', num2str(num), ... 'Denominator', num2str(den)); % 将TF写入指定位置 ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值