摘要: 代码如下,使用方法:在单片机定时器中断函数中调用Decode_SinCos() 中断频率取决于编码器的精度以及运动速度,我测试的编码器精度为20um/周期,速度尚未测量(以后补充),定时器间隔为50us,时间间隔太大容易丢正余弦周期,间隔太小频繁进中断增加CPU负荷,运行Decode_SinCos( 阅读全文
posted @ 2025-01-15 17:01 阿坦 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1、配置ADC 初始化代码如下 /* ADC1 初始化函数 */ void MX_ADC1_Init(void) { /* 用户代码部分:ADC1初始化开始 0 */ /* 用户代码部分:ADC1初始化结束 0 */ /* 定义多模式和通道配置结构体 */ ADC_MultiModeTypeDef 阅读全文
posted @ 2025-01-14 16:12 阿坦 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 在上一篇博客中配置了UVW三相PWM的定时器,在此基础上增加配置ABZ编码器定时器 启用一个定时器中断,用于PID处理 代码如下 // 常量定义 #define PI 3.14159265359f #define PWM_RESOLUTION 5250.0f // PWM分辨率 #define CI 阅读全文
posted @ 2024-12-18 14:49 阿坦 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 由于ST官方MotorControlWorkbench生成的FOC代码过于复杂,决定自己使用正点原子的直流无刷驱动板自己编写FOC去控制PMSM电机。FOC代码参考的是灯哥的教材DengFOC官方文档。 1、配置TIM1高级定时器 重映射IO口并配置 2、foc.c代码 /* * foc.c * * 阅读全文
posted @ 2024-12-12 11:45 阿坦 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1、单向DC电机开环测试 void TMC4671SinglePhaseDC_Test(){ // 电机类型和PWM配置 // TMC4671_MOTOR_TYPE_N_POLE_PAIRS 寄存器用于设置电机类型和极对数。 // 高16位 (0x0001):电机类型。0: 无电机 1: 单相直流电 阅读全文
posted @ 2024-11-08 16:09 阿坦 阅读(17) 评论(0) 推荐(0) 编辑
摘要: FOC(Field Oriented Control,磁场定向控制)是控制三相交流电机(如直线电机和旋转电机)的一种常用矢量控制方法。它通过将三相电机的定子电流转化为与转子磁场对齐的两个独立分量:磁通分量和转矩分量,从而能够精确控制电机的磁场和转矩,达到优化电机性能的目的。 FOC的关键步骤: 电流 阅读全文
posted @ 2024-10-29 09:47 阿坦 阅读(278) 评论(0) 推荐(0) 编辑
摘要: train.py代码如下 import torch import torch.nn as nn import torch.optim as optim model_save_path = "my_model.pth" # 定义简单的线性神经网络模型 class MyModel(nn.Module): 阅读全文
posted @ 2024-08-07 10:31 阿坦 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 本程序为C#控制台(.Net Framework 目标框架)使用方法在data.csv中填好已有的数据,需要解密的数据空着不填。运行程序前一定要关闭data.csv数据文件。 using System; using System.Diagnostics; using System.IO; names 阅读全文
posted @ 2024-07-30 09:52 阿坦 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 示例:计算2的多少次幂(x)等于8192? a=2,b=8192,则x=log2(8192),x=log10(8192)/log10(2) 解释如下: 阅读全文
posted @ 2024-07-22 11:07 阿坦 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1、卷积层(Convolutional Layer)是卷积神经网络(CNN)的核心组件,用于提取输入数据中的局部特征。下面是用Python基础库实现一个简单的二维卷积层的示例代码: import numpy as np # 定义输入数据和卷积核 input_data = np.array([[1, 阅读全文
posted @ 2024-07-04 17:28 阿坦 阅读(54) 评论(0) 推荐(0) 编辑