概述
超前滞后补偿器的C++实现
超前滞后补偿器的传递函数
-
超前-滞后补偿器的传递函数形式如下
G ( s ) = T 1 s + 1 T 2 s + 1 G(s) = frac{T_1s + 1}{T_2s + 1} G(s)=T2s+1T1s+1
T 1 T_1 T1是超前时间常数
T 2 T_2 T2是滞后时间常数 -
超前-滞后补偿器传递函数的离散化表达
T 1 z + ( T s − T 1 ) T 2 z + ( T s − T 2 ) frac{T_1z + (T_s - T_1)}{T_2z + (T_s - T_2)} T2z+(Ts−T2)T1z+(Ts−T1)
T 1 T_1 T1是超前时间常数
T 2 T_2 T2是滞后时间常数
T s T_s Ts是采样时间
C++实现
-
为了便于C++程序编写, 应将离散化后的传递函数转换成离散的状态空间表达式, 用前向欧拉法, 转换后的状态空间表达式如下:
x ( n + 1 ) = ( 1 − T s T 2 ) x ( n ) + ( T s T 2 ) u ( n ) x(n+1) = (1 - frac{T_s}{T_2})x(n) + (frac{T_s}{T_2})u(n) x(n+1)=(1−T2Ts)x(n)+(T2Ts)u(n)
y ( n ) = ( 1 − T 1 T 2 ) x ( n ) + ( T 1 T 2 ) u ( n ) y(n) = (1 - frac{T_1}{T_2})x(n) + (frac{T_1}{T_2})u(n) y(n)=(1−T2T1)x(n)+(T2T1)u(n)
其中:
u u u是补偿器输入(即系统输出与参考值的偏差)
x x x是补偿器状态
y y y是补偿器输出(即系统的输入)
n n n是步数 -
具体C++代码实现大致如下
double x; //补偿器状态量 double y; //补偿器输出量 double T1; // 超前时间常数 double T2; // 滞后时间常数 double delta_t; // 采样时间 x = (1 - delta_t / T2) * x + (delta_t / T2) * u; //u的值是其他环节给进来的 y = (1 - T1 / T2) * x + (T1 / T2) * u;
最后
以上就是刻苦朋友为你收集整理的超前滞后补偿器的C++实现超前滞后补偿器的C++实现的全部内容,希望文章能够帮你解决超前滞后补偿器的C++实现超前滞后补偿器的C++实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复