• 一阶系统阶跃响应实现规划方波目标值


    一阶系统单位阶跃响应

    一阶系统传递函数,实质是一阶惯性环节,T为一阶系统时间常数。

    输入信号为单位阶跃函数,数学表达式

     单位阶跃函数拉氏变换

    输出一阶系统单位阶跃响应

    拉普拉斯反变换

    使用前向差分法对一阶系统离散化

    z变换写成差分方程形式

    一阶系统性能指标

    • 时间常数T

    时间常数T反映了一阶系统的响应速度,T越小响应速度越快。

    • 调节时间(稳定时间)

    一阶系统单位阶跃响应经过时间t=T,2T,3T,4T和5T时,输出分别为稳态值的63.2%,86.5%,95%,98.2%和99.3%,工程上表示阶跃输入经过一阶系统的输出需要经过时间t达到稳定,一般取t=3T或4T

    一阶系统单位阶跃响应C语言代码实现

    1. typedef struct
    2. {
    3. float RunTime; // 离散系统运行时间
    4. float ConstTime; // 时间常数
    5. float Last_Input; // 上一次输入
    6. float Last_Output; // 上一次输出
    7. }OneOrderTFStru;
    8. /* 一阶系统阶跃响应初始化 */
    9. void OneOrderTransformFuncInit( OneOrderTFStru *sp, float RunTime, float ConstTime, float InitVal )
    10. {
    11. sp->ConstTime = ConstTime;
    12. sp->RunTime = RunTime;
    13. sp->Last_Input = InitVal;
    14. sp->Last_Output = InitVal;
    15. }
    16. /* 一阶系统阶跃响应计算 */
    17. float OneOrderTransformFuncCalculate( OneOrderTFStru *sp, float Input )
    18. {
    19. float ret = (sp->ConstTime - sp->RunTime) / sp->ConstTime * sp->Last_Output + sp->RunTime / sp->ConstTime* sp->Last_Input;
    20. sp->Last_Input = Input;
    21. sp->Last_Output = ret;
    22. return ret;
    23. }
    24. OneOrderTFStru s_Plan;
    25. float SysRunTime = 1.0f; // 程序运行时间1ms,一般设置1
    26. float StepRunTime = 50.0f; // 阶跃响应期望达到稳态的时间,例如50ms,取t=3T或t=4T
    27. float InitValue = 5.0f; // 阶跃响应初始值,例如5
    28. float FinalValue = 10.0f; // 阶跃响应终止值(稳态值),例如10
    29. /* 阶跃响应开始执行初始化一次 */
    30. OneOrderTransformFuncInit( &s_Plan, SysRunTime, StepRunTime / 4.0f, InitValue );
    31. float Output = OneOrderTransformFuncCalculate( &s_Plan, FinalValue );
  • 相关阅读:
    【数据结构】树与二叉树(二):树的表示C语言:树形表示法、嵌套集合表示法、嵌套括号表示法 、凹入表示法
    Linux命令200例:who用于显示当前登录到系统的用户信息
    贪心算法之装箱问题
    质量问题不是不爆,时候未到
    Python中enum误用逗号引发的错误
    SpringBoot之Web原生组件注入
    JAVA基础小结(项目三)
    使用Docker Compose搭建WordPress博客
    【C语言】进阶——深度剖析数据的存储
    UML依赖关系详解
  • 原文地址:https://blog.csdn.net/weixin_41276397/article/details/133937054