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

一阶系统阶跃响应实现规划方波目标值_第1张图片

一阶系统单位阶跃响应

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

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

一阶系统阶跃响应实现规划方波目标值_第2张图片

 单位阶跃函数拉氏变换

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

拉普拉斯反变换

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

一阶系统阶跃响应实现规划方波目标值_第3张图片

z变换写成差分方程形式

一阶系统阶跃响应实现规划方波目标值_第4张图片

一阶系统性能指标

  • 时间常数T

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

  • 调节时间(稳定时间)

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

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

typedef struct 
{
    float RunTime;          // 离散系统运行时间
    float ConstTime;        // 时间常数
    float Last_Input;       // 上一次输入
    float Last_Output;      // 上一次输出
}OneOrderTFStru;

/* 一阶系统阶跃响应初始化 */
void OneOrderTransformFuncInit( OneOrderTFStru *sp, float RunTime, float ConstTime, float InitVal )
{
    sp->ConstTime = ConstTime;
    sp->RunTime = RunTime;
    sp->Last_Input = InitVal;
    sp->Last_Output = InitVal;
}

/* 一阶系统阶跃响应计算 */
float OneOrderTransformFuncCalculate( OneOrderTFStru *sp, float Input )
{
    float ret = (sp->ConstTime - sp->RunTime) / sp->ConstTime * sp->Last_Output + sp->RunTime / sp->ConstTime* sp->Last_Input;

    sp->Last_Input = Input;
    sp->Last_Output = ret;

    return ret;
}

OneOrderTFStru s_Plan;

float SysRunTime = 1.0f;    // 程序运行时间1ms,一般设置1
float StepRunTime = 50.0f;  // 阶跃响应期望达到稳态的时间,例如50ms,取t=3T或t=4T
float InitValue = 5.0f;     // 阶跃响应初始值,例如5
float FinalValue = 10.0f;   // 阶跃响应终止值(稳态值),例如10

/* 阶跃响应开始执行初始化一次 */
OneOrderTransformFuncInit( &s_Plan, SysRunTime, StepRunTime / 4.0f, InitValue );

float Output = OneOrderTransformFuncCalculate( &s_Plan, FinalValue );

你可能感兴趣的:(波形与滤波,一阶系统阶跃响应,方波规划)