双闭环PWM不可逆直流调速系统matlab数学模型代码
时间: 2023-07-29 10:07:42 浏览: 133
以下是一个双闭环PWM不可逆直流调速系统的MATLAB数学模型代码,供参考:
```matlab
% 系统参数
R = 2; % 电机电阻
L = 0.5; % 电机电感
J = 0.1; % 电机转动惯量
B = 0.05; % 电机摩擦系数
Kb = 0.1; % 电机反电动势系数
Kt = 0.1; % 电机转矩系数
Ts = 0.001; % 采样时间
F = 0.5; % 内环截止频率
Td = 0.1; % 外环时延
Kpi = 0.1; % 内环比例系数
Kii = 0.5; % 内环积分系数
Kpd = 0.4; % 外环比例系数
Kid = 0.2; % 外环积分系数
% 系统模型
s = tf('s');
G = Kt / (R * L * s^2 + (R * B + Kt * Kb) * s + Kt * Kt);
Gpwm = tf([1], [J, B]);
H = tf([1], [1 0]);
Gc1 = pid(Kpi, Kii);
Gc2 = pid(Kpd, Kid);
Tf = exp(-Td * s);
sys = feedback(G * Gc1 * Gpwm, H) * Tf * Gc2;
% 仿真
t = 0:Ts:5;
r = ones(size(t));
[y, t] = lsim(sys, r, t);
plot(t, y, t, r);
xlabel('Time (sec)');
ylabel('Speed (rad/s)');
legend('Actual', 'Reference');
```
这个代码中,我们首先定义了系统的参数,然后使用这些参数构建了系统的传递函数模型。在这个模型中,我们使用了PID控制器来实现内环和外环控制。内环控制器的输出通过PWM模块输入到电机中,外环控制器的输出是内环控制器的输入。
在模拟过程中,我们使用`lsim`函数对系统进行仿真,得到了系统的实际输出和参考信号。最后,我们将这些结果绘制成图表,以便更好地理解系统的性能。
阅读全文