- 博客(34)
- 资源 (15)
- 收藏
- 关注
原创 FPGA实现Cordic算法——向量模式
;FPGA中运算三角函数,浮点数的能力有限,而cordic算法能够将三角函数运算转换为简单的移位和加减法进行迭代得到近似结果,能够有效降低运算代价,提升运算效率。
2023-09-08 16:28:11
2001
原创 三相并网逆变器PI控制——离网模式
三相并网逆变器离网PI控制三相并网逆变器离网控制逆变器并离网控制基本区别离网逆变器基本拓扑结构αβ\alpha\betaαβ坐标系下逆变器方程dq坐标系下逆变器方程并网逆变器PI控制器定值跟踪仿真结果三相并网逆变器离网控制逆变器并离网控制基本区别 三相并网逆变器并网状态下,其主要功能是向大电网输送电能。此时系统并网点电压被大电网钳位,因此只需控制逆变器输出满足功率要求的电流,即可实现控制目标,故该状态下并网逆变器一般等效为电流源。 三相并网逆变器离网运行状态下,其主要功能是输出满足负荷运行条件的
2022-04-05 17:21:37
9911
1
原创 并网逆变器PI控制(并网模式)
并网逆变器PI控制1.逆变器拓扑结构与数学模型2.常用变换2.1 abc-αβ\alpha\betaαβ变换及其逆变换2.2 αβ\alpha\betaαβ-dq轴变换2.3 abc-dq变换3.dq坐标系下并逆变器方程4.闭环控制5.仿真主电路1.逆变器拓扑结构与数学模型如下图所示为逆变器的基础结构模型。根据模型列写逆变器的数学模型如下:{Ua−Ldiadt−iaR−ea=0Ub−Ldibdt−ibR−eb=0Uc−Ldicdt−icR−ec=0\begin{cases}{}U_a-L\fr
2021-04-24 21:18:34
24370
12
原创 2837xd 代码生成——总结篇
2837xd 代码生成——总结篇1 代码生成的产生2 代码生成流程3 代码生成的一点补充 代码生成是一个很庞大的体制,花了好久大致理清楚了调理。本文也会就之前没有提到的Simulink Coder进行实测解释用法。1 代码生成的产生 代码生成技术的产生是近年来,不断流行的MBD(model basic design)进行催生演化出来的重要的环节。目前越来越多的算法需要通过CAE进行分析,然后开发产品。如何能够快速将设计的model转变成产品成为了软件工程师攻克的主要方向之一,如果能够从模型直接生成代码
2020-08-07 11:36:14
1743
1
原创 2837xd 代码生成——补充(3)
2837xd 代码生成——补充(3)6 自定义驱动模块7 创建库文件8 模型脚本化配置总结6 自定义驱动模块利用S-Function可以快速的生成自定义的模块,下面进行基本的概述:1)编制以下的m脚本:%结构体初始化def= legacy_code('initialize');%.c和.h文件路径def.IncPaths={'I:\matla_HIL\Mangerfz'};def.SrcPaths={'I:\matla_HIL\Mangerfz'};%驱动源代码及头文件def.Sou
2020-08-06 09:06:17
2064
1
原创 2837xd 代码生成——补充(2)
2837xd 代码生成——补充(2)5 基于模型的代码生成基本流程(MDB)5.1 编译流程5.1.1 TLC语言5.2 系统默认ert.tlc生成代码结构5.3 优化代码生成5.4 不同的Storage Class 生成区别5.5 数据类型别名5.6 实例(Clark变换)5.7 带有预处理的C代码生成5.8 枚举变量类型创建5 基于模型的代码生成基本流程(MDB)首先搭建如下的Simulink模型:因为代码生成一般只支持离散定步长,所以解析器需要进行相应的设置。其基本设置过程都与之前所述的设置
2020-08-05 09:55:44
1212
原创 2837xd 代码生成——补充(1)
2837xd 代码生成——补充(1)1 代码生成补充2 Matlab-Coder代码生成3 Simulink Function代码生成4 模型的快速测试1 代码生成补充 GPIODATA读取,需要利用Memory Copy模块: 在TI官方手册中,GPIO被分为A-F六组,每组对应关系分别如下:端口管脚备注PortAGPIO0 ---- GPIO31PortBGPIO32---- GPIO63PortCGPIO64 ---- GPIO95Por
2020-08-04 12:04:24
1094
原创 2837xd 代码生成——StateFlow(4)
2837xd 代码生成——StateFlow(4)16 Chart调试16.1 设置断点类型:16.2 断点管理:17 Watch Data18 调用Work Space变量19 StateFlow 调用c代码20 2837d使用Chart进行构建模型搭建实例16 Chart调试 在Animation中可以进行设置调试过程的转移速度。16.1 设置断点类型:1)chart只能打上进入时的断点:打上断点后,左下角会有相应的标识。2)State打断点,有三种类型:I、进入State II
2020-07-31 17:18:04
1339
原创 2837xd 代码生成——StateFlow(3)
2837xd 代码生成——StateFlow(3)11 True Table12 复数的使用13 输出size改变的数据14 隐式事件15 结构体操作11 True Table 在Chart中加入True Table模型。然后在真值表中进行加入相应的元素:真值表分为条件表和动作表,如条件表D1所示意思为,当shift==1时,执行动作1。而D3所示为只要shift不为1或者2都执行第三个动作。然后需要在Model Explorer中添加相应的输入和输出变量,再此之前要把True Table的名
2020-07-30 18:03:28
1337
原创 2837xd 代码生成——StateFlow(2)
2837xd 代码生成——StateFlow(2)3 Matlab-Function4 Graphical Function5 Simulink Function6 内部转移(历史节点)7 Box模块8 自循环9 枚举类型10 矩阵3 Matlab-Function StateFlow模块也可以调用Matlab-Function的功能,点击左侧栏的Matlab-Function图标,构建以下的函数模型: 双击Matlab-Function,可以直接进行相关的函数定义。函数定义方式参照,m语言的函
2020-07-29 17:47:39
2176
原创 2837xd 代码生成——StateFlow(1)
2837xd 代码生成——StateFlow(1)1 Chart模块2 模型实例搭建2.1 汽车状态判断2.2 媒体播放状态检测2.3 2837xd流水灯联机调试 在Command Window中键入sf可以进入,也可以通过Simulink库中的StateFlow子库进入. StateFlow有限状态机,再使用matlab时,可能有所感觉:一个简单的if语句或者++操作需要构建的过于复杂。但是引入状态机可以大大减少这种情况。 进入库函数模块可以看到这三个元件都是状态机的模块,一个个学习:先看C
2020-07-23 12:43:54
2131
原创 2837xd代码生成模块学习(4)——idle_task、Simulink Coder
2837xd代码生成模块学习(4)——idle_task、Simulink Coder模块1 idle_task2 Simulink Coder3 优先级设置1 idle_task idle_task模块位于C2000支持包库的Scheduling子类中,形象地说就是实现了我们在书写程序中的while(1)模块。其设置如下图:图中第二个属性是抢占标志,意思是当标志为1时,允许外部中断来打破原有的执行(即在执行子函数时,允许中断)。模型框架如下:这里设置了两个idle_task,一个抢占标志为
2020-07-20 12:24:17
1506
原创 2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块
模块学习1 IIC 模块1.1 模型功能2 eCAN模块2.1 实验结果3 SCI模块3.1 实验结果4 看门狗模块5 eCAP模块5.1 APWM模式5.2 eCAP模式1 IIC 模块1.1 模型功能 实现向地址0x50的从机写入数据(100 ,1),然后检测当写入数据发生变化时,就开始从(从机地址为0x50)的空间读取刚刚写入的数据。 可以看到上图中主要分为三大部分:1.全局变量的定义。2.写入数据。3.读取数据。1.全局变量的定义使用的是Data Store Memory模块,与之对
2020-07-19 20:35:05
3362
6
原创 2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer0
2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer01 ADC模块2 Timer0中断3 ePWM模块配置模型链接:1 ADC模块模型结构:以上结构完成了经过ADC采集,进行输出采集到的电压的过程。1)ADC采集模块2)SCI_A的采集配置见文章(链接)3)Configuration Parameters中配置ADC(根据需要进行配置) 这里说一下,2837x的ADC采集较28335的ADC有所改动。总体来说我感觉是更加方便使用,具体的用法建议参考用户手册或者T
2020-07-17 13:14:17
3933
6
原创 2837xd代码生成模块学习(1)——GPIO模块
2837xd代码生成模块学习(1)——GPIO模块1 基础模块2 DSP代码生成库2.1 GPIO_OUT2.2 GPIO_IN2.3 GPIO_INT 上部分主要看的官方例程,对程序运行和模型基本构架有了一个框架式的认识,下一部分主要是对c2000库中的每个模块结合自己的认识进行自己搭建模型,达到学习模块的效果。模型链接:1 基础模块这里仅仅放一张图,有需求自行进行深入学习即可:2 DSP代码生成库2.1 GPIO_OUT 从Library中进入相应硬件的元件页面(这里选的是2837
2020-07-16 19:57:22
2168
2
原创 Matlab代码生成之SIL/PIL测试
Matlab代码生成之SIL/PIL测试一、SIL与PIL测试流程二、Top Model的SIL/PIL仿真三、基于模型的SIL(PIL)测试四、基于SIL(PIL)控制模块测试一、SIL与PIL测试流程1.SIL(Software in the Loop),使用SIL可以在PC端进行测试生成的代码。 PIL(Processor in the Loop),使用PIL可以在实际目标硬件或指令集模拟器 上运行源代码进行测试。 测试标准:将PIL(SIL)结果与正常模型测试结果进行对比,可
2020-07-15 11:29:55
6573
原创 Matlab生成dsp程序——官方例程学习(6)
Matlab生成dsp程序——官方例程学习(6)IPC通信一、主要目的二、程序分析1. CPU1程序三、生成代码中结构体记录官方链接:官方链接ccs程序即模型:程序与程序中有我看的时候的中文标注,可能看起来更容易一点。IPC通信一、主要目的这个例程是使用IPC进行2837xD的两个核的通信,CPU1分别启用了四个IPC通道进行数据传输。这里应该使用的是寄存器传输(看到程序后发现这里是重新封装了IPC,还是用的内存共享,而且封装的较为巧妙建议阅读一程序中的**IPCInit()**函数),一次传送
2020-07-14 17:05:00
2018
原创 Matlab生成dsp程序——官方例程学习(5)
Matlab生成dsp程序——官方例程学习(5)一、基本目的二、IIC通信基本原理三、具体实现四、生成代码与模型分析五、代码逻辑一、基本目的 官方例程中写的是使用IIC与传感器进行通信。因为与具体的官方给的传感器传输协议有一些关系,因此着重看每个模块的功能和大致结构。二、IIC通信基本原理 IIC通信是两线通信(SDA与SCL),属于半双工的通信方式。I2C协议包括:1.空闲信号 2.开始信号 3.停止信号 4.应答信号 5.数据的有效性 6.数据传输1)空闲状态SDA与SCL信号同
2020-07-14 09:32:32
1308
原创 Matlab生成dsp程序——官方例程学习(4)
Matlab生成dsp程序——官方例程学习(4)一、主要功能二、Simulink仿真模型三、有关设置四、触发保存数据有关设置1.设置手动触发存储数据2.设置自动触发采集数据五、生成程序分析官方链接:官方链接模型及代码:一、主要功能 利用串口与目标板卡进行实时通信,并且可以在线仿真和调试,相对于ccs的调试更加直观把,可以实现通过scope观看波形与改变参数可以很快的下发模型参数。二、Simulink仿真模型例程实现的功能是将一个正弦波形(脉冲波形)的数值放大五倍,然后我们进入仿真模式可以很快
2020-07-10 11:26:56
4268
5
原创 Matlab生成dsp程序——官方例程学习(3)
Matlab生成dsp程序——官方例程学习(3)一、主要功能二、CLA介绍三、Simulink分析四、程序分析五、总结官方例程链接:添加链接描述模型与程序链接:一、主要功能 使用CLA与CPU进行交互,cla读取数据控制LED灯闪烁。二、CLA介绍 CLA是允许并行处理的协处理器。将CLA用于时间紧迫的任务可以释放主CPU的空间,以同时执行其他系统和通信功能。(主要用于CPU在中断时,来不及处理的任务,分担CPU负重) CLA有八个任务(Task1[优先级最高]-Tack8
2020-07-08 16:07:34
2833
原创 Matlab生成dsp程序——官方例程学习(2)
Matlab生成dsp程序——官方例程学习(2)一、主要功能二、CAN总线三、2837x关于CAN说明四、生成程序五、总结 这次学习的是官方例程中的Asynchronous Scheduling,emm因为我也是一边学习一边记录,所以现在也没办法解释整个框架的结构啥的。后面我会一步一步看,慢慢分析的。例子官网连接:官网例程链接一、主要功能 定时器或ePWM模块用于配置定时器中断。定时器中断是根据定时器周期触发的,当收到消息时会触发eCAN消息接收中断。硬件中断块(图中的蓝色模块)触发定时
2020-07-07 15:05:56
3608
1
原创 Matlab生成dsp程序——环境搭建(c2000系列[F28335、F2837x]都适用)
一、环境配置(28377D的操作是一模一样就是硬件设置的时候需要选择28377d进行相应的设置)1)matlab与ccs联合编译需要安装对应的matlab版本和ccs版本,且只有2016a以上的matlab支持c2000系列。具体对应关系参照:http://software-dl.ti.com/ccs/esd/documents/ccs_matlab.html2)matlab版本确定之后,还需要安装有关于ccs的相关软件:I、TI Code Composer Studio xxxx(对应
2020-07-03 20:38:34
18323
15
原创 Matlab生成dsp程序——官方例程学习
Matlab生成dsp程序——官方例程学习写在下面的话ADC-PWM例子学习一、基本功能二、生成代码分析三、总结写在下面的话 还是很建议大家多去学习官方例程的,真的能够收获到很多很多东西的!例程和ccs程序我也会打包上传的!官方链接:MW官方例程ADC-PWM例子学习一、基本功能 ADC采集到的模拟电压控制PWM波形的占空比(周期不发生改变)。当处理器收到ADC中断(ADCINT)时,触发中断服务程序(ISR)并执行子系统(ADC-PWM子系统)。ADC-PWM子系统由ADC与EPWM
2020-07-03 20:28:17
8330
3
原创 DSP2837d双核调试
DSP2837d双核调试一、下载程序二级目录三级目录一、下载程序 双核程序一直运行不对,起初以为是程序原因,后来发现是烧录程序的方式有问题。开始是先DEBUG cpu1的程序,再DEBUG cpu2的程序,发现无论如何程序都没有办法正常运行,在若干次尝试后发现。 看上如可以发现,两个单独Debug,两个核运行的都是一个程序。这时需要单独各cpu1烧录称程序(因情况而定)。具体过程如下:1.选中CPU1核。2.给CPU1重新下载他自己的程序点击OK,烧录程序即可。3.最后的效果看到
2020-06-28 21:14:40
4199
原创 2837xD之CPU2使用外设
2837xD之CPU2使用外设一、文章目的1.主要准备二、代码阅读1.CUP1代码CPU2中的代码三、总结四、致谢一、文章目的上一篇文章主要是解决了2837xD之间的IPC交互问题,但是需要的目标是CPU2调用串口等通信功能进行信息发送到上位机的交互。因此本文主要是学习利用CPU2来驱动外设的主要流程。1.主要准备因为手上没有2837xD的开发板,本次实验还是以学习例程为主(有点难受)。。。二、代码阅读代码目的:CPU1进行时钟初始化与GPIO初始化,CPU2进行驱动外设(ADC与EPWM)
2020-06-25 20:13:23
2799
原创 2837xD之IPC通信(共享内存)
IPC通信(共享内存)IPC通信基本原理程序部分一、CPU1程序注释二、CPU1主程序部分三、CPU2主程序部分致谢IPC通信基本原理IPC通信是TI公司的一种双核通信方式,主要有:1.共享内存(Message RAM) 2.共享寄存器(Message register) 3.IPC lite 等等。本次分析的是TI公司的例程(基于2837xD)。程序部分一、CPU1程序注释例程目标:// //##############################################
2020-06-22 17:08:26
5679
11
三相逆变器离网控制——PR控制
2022-05-31
逆变器处理器在环测试simulink模型
2022-05-26
三相并网逆变器离网仿真模型
2022-04-05
Simuink生成28377d程序——idle_task、simulink_coder.zip
2020-07-20
Simuink生成28377d程序——IIC、SCI、eCAN、Watchdog、eCAP模块.zip
2020-07-19
Simuink生成28377d程序——ADC、Timer0、ePWM模块.zip
2020-07-17
Simuink生成28377d程序——GPIO模块.zip
2020-07-16
Matlab生成dsp代码——串口调试程序.zip
2020-07-10
Matlab生成dsp代码_CLA控制,模型+程序.zip
2020-07-08
matlab代码生成(dsp2837x)——Asynchronous Scheduling程序+模型.zip
2020-07-07
workspace_forF28377D-双核例程.rar
2020-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人