- 博客(74)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注

原创 按发动机排量征收汽车消费税是不合理的,应该按燃烧室容积征税
国家税务总局于2016年11月30日发布了《关于对超豪华小汽车加征消费税有关事项的通知》, 征税的目的是希望厂商多造小排量的车,消费者多买小排量的车,减少燃油消耗和尾气排放。出发点是好的,然而征税的方式是错误的。直接后果是厂商拼命投入资源研发涡轮增加这种并不能节能减排的技术。1.5L的涡轮增压发动机和1.5L自吸发动机税率相同,但是1.5L增压发动机的动力水平...
2018-12-16 18:53:49
1117
1
原创 回文数猜想和3N+1猜想融合得到一个没啥价值的新猜想
s=879+978=1857, N=(3*1857+1)/2=2786, s=2786+6872=9658, N=s/2=4829, s=4829+9284=14113, N=(3*14113+1)/2=21170, s=21170+7112=28282, 得到回文数。s=196+691=295+592=394+493=887, N=(3*887+1)/2=1331, 得到回文数。比如取N=11,那么依次得到11, 17, 26, 13, 20, 10, 5, 8, 4, 2, 1.
2025-04-04 16:31:16
402
1
原创 松下Panasonic PLC FP0R C32CT控制张大头闭环步进电机
dut1.diInitialAndFinalSpeed:=1; dut1.diTargetSpeed:=1000; dut1.diAccelerationTime:=200; dut1.diDecelerationTime:=200; if (X0) then dut1.dwControlCode:=16#10000011; F172_PulseOutput_Jog(s_dutDataTable := dut1, n_iPulseOutputChannel:=0);end
2025-03-20 20:55:01
615
原创 30个整数映射到1个字节,查表法实现小范围内常数时间素性判定
1个bit代表1个整数的素性,同时,偶数不用存,个位为5的整数不用存,只有个位为1、3、7、9的整数才可能是素数。对于任意正整数k,只有30k+(1,7,11,13,17,19,23,29)这8个奇数可能是素数,正好用1个字节存储。
2025-01-23 10:27:40
466
原创 平方根倒数快速近似算法在现代CPU上还有必要使用吗?
使用32bit浮点数计算时,因为现代x86架构的CPU上都有 rsqrtss, rsqrtps 等SSE指令(参考链接),ARM架构上有 VRSQRTE.F32、VRSQRTS.F32 等指令,没必要使用这一近似算法,直接在C/C++中使用_mm_rsqrt_ss、_mm_rsqrt_ps以及在C#中使用MathF.ReciprocalSqrtEstimate等函数即可。使用64bit浮点数计算时,因为绝大多数个人电脑的CPU不支持vrsqrt14sd和vrsqrt14pd等AVX512指令,使用双精度版
2025-01-21 11:20:57
174
原创 C#数学相关开发性能优化方法
const, readonly, in这3个关键词在能用的地方要尽量用。这样可以让编译器执行更激进的优化策略,同时提高代码的安全性、可读性和可维护性。除非测试结果表明使用float型比double型更快,或者因为数据量巨大,float型比double型显著节省空间,否则都应该使用double型浮点数。因为float型的计算速度有时比double更慢,而且float型的精度太差,可能带来一些难以察觉的bug
2025-01-17 21:56:38
1304
原创 Panasonic松下伺服电机调试软件Panaterm 6.0.10.3下载
Panaterm是使用C#开发的,可以用ILSpy之类的软件还原出源代码,我已经进行了还原,不过无法编译成功,可前往github查看:https://github.com/FrogGuaGuaGua/PanasonicPanaterm,github的release里面也放了一个官方的安装包。官网下载地址:https://industry.panasonic.com/global/en/products/motor/fa-motor/ac-servo/panaterm#software_dl,
2025-01-11 16:13:27
723
原创 Windows上如何查看Arduino的汇编代码
首先要找到elf文件所在的位置,假如你的原始代码文件名为sketch_Nov13a.ino,那么对应的elf文件就是直接在后面加上.elf,即sketch_Nov13a.ino.elf,可以使用Everything进行全盘搜索,也可以进C:\Users\AAA\AppData\Local\Temp\arduino\sketches文件夹,会看到一些名称类似于5DD3CE43DD8A02147AF09A8C0AAFD876的文件夹,所需的elf就在最近修改的文件夹里面。方法二:使用IDA查看elf文件。
2024-11-13 17:37:22
373
原创 用快速幂算法计算指数函数的自变量为正整数时的函数值是非常愚蠢的做法
exp(n-1),数组a保存exp(0), exp(n), exp(2n), exp(3n),……同样的原理,对27求商还有更快的乘数和移位量,此处可以用14作为右移量(对[1,709]之间的全部正整数适用),2^14=16384,即 floor(x/27)=floor(((16384/27) * x) / 16384), 16384/27=606.814,向上取整变成607(0x025F). 如果右移量小于14,那么在某些情况下算出的商不对,感兴趣的可以尝试一下。虽然快速幂的函数体也很小(
2024-11-06 23:27:25
873
原创 C语言自编以e为底的指数函数exp,性能接近标准库函数
(1). 先做自变量x的范围检查,对于双精度浮点数,自变量不能超出(-1022ln2, 1024ln2)=(-708.39, 709.78),否则exp(x)会溢出。对于单精度浮点数,自变量不能超出(-126ln2, 128ln2)=(-87.33, 88.72). 自己使用此函数时,如果能通过其它途径保证自变量不会超出前述范围,那么可以省略这两个判断,提高速度。(3). b1的范围还是太大,如果直接对b1使用e^x在x=0处的泰勒级数,即使使用阶数很高的泰勒级数,精度也不够高,所以再做变换,令。
2024-11-03 21:59:09
678
1
原创 C语言自编以e为底的对数函数ln,性能接近标准库函数
因为m的范围是(1, 2),不够接近1,如果直接令m=(1+x)/(1-x),那么x不够接近0,代入上面的泰勒级数,则精度不够高,所以要对m进行变换,假设用。(1). 先做自变量x的范围检查,不能出现负数和0. 自己使用时,如果能通过其它途径保证自变量为正,那么可以省略这两个判断,提高速度。,则 ln(x)=kln(2)+ln(m),可以通过位运算方便快速地获取k和m .(3). 把 ln(1+x) 和 ln(1-x) 在 x=0 处的泰勒级数相减,时区间L最短),相反地,它恰好使区间L的长度达到最大。
2024-11-03 21:39:50
645
1
原创 不推荐使用Scilab作为MATLAB的开源替代
安装了Scilab2024.1.0,随便试了几分钟就发现有严重影响使用的Bug(也可能是就是这样设计的,有一个所谓的“暂停模式”),复现步骤:主界面上点击“Scilab示例”按钮,打开“演示”窗口,点击左侧列表中的“多项式”,再点右侧的“介绍”,会弹窗提示“请在控制台中按下<enter>键来逐步执行”,“确认”,不过另一个开源替代Octave也不完美,我也是试了几分钟就发现烦人的问题,界面上总是出现一些奇怪的问号,而且用方向键上键选择历史命令时,会出现字母错乱的问题。把界面语言改成英文并不能解决此问题。
2024-10-18 16:28:40
610
原创 解决Solidworks 2024运行的Windows资源极低,执行此命令可能会导致SOLIDWORKS 失败。
系统选项 > 导入,文件格式 > 普通,去掉“启用3D Interconnect”,“自动运行输入诊断-愈合”,“进行完全实体检查并修正错误”这3项的勾选。
2024-08-05 09:31:42
8255
2
原创 CORDIC算法与泰勒级数计算三角函数sin,cos的速度与精度对比
如果CORDIC算法中不使用移位运算,而是直接使用浮点数乘法(除以浮点常数的除法会被C++编译器优化为乘法),那么CORDIC算法的浮点乘法次数大大超过同精度的泰勒级数,完全失去了加快计算速度的意义。本文的代码使用整型变量实现CORDIC算法中的移位运算,并与浮点数实现的泰勒级数算法进行速度与精度的对比。注意,在电脑上的代码中,数组angles的类型是浮点数,在Arduino nano上,angles(x1e8)的类型是32bit的整数,就是对应的浮点数乘上10^8在取整的值。
2024-05-09 01:41:14
862
原创 webots学习记录8:R2023b如何在某个零件上添加一个恒定的力(矩)
然而在include\controller\cpp\webots\Supervisor.hpp中却没有类似的定义,下面顺便提供用代码修改Robot的translation和rotation的方法,
2024-04-20 20:48:44
685
原创 webots学习记录:R2023b如何导入stl文件
R2023b以及更新的版本的“文件”菜单中已经没有“Import 3D Model”这个选项了,用如下方法导入stl文件,
2024-04-15 14:03:34
728
原创 如何让Webots支持C#语言开发的控制器
在Webots的安装路径下,找到lib\controller文件夹,里面有Controller.dll和Controller.lib文件,对于C#,我们只需要Controller.dll文件(C和C++的开发就需要Controller.lib文件),把这个dll文件复制到C#程序编译输出exe的文件夹里,通常是bin\x64\Debug\net8.0,(注意是跟输出的exe文件放在同一文件夹里,而不是跟C#的源代码放在同一文件夹里。为了能使用Controller.dll,在C#的cs文件中,
2024-04-04 00:15:22
541
原创 多轴机械臂运动控制:4x4坐标变换矩阵该用C语言的二维数组还是一维数组?
结论:在Debug模式下,一维数组的汇编指令(39行)比二维数组(75行)几乎少一半,速度更快。开发环境:Visual Studio 2022,分别在Debug和Release模式下测试函数Multi4x4和Multi16,Release模式下开了最大优化(优选速度)(/O2),代码速度优先(/Ot),每种情况重复测3次。按照D-H表示法建立的4x4矩阵,第4行始终为[0, 0, 0, 1],做乘法以后也不会改变,因此,专门做此类4x4矩阵乘法的函数可以进一步优化,即只取前12个元素参与运算。
2024-03-24 11:35:06
551
1
原创 Webots报错:RotationalMotor “TA_joint_03“: too big/low requested position
报错原因是某个HingeJoint缺少对应的限位,从而使用了默认值0. 我的机器人是从Solidworks中导出为URDF,然后转成proto文件,大部分Joint都有minPosition和maxPosition两个属性,但有的只有一个属性,缺少的属性就会使用默认值0,从而报错,解决方案就是在proto文件中检查每一个Joint,确保minPosition和maxPosition都存在(不存在就手工添加),注意单位是弧度。
2024-03-18 13:43:00
265
原创 Windows环境编译webots遇到报错:‘gbk‘ codec can‘t decode byte 0x93 in position 547
【代码】Windows环境编译webots遇到报错:‘gbk‘ codec can‘t decode byte 0x93 in position 547。
2024-03-11 14:11:29
488
1
原创 KUKA机械臂PTP,CIRC,LIN与SPTP,SCIRC,SLIN指令的区别
这里以简单的2自由度机器人为例,用来帮助理解在关节空间和在直角坐标空间进行轨迹规划的基本原理。如图5.4所示,要求机器人从A点运动到B点。机器人在A点时的构型为α=20°,β=30°。假设已算出机器人达到B点时的构型是α=40°,β=80°,同时已知机器人两个关节运动的最大速率均为10°/s。机器人从A点运动到B点的一种方法是使所有关节都以其最大角速度运动,这就是说,机器人下方的连杆用2s即可完成运动,而如图5.4所示,上方的连杆还需再运动3s。图5.4中画出了手臂末端的轨迹,可见其路径是不...
2021-02-23 15:36:52
17292
原创 启用Hyper-V后,VMware中的虚拟机图形性能大大下降
Hyper-V与VMware能同时启动是2020年才实现的,而且要同时满足如下3个条件才能同时启动(参考https://kb.vmware.com/s/article/76918): Windows 10 20H1 build 19041.264或更高的版本 Workstation 15.5.5或更高的版本 Intel Sandy Bridge\AMD Bulldozer或更新的处理器虽然两者终于可以并存了,但我发现在启用Hyper-V之后,VMware中的虚拟机操作流畅度明...
2020-11-15 18:05:58
6272
1
原创 此计算机没有Intel处理器,而加速Android仿真器需要该处理器
在Visual Studio中通过Xamarin进行安卓App开发,启动Android Emulator时提示:pixel_2将以不加速的方式运行。此计算机没有Intel处理器,而加速Android仿真器需要该处理器,仿真器性能会受到影响,建议使用Android物理设备进行开发。 当然是因为你用的是AMD处理器,所以才会出现这个提示,解决方案如下:工具 > Android > Android SDK管理器 > 工具 > 附加程序 > (勾选)Android...
2020-11-08 23:27:05
2035
1
原创 Unity Hub启动报错The Hub as encountered a critical error and must close
我已经多次遇到Unity Hub启动报错: Critical error,The Hub as encountered a critical error and must close.You can report a bug using our bug reporter tool.关掉这个窗口后再次启动,通常不会报错了,但是会无法读取已保存的登录信息,如果试图重新登录,会发现登录窗口一直是空白的,无法正常显示。首先想到的解决方法就是卸掉重装,尝试了一下确实有用(而且每次都有用)。但经常卸掉重
2020-10-30 15:31:36
4625
3
原创 Autodesk Maya //错误:line 0:读取文件出错
读取文件出错的可能原因之一是:文件路径含有中文,去掉中文就可以正常读取了。不过我又遇到了更大的问题,在成功读取一个机械臂的step文件后,中文版Maya的界面出现了大量的???和乱码。种种迹象表明,Maya对中文的支持非常糟糕,在把界面由中文改成英文之后,读取同一个step文件就没有出现???和乱码了。将界面由中文改成英文的方法是:新建一个名为MAYA_UI_LANGUAGE的系统变量,变量值设为en_US. 如果要恢复成中文,就把en_US改为zh_CN....
2020-10-28 21:42:20
14964
原创 The application was unable to start correctly (0xc000007b)的勉强解决方案
在我的电脑上,Unity 3D和有道词典的安装包(UnitySetup64.exe和YoudaoDictSetup.exe),启动时报错“The application was unable to start correctly (0xc000007b). Click OK to close the application.”而UltraISO可以正常安装,可安装后无法启动,报错的文字一样,但错误代码变成了0xc0000005. 网上搜索这个报错内容,基本都是说要安装Micro...
2020-10-16 15:56:01
5245
1
原创 Bindiff430,Bindiff5,Bindiff6下载
www.zynamics.com在国内是无法访问的,为方便大家,提供Bindiff430.msi,Bindiff5.msi,Bindiff6.msi的百度网盘下载地址:https://pan.baidu.com/s/1k9ZmfA6z5qFvyUZCCD2gmQ,提取码:7cma.SHA256校验值:Bindiff430.msi :E1915C18026D5A7288CCA0C1FF71840BDB473B97C2235862A1241CDA231791DABindiff5.msi :76A
2020-10-03 21:07:00
1372
1
原创 MATLAB的imshow无法显示某些gif图片
这应该是一个存在已久的bug,在2019a版中仍然存在。两张gif图片的下载地址为https://pan.baidu.com/s/1OjxjdBET_9DrtlU3V_bKBQ,提取码:cmin.WIndows资源管理器、画图、照片查看器都能正常查看,但MATLAB的imshow无法显示。我给support@mathworks.cn发过邮件反馈了,然而负责回复的人并不拿我提供的gif文件来复现这个bug,而是随便找了几张gif测试一下,就说bug并不存在,简直可笑。其中一张图片以16进制格式显
2020-09-14 15:02:45
1174
转载 Cmake opencv_videoio_ffmpeg.dll下载失败
用Cmake对OpenCV进行Configure,下载opencv_videoio_ffmpeg.dll和opencv_videoio_ffmpeg_64.dll经常失败,解决方案是:到CMake中设置的Where to build the binaries的路径下去找名为CMakeDownloadLog.txt的文件,里面会有ffmpeg.dll的下载路径,比如 https://raw.githubusercontent.com/opencv/opencv_3rdparty/6152e132572dfda
2020-09-09 00:30:38
8521
7
转载 Word中设置等宽字体后,粘贴的代码仍无法对齐的解决方案
已经设为Courier New之类的等宽字体,但粘贴的代码仍然没有对齐。仔细观察可以发现,字母的宽度是一样的,但字母和空格的宽度不一样。解决方案就是:在word选项的“高级”中,将“区分半角字符和全角字符”前面的勾去掉。(本文来自知乎回答:在MS Word中,为什么即使用了等宽字体,上下两行的字符还是对不齐? - 金钜涵的回答https://www.zhihu.com/question/59752749/answer/971051620)...
2020-08-16 19:16:18
2614
原创 Solidworks在“消除隐藏线”的显示模式下边线是彩色的解决方案
一般而言,Solidworks在“消除隐藏线”的显示模式下,模型边线应该是黑色,但可能有少数(添加过颜色的)零件边线是彩色。 可能原因是此零件选中了“更改透明度”,取消选中之后边线可能变为黑色。如果取消选中“更改透明度”依旧是彩色,可尝试点击“查看配合”,之后出现包括该零件全部配合的小窗口,无需做任何操作,关闭这个小窗口即可让边线变为黑色。是不是觉得很神奇?打开了一个和颜色完全无关的窗口,再关掉,就解决了边线是彩色的问题,这可能是Solidworks的一个bug....
2020-08-12 15:32:15
8790
6
原创 三角形两顶点在椭圆上滑动时第三点的轨迹
受到《趣题:三角形两顶点在直线上滑动时第三点的轨迹》(http://www.matrix67.com/blog/archives/2896)的启发,决定研究一下三角形两顶点在椭圆上滑动时第三点的轨迹。△ABC和△ABD的A、B两点在椭圆x^2/a^2+y^2/b^2=1(a>b)上滑动,C和D两点关于线段AB对称,其中C点更靠近椭圆中心。C点不一定在椭圆内部,D点也不一定在椭...
2020-07-29 23:56:39
523
原创 x64dbg调试程序遇到异常:406D1388,MS_VC_EXCEPTION. E06D7363, CPP_EH_EXCEPTION
x64dbg调试某个程序遇到异常:第一次异常于00007FFA2EDDA839 (406D1388, MS_VC_EXCEPTION)!无视异常继续运行,加载一些dll文件后还是断在kernelbase.dll的00007FFA2EDDA839处,不过括号里面的内容变成了(E06D7363, CPP_EH_EXCEPTION). 这可能是某种反调试的技术吧,在x64dbg中选择 调试 > 高级 > 隐藏调试器(PEB),便不会出现异常,能正常调试了。如果遇到反调试技术更强的软件,...
2020-07-16 00:22:11
8294
3
原创 Solidworks出现异常的片状物,可能是因为不支持过新的显卡驱动
首先,这些显示异常的零件并不是由stp、igs等交换格式转换而成的,而是我自己直接用Solidworks绘制的sldprt格式的零件。其次,肯定不是因为电脑硬件过低导致的,我的配置是:Ryzen 5 3600 6核12线程,48GB内存,RX5500XT 8G显存。 我推测是我所用的Solidworks 2018不支持过新的AMD显卡驱动(Radeon Software Adrenalin 2020 Edition 20.4.2)。另外,在系统选项的“性能”里面,勾选使用软件...
2020-07-13 22:20:27
2393
原创 VS报错 Python 2.5及更早版本不支持调试
在VS的 工具>选项>Python>调试>(勾选)使用旧版调试程序,大概是不能解决这个报错的。出现这个报错最可能的原因是Python版本太新(而不是太旧),VS不支持,把Python换成稍微旧一点的版本就不会报错了。 比如VS 2017 15.9.24无法支持Python 3.8.3(2020年5月14日),但可以支持Python 3.7.7(2020年3月10日). 有趣的是,Python 3.8.1(2019年12月19日)的签名日期反倒...
2020-06-29 16:27:10
6493
原创 推荐几个火狐浏览器插件
致敬思杰马克丁 起初马克丁追杀Parallel Desktop,我用VirtualBox,所以我不说话; 接着他们追杀几何画板,我用Matl...
2020-04-28 10:51:48
196170
4
原创 VMware中导入ova 2.0格式报错 Unsupported element 'StorageItem/EthernetPortItem'
在VirtualBox中,将一台Win 10的虚拟机导出为开放式虚拟化格式2.0,然后在VMware中导入,遇到如下错误:Line 70: Unsupported element 'StorageItem'.Line 79: Unsupported element 'StorageItem'.Line 88: Unsupported element 'EthernetPortItem'。...
2020-03-27 12:43:16
10227
1
转载 macOS 上的 Linux 虚拟化选择: Parallels Desktop vs Docker
在 macOS 上运行 Linux 系统有两种方式:(1) 使用商业虚拟机软件 (如 Parallels Desktop) ; (2) 使用 Docker 虚拟化技术。哪种方式在性能、内存、I/O 上更优呢?我们知道,Docker 在 Linux 上利用了 Linux 原生支持的容器方式实现资源和环境的隔离,直接利用宿主内核,性能接近原生。然而,在 macOS 上却仍然需要虚拟化的技术。早期的 ...
2020-02-27 23:29:55
3787
转载 初等函数积分的刘维尔定理Liouville's theorem on integration in terms of elementary functions
先看两篇中文文章,或许有助于理解接下来的英文内容。以下内容的PDF文件下载地址:https://ksda.ccny.cuny.edu/PostedPapers/liouv06.pdf This talk should be regarded as an elementary introduction to differential algebra. ...
2020-01-21 13:24:44
6605
初等函数积分的刘维尔定理Liouville's theorem on integration in terms of elementary functions
2020-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人