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

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

单位阶跃函数拉氏变换

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


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

将z变换写成差分方程形式

时间常数T
时间常数T反映了一阶系统的响应速度,T越小响应速度越快。
调节时间(稳定时间)
一阶系统单位阶跃响应经过时间t=T,2T,3T,4T和5T时,输出分别为稳态值的63.2%,86.5%,95%,98.2%和99.3%,工程上表示阶跃输入经过一阶系统的输出需要经过时间t达到稳定,一般取t=3T或4T。
- 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 );