- 博客(807)
- 资源 (1)
- 收藏
- 关注
原创 Multisim14.3的安装步骤
依次右键【Base Edition】、【Full Edition】、【Power ProEdition】、【Full Edition】、【Power ProEdition】,选择【Activate】右击Install.exe,以管理员身份运行。粘贴到安装路中的stingfiles下。右击,以管理员身份运行。
2025-04-03 16:15:37
255
原创 qcustomPlot画出串口实时接受的数据
QCustomPlot 是一个用于在 Qt 应用程序中绘制图表的 C++ 类库。它提供了丰富的功能,可以绘制各种类型的图表,如折线图、散点图、柱状图、饼图等。// 设置 QCustomPlot 的标题ui->customPlot->setWindowTitle("QCustomPlot 示例");// 添加数据// 101个点i < 101;++i) {// x 范围从 -1 到 1// y = x^2// 创建图形并设置数据// 设置坐标轴范围// 设置坐标轴标签。
2025-03-26 16:30:14
21
原创 浮点数的储存和运用
浮点数在内存中的存储遵循特定的标准,最常用的是 IEEE 754 标准。该标准定义了浮点数的表示方法,包括符号位、指数位和尾数位的布局,使得不同计算机系统之间能够一致地进行浮点数运算和数据交换。示例示例以下是一个简单的 C 程序,展示如何将浮点数转换为其二进制表示:要将四个字节按照大端模式(Big-Endian)发送并拼接成一个 float 数据,可以按照以下步骤进行操作。以下是一个完整的 C 程序示例,演示如何将四个字节按照大端模式拼接成一个 float 数据:代码解释使
2025-03-25 15:35:07
23
原创 三相永磁同步电机的控制方法之弱磁控制
弱磁控制(Field Weakening Control, FWC)是一种用于扩展电机转速范围的先进控制技术,特别适用于永磁同步电机(PMSM)和感应电机(IM)。弱磁控制通过调节直轴电流(d轴电流),削弱永磁体的磁场强度,从而降低反电动势,扩展电机的转速范围。以下是一个简化的弱磁控制的C语言实现案例,假设电机为三相永磁同步电机(PMSM),使用STM32微控制器。磁场定向控制(FOC):实现FOC算法,包括Clarke变换、Park变换、PI控制和逆变换。PI控制器:实现d轴和q轴的PI控制。
2025-03-24 17:53:56
352
原创 三相永磁同步电机的控制方法之直接转矩控制(DTC, Direct Torque Control)
直接转矩控制(DTC,Direct Torque Control)是一种高性能的电机控制方法,广泛应用于永磁同步电机(PMSM)、感应电机(IM)和其他类型的电机。与矢量控制(FOC)不同,DTC不依赖于复杂的坐标变换和PI控制器,而是通过直接控制电机的电磁转矩和磁链,实现快速动态响应和高精度控制。以下是一个简化的直接转矩控制(DTC)的C语言实现案例,假设电机为三相感应电机(IM),使用STM32微控制器。开关表选择:根据磁链和转矩误差,选择逆变器的电压矢量。PI控制:实现磁链和转矩的PI控制。
2025-03-24 17:44:17
705
原创 三相永磁同步电机的控制方法之无传感器控制
无传感器控制(Sensorless Control)是一种通过估算电机转子位置和速度,而不依赖物理位置传感器(如霍尔传感器或编码器)的控制方法。它通过检测电机的电流、电压或其他物理量,间接获取转子位置信息,从而实现高效控制。以下是一个基于反电动势观测法的三相无传感器控制的C语言实现案例,假设电机为三相无刷直流电机(BLDC),使用STM32微控制器。Park变换:将两相静止坐标系(α-β)的信号转换为同步旋转坐标系(d-q)。PI控制:实现d轴和q轴的PI控制,调节电流和速度。定义电机控制所需的基本变量。
2025-03-24 17:25:46
260
原创 三相永磁同步电机的控制方法之六步换向控制(Six-Step Commutation)
六步换向控制(Six-Step Commutation)是一种简单的三相无刷直流电机(BLDC)或永磁同步电机(PMSM)的控制方法。它通过依次切换三相绕组的电流方向,产生旋转磁场,驱动电机运行。与矢量控制(FOC)相比,六步换向控制算法简单,计算量小,适合低成本、低性能要求的场景。以下是一个简化的六步换向控制的C语言实现案例,假设电机为三相无刷直流电机(BLDC),使用STM32微控制器。
2025-03-24 17:07:19
453
原创 三相永磁同步电机的控制方法之矢量控制
三相永磁同步电机的控制方法有:矢量控制(FOC, Field-Oriented Control)、六步换向控制(Six-Step Commutation)、无传感器控制、直接转矩控制(DTC, Direct Torque Control)、弱磁控制和自适应控制与智能控制。矢量控制(FOC,Field-Oriented Control),也称为磁场定向控制,是三相永磁同步电机(PMSM)和感应电机(IM)中常用的高性能控制方法。d-q坐标系的控制目标。
2025-03-24 16:14:10
267
原创 约束文件SDC常用命令
般而言setupuncertainty.的设置和时钟周期相关,周期越大,设置越大。A→B不能超过1.2ns(防慢),C→D不能快于0.8ns(防hold违例),常见于组合逻辑路径上的检查。cIkA和clkB是异步时钟,它们之间的路径不用检查时序(如跨时钟域)。数据进芯片前,外部电路已消耗0.5ns,综合要预留这段“堵车时间”。告诉工具主时钟周期是2ns(频率500MHz),从clk端口输入。这条路径允许用2个时钟周期传输,放宽时序要求(如低频控制信号)。
2025-03-24 09:08:34
197
原创 FPGA中串行执行方式之使用时钟分频或延迟的方式
基本原理:时钟分频是通过将输入时钟信号的频率降低(即周期变长)来生成一个新的时钟信号。分频后的时钟信号可以用于控制逻辑的执行速度,或者在某些场景下用于降低功耗。在FPGA设计中,时钟分频和延迟是两种常用的技术,用于控制信号的时序或调整信号的频率。以下是一个简单的延迟实现,假设输入信号 data_in 需要延迟 N 个时钟周期后输出。以下是一个偶数分频的实现,假设输入时钟频率为 clk_in,分频系数为 N(偶数)。以下是一个奇数分频的实现,假设输入时钟频率为 clk_in,分频系数为 N(奇数)。
2025-03-24 08:30:46
100
原创 FPGA中串行执行方式之流水线(Pipeline)
在FPGA设计中,流水线(Pipeline) 是一种常见的优化技术,用于提高系统的吞吐量和性能。流水线通过将复杂的逻辑分解为多个阶段,每个阶段在一个时钟周期内完成一部分工作,并将中间结果传递到下一阶段。这种方式可以显著提高时钟频率,同时实现并行处理。在某些场景中,流水线的输出可能需要反馈到输入。以下是一个带反馈的流水线示例,模拟一个简单的计数器流水线。以下是一个简单的4级流水线示例,输入数据经过4个阶段的处理后输出。在多通道流水线中,每个通道独立运行,适合并行处理多个数据流。
2025-03-24 08:01:07
155
原创 FPGA中串行执行方式之计数器控制
使用计数器控制的方式实现状态机是一种简单且直观的方法。它通过计数器的值来控制状态的变化,从而实现顺序逻辑。计数器的方式特别适合状态较少且状态转移是固定的场景。以下是一个简单的状态机,状态依次为 IDLE -> STATE1 -> STATE2 -> STATE3 -> IDLE,使用计数器控制状态转移。以下是一个带有复位和超时机制的状态机,计数器值超过某个阈值时会强制回到初始状态。以下是一个带有条件判断的状态机,计数器值达到某个阈值时才进行状态转移。计数器控制的状态机(带复位和超时)。
2025-03-21 17:26:03
182
原创 FPGA中串行执行方式之状态机
这可以通过以下几种方法实现:使用状态机(Finite State Machine, FSM)、使用计数器控制、使用流水线(Pipeline)控制、使用时钟分频或延迟、使用软件控制(如MicroBlaze或PetaLinux)。Moore型状态机的输出仅依赖于当前状态,而Mealy型状态机的输出依赖于当前状态和输入。以下是一个简单的三段式状态机示例,实现一个计数器状态机,状态依次为 IDLE -> COUNT1 -> COUNT2 -> IDLE。Mealy型状态机的输出依赖于当前状态和输入。
2025-03-21 16:52:10
181
原创 由于找不到MSVCP140.dll的解决方法
找到 Microsoft Visual C++ 2019 Redistributable 和 Microsoft Visual C++ 2015 Redistributable;第二步:下载最新的正确版本的 Visual C++ 2019 Redistributable。第一步:打开“控制面板” > “程序” > “程序和功能”;最好X86和X64都下载安装。
2025-03-21 11:51:43
117
原创 补偿算法之幅值补偿算法
幅值补偿算法通常用于信号处理中,目的是调整信号的幅值以满足特定的要求。以下是一个简单的C语言实现幅值补偿算法的示例代码。假设我们有一个输入信号数组,我们希望对每个信号样本进行幅值补偿。幅值补偿算法主要用于调整信号的幅值,以使其满足特定的要求,如匹配目标幅值、消除幅值波动、增强弱信号等。下面详细介绍幅值补偿算法的原理设计,包括基本概念、常见方法及其实现步骤。
2025-03-18 11:50:14
249
原创 补偿算法之相位补偿算法
例如,在电机调速系统中,为了提高系统在高速运行时的稳定性,可能会采用相位超前补偿算法,通过在控制回路中添加适当的滤波器或控制器结构,使系统在高频段的相位提前,从而增加相位裕度,防止系统出现振荡或失稳现象。二阶全通滤波器是一种在数字信号处理和控制系统等领域广泛应用的滤波器,其系数决定了它的相位特性,进而影响对信号相位的补偿效果。相位补偿算法有基于全通滤波器的相位补偿原理、基于锁相环(PLL)的相位补偿原理、基于模型预测的相位补偿原理,本章主要讲解全通滤波器的相位补偿原理。
2025-03-18 10:56:43
119
原创 vivado关联notepad
输入:notepad的执行文件+[file name] -l[line number]找到TextEditor中的CustomEditor。点击.v文件会弹出notepad文本,则关联成功。从vivado的tool中进入setting。修改语言,关键字就会高亮。
2025-03-04 10:53:01
85
原创 QT中修改名称
第二步:将.pro文件名修改为新的工程名称,.pro.user文件删除。第三步:使用QT打开新工程文件夹里面的工程,并配置编译器。第一步:复制一份工程,将工程名称修改为新的工程名。
2025-02-17 14:55:41
99
原创 移位指令的理解
移位指令包含:逻辑左移(SHL)、逻辑右移(SHR)、循环左移(ROL)、循环右移(ROR)、算术左移(SAL)、算数右移(SAR)、带进位循环左移(RCL)、带进位循环右移(RCR)逻辑左移一位,相当于乘以2,逻辑右移一位,相当于除以2.
2025-01-14 15:49:21
185
原创 转移指令jmp以及其他转移指令
jmp short 的机器指令中,包含的是跳转到指令的相对位置(位移),而不是转移的目标地址。转移地址在寄存器变量中。jmp–无条件的转移。远转移和近转移的区别。
2025-01-08 17:34:04
146
原创 使用div指令实现除法,dup设置内存空间
切记提前在默认的寄存器中设置好被除数,且默认寄存器不作别的用处。使用div指令不需要给出被除数,只需要给出除数即可。
2025-01-07 16:31:28
233
原创 处理字符问题
在汇编程序中,使用单引号’…'的方式指明数据是以字符的形式给出的,编译将它们转化为相应的ASCII码。不必使用分支结构,可以使用运算达到转换。
2025-01-06 17:20:04
272
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人