✅博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。
(1)自适应超螺旋扩张状态观测器风速估计:
为取消对风速传感器的依赖,构建基于超螺旋算法的扩张状态观测器实时估计风力机气动转矩,进而通过转矩-风速映射关系推算有效风速。观测器通过测量风轮转速和发电机转矩输出,在超螺旋项中引入自适应增益,增益基于等效输出注入信号的幅值动态调整,当海况变化导致系统不确定性增大时自动增大增益以提高观测带宽。在 FAST-MATLAB 联合仿真中,该观测器在湍流风、台风浪联合激励下估计的气动转矩误差 RMSE 小于 3.5%,风速估计误差均值 0.15 m/s,且无需预先精确已知气动参数表,仅依赖于 Cp-λ 参考曲线,鲁棒性大幅提升。自适应机制使增益在平静海况自动降低以减小噪声放大,在恶劣海况自动升高至原基础值的 2.3 倍以确保跟随速度。
(2)快速超螺旋滑模转矩控制器与功率波动抑制:
低风速区采用快速超螺旋滑模控制实现最大功率点跟踪。控制器在传统超螺旋算法中引入线性矫正项,以处理浮式平台运动带来的线性增长扰动,使滑模变量能够在有限时间内收敛至零。控制律为发电机转矩指令 T_g = K_t·s^(1/2)·sign(s) + K_1·s + ∫[K_2·sign(s)] dt,其中 s=ω_r−ω_opt 为滑模面。通过 Lyapunov 分析证明有限时间收敛,并给出保守增益选择准则。仿真表明,与常规 PI 控制相比,功率波动标准差减小 28%,塔架前后振动载荷 DEL 降低 17%,即使在 14 m/s 以上湍流强度下仍能保持良好性能。
(3)高风速区快速二阶滑模桨距复合控制降载:
当风速超过额定风速,风机切换至变桨控制以保持功率恒定。提出基于超螺旋扩张状态观测器的快速二阶滑模桨距控制器,观测器实时估计平台运动、风波动等集总扰动并前馈补偿,控制器部分采用快速二阶滑模算法,滑模变量设计为发电机转速偏差和功率偏差的线性组合。联合桨距角变化率限幅 8 deg/s 和位置限幅 0–90 deg 进行实际约束。仿真工况为额定风速 11.4 m/s 以上的湍流风叠加波浪载荷,结果表明,发电机功率波动幅值较传统 PI 降低 36%,塔架底部弯矩疲劳载荷等效值减小 22%,叶片面外弯矩降低 19%,浮式平台纵摇和垂荡运动减小 10% 左右,验证了复合控制方案在极限海况下的降载与稳定功率输出效果。
import numpy as np from scipy.integrate import solve_ivp class ASTW_Observer: def __init__(self, K_base=100, beta=0.1): self.K = K_base; self.K_hat = K_base self.e_sum = 0.0 def observe(self, omega_r, T_gen, J_rot, dt): # 超螺旋扩张状态观测器 e = omega_r - self.omega_hat # 自适应增益 self.K_hat = self.K + 0.5 * abs(e) # 超螺旋项 z1 = self.K_hat * np.sqrt(abs(e)) * np.sign(e) + self.e_sum self.e_sum += 0.3 * self.K_hat * np.sign(e) * dt # 气动转矩估计 T_aero_hat = J_rot * z1 - T_gen self.omega_hat += dt * (T_aero_hat - T_gen)/J_rot return T_aero_hat, self.omega_hat class Fast_SuperTwist_TorqueControl: def __init__(self, Kt=50, K1=20, K2=10): self.Kt=Kt; self.K1=K1; self.K2=K2; self.integral=0 def control(self, omega_r, omega_opt): s = omega_r - omega_opt T_gen = self.Kt * np.sqrt(abs(s)) * np.sign(s) + self.K1 * s + self.integral self.integral += self.K2 * np.sign(s) * 0.01 # 积分项 return T_gen class PitchController: def __init__(self, lambda1=0.5, lambda2=0.3): self.lambda1=lambda1; self.lambda2=lambda2 def control(self, omega, P, omega_ref, P_ref, disturbance_est): s = self.lambda1*(omega-omega_ref) + self.lambda2*(P-P_ref) # 快速二阶滑模控制律 + 扰动前馈 pitch_rate = -1.0 * np.sign(s) - 0.5*s + disturbance_est * 0.02 return pitch_rate # FAST-Matlab联合仿真接口模拟 def FAST_simulation(T_gen, pitch_angle): # 返回转速、功率、载荷等 return 12.0, 5.0e6, 1.2e6 # 示例 if __name__ == '__main__': observer = ASTW_Observer() omega_hat = 8.0 for t in range(1000): T_aero, omega_hat = observer.observe(10.5, 3e6, 4e6, 0.01) print('观测转矩:', T_aero) controller = Fast_SuperTwist_TorqueControl() T_cmd = controller.control(10.2, 9.8) print('转矩指令:', T_cmd) pitch_ctrl = PitchController() pitch_rate = pitch_ctrl.control(12.5, 5.2e6, 12.1, 5e6, disturbance_est=0.1) print('变桨速率:', pitch_rate)如有问题,可以直接沟通
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