当前位置:网站首页>逆变器simulink模型——处理器在环测试(PIL)
逆变器simulink模型——处理器在环测试(PIL)
2022-07-02 06:34:00 【Quikk】
文章目录
逆变器simulink模型——处理器在环测试(PIL)
1 处理器在环测试基本思想
1.1 仿真模型基本介绍
正常电力电子系统仿真过程中,结构主要分为主电路+控制电路;而控制电路一般分为采集电路与控制核心。

以逆变器控制系统为例:
直流侧电压源,三相逆变单元,滤波器,负载属于主电路部分;
将220V电压等级转换为控制单元ADC可以采集的0-3.3V低压的调理电路称为采集电路;
将0-3.3V脉冲PWM信号转换为IGBT驱动信号(0-24V)的驱动电路;
控制核心一般由片上系统构成,如STM32、2833X等基础运算核心;
下面再介绍一下仿真基本原理,不论是控制电路还是主电路在simulink中都是通过数值的方式进行数值计算得到的。而实际系统中:主电路为真实电路,控制电路一般为10k,50k等固定采用频率的控制单元。为了实现该情况的仿真,需要将主电路的计算步长尽量降低,以达到仿真连续系统的目的,而控制系统必须要保持正常的采样频率。举个粒子:若取Slover步长为10e-7;则外部主电路以10e-7的步长进行计算一次;而控制单元为10e-4(10k);则需要1000个外部步长对内部单元计算一次。
1.2 处理器在环测试概念
实际仿真过程中,大量控制器与外部主电路都在PC端的CPU上进行运算。但实际情况是微处理器主频往往远低于电脑CPU,其输出结果可能与真实情况有差异。而搭建实际主电路往往需要大量时间,因此可以构建**处理器在环(PIL)**的测试方案对底层MCU运算情况进行分析。
处理器在环测试,是将主电路运算在CPU上执行,控制电路运算将在底层MCU上执行。基本流程为:
PIL启动后,MCU接收由PC传送来的各类数据;
MCU根据数据进行运算得到PWM输出信号并通过串口传送给PC端;
PC端接收到PWM信号后,将其作用于住主电路,主电路状态发生改变,继续重复第(1)步
下面将对此方案具体实现进行实际介绍;
2 处理器在环测试流程
2.1 测试模型介绍
测试模型使用离网逆变器控制模型;模型链接:模型链接
正常离网状态下输出电压波形如图所示,0.1s合上负荷供电开关;0.8s进行功率阶跃;

2.2 基本结构介绍
PIL系统构成需要保障系统连接:1)底层硬件下载口与matlab保持连接 2)底层硬件串口与matlab保持连接;构建下图所示硬件平台

2.3 模型设置
模型设置之前需要配置好MCU代码生成环境,具体步骤见: 环境搭建
1)创建处理器在环模型








注:一定要确认COM9,波特率,等信息,保障通信畅通,防止在环测试失败。
2.4 在环测试模块生成
将控制模块封装成子系统,后生成PIL模块;这时需要将 slover步长 和 Powergui的步长也设置为10e-4;并设置初始通信状态,在命令行中输入以下代码并执行,一定要注意串口信息与设备管理内的信息对应上;
setpref('MathWorks_Embedded_IDE_Link_PIL_Preferences','COMPort','COM9');
setpref('MathWorks_Embedded_IDE_Link_PIL_Preferences','BaudRate',115200);
setpref('MathWorks_Embedded_IDE_Link_PIL_Preferences','enableserial',true);

弹出对话框点 build即可(需要注意,MCU里面只能运行Single类型变量,需要将控制模块中的变量都改为single类型):

弹出生成的PIL模型,将模型复制到原来的文件中。

2.5 模型测试

进入SIL/PIL manager

修改仿真步长为10e-6;

设置PIL参数:

点击run Verification
3 测试结果

测试完毕之后得到上图结果,结果分为一个软件仿真出结果,一个PIL在环测试结果。此时可以对比两者差异。 compare栏下还可以对比两者差异。
硬件:dsp28335
PC:simulink r2019b
使用串口SCIA进行通信
仿真模型,有需自取:PIL在环模型
上述过程有效实现了PIL测试,具体步骤一般如图,需要注意的是生成PIL测试模块一定要修改模型步长(改为控制器执行步长)。测试时,一定要改回原来步长。
边栏推荐
- Number structure (C language) -- Chapter 4, compressed storage of matrices (Part 2)
- 在SQL注入中,为什么union联合查询,id必须等于0
- 每天睡前30分钟阅读Day6_Day6_Date_Calendar_LocalDate_TimeStamp_LocalTime
- Typora安装包分享
- Matplotlib剑客行——布局指南与多图实现(更新)
- 图像识别-数据增广
- Long summary (code with comments) number structure (C language) -- Chapter 4, string (Part 1)
- Actual combat of microservices | discovery and invocation of original ecosystem implementation services
- 图像识别-数据清洗
- c语言编程题
猜你喜欢

Probability is not yet. Look at statistical learning methods -- Chapter 4, naive Bayesian method

hystrix 实现请求合并

深入剖析JVM是如何执行Hello World的

How to use PHP spoole to implement millisecond scheduled tasks

Creation and jump of activity

微服务实战|声明式服务调用OpenFeign实践

Microservice practice | Eureka registration center and cluster construction

idea查看字节码配置

西瓜书--第六章.支持向量机(SVM)
![[go practical basis] gin efficient artifact, how to bind parameters to structures](/img/c4/44b3bda826bd20757cc5afcc5d26a9.png)
[go practical basis] gin efficient artifact, how to bind parameters to structures
随机推荐
自定義Redis連接池
Micro service practice | introduction and practice of zuul, a micro service gateway
Insight into cloud native | microservices and microservice architecture
Solution to amq4036 error in remote connection to IBM MQ
Microservice practice | Eureka registration center and cluster construction
Microservice practice | declarative service invocation openfeign practice
Chrome视频下载插件–Video Downloader for Chrome
BugkuCTF-web24(解题思路及步骤)
Number structure (C language) -- Chapter 4, compressed storage of matrices (Part 2)
Matplotlib swordsman - a stylist who can draw without tools and code
概率还不会的快看过来《统计学习方法》——第四章、朴素贝叶斯法
Oracle modifies tablespace names and data files
定时线程池实现请求合并
微服务实战|负载均衡组件及源码分析
Microservice practice | teach you to develop load balancing components hand in hand
别找了,Chrome浏览器必装插件都在这了
Machine learning practice: is Mermaid a love movie or an action movie? KNN announces the answer
[go practical basis] how to set the route in gin
C语言之最小数
Amq6126 problem solving ideas