搜索
bottom↓
回复: 15

请教TI iqmath上如何开三次方?

[复制链接]

出50入135汤圆

发表于 2024-1-30 10:03:32 | 显示全部楼层 |阅读模式
大佬,我在使用STM32F103计算7段式S型加速曲线,F103没有FPU,整个计算耗时6ms左右,想使用iQmath计算看能否快一些,里面有个开三次方的运算,在iqmath的头文件没有找到相关申明。如有知道大佬,烦请指点,感激不尽!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入1074汤圆

发表于 2024-1-30 10:51:39 | 显示全部楼层
本帖最后由 Himem 于 2024-1-30 11:02 编辑

拆成ln和exp?
Y = exp(ln(X) / 3)

或者查表拿近似值+牛顿迭代法

出50入135汤圆

 楼主| 发表于 2024-1-30 11:08:24 | 显示全部楼层
Himem 发表于 2024-1-30 10:51
拆成ln和exp?
Y = exp(ln(X) / 3)

(引用自2楼)

F103没浮点,不支持ln与exp。

出50入135汤圆

 楼主| 发表于 2024-1-30 11:09:45 | 显示全部楼层
Himem 发表于 2024-1-30 10:51
拆成ln和exp?
Y = exp(ln(X) / 3)

(引用自2楼)

仔细看了下,有exp,没找到ln

出0入1074汤圆

发表于 2024-1-30 11:15:44 | 显示全部楼层
本帖最后由 Himem 于 2024-1-30 11:19 编辑
Stm32Motor 发表于 2024-1-30 11:09
仔细看了下,有exp,没找到ln
(引用自4楼)


就是logₑ

出50入135汤圆

 楼主| 发表于 2024-1-30 11:19:44 | 显示全部楼层
Iqmath.h里面没有搜索到log,ln相关的字符

出0入1074汤圆

发表于 2024-1-30 11:29:29 | 显示全部楼层
Stm32Motor 发表于 2024-1-30 11:19
Iqmath.h里面没有搜索到log,ln相关的字符
(引用自6楼)


库来源? 我看430/432的iqmath (2015)里有log

出50入135汤圆

 楼主| 发表于 2024-1-30 12:24:28 来自手机 | 显示全部楼层
我同事发给我的。我的是stm32的

出0入1074汤圆

发表于 2024-1-30 13:41:46 | 显示全部楼层
Stm32Motor 发表于 2024-1-30 12:24
我同事发给我的。我的是stm32的
(引用自8楼)


MSPM0-SDK移植最新的去,有教程

出50入135汤圆

 楼主| 发表于 2024-1-30 13:42:05 | 显示全部楼层
刚去官网下了下430的,里面确实有log,M3在官网看到下载地方

出50入135汤圆

 楼主| 发表于 2024-1-30 16:49:57 | 显示全部楼层
Himem 发表于 2024-1-30 13:41
MSPM0-SDK移植最新的去,有教程
(引用自9楼)

下载下来了,这个只是支持M0的吧?

出0入1074汤圆

发表于 2024-1-30 16:55:39 | 显示全部楼层
本帖最后由 Himem 于 2024-1-30 17:02 编辑
Stm32Motor 发表于 2024-1-30 16:49
下载下来了,这个只是支持M0的吧?
(引用自11楼)


有源码

出50入135汤圆

 楼主| 发表于 2024-1-30 17:12:01 | 显示全部楼层
https://www.armbbs.cn/forum.php? ... 6&highlight=dsp

出50入135汤圆

 楼主| 发表于 2024-1-30 17:57:00 来自手机 | 显示全部楼层

多谢,我移植看看

出50入135汤圆

 楼主| 发表于 2024-1-30 20:31:36 | 显示全部楼层


非常感谢你的热心指导.在MDK下stm32f103编译成功,明天到公司测试开三次方的函数.
附件为移植成功的代码.有须要的可以参考下.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出50入135汤圆

 楼主| 发表于 2024-1-30 20:46:12 | 显示全部楼层
本帖最后由 Stm32Motor 于 2024-1-30 20:50 编辑
Himem 发表于 2024-1-30 10:51
拆成ln和exp?
Y = exp(ln(X) / 3)

(引用自2楼)


我在pthon里面这个写,计算结果不对哈.
import math
a= math.exp(math.log(math.e,8)/3)
print(a)
a=1.1738623302535736

晕,我搞错math.log传参了,改正后结果就对了.
以下是正确的python代码:

import math
a= math.exp(math.log(8,math.e)/3)
print(a)
a=2
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 17:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表