一般对于volatile的解释是这样的:将变量定义为volatile可以防止编译器对变量进行优化,每次均从内存中访问变量,而不是寄存器。既然让编译器优化可以提高访问速度,那为什么又要不用它以及什么时候不用它?其实主要是配合的问题,一个变量可能在寄存器中,也可能在内存中,如果程序只有一个执行流且没有跳转,那么变量不管放到内存还是寄存器,理论上在编译阶段编译器是能够知道变量的具体位置的,使用时就不会出现问题。事实上编译器是通过一个简单的规则来保证的:局部变量一般会放到寄存器中,全局变量在函数开始时必然是操作内存,之后可能是放入寄存器,到函数结束时必然将全局变量的值再写入内存(如果有写的话),这样每次函数调用时全局变量的最新值都在内存中,且都从内存中访问,保证了数据的一致性。但这种一致性在多执行流或有跳转的情况下就有问题了
2022-09-19 11:15:47 55KB 汇编 volatile
1
STM32控制舵机精准角度程序,精确到某一度
2022-09-17 23:49:12 445KB STM32 舵机控制
1
三维空间中多站纯角度无源定位跟踪实质上是一个非线性状态估计问题。经典的扩展卡尔曼滤波(EKF)算法等递推类算法性能不稳定,而将非线性观测方程转化为伪线性方程会产生有偏估计。为了实现快速稳定无偏定位跟踪,提出了一种新的双站纯角度快速渐进无偏定位跟踪算法。该算法通过对未知状态变量含二次约束的伪线性方程进行约束最小二乘(CLS)极小化处理,最终只需要对一对矩阵束进行广义特征分解即可获得目标状态估计值。仿真结果表明,该算法与EKF算法及最小二乘(LS)算法相比,定位性能更稳定,精度更高,在测量误差较大或者两个观测站测量误差不一致时优势更明显。
1
由旋转矩阵计算绕X、Y、Z轴旋转角度的计算公式,直接代入公式求解即可,适用于3*3旋转矩阵的计算。
2022-09-05 14:00:31 94KB 旋转矩阵 欧拉角 旋转角度
1
Keil程序。修改数值即可移相任意角度,适用于移相全桥以及交错并联半桥所需的移相PWM。共输出3路互相移相的PWM,移相角可随意配置。高级定时器未使用,可以配置一路互补带死区PWM
2022-08-29 20:39:51 5.79MB stm32 arm 嵌入式硬件 单片机
1
经纬度转换为方位俯仰距离的两种转化公式++++角度转化为度分秒的公式
2022-08-29 20:16:58 11KB excel
1
描述与平均角度相关的问题并提供解决这些问题的程序。 提供了一个演示程序来测试各种情况并确保平均值按预期出现。 该程序的版本提供了以度或弧度工作的形式,尽管底层代码以弧度工作。
2022-08-29 20:13:51 24KB matlab
1
电机FOC控制 5 1.角度处理模块AngleModule 5 1.1 电角度与零位AngleDeal 5 1.2 机械转速计算CalMotorVelo 9 2.电流Id和Iq反馈CalIdqFb 11 2.1 坐标变换 11 2.2 滑动平均滤波处理 16 3.转矩电流补偿TorqueCurCom 17 3.1 电流矢量的分解 17 3.2 稳态下的转矩补偿 17 4.电流PI调节CurrentPIAdjust 19 4.1 位置式PID模拟控制的离散算法 19 4.2 改进的数字PI算法 20 4.3 积分量化误差的消除 21 5.计算电机电压CalUdUq 24 5.1 PMSM的数学模
2022-08-17 19:39:14 4.02MB 电机 Foc 角度
1
嵌入式编码器底层代码,51单片机驱动,通过串口打印编码器旋转角度
湍流团聚是促进颗粒团聚的有效方法。 采用经典的欧拉-欧拉二流体模型与人口平衡模型的耦合来模拟集聚过程。 仿真结果表明,湍流团聚可以减少小于10μm的细小颗粒排放的56%。 小于2μm的最小颗粒很容易被去除,而中等尺寸的颗粒的去除值却非常低。 叶片的适当间隔有利于从气流中去除细颗粒。 叶片的小角度可以改善细颗粒的去除。
2022-08-16 11:19:37 473KB 细颗粒 湍流 叶片间距 叶片角度
1