返回主站|会员中心|保存桌面

三菱电机服务商    

PLC、变频器、伺服驱动、触摸屏,机器人

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > fx2n怎么进行反三角函数计算?
新闻中心
fx2n怎么进行反三角函数计算?
发布时间:2026-01-26        浏览次数:4        返回列表

三菱 FX2N 系列 PLC 本身无直接的反三角函数指令(arcsin/arccos/arctan),需通过三角函数的数学近似公式,结合 FX2N 的基础数学指令(ADD/SUB/MUL/DIV/SQR/FLT/INT 等)编程实现,核心先将整数转换为浮点数(FX2N 仅浮点数支持高精度乘除 / 开方),再通过近似公式计算,最终还原为实际工程角度(弧度 / 角度转换)。

以下是 FX2N 实现反正弦 (arcsin)、反余弦 (arccos)、反正切 (arctan) 的完整方法,含数学原理、编程步骤、通用程序框架、弧度 / 角度转换,直接适配 FX2N 的编程逻辑(梯形图 / 指令表均可)。

核心前提:FX2N 的浮点数基础

FX2N 的数学计算依赖浮点数(32 位,占用两个相邻 D 寄存器),所有反三角函数计算均在浮点数域进行,需先掌握 2 个核心指令:

  1. FLT:整数→浮点数转换(D0→D1D0,16 位整数转 32 位浮点数)

  2. INT:浮点数→整数转换(D1D0→D0,浮点数转 16 位整数,按需使用)

  3. 基础浮点运算:+ - × ÷(直接用浮点数模式的四则指令,FX2N 支持浮点运算)

  4. SQR:浮点数开方(计算x,必备)

通用数学基础:反三角函数的计算规则

  1. 定义域限制(必须遵守,否则计算无意义):

    • arcsin(x)x[1,1]

    • arccos(x)x[1,1]

    • arctan(x)xR(无限制,最易计算)

  2. 单位转换:PLC 计算结果为弧度,工程中需转为角度,公式:角度弧度取,预存为浮点数到寄存器

  3. 近似公式选择:为适配 FX2N 的简易编程,选择泰勒展开式 / 快速近似公式(精度满足工业现场需求,无复杂高阶运算),以下均用收敛快、计算量小的近似公式。

一、反正切arctan(x)(最推荐先实现,精度高、无定义域限制)

1. 适用近似公式(|x|≤1,精度 0.001 弧度;|x|>1 时做倒数转换)

arctan(x)=x3x3+5x57x7+9x9(x1)x>1,用恒等式转换:arctan(x)=2πarctan(x1)(x>0)/arctan(x)=2πarctan(x1)(x<0)

2. FX2N 编程步骤(浮点运算,寄存器分配示例)

预存常数(浮点数,提前写入 PLC,用数据寄存器 D 赋值):

  • D100D99:π = 3.1415926536

  • D102D101:π/2 = 1.5707963268

  • D104D103:180.0(角度转换用)

  • D106D105:3.0、D108D107:5.0、D110D109:7.0、D112D111:9.0(公式系数)

  • D200D199:输入值x(浮点数,需先转浮点,保证 | x|≤1 或做倒数转换)

  • D300D299:arctan(x)计算结果(弧度,浮点数)

  • D400D399:最终角度结果(浮点数)

编程逻辑(指令表 / 梯形图)

  1. 输入值处理:将实际整数输入→FLT 转换为浮点数存入 D200D199,判断 | x | 是否≤1;

  2. 若 | x|≤1:直接计算、、、(用浮点 MUL 指令连乘),再按公式做加减除;

  3. 若 | x|>1:计算 1/x(浮点 DIV),再代入公式计算,最后用π/2做减法;

  4. 弧度转角度:D300D299×D104D103÷D100D99 → 存入 D400D399。

二、反正弦arcsin(x)(基于反正切转换,简化编程)

1. 数学转换公式(避免直接泰勒展开的慢收敛,用反正切替代,精度更高)

利用恒等式将arcsin(x)转为arctan计算(已实现 arctan,直接调用即可),无需重新编近似公式:arcsin(x)=arctan(1x2x)(x[1,1])

2. FX2N 编程关键步骤

  1. 输入值x(浮点数)存入 D200D199,先验证x[1,1],超出则置位报警;

  2. 计算x2(浮点 MUL),再计算1x2(浮点 SUB,1.0 预存为 D114D113);

  3. 计算1x2(浮点 SQR 指令);

  4. 计算x÷1x2(浮点 DIV),结果作为arctan的输入值;

  5. 调用已编好的arctan子程序,输出结果即为arcsin(x)的弧度值;

  6. 弧度转角度,得到最终工程值。

三、反余弦arccos(x)(基于反正弦 / 反正切转换,最简)

1. 数学转换公式(直接复用已实现的 arcsin/arctan,无额外编程)

