LEAD_LAG:提前和滞后算法

本文详细介绍了西门子S7-1500控制器中LEAD_LAG算法的使用,包括参数设置、测试案例以及算法原理。该算法用于模拟量处理,通过超前和滞后时间调整信号相位,适用于动态前馈控制和滤波。关键参数包括超前时间(LD_TIME)、滞后时间(LG_TIME)、增益(GAIN)以及采样时间(SAMPLE_T)。在示例中展示了不同滞后时间下的仿真结果,并强调了正确设置参数的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块

模块如图所示,添加步骤:基本指令,原有,LEAD_LAG超前和滞后算法。也可以直接搜索。

在这里插入图片描述
主要设置参数,除模块中所示四个参数外,超前和之后时间需要通过模块静态变量设置。如下图所示。
LD_TIME为超前时间,LG_TIME为延时时间。
在这里插入图片描述

测试

参数采样频率10ms,分别延时100ms和10ms。

仿真测试结果:

LG_TIME=100ms
在这里插入图片描述
LG_TIME=10ms
在这里插入图片描述

注意:

LEAD_LAG算法中超前、滞后时间与采样时间单位相同,当采样时间为ms,超前和滞后时间同样为ms。

参考学习视频

B站

帮助文档

LEAD_LAG:提前和滞后算法 (S7-1500)
LEAD_LAG:提前和滞后算法

在这里插入图片描述

仅当在固定的程序周期中运行指令“提前和滞后算法”时,才生成正确的结果。参数 LD_TIME、LG_TIME 和 SAMPLE_T 中必须指定相同的运算单元。计算 LG_TIME > 4 + SAMPLE_T 时,该指令与以下函数类似:

OUT = GAIN * ((1 + LD_TIME * s) / (1 + LG_TIME * s)) * IN

当参数 GAIN 的值小于或等于零时,将不进行计算,并在参数 ERR_CODE 中输出错误信息。

“提前和滞后算法”指令可与回路一起用作动态前馈控制中的补偿器。该指令由两项操作组成。“提前”操作将输出 OUT 的相位进行移位,使得输出提前于输入。相反,“滞后”操作对输出进行移位,使得输出滞后于输入。由于“滞后”操作相当于积分,因此可用作噪声抑制器或低通滤波器。“提前”操作相当于微分,因此可用作高通滤波器。同时使用两种操作(“提前”和“滞后”),将导致在较低频率时输出的相位滞后于输入,而在较高频率时输出的相位提前于输入。这意味着“提前和滞后算法”指令可用作带通滤波器。

参数

下表列出了“提前和滞后算法”指令的参数:

参数

声明

数据类型

存储区

说明

EN

Input

BOOL

I、Q、M、D、L 或常量

使能输入

ENO

Output

BOOL

I、Q、M、D、L

使能输出

IN

Input

REAL

I、Q、M、D、L、P 或常量

待处理的当前采样时间(周期)输入值。

参数 IN 中也可指定常数。

SAMPLE_T

Input

INT

I、Q、M、D、L、P 或常量

采样时间

参数 SAMPLE_T 中也可指定常数。

OUT

Output

REAL

I、Q、M、D、L

指令的结果

ERR_CODE

Output

WORD

I、Q、M、D、L

错误信息

LD_TIME

Static

REAL

I、Q、M、D、L、P 或常量

提前时间的单位与采样时间的相同。

LG_TIME

Static

REAL

I、Q、M、D、L、P 或常量

滞后时间的单位与采样时间的相同。

GAIN

Static

REAL

I、Q、M、D、L、P 或常量

%/% 的增益(稳态下输出变化与输入变化的比率)。

PREV_IN

Static

REAL

I、Q、M、D、L、P 或常量

上一次输入

PREV_OUT

Static

REAL

I、Q、M、D、L、P 或常量

上一次输出

ERR_CODE 参数

下表列出了 ERR_CODE 参数值的含义:

