- 博客(83)
- 资源 (6)
- 收藏
- 关注
原创 [FOC电机控制] 电压频谱图
FOC三相电压频谱图能够揭示电机驱动系统中的电压波形及其频率成分。通过分析频谱图,我们可以识别出电压波形中的基频成分、低阶谐波和高阶谐波,进而优化控制策略(如选择合适的PWM频率和调制方式),以减少谐波对电机的负面影响,提高系统效率和稳定性。FOC(场定向控制)三相电压频谱图是分析三相交流电机(如永磁同步电机、感应电机等)在FOC控制下的电压波形频率成分的重要工具。通过频谱图,可以观察到电压波形的频率分布及其对电机性能的影响。
2025-08-10 20:28:09
694
原创 [FOC电机控制] 电气角度重要性远超机械角度
当需要控制电机的物理运动(如机器人关节位置、传送带速度)时,需将机械角度作为反馈(例如通过编码器测量机械角度),再转换为电气角度用于FOC控制。部分无传感器FOC算法(如高频注入)在低速时需要结合电机的机械凸极特性,此时会间接涉及机械角度的估算,但最终仍需转换为电气角度使用。简单说:FOC“直接使用”的是电气角度,但在涉及电机物理运动的场景中,机械角度是连接控制目标(如“转10圈”)与电气角度的必要桥梁。转速是机械特性(单位时间内的机械转动角度,如r/min),需要通过机械角度的变化率计算。
2025-08-06 16:26:20
249
原创 [FOC电机控制]-高速刹车机制
电机高速刹车时,就是让电机自己发电,然后用下桥开关把电流‘一半一半’地短路掉,把转动的能量变成热量消耗掉,这样电机就能又快又安全地停下来。如果你还想看图解或者有其他细节想了解,随时告诉我!
2025-08-06 14:39:18
264
原创 [FOC电机控制]-什么是定时器刹车功能
定义:刹车功能允许在特定条件下,立即关闭定时器输出,停止PWM信号,从而切断驱动电机的功率。作用:提供快速响应的硬件保护机制,避免电机反转过快、短路、电气故障等造成的损坏。
2025-08-06 13:50:16
413
原创 modbus四种寄存器
掌握这四种寄存器的区别是使用Modbus协议的基础,具体操作需参考设备手册中的寄存器映射表。,每种寄存器有不同的读写属性和用途。Modbus协议中定义了。
2025-06-20 08:50:09
1060
原创 GUI丝滑教程-python tinker
避免卡顿:将耗时操作移到子线程中,主线程保持响应 UI。主线程更新 UI:使用queue或after()来将数据传回主线程并更新 UI。守护线程:通过设置来确保子线程在主线程退出时自动结束。这些技巧可以帮助你在 Tkinter 中更流畅地实现多线程操作,避免界面卡顿。除了使用threading和queue除了使用线程和队列来处理耗时任务,还可以通过进度条、任务分割、变量绑定和新窗口等方式优化 Tkinter 的性能,避免界面卡顿。这些技巧帮助提升用户体验,让你的应用在处理复杂任务时仍然保持流畅响应。
2025-06-12 10:55:20
1025
原创 Python 中,线程类型
主线程是程序的入口线程。子线程是由主线程或其他线程创建并执行任务的线程。守护线程会在主线程退出时自动结束。非守护线程需要等所有任务完成后才会退出。一次性线程在任务执行完成后就结束。你在使用时可以根据需要选择合适的线程类型。主线程不需要显式创建,所有程序代码从主线程开始执行。子线程是通过创建并启动的,可以并行执行任务。守护线程通过设置,主线程结束时守护线程会自动退出。非守护线程是默认的线程类型,主线程结束时不会影响它,直到它自己的任务完成。一次性线程会在执行完指定任务后立即结束。
2025-06-12 08:23:15
614
原创 linux debug技术
(打桩这个根据字面意思就知道是打标记点,然后将标记点连接操作,形容出轨迹)静态代码插桩技术比较可靠,不会因为用户的不当使用而导致内核崩溃。ftrace的名字由function trace而来,它利用gcc编译器的profile特性在所有函数入口处添加了一段插桩代码,ftrace重载这段代码来实现跟踪功能。gcc编译器的“-pg”选项会在每个函数入口处加入mcount的调用代码,原本mcount由libc实现,因为内核不会链接libc库,因此ftrace编写了自己的mcount stub函数。
2025-05-24 21:26:24
758
原创 【FOC电机控制】为什么svpwm要不停变换占空比
FOC算法会计算电机当前需要的电压矢量 ( V_\alpha ) 和 ( V_\beta )(在α-β坐标系下)。A2:SVPWM算法会确保三相占空比始终满足 ( U + V + W = 0 )(无中线电流)。➤ 下一个PWM周期(如100μs后),FOC会根据新的转子位置重新计算,占空比再次变化!A3:STM32的硬件PWM和DMA可以辅助计算,实际CPU开销很小(<5%)。A1:与PWM频率相同(例如10kHz时,每秒更新10,000次)。:通过动态调整三相PWM的占空比,让电机“看到”的是一个。
2025-04-12 04:09:25
1012
原创 [视频编码]rkmpp 实现硬件编码
命令参数的描述说明如下:命令参数描述说明-i输入的图像文件。-o输出的码流文件。-w图像宽度,单位为像素。-h图像高度,单位为像素。-hstride垂直方向相邻两行之间的距离,单位为byte。-vstride图像分量之间的以行数间隔数,单位为1。-f图像色彩空间格式以及内存排布方式,默认为NV12。-t码流文件的协议类型。-tsrc源码流格式,仅在测试整体编解码性能时使用。-n最大解码帧数。测试时若码流较长,可仅输出前n帧。-g。
2025-03-08 23:48:02
650
原创 libasound2-dev 安装报错
面向alsa编程时候遇到没有头文件,检查系统没有这个头文件是缺少alsa库。basound2-dev 安装报错。
2025-02-20 00:38:56
467
原创 [Linux Codec驱动]音频路由概念
音频路由信息是音频系统中一个重要的组成部分,理解其含义和功能对于调试和开发音频设备驱动程序至关重要。它定义了音频信号的流向,并确保不同音频组件能够正确交互。函数的详细注释版本,以帮助理解每一部分的功能和逻辑。cCopy Code。
2024-10-16 20:38:13
1462
原创 rtthread空闲线程与定时器
同时,也可以使用RT-Thread内置的钩子函数机制,将自定义的代码插入到系统中已有的功能中,实现对系统的扩展。rt_thread_delay()函在这里插入代码片数适合在线程中间暂停一段时间,并等待某些事件的发生,而rt_timer_start()函数则适合在后台执行一些周期性的任务,例如轮询外部设备状态或者定时发送数据等。在这个过程中,空闲线程会持续处理其他的任务并更新系统的时基,直到指定的时间到达后,被挂起的线程才会被重新加入到就绪队列中,并等待调度器进行调度。
2023-06-18 16:38:28
1449
原创 /dev/random
dev/random设备是Linux系统中的一个随机数发生器,它可以产生高质量的随机数,这些随机数可以用于加密、认证等安全性要求较高的场景。使用/dev/random设备非常简单,只需要从该设备文件中读取足够多的字节即可获取随机数。具体步骤如下:打开/dev/random设备:通过open系统调用打开该设备文件,得到一个文件描述符。读取随机数:通过read系统调用从文件描述符中读取随机数,读取的字节数可以根据需要进行控制。关闭设备文件:读取完随机数后,需要关闭设备文件以释放资源。
2023-06-17 01:28:38
1828
原创 RT-Thread相同优先级线程
在上述代码中,我们使用一个简单的轮询调度算法,通过将当前线程放到队列末尾,并选择下一个就绪的线程来实现时间片轮转。当然,如果你想要改变这种行为,可以通过修改调度器的代码来实现不同的调度策略。例如,你可以实现一个简单的轮询调度算法,让每个线程依次执行一定的时间片,从而避免某些线程长时间得不到执行的情况。如果你想要实现不同于默认的调度算法来处理相同优先级的线程,可以编写自己的调度器代码并将其替换为默认的调度器。需要注意的是,调度器的修改可能会影响系统的稳定性和实时性,因此在修改之前应该进行充分的测试和评估。
2023-06-17 01:23:53
1530
原创 编译内核驱动为模块,没有指定架构的时候出现错误
编译内核驱动为模块,发现报错一堆,发现./arch/x86/include/asm/arch_hweight.h:55:42: error: expected ‘:’ or ‘)’ before ‘POPCNT64’ 这种报错,最后发现是编译命令问题,你要指定架构。
2023-05-17 01:17:36
1115
原创 flutter安装各种问题汇总
再将 kPubDevHttpHost 和 kgCloudHttpHost 两个常量 分别修改为 https://pub.flutter-io.cn/ 和 https://storage.flutter-io.cn/(解决第二个)Flutter SDK路径/flutter/packages/flutter_tools/lib/src/http_host_validator.dart。链接:https://www.jianshu.com/p/d1a923b9d298。解决 设置环境变量SDK安装文件夹。
2023-04-01 15:25:24
1218
原创 保持通过samba服务器修改文件的权限不变动
sudo vi /etc/samba/smb.conf 在末尾加上一下内容,我的管理员用户root,密码cw,共享路径path=/home,注意vim强制保存只读文件的命令是:w!sudotee%#共享名,也就是网络地址后缀 \\192.168.221.128\share[share]# 描述符,是给系统管理员看的comment = Share folder# 共享目录路径path = /home# 客户端上传文件的默认权限#create mask = 0700 这里...
2022-03-30 17:59:51
3129
原创 下载地址
https://dl-download.csdn.net/down11/20181028/59c7816c30eceb9c4e8b01b1a8285688.zip?response-content-disposition=attachment%3Bfilename%3D%22%25E6%25B7%25B1%25E5%2585%25A5%25E7%2590%2586%25E8%25A7%25A3%25E8%25A7%2586%25E9%25A2%2591%25E7%25BC%2596%25E8%25A7%25
2020-07-25 15:42:00
4619
原创 win10安装telnet服务器
win107有些系统不带telnet服务器。那么可以自己安装一个下载这个并安装http://www.goodtechsys.com 下载telnetdSetup.exe,下载后再在cmd里telnet 111.111.111.111 23 即可或者直接securecrt 直接连接本地的telnet服务器,输入电脑的账号和密码(必须设置密码),输入找密码即可比如你的cmd不好...
2020-03-29 19:42:47
10064
5
原创 apt-get update 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
现象:我更新ubuntun18.04的软件源为国内,再执行apt-get update报错了。root@c:/home/c# apt-get update获取:1 http://mirrors.aliyun.com/ubuntu bionic InRelease [242 kB]获取:2 http://mirrors.aliyun.com/ubuntu bionic-securi...
2020-01-28 18:56:32
15216
9
原创 ubuntun安装apt-get
需要下载三个软件包如下。是我从http://archive.ubuntu.com/ubuntu/pool/main里面下载的。* apt_1.7.0_amd64.deb*libapt-pkg5.0_1.8.0_amd64.deb* ubuntu-keyring_2016.10.27_all.deb我直接给出这三个软件的地址。你下载后复制到虚拟机的某个目录下http:...
2020-01-27 20:08:52
961
原创 gcc编译程序四个阶段 预处理、编译、汇编、链接
gcc编译程序四个阶段 预处理、编译、汇编、链接先说一下C/C++编译的几个过程。预处理,展开头文件,宏定义,条件编译处理等。通过gcc -E source.c -o source.i或者cpp source.c生成。编译。这里是一个狭义的编译意义,指的是将预处理后的文件翻译成汇编代码的过程。通过gcc -S source.i生成。默认生成source.s文件。汇编。汇编即将上一步...
2019-12-17 16:09:16
1256
原创 markdown常见错误速查
markdownlint规则详细介绍及自定义参数设置MD001 - Heading levels should only increment by one level at a time标题级数每次只能扩大1, 也就是不能隔级创建标题(从1级到6级的顺序)MD002 - First heading should be a top level heading文档的第一个标题必须是最高...
2019-12-17 16:08:49
9363
原创 source in sight 删除工程
用十六进制编辑器打开 "我的文档/Source Insight/Projects/PROJECTS.DB3" 文件 ,直接删除
2019-11-27 11:52:36
571
原创 markdown 语法中文解释
MD 001-标题级别一次只能增加一个级别。 (就是你的标题号码不是顺序+1)标签:标题,标题别名:标题-增量,标题-增量当您跳过减价文档中的标题级别时,会触发此规则,例如:# Heading 1### Heading 3We skipped out a 2nd level heading in this document当使用多个标题级别时,嵌套标题一次只增加一个级...
2019-11-25 19:17:02
2780
原创 markdown的语法-英文
这是markdown的语法错误,如果英文(https://github.com/DavidAnson/markdownlint/blob/v0.17.2/doc/Rules.md#md036、)看不懂,看下我写的中文的(https://mp.csdn.net/postedit/103243862)RulesThis document contains a descript...
2019-11-25 19:14:42
7494
1
原创 创 Lockdir 文件夹加密 破解
进入该文件夹的dos把这句复制粘贴过去:attrib -s -r -h Thumbs.ms(命令行下 ctrl + v 是没用的,鼠标右键粘贴吧)执行后 Thumbs.ms 变回普通文件夹了。然后一路双击往里冲吧。然可能你会撞到这个 ã.. 文件夹。进不去。简单,winrar 里不是可以进嘛。从 winrar 进到这里,把 ã.. 改成个正常的文件名就行了。比较如 abc...
2019-10-05 14:47:12
1477
原创 arm工作模式
一、Arm工作模式:Arm微处理器支持7种工作模式,分别为:1.用户模式(Usr)用于正常执行程序2.快速中断模式(FIQ)用于高速数据传输3.外部中断模式(IRQ)用于通常的中断处理4.管理模式(SVC)操作系统使用的保护模式(高权限),复位和软件中断进入5.数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护6.系统模式(sys)运行...
2019-10-02 10:54:30
1355
原创 (深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack) 1
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack) 1关于BSS段的大小 21. BSS段中的内容 22.BSS段在加载运行前的处理 33.BSS段的作用 34. 代码优化对BSS段的影响 35.Linux 下查看段属性的指令: 4BSS大小实验 4清除BSS段的一般做法 6link脚本一般包含类似语句: 6(深...
2019-10-02 10:53:53
2087
1
原创 冒泡两种优化
https://blog.csdn.net/hansionz/article/details/80822494先看冒泡#include <stdio.h>#include "string.h"#include "malloc.h"#include "iostream"#include<time.h>using namespace std;int tab...
2019-03-01 23:51:56
253
原创 BSS段
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack) 1关于BSS段的大小 21. BSS段中的内容 22.BSS段在加载运行前的处理 33.BSS段的作用 34. 代码优化对BSS段的影响 35.Linux 下查看段属性的指令: 4BSS大小实验 4清除BSS段的一般做法 6link脚本一般包含类似语句: 6 (深...
2019-02-23 00:00:06
14269
2
转载 char类型的取值范围
2017年07月25日 22:05:08 rs勿忘初心 阅读数:3526所有的C语言的书籍里都会告诉你signed char的取值范围为-128 ~ 127,但是从来没有人告诉你为什么会是这样;我们先来算算,有符号的char占一个字节,最高位表示正负,其余的七位表示数值,七位二进制可以表示128个数(2^7 = 128),即0~127;加上符号位后,就变成了-127 ~ -0,0 ~...
2019-02-16 21:51:19
5456
原创 <CR><LF><response><CR><LF>
.2. AT Command SyntaxThe “AT” or “at” prefix must be set at the beginning of each command line. To terminate a command lineenter <CR>. Commands are usually followed by a response that...
2019-02-14 13:09:56
501
原创 第一个驱动--自动创建设备节点
驱动.ko文件,如何自动在/dev/目录下生产设备节点文件,要怎么写 cw_drv_class = class_create(THIS_MODULE, "chenwei_first"); cw_drv_class_dev = class_device_create(cw_drv_class, NULL, MKDEV(major, 0), NULL, "xyz");...
2019-02-12 14:13:18
596
quicker.em 支持sourcesight4已测
2019-02-01
银行家算法
2019-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人