选最简易的恒等式转换(推荐用 arcsin):arccos(x)=2πarcsin(x)(x[1,1])或用 arctan 转换:arccos(x)=arctan(x1x2)(x(0,1])

2. FX2N 编程关键步骤

  1. 验证输入值x[1,1],超出报警;

  2. 调用已编好的arcsin(x)子程序,得到弧度值;

  3. π/2(D102D101)减去arcsin(x)的结果(浮点 SUB),即为arccos(x)的弧度值;

  4. 弧度转角度,得到最终值。

二、FX2N 通用编程框架(梯形图 / 指令表通用,模块化设计)

为方便复用和调试,将反三角函数做子程序模块化,FX2N 中用CALL/POP指令调用,核心框架分为 3 个模块:

模块 1:常数预存模块(开机执行一次,用 M8002 初始化)

  • 功能:将、、、、、等常数转为浮点数,存入指定 D 寄存器;

  • 示例指令(M8002 触发):

    plaintext

    FLT K31415926 D100D99 ;整数转浮点,近似π(或用MOV直接写浮点数,部分编程软件支持)
    FLT K15707963 D102D101 ;π/2
    FLT K180 D104D103      ;180.0
    FLT K1 D114D113        ;1.0

    注:若编程软件(如 GX Developer)支持*直接写入浮点数,可直接用MOVR指令(浮点传送),更精准:MOVR 3.1415926536 D99。*

模块 2:输入转换模块(实时执行)

  • 功能:将现场的整数输入(如模拟量采集的 D0)转为浮点数,做归一化处理(将输入值映射到 [-1,1],适配 arcsin/arccos 的定义域);

  • 示例:若模拟量输入范围为 0-4095,对应 - 1~1,则先计算(D02048)/2048(浮点运算),得到归一化的 x。

模块 3:反三角函数计算子程序(CALL 调用)

  • 功能:包含 arctan/arcsin/arccos 的计算逻辑,输入为 D200D199(浮点 x),输出为 D300D299(弧度)、D400D399(角度);

  • 关键:加入定义域判断(用 CMP 浮点数比较指令),若 arcsin/arccos 的 x 超出 [-1,1],置位 M0 报警,停止计算。

模块 4:弧度转角度模块(子程序内执行)

  • 固定公式:弧度值 × 180 ÷ π(浮点 MUL+DIV),结果存入角度寄存器。

三、FX2N 编程关键指令(浮点运算)

FX2N 在浮点数模式下的核心运算指令,需在编程时选择浮点运算(部分指令表需加E后缀,如 MULE = 浮点乘、DIVE = 浮点除),常用:

功能指令(浮点)说明
浮点数传送MOVR浮点数常数→D 寄存器
浮点加ADDED1D0 + D3D2 → D5D4
浮点减SUBED1D0 - D3D2 → D5D4
浮点乘MULED1D0 × D3D2 → D5D4
浮点除DIVED1D0 ÷ D3D2 → D5D4
浮点开方SQRE√(D1D0) → D3D2
浮点数比较CMPE比较两个浮点数大小

四、实操注意事项(FX2N 专属,避坑关键)

  1. 寄存器占用:32 位浮点数必须占用两个相邻 D 寄存器(低地址为尾数,高地址为指数),如 D1D0、D3D2,不可用单个 D 寄存器;

  2. 精度控制:近似公式取前 5 项(x-x³/3+x⁵/5-x⁷/7+x⁹/9)即可满足工业现场精度(误差 < 0.1°),无需更多项(否则增加编程量,FX2N 运算速度有限);

  3. 负数处理:FX2N 支持浮点负数,直接输入即可,近似公式对正负数均适用;

  4. 运算速度:FX2N 的浮点运算速度较慢,反三角函数单次计算约 10ms,适合低速采集 / 控制(如温度、液位的角度换算),不适合高速运动控制;

  5. 报警逻辑:必须加入定义域判断除零保护(如 arctan 倒数转换时,x=0 需单独处理,置位报警)。

五、简易替代方案(若编程能力有限)

若觉得近似公式编程繁琐,可采用查表法

  1. 提前在电脑上计算好 [-1,1] 内的 x 对应的 arcsin/arccos/arctan 值(角度),存入 FX2N 的数据寄存器 D(建立查询表);

  2. 现场输入 x 后,通过线性插值(ADD/SUB/MUL/DIV)计算近似值;

  3. 优点:编程简单,运算速度快;缺点:精度由查表步长决定(步长越小,精度越高,占用 D 寄存器越多)。

总结

FX2N 实现反三角函数的核心逻辑整数输入→浮点数转换→归一化([-1,1])→反正切近似公式计算→弧度转角度→浮点数转整数(按需)其中反正切 arctan是基础,arcsin/arccos 均通过数学恒等式转为 arctan 计算,大幅简化编程;所有运算均在32 位浮点数域进行,需严格遵守 FX2N 的浮点数寄存器使用规则。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服