一阶惯性环节传递函数 c++
时间: 2023-11-30 11:42:34 浏览: 53
根据引用[1],c++格式写的一阶惯性环节传递函数可以使用动态数组vector实现。一阶惯性环节的传递函数为:G(s) = K/(Ts+1),其中K为增益,T为时间常数。将传递函数转化为差分方程的步骤如下:
1. 将传递函数中的s用(z-1)/T代替,其中z为z变换,T为采样周期。
2. 将传递函数中的G(z)用Y(z)/U(z)代替,其中Y(z)为输出信号,U(z)为输入信号。
3. 将代入后的传递函数进行化简,得到差分方程:Y(z) = (K*T/(T+1))*U(z)/(z-1+T/(T+1))。
以下是c++实现一阶惯性环节传递函数的代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
double K = 1.0; // 增益
double T = 1.0; // 时间常数
double Ts = 0.1; // 采样周期
vector<double> u; // 输入信号
vector<double> y; // 输出信号
void FirstOrderInertia(double u_k)
{
double y_k = (K*T/(T+Ts))*u_k + (T/(T+Ts)-1)*y.back();
y.push_back(y_k);
}
int main()
{
u.push_back(0.0); // 初始输入信号为0
y.push_back(0.0); // 初始输出信号为0
for(int i=0; i<100; i++)
{
double u_k = 1.0; // 输入信号为1
u.push_back(u_k);
FirstOrderInertia(u_k);
}
for(int i=0; i<y.size(); i++)
{
cout << y[i] << endl;
}
return 0;
}
```