错误代码*
(W#16#...)

说明

0000

无错误

0009

参数 GAIN 的值小于或等于 0。

* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显式格式的更多信息,请参见“另请参见”。

示例

以下示例说明了该指令的工作原理:

说明

可以初始化数据块中的静态参数。

下表通过具体的值对该指令的工作原理进行了说明。

执行前

在本例中,输入参数使用以下值:

参数

操作数

IN

Tag_Input

2.0

SAMPLE_T

Tag_InputSampleTime

10

以下各值保存在该指令的背景数据块“LEAD_LAG_DB”中:

参数

地址

LD_TIME

DBD12

2.0

LG_TIME

DBD16

2.0

GAIN

DBD20

1.0

PREV_IN

DBD24

6.0

PREV_OUT

DBD28

6.0

执行后

执行该指令之后,将以下各值写入输出参数:

参数

操作数

OUT

Tag_Output_Result

2.0

以下各值保存在该指令的背景数据块“LEAD_LAD_DB”中:

参数

操作数

PREV_IN

DBD24

2.0

PREV_OUT

DBD28

2.0

有关以上示例中编程代码的更多信息,请参见“Sample Library for Instructions”。


``` {———————— 智能选股系统 V8.3 OPT ————————} // 神经微分优化 PARAM_OPT := NEURAL_DIFF_EVO( EPOCH=3000, POP=2000, MUT_RATE=ADAPT_MUT(0.15,0.003), CROSS=TOP_CROSS(0.7), FITNESS=0.7*SHARPE + 0.3*CALMAR, CONSTRAIN=[MAX_CHG<0.2, FEAT_IMP>0.05]); // 3D特征引擎 ALPHA_FACTOR := DEEP_FEAT_FUSE( T_STREAM=TEMP_CONV( [NEURAL_VOL(5,0.7), DEEP_ORDER(10,0.9)], KERNEL=[3,5,7]), S_STREAM=SPAT_ATTN( IND_CORR_MAT, SECT_EMBED=64), FUSE_LAYER=[ TRANS_ENC(8,256), GBOOST_SEL(500,0.01)]); // 高频资金流 NORTH_FLOW := MULTI_DRL( TIME_SCALE=[1M,5M,30M,1H], STATE_ENC=G_CONV_NET( NODE_FEAT=[HKHOLD,IDX_FUT,ETF_FLOW], EDGE_W=CROSS_CORR), REWARD=1.4*RET_SMOOTH(0.9) - 0.3*VOL_DD + 0.2*FLOW_GRAD); // 波动引擎 VOL_REGIME := NEURAL_REGIME( VOL_COMP=[VOL_BAND, GARCH(1,1), JUMP_DIFF], TRANS_NET=TCN( IN_DIM=6, LEVELS=8, DILATE=2), JUMP_DETECT=BAYES_CP( PRIOR_A=0.1, WARN_TH=0.95)); // 行业轮动 IND_SCORE := 0.35*NLP_SENTIMENT( [NEWS,TWIT,RED,INST_RESEARCH], T_DECAY=EXP(-0.07*DELAY), TOPIC_CLU=BERT_TOPIC(256)) + 0.30*ADAPT_MOMENTUM( WINDOW=FOURIER_AD(14), VOL_ADJ=TRUE, DECAY=0.02) + 0.25*FLOW_MOM_3D( LEAD_LAG=[1.2, 0.8], LIQ_MULT=VOL_SMOOTH) + 0.10*POLICY_SENSE*(2.0 - 0.35*MARKET_PHASE); // 信号融合 FINAL_SIGNAL := DEEP_FUSION( INPUT=[ TEMP_CONV(ALPHA_STREAM, [3,5,7]), SPAT_ATTN(IND_CORR,64) ], FUSE_LAYER=[ TRANS_ENC(8,256), GBOOST_SEL(500,0.01) ], ACT_COND=[ Q_SIG >= NEURAL_TH(MARKET_PH), VOL_RAT > 1.5*DYNA_BETA, PRICE_Q(0.85,50), LIQ_SCORE>0.97, INST_FLOW>=3.2, ANOM_SCORE>NEURAL_ANO, FUND_CONF(3D,0.8) ], DYN_WEIGHT=NEURAL_W(0.0005,20)); // 风控系统 RISK_CTRL := HIER_RISK( L1=VOL_CAP(0.25,ADAP_SKEW), L2=CORR_DIV( MAX_SECT=0.15, MIN_DIVERGE=0.3), L3=BLACKSWAN_PRO( STRESS_IDX>0.85, LIQ_FLOOR=0.001, HEDGE=0.3));```你的身份是高级编程技术专家,精通各类编程语言,能对编程过程中的各类问题进行分析解答。我的问题是【我编辑通达信选股代码,你如何深度理解此代码能否选到资金持续流入,股票市场情绪启动,盘中异动启动主升浪的股票,及日线盘中预警选股盘后选股。用2018-2024年全A股周期回测验证此代码选股逻辑的准确性胜率,评估月胜率达到多少?评估有效信号准确率达到多少?
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值