L1*Rd*C^2*w^2*cos(1.5*Ts*w)+sin(1.5*Ts*w)*{1/w+(Rd*C)^2-L1*C*w}=b*Kpwm*C*(Rd*C*ki-kp),求其关于w的曲线完整范例、
时间: 2023-07-23 20:15:31 浏览: 41
首先,将方程整理为标准的二次方程形式:
$L_1 R_d C^2 w^2 \cos(1.5Ts w) + (R_d C)^2 \sin(1.5Ts w) - L_1 C w \sin(1.5Ts w) + \dfrac{\sin(1.5Ts w)}{w} = b K_{pwm} C (R_d C k_i - k_p)$
移项,得到:
$L_1 R_d C^2 w^2 \cos(1.5Ts w) - L_1 C w \sin(1.5Ts w) + (R_d C)^2 \sin(1.5Ts w) + \dfrac{\sin(1.5Ts w)}{w} - b K_{pwm} C (R_d C k_i - k_p) = 0$
现在,我们可以使用MATLAB的符号计算工具箱来解决这个方程。首先,需要定义各个变量的符号:
```
syms w L1 Rd C Ts b Kpwm ki kp
```
接下来,将原方程代入:
```
eq = L1*Rd*C^2*w^2*cos(1.5*Ts*w) + sin(1.5*Ts*w)*(1/w + (Rd*C)^2 - L1*C*w) == b*Kpwm*C*(Rd*C*ki-kp);
```
然后,使用solve函数求解关于w的解:
```
sol = solve(eq, w);
```
最后,我们可以将得到的解转换为函数,并绘制曲线:
```
f = matlabFunction(sol);
w_range = linspace(0, 100, 1000);
plot(w_range, f(w_range));
```
其中,linspace用于生成从0到100的一千个等间隔的数,plot用于绘制函数曲线。完整的MATLAB代码如下:
```
syms w L1 Rd C Ts b Kpwm ki kp
eq = L1*Rd*C^2*w^2*cos(1.5*Ts*w) + sin(1.5*Ts*w)*(1/w + (Rd*C)^2 - L1*C*w) == b*Kpwm*C*(Rd*C*ki-kp);
sol = solve(eq, w);
f = matlabFunction(sol);
w_range = linspace(0, 100, 1000);
plot(w_range, f(w_range));
```