DSP电机控制中的感应电机控制程序

合集下载

步进电机控制方案 dsp

步进电机控制方案 dsp

步进电机控制方案 DSP简介步进电机是一种常用的电动机类型,适用于需要精确定位和高扭矩输出的应用场景。

与其他电机类型相比,步进电机具有较高的位置控制精度和较低的成本。

本文旨在介绍一种基于DSP(Digital Signal Processor,数字信号处理器)的步进电机控制方案,以实现精确的步进电机控制。

DSP介绍DSP是一种专门用于数字信号处理的芯片或系统。

其优势在于能够高效地进行信号处理、算法运算和数据处理。

DSP芯片通常带有多个高性能的计算核心和丰富的外设接口,适用于各种实时应用。

在步进电机控制方案中,使用DSP作为控制器可以实现高精度的位置控制和快速响应。

步进电机控制原理步进电机是一种需要以离散的步进角度进行控制的电机。

其控制原理基于电机内部的定子和转子之间的磁场交互作用。

步进电机的转子通过电流驱动产生磁场,定子通过相序切换实现转子的转动。

控制步进电机的关键是准确控制相序的切换和电流的驱动。

基于DSP的步进电机控制方案可以通过以下步骤实现:1.位置规划:根据实际需求,确定步进电机需要旋转到的位置。

这可以通过输入命令、传感器反馈或计算算法等方式得到。

2.相序切换:根据位置规划,确定相序的切换顺序。

相序切换是通过控制电机驱动器中的逻辑电平来实现的。

DSP通过输出控制信号控制驱动器的相序切换,从而实现电机的转动。

3.电流驱动:根据步进电机的特性和要求,确定合适的电流驱动参数。

通过DSP输出的PWM(Pulse Width Modulation,脉宽调制)信号和驱动电路,实现对电机相线施加准确的电流驱动。

4.反馈控制:根据应用需求,添加合适的反馈控制机制来实现闭环控制。

常见的反馈控制方式包括位置反馈、速度反馈和力矩反馈等。

DSP步进电机控制方案的优势相比传统的微控制器或PLC(Programmable Logic Controller,可编程逻辑控制器)控制方案,基于DSP的步进电机控制方案具有以下优势:•高性能:DSP芯片具有强大的计算能力和实时性能,可以实现复杂的控制算法和快速响应。

基于DSP的多相感应电机矢量控制系统的设计和实现

基于DSP的多相感应电机矢量控制系统的设计和实现
而避 免 了功 率器 件 并 联 引 起 的静 态 和 动 态 均 流 问 题 ; 转矩脉 动 的 幅值 减 小 , 脉 动 的 频 率 增 加 , 统 动 、 而 系 静
TMS 2 C 2 C 2 30 3 ( 3 )
具 有 精 度 高 和 性 价 比 高 的优 点 , 适
特 性 得 以 改 善 ; 用 相 冗 余 的 概 念 , 系 统 级 改 善 了 驱 采 在 动 系 统 的 可 靠 性 ; 用 多 相 冗 余 结 构 的 驱 动 系 统 , 多 采 当
的优 点 。
电 流分 量 i 然 后 像控 制 它激 式 直 流 电机 那 样 对磁 通 0,
和转 矩分 别 单独 控 制 L 。 2 J
在 同 步 旋 转 d 口 坐 标 系 中 , 择 转 子 磁 通 与 参 考 一 选 轴 d 轴 重 合 。 为 了 便 于 工 程 实 现 , 考 虑 多 相 感 应 电 不
广 泛 的 应 用。带 有 增 强 总 线 接 口 的 3 2位 浮 点 型

前 言
多 相 电 机 调 速 系 统 具 有 三 相 系 统 所 无 法 比 拟 的 优
势 _ : 可 用 低 压 功 率 器 件 实 现 大 功 率 ; 供 电 电 压 受 1它 在
限 的场合 , 功 率 的逆 变器 可用 单 个 功 率 器件 实 现 , 大 从
相 感 应 电 机 的 一 个 ( 几 个 ) 子 绕 组 开 路 或 逆 变 器 的 或 定

合 于 实 现 多 相 电 机 复 杂 的 矢 量 控 制 策 略 。 下 面 具 体 介
绍1相感 应 电机矢 量控 制系 统的设 计和 实现方 法 。 5
二 、 5相 感 应 电 机 的 矢 量 控 制 原 理 1

DSP在电机控制中的应用及发展

DSP在电机控制中的应用及发展

1电机 控舒技 术的发 晨 模 拟控 制技 术时期 : 1世纪 中 叶先后 诞生 的直流 电机 和交 流 电机 ,最 9 初 只是 为人 们提 供 一种稳 定 的动 力 ,所 以那 时的 电机控 制 只是解 决 它 的启
弦波 电压 供 电时的理 想 圆形 磁通 轨迹 为基 准,用 逆变 器功 率开关 器件 的8 个 状态 ( 对应 8 电压 矢量 )产 生的磁 通逼近 圆形磁通 轨迹 ,脉冲 序列 的脉宽 个
动 与停止 ,大 部分 的控制用 简单 的触 点开 关电器 即能解 决 。
模数 混合 控制 技术 时期 :2世 纪 7年代 ,微 处理 器技 术剐 开始 不久 。 O O
这种 处理 器 构成 电机 的控 制系 统需 要辅 以大 量 的外 围数字 逻辑 电路芯 片和 模拟 电路 芯片 ,不但 结构复 杂 ,体 积大 ,抗 干扰性 能也 差 。
全数字 控制 技术 时期 :随着 /P 入式 片上系 统S C 出现 , 使得系 统 ) 嵌 S O的 实 时性 地 完成 电机 控制 的运 算速 度 越 来 越快 ,处 理 各种 复 杂 运算 不 再 困 难 ,系统 的整 体控 制性 能也 越来 越好 。 目前 ,数字 化控 制 成为 了 电机控 制 技 术发展 的主 流,而 D P 已成为这 项技 术的核 心 。 S现

频 率指
器 在 电机 数字 控制系 统 中 已显现 出越 来越 大的优 势 。电机控 制专 用DP S一般 具 有 以下几个特 点 : 1 )采用 开发 厂商 原来 的某 个定 点DP 内核 ,在此 基础 上改 进 电路结 S为 构 ,提 高了 时钟 频率 ,指令系 统与该 系列定点 DP 容 。2 S兼 )增加 了微 控制器 ( )的外 围电路功 能,具有 多路 快速的AD 删 /转换 电路,定时/ 计数 电路、输 入信号捕捉 电路 、完善 的中断控制体系及 看 门狗抗干扰 电路 。3 )芯 片内设计 了电机专用的输 入/ 出接 口和特 殊的逻辑 部件,如供位置 和速度检测用 的正 输 图l 单相 感应 电动机 控制 电路 图 32 DP 于 交流 电机 矢 量控 制 。矢 量控 制 是 交流 异步 电机 的 一种 高 . S用 性 能变 频调 速控 制方 式 。它 是在 异 步 电动 机 的数 学模 型基 础上 将 电机定 子 绕组 中耦合 在 一起 的磁通 电流和 力矩 电流 通过 坐 标变 换分解 出来 。矢 量 控 制 既对 电机 驱动 电压 的频 率和 幅值 进行 控 制 ,又 同时控 制 电机 驱动 电压 的 相位 , 因此控 制 精度 高 ,低频 特性 好 ,转 矩动 态 响应速 度快 。使用 以下数

dsp电机控制原理及应用

dsp电机控制原理及应用

dsp电机控制原理及应用DSP电机控制原理及应用数字信号处理技术(DSP)在电机控制中的应用越来越广泛,其原理和应用如下:1. 原理DSP电机控制的原理基于对电机运行状态的实时监测和处理。

通过采集电机的传感器信号,并利用DSP芯片对信号进行数字化处理和分析,可以实现对电机的精确控制。

DSP电机控制的主要原理包括以下几个方面:- 电机速度闭环控制:通过对电机速度进行闭环控制,可以实现精确的速度调节和稳定的转速控制。

- 电流控制:DSP可以对电机的电流进行采样和处理,通过控制电机的电流大小和相位,可以实现电机的精确转矩控制。

- 位置控制:通过对电机位置信号的处理和反馈,可以实现对电机转动位置的准确定位和控制。

2. 应用DSP电机控制广泛应用于各种类型的电动机控制系统,如直流电机控制、交流电机控制和步进电机控制等。

根据电机控制的需求和应用场景的不同,DSP电机控制可以实现以下几个方面的功能:- 速度闭环控制:实现对电机转速的精确控制,用于需要稳定速度的应用,如风扇、泵等。

- 转矩控制:通过对电机电流的控制,实现对电机转矩的精确调节,适用于需要精确转矩输出的应用,如工业机械、机器人等。

- 位置控制:通过对电机位置信号的处理和反馈,实现对电机位置的准确定位和控制,适用于需要精确位置控制的应用,如CNC机床、自动化设备等。

- 动态响应控制:利用DSP的高性能计算能力和实时控制能力,可以实现对电机动态响应的控制,适用于对电机响应速度要求较高的应用,如印刷机、包装设备等。

综上所述,DSP电机控制原理简单明了,应用广泛。

凭借其优秀的数字信号处理能力和实时控制特性,DSP电机控制在电机控制领域具有重要的地位和广阔的应用前景。

基于DSP控制的感应电机变频调速系统上位机程序使用说明_毕业设计

基于DSP控制的感应电机变频调速系统上位机程序使用说明_毕业设计
空间矢量模式同步调制下: 载波比 异步调制下: 开关频率 混合调制下: 三段同步调制地频率切换值,每一段地载波比
磁场定向模式下:速度环抗饱和 PI 调节器:P 参数 I 参数 电流环抗饱和 PI 调节器: P 参数 I 参数 转子电阻
直接转矩模式下: 速度环抗饱和 PI 调节器:P 参数 I 参数 转矩滞环容差 磁通滞环容差 定子电阻
速度/频率给定:给定范围:频率(0~50Hz) 启动曲线低频补偿:给定范围:低频补偿(0.024~0.15) 同步调制选定:可以改变载波比 N,给定范围: 6~48 异步调制选定:可以改变开关频率 F,给定范围:300~2400Hz 混合调制选定:可以改变三段同步调制地频率切换值 F1、F2,每一段地载
1.3 各类波形捕捉
SPWM 模式下地 A 相电流波形、B 相电流波形和转速波形 空间矢量模式下地 A 相电流波形、B 相电流波形和转速波形 磁场定向模式下地 A 相电流波形、B 相电流波形、转速波形、α相磁通、 β相
磁通 直接转矩模式下地 A 相电流波形、B 相电流波形、转速波形、α相磁通、 β相
外扩 DSP 使用说明………………………………………………………………………………32
基于 DSP 控制地感应电机变频调速系统
上位机程序使用说明
1.概述
MCL-13 上位机控制程序,是“基于 DSP 控制地感应电机变频调速系统(MCL-13)”地上 位机控制程序本软件与 MCL-13 挂箱配套使用 MCL-13 挂箱上备有串口 RS232 连接插座用 户使用本软件前,应通过此连接插座与上位 PC 机串口妥善连接脱离 MCL-13 挂箱,本软件将 无效,装入运行时会引起死机
程序主界面(User Interface)如图 1.所示

基于DSP的感应电动机矢量控制系统设计

基于DSP的感应电动机矢量控制系统设计

可 靠性 。(1 2 矢量控 制 技 术严 重依 赖 电机 的 参 数 , 电机 参数 受环 境 、 而 温度 等 的 影 响运 行 时呈 时 变特 性 , 此 因 系 统 的 动 态 性 能 仍 不 尽 如 人 意 。这 些 问 题 限 制 了 交 流 调 速 系统 的 应 用 , 此 应 该 深 入 探 讨 和 完 善 矢 量 控 制 技 因
态 调 速 性 能 . 得 这 种 控 制 方 法 成 为 交 流 电 机 获 得 理 想 调 速 性 能 的 使
重要 途 径 。

矢 量 控 制 的 实 现
( ) 矢 量 控 制 的 原 理 一
矢 量 控 制 技 术 用 来 改 善 异 步 电 动 机 的 动 态 特 性 , 要 考 虑 电 流 需
术 理 论 . 对 于 交 流 调 速 系统 的 应 用 与 发 展 具 有 积 极 的 推 动 作 用 , 提 供 理 论 上 的 借 鉴 作 用 。 这 并
【 关键 词 】 感应 电动机 矢 量控 制
DS P

矢 量 控 制 技 术 简 介
矢 量 控 制 技 术 也 称 磁 场 定 向 控 制 。 在 感 应 电 机 中 , 了 将 交 流 为 矢 量 变 换 为 两 个 独 立 的 直 流 标 量 来 分 别 加 以 调 节 , 及 将 被 调 节 后 以
¨ 蒜 一
中国高 新技术 企业
基 于 D P 的 感 应 电 动 机 矢 量 控 制 系 统 设 计 S
文 /禹万林
【 要】 摘
变频 调 速技 术特 别 是 矢量 控 制技 术 有 着 突 出优 点 , 已在 交流 调速 领 域 得 到 广 泛应 用 , 其理 论 虽 但
与 应 用 仍 不 完 善 。 其 主 要 问 题 有 :1 在 高 性 能 矢 量 控 制 系统 中 需 采 用 速 度 闭 环 控 制 , 规 的 速 度 检 测 多 采 用 () 常 速 度 传 感 器 . 而 速 度 传 感 器 在 安 装 、 护 、 本 等 方 面 影 响 了 异 步 电 机 调 速 系 统 的 简 便 性 、 价 性 及 系 统 的 然 维 成 廉

交流感应电动机矢量控制的matlab和DSP程序精

第9章交流感应电动机控制方法例1、基于无速度传感器的感应电动机控制仿真感应电动机无速度传感器直接磁场定向控制仿真框图感应电动机无速度传感器直接磁场定向控制仿真%相关模块:% 1. “aci.m” -感应电动机模型% 2. “aci_se.m” -开环速度估计器% 3. "aci_fe.m H -磁通估计器% 4. "pid_ieg3.m u - PID 控制器% 5. n paik.m u・ PARK 变换% 9.u inv_paik.m H - PARK 逆变换% 7. n ianip^en.m n・谐波生成器T = 5e-04; %仿真模型的采样时间(秒****************************** 真******************************phasel_inc_build = 0; %磁通/速度估计测试(ACLFE/ACLSEphase2_inc_build = 1; % 闭环调速测试****************************** 真************************************************************ **************************Rs = 1.723; % 定子阻抗(ohm1Ri = 2.011; % 转子阻抗(ohmLs = (7.387十159.232*le-03; % 定子电感(HLi = (9.732十159.232*匕-03; % 转子电感(HLm= 159.232*le-03; % 励磁电感(HP = 4;%磁极数J = 0.001; %转子转动惯量(kg.m A2B = 0.0001; % 阻尼系数(N.m.sec/iadTl = 0;%负载扭矩(N.mnp = P/2; %磁极对数****************************************************************************************** 系****************************** Wb = 2*pi*fb;Ib = 5;%Lb = 220*sqrt (2/3/(2*pi*60;Lb = Lm*Ib;Tb = (3*Vb*Ib/2*(np/(2*pi*60;SPb= 120*fb/P;******************************女台彳z ****************************** X = [0;0;0;0]; % X = [psi_iq; psi_fd; i_sq; i_sd]W1 = O;%转子电角速度(md/secIq = O;Id = O;fb = 60;%感应电动机%感应电动机的矢量参数p_un = [T; Rs; Ri; Ls; Li; Lm; np; J; B; Tl/Tb; Wb; lb; Vb; Lb; Tb]; %磁通估计器li.fe = [0; 0; 0; 0; 0; 0; 0; 0];% [tlieta_psi_r; psi」D_i; psi_sd_v; % psi_sq_v; ui_sd; ui_sq; e_sd; e_sq] % 转子励磁角度(pi】% [T; Rs; Ri; Ls; Lr; Lm; Kp; Ti; lb; Vb] tlieta_psi_r = 0;%开环速度估计器li_se = [0;0]; % [theta_i_.se; wi_psi_i] p_se = [T; Ri; Li; Lm; 200; 0.97; 0.03; fb];% [T; Ri; Li; Lm; fc; difLmaxJuiut; difLnuiiJunit; fb]wi_liat_se = 0;% PID・IQ控制器%供电频率(Hz %电角速度(iad/sec %相电流Qmp %磁链(volt.sec/iad %磁链(volt.sec/iad % 扭矩(N.m %同步速度(rpm Vb = 320/sqit⑶ %相电压(volt ****************************** 系统参数****************************** p_fe = [T; Rs; Ri; Ls; Li; Lm; 0.055; le-06; lb;Vb];h_iq = [0;0;0]; % li.pid = [up_ieg3; ui_ieg3; i】d_ieg3]p_iq= [T; 2*Ib/Vb; 0.001; 0.0001; 0.1; 0.71; -0.71]; % [T; Kp; Ti; Td; Kc; Umax; Umm];% PID・ID控制器li_id = [0;0;0]; % h_pid = [up_ieg3; ui_ieg3; i】d_ieg3]p_id = [T; 2*Ib/Vb; 0.001; 0.0001; 0.1; 0.71; -0.71]; % [T; Kp; Ti; Td; Kc; Umax; Umm];%PID -速度控制h_sp = [0;0;0]; % h_pid = [up_ieg3; ui_ieg3; ud_ieg3]p_sp = [T; 0.00334*SPb/Ib; 0.01; 0.0001; 0.9; 1; -1]; % [T; Kp; Ti; Td; Kc; Umax; Umm];******************************女台彳E ************************************************************ 貢,入、%Tt = 29*T; % 仿真时间(sect = 0:T:Tt; %仿真时间设置(secspeed_ief = 900/SPb; % 参考速度(puId_ref = 2/Ib; %旋转坐标同步参考d 轴电流(puIq_ief = 0/Ib; %旋转坐标同步参考q 轴电流(pu***************************** ^^貢********************************************************** 貢****************************** if phase 1 _inc_build==l% Phase 1 inciemental build**************************Tt = 0.5120; % 仿真时间(secfor i = 1 :length(t.[rmp_out] = faiiip_gen(2*pi/(2*pi,0,speed_ief*fbj(i;[Uq_iefYh_iq] = pid」eg3(Iq_iefJq,li_iq,p_iq;[Ud_ref,Y,h_id] = pid_i eg3 (Id_i ef,Id ,li_id ,p_id;[uq_iefud_ref] = inv_paik(Uq_ief,Ud_iefimp_out;[Te.Wi\X] = aci(Wi\X,[uq_ief; ud_ief].p[IqJd] = paik(X(3,X(4,nnp_out;[psi_iq.psLidjheta_psi_i;h_fe] = aci_fe(X(3 ,X(4jiq_ief,ud_iefJi_fe,p_fe; [wrjiat_seji_se] = aci_se(X(3 ,X(4,psi_iq,psi_i d」hes_psi_「h_se,p_se; 3imp(i = imp.out;elseif phase2」nc_bi】ild==l% Phase 2 inciemental build%[Iq_ief,Y,li_sp] = pid_i eg3 (speed」efW「h_sp,p_sp;[Iq_ief,Y,h_sp] = pid_ieg3 (speed」ef>u_hat_se,li_sp,p_sp;[Uq_iefYh_iq] = pid」eg3(Iq_iefJq,li_iq,p_iq;[Ud_ref,Y,h_id] = pid_i eg3 (Id_i ef,Id ,li_id ,p_id;[uq_iefud_ref] = inv_paik(Uq_ief^Ud_ieftlieta_psi_f;[Te.Wi\X] = aci(Wi\X,[uq_ief; ud_ief].p[psi_iq.psLidjheta_psi_i;h_fe] = aci_fe(X(3 ,X(4jiq_ief,ud_iefJi_fe,p_fe; [wi_hat_se,h_se] = aci_se(X(3 ,X(4,psi_iq,psi_i d、theta_psi_i ,h_se,p_se; [IqJd] = paik(X(3 ,X(4 jheta_psi_r;endi_qe(i = Iq;i_de(i = Id;v_qe(i = Uq_ief;v_de(i = Ud_ief;ibeta(i = X(3;ialfa(i = X(4;vbeta(i = i】q_ief;valfa(i = iid_ief;psi_i_beta(i = X(l;psi 丄alfa(i = X(2;psi_i_beta_hat(i = psi_iq;psi_i_alfajiat(i = psi_id;theta_i(i = tlieta_psLr;toique(i = Te;wi(i = Wi;wi_hat(i = wr_liat_se; %带速度传感器%无速度传感器4t(lend****************************** 貢*************************************************************** 貢*********************************************************** 康应电动机模型****************************ftinction [Te,Wi,X] = aci(WiO,XO,U,p%该函数仿真定子参考坐标系下感应电动机的动态相应%输入参数:% W10 =转子电角速度(rad/sec% X0 = [psi_rq; psi_rd; i_sq; i_sd]% U = [v_sq; v_sd]=定子相电压(volt% p = [T; Rs; Ri; Ls; Lr; Lni; np; J; B; Tl; Wb; lb; Vb; Lb; Tb]% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 % 输出参数:%Te =电磁转矩(N.m% Wi =转子电角速度(rad/sec% X = [psi_iq; psi_id; i_sq; i_sd]%其中% psi_rq =静止参考坐标q-轴转子磁链(flux luikage volt.sec/rad % psi_rd =静止参考坐标d-轴转子磁链(flux luikage volt.sec/rad % i_sq =静止参考坐标q-轴定子电流(amp% i_sd =静止参考坐标d-轴定子电流(amp% v_sq =静止参考坐标q-轴定子电压(voll% v_sd =静止参考坐标d-轴定子电压(voll%T =采样周期(sec% Rs =定子阻抗(olun% Ri =转子阻抗(ohm%Ls =定子自感(H%"=转子自感(H%Lm =励磁电感(H% np =磁极对数% J =转子转动惯量(kg.m人2% B =阻尼系数(N.m.sec/rad - always ignored %丁1 =负载转矩(川11% Wb =电磁角速度(rad/sec% lb =相电流(amp%Vb =相电压(volt% Lb =磁链系数(volt.sec/rad%Tb =转矩(N.m5%根据电动机参数定义的常数sig = l-p(6A2/(p(4*p(5; % sig = l-Lm A2/(Ls*Li gam = (p(6A2*p(3+p(5A2*p(2/(sig*p(4*p(5A2; alp = p(3/p(5;Ti = p(5/p ⑶bet = p(6/(sig*p(4*p(5;%常数定义KI =p(l*alp;K2=p(l*p(ll;K3 = p(l*alp*p(6*p(12/p(14;K4 = p(l*alp*bet*p(14/p(12;K5 = p(l*bet*p(14*p(l l/p(12;K6 = p(l*gam;K7 = p(l*(l/(sig*p(4*(p(13/p(12;K8 = 1.5*p(7*(p(6/p(5*(p(14*p(12/p(15; K9 = p(l*p(9/p(8;K10 = p(l *p(7*(l/p(8*(p( 15/p( 11;%转子磁通/定子电流计算/alpha = O.O1;%变量定义psi_i_beta = XO(1;psi_i_alfa = X0(2;ibeta = X0(3;ialfa = X0(4;ubeta = U(1;ualfa = U(2;wi = WiO;load^toique = p(10;% Predictorpsi_i_beta_p = psi_i_beta - Kl*psi_i_beta + K2*wr*psi_i_alfa 十K3*ibeta; psi_i_alfa_p = psi_i_alfa - Kl*psi_i_alfa - K2*wi *psLi_beta 十K3*ialfa; ibeta_p = ibeta + K4*psi_i_beta - K5*wr*psi_i_alfa - K6*ibeta 十K7*ubeta; ialfa_p = ialfa 十K4*psi_i_alfa +K5*wi*psi_i_beta - K6*ialfa + K7*ualfa; % Conectordpsi_i_beta_p = - KI *psi_i_beta_p 十K2*wi*psi_i_alfa_p 十K3*ibeta_p;dpsi_i_alfh_p = - Kl*psi_i_alfa_p - K2*wi*psi_r_beta_p 十K3*ialfa_p;dibeta_p = K4*psi_i_beta_p - K5*wr*psi_i_alfa_p - K6*ibeta_p + K7*ubeta;dialfa_p = K4*psi_i_alfa_p 十K5*wi*psi__i_beta_p - K6*ialfa_p 十K7*ualfa; % alp =Ri.Lr (depending oil Ri % Ti = L1/R1;转子时间常数 % bet = Lni/(sig*Ls*Li % gam =(LiM2*Ri+LiA2*Rs/(sig*Ls*L"26%dpsi_i_beta = - Kl*psi_r_beta + K2*wi*psi_i_alfa 十K3*ibeta;%dpsi_i_alfa = - Kl*psi_i_alfa - K2*wi*psi_i_beta 十K3*ialfa;%dibeta = K4*psi_i_beta - K5*wi*psi_r_alfa - K6*ibeta + K7*ubeta;%dialfa = K4*psi_i_alfa 十K5*wi*psi_i_beta - K6*ialfa 十K7*ualfa;dpsi丄beta = psi_i_beta_p - psi_i_beta;dpsi_i_alfh = psi_i_alfa_p - psi_i_alfa;dibeta = ibeta_p - ibeta;dialfa = ialfa_p - lalfa;psi_i_beta = psi_i_beta 十O.5*((l+alplia*dpsi_i_beta_p 十(1 -alpha*dpsi_i_beta; psi_r_alfa = psi_i_alfa 十0.5*((l十alpha*dpsi_i_alfa_p 十(1 -alpha*dpsi_i_alfa;ibeta = ibeta + 0.5 * ((1 +alplia * dibeta^p + (l-alplia*dibeta;lalfa = lalfa 十0.5*((1 +alplia*dialfa_p 十(l-alplia*dialfa;%电磁转据计算torque = K8*(psi_r_alfa*ibeta - psi_r_beta*ialfa;%转子速度计算*/wi_p = wi - K9*wi + K10*(toique - load_toique; dwi_p = - K9*wi_p 十K10*(torque - load_toique;%dwi = - K9*wi 十K10*(toique ・ load_toique; dwr = wi_p - wr;wi = wr 十0.5 *((1 +alpha*dwi_p 十(1-alpha*dwr;%返回结果X(1 = psi_i_beta;X(2 = psi丄alfa;X(3 = ibeta;X(4 = ialfa;Wi = wr;Te = torque;********************************磁通估计函数**************************** fimctioii [psi_iq,psi_id、theta_psi_i;h_out]=aci_E(i_sq,i_sd,u_sq,u_sd」i_in、p%该函数估计感应电动机的转子磁通和角度%输入]% i_sq =静止参考坐标q-轴定子电流(amp7% i_sd =静止参考坐标d-轴定子电流(amp% u_sq =静止参考坐标q-轴定子电压(voli% u_sd =静止参考坐标d-轴定子电压(voli% h_in = [tlieta_psi_i_piev; psi_rD_i_piev; psi_sd_v_piev; psi_sq_v_piev; % ui_sd_piev; ui_sq_piev; e_sd_piev; e_sq_prev]%p%输出:% psi_iq% psi_id% h_out%其中:%T% Rs%Ri%Ls%Li%Lm%Kp% Ti =采样周期(sec =定子阻抗(olun =转子阻抗(ohm =定子自感(H =转子自感(H =励磁电感(H =比例增益=积分时间和复位事件(sec=以前和现在转子磁通角(md=以前和现在转子磁通(volt.sec=以前和现在定子磁通(volt.sec=以前和现在转子磁通(volt.sec=以前和现在积分电压(voli=以前和现在积分电压(VO1T=以前和现在反电动势enif (volt=以前和现在反电动势enif (volt =静止参考坐标q-轴转子磁链(flux luikage volt.sec/iad =静止参考坐标d-轴转子磁链(flux linkage volt.sec/rad =同步转子磁通角0-2*pi (rad = [theta_psi_i_cun; psi_iD_i_cuiT; psi_sd_v_cun; psi_sq_v_cinr; = [T; Rs; Ri; Ls; Li; Lm; Kp; Ti; lb; Vb] % theta_psi_r % ui_sd_cun; ui_sq_cun; e_sd_cuir; e_sq_cun] %theta_psi_r_piev,theta_psi_i_cun % psi_iD_i_piev,psi_rD_i_cun % psi_sd_v_piev,psi_sd_v_cun % psi_sq_v_pfev,psi_sq_v_cun % ui_sd_piev,ui_sd_cun % ui_sq_pi ev,ui_sq_cui 1 %e_sd_piev,e_sd_cun % e_sq_prev,e_sq_cuir%根据电动机参数定义常数Ti = p(5/p(3; % Ti = Li/Ri%常数定义Kl_fe = Ti/(Ti+p(l;K2_fe = p(l/(Tr+p(l;K3_fe = p(6/p(5;K4_fe = (p(4*p(5-p(6*p(6/(p(5*p(6; K5_fe = p(9*p(2/p(10;K6_fe = p(10*p(l/(p(6*p(9;K7_fe = p(5/p(6;K8_fe = (p(4*p(5-p(6*p(6/(p(6*p(6; %变量定义8i_qs_fe = i_sq;i_ds_fb = i_sd;u_qs_fe = u_sq;u_ds_fe = u_sd;theta_i_fe = h_in(l;flx_di_e = li_in(2;psi_ds_fe = h_in(3;psi_qs_fe = h_in(4;ui_ds = h_in(5;ui_qs = h_in(6;emflds = li_in(7;emflqs = li_in(8;Kp_fe = p(7;Ki_fe = p(8/p(l;%根据检测的定子电流进行Paik变换theta_e = 2*pi*theta_i_fe;i_ds_e = Lqs_fe*sm(theta_e+i_ds_fe*cos(tlieta_e; %估计模型flx_di_e = Kl_fe*flx_di_e ・ K2_fe*i_ds_e;%逆Park变换flx_di_s = flx_di_e*cos(tlieta_e;flx_qi_s = flx_di_e* sin(theta_e;%根据当前建立的模型计算钉子磁通flx_ds_s = K3_fe*flx_di_s + K4_fe*i_ds_fe;flx_qs_s = K3_fe*flx_qi_s + K4_fe*i_qs_fe;%转换PI控制器enoi = psi_ds_fe - flx_ds_s;ucomp_ds = Kp_fe*enoi + ui_ds;ui_ds = Kp_fe*Ki_fe*enor 十ui_ds;eiioi = psi_qs_fe ・ flx_qs_s;ucomp.qs = Kp_fe*eiioi 十ui_qs;ui_qs = Kp_fe*Ki_fe*enor 十ui_qs;%根据定子上的反电动势估计定子磁通emflold = emflds;emf ds = u ds fe - ucomp ds ・ K5 fe*i ds fe;psi_ds_fe = psi_ds_fe 十K6_fe*(0.5*(emf.ds 十eniLold; 9emflold = emflqs;emflqs = u_qs_fe - ucomp_qs ・ K5_fb*i_qs_fe;psi_qs_fe = psi_qs_fe 十K6_fe*(0.5*(emfLqs 十eniLold; %根据定子上的反电动势估计转子磁通psi di fe = K7 fe*psi ds fe - K8 fe*i ds fe;psi_qi_fe = K7_fe*psi_qs_fe - K8_fe*i_qs_fe;%计算转子磁通角theta_i_fe = iem(2*pi+ataii2(psLqi_fe,psi_di_fe,2*pi/(2*pi; %重新命名变量psi_id = psi_di_fe;psi.iq = psi_qi_fe;%刷新数据li_out = [tlieta^fe; flx_di_e; psi_ds_fb; psi_qs_fe; ui_ds; ui_qs; eniflds; emflqs];******************************** fiinction [wi jiat_se,li_out]= aci_se(i_sqd_sd,psi_iq,psi_id 、dieS_psi_i;h_iihp %利用该函数估计转子速度%%输入]% i_sq% i_sd% psi_iq% psi_id%h_in%p%输出:% wi_liat_se% h_out速度估计函数****************************%其中%T=采样周期(sec =转子阻抗(olun =转子自感阻抗(H =励磁电感(H =低通滤波的截至频率(Hz %Ri % Li % Lm %fc =估计的转子电角速度(rad/sec = [theta_psi_i_cun; We_cun] = Stationaiy q-axis stator cuiient (amp = Stationaiy d-axis stator cuiient (amp = Stationaiy q-axis rotor flux linkage (volt.sec/iad = Stationaiy d-axis lotoi flux luikage (vol匚sec/iad = SviiclHonously rotatuig lotoi flux angle (lad = [theta_psi_r_prev; We_piev] = [T; Ri; Li; Lm; fc; diff_max_limit; difLminJuiut; fb] % tlieta_psi_r% diff_max_limit =最大差分限度(%% =最小差分限度(%% theta_psi_i_pievjheta_psi_i_cun =过去和当前的转子磁通角(iad 10% We_piev,We_cun =过去和当前估计的同步角速度(rad/sec%根据电动机参数计算常数Ti = p(3/p (2;%Ti = Li,Ri%计算低通滤波时间常数tc = l/(2*pi*p(5; % Tc = l/(2*pi*fc (secWb = 2*pi*p(8;%常数定义Kl_se = l/(Wb*Tr;K2_se = l/(p(8*p(l;K3_se = tc/(tc+p(l;K4_se = p(l/(tc+p(l;%变量定义i_qs_se = i_sq;i_ds_se = i_sd;psi_qi_se = psi_iq;psi_di_se = psi_id;theta 丄se = theta_psi_r;theta 丄old = li_ui(l;wi_psi_i = h_in(2;%谐波计算psi_i_2 = psi_di_se*psi_di_se 十psi_qi_se*psi_qi_se;w_slip = Kl_se*(psi_di_se*i_qs_se - psi_qi_se*i_ds_se/psi_i_2; %同步速度计算if ((theta_i_se < p(6&(rhes_i_se > p(7w_syn = K2_se * (theta_i_.se-tlieta_i_old;else w_svn = wi_psi_r;%低通滤波器wi_psi_i = K3_se*wi_psi_j 十K4_se*w_syn; theta 丄old = dies 丄se; wi_hat_se = w_svii - w_slip;if (wi_liat_se > 1wi_hat_se = 1;elseif (wi_hat_se < -111wi_hat_se = -1;end%返回结果li_out = [tlieta^se; wi_psi_i];******************************** Pauk Pauk 变****************************fiinction [1Q4D] = paik(iqad,ang%iq% id% ang%1D1Q = -id*sni(2*pi*ang+iq*cos(2*pi*ang;1D = id*cos(2*pi*ang+iq*sin(2*pi*ang; fiinction [lqjd] = niv_paik(iQ4D,anglq = iD*siii(2*pi*ang+iQ*cos(2*pi*ang;id = iD*cos(2*pi*ang-iQ*siii(2*pi*ang;******************************** 产牛函************************fiinction [out] = ramp_gen(gaiii,offset,fieq,time %产生斜波信号%输入]% gain% freq% time%输出]% outT_ramp = l/abs(fieq; % 斜波信号周期(sectime_imp = iem(tmie,T_iamp; % 计算输出时间(sec if fieq > 0elseend % ramp fiom 0 to 1 如果fieq > 0 (for gain=l, offset=0 % lamp fiom 1 to 0 如果fieq < 0 (for gain=l, offset=0 out = gain*( 1/T_ranip*tune_niip 十offset; out = gain*(- (1 /T_i amp * tune_i mp+1 + offset;=斜波信号=输出增益=输出偏移量=频率(Hz = 时间(sec % offset =静止参考坐标q-轴定子变量=静止参考坐标d-轴定子变量=同步旋转参考坐标角度=同步旋转参考坐标q-轴定子变量=同步旋转参考坐标d-轴定子变量******************************** PID 扌牢制|函数^****************************fiinctioii [pid_out_ieg3,YJi_out] = pid_ieg3(pid_ieflieg3,pid_fdb_ieg3,h_in、p% PID控制器%输入]% pid_ief_reg3 = Reference signal% pid_fdb_reg3 = Feedback signal% h_in = [up_ieg3; ui_ieg3; ud_ieg3]% p = [T; Kp; Ti; Td; Kc; Umax; Umin]% 1 2 3 4 5 6 7%输出]% pid_out_ieg3 = Output signal% h_out = [iip_ieg3; ui_ieg3; ud_ieg3]%Y = e_ieg3; upisat_ieg3; saten_reg3; iip_ieg3; ui_reg3; ud_reg3] %其中% T = Sampling period (sec% Kp = Piopoilional gain% Ti = Litegial (reset tune (sec% Td = Deiivative time (sec% Kc = Integral collection gain% Umax = Maximum limit of output% Uniiii = Muimiuni linut of output% e_ieg3 = Eiioi% upisat__ieg3 = Pie-satuiated output% saten_ieg3 = Saturated difference% up_ieg3 = Propoitional output% ui_ieg3 = Integral output% iid」eg3 = Derivative output%定义PED常数Kp_ieg3 = p(2;Ki_ieg3 = p(l/p(3;Kd_ieg3 =p(4/p(l;Kc_reg3 = p(5;%定义变量pid_out_max = p(6;pid_out_min = p(7;upl_ieg3 =h_in(l;ui_reg3 = li_in(2;ud_ieg3 = h_in(3;13e_ieg3=pid_ief.reg3 - pid_fdb_ieg3; = Kp_ieg3*e_ieg3;=up_ieg3 + ui_ieg3 + ud_ieg3; up_reg3 upisat_ieg3 if (upisat_ieg3 > pid_out_maxpid_out_ieg3pid_out_ieg3elsepid_out_ieg3endsaten_ieg3ui_ieg3ud_ieg3h_out = [up_reg3; ui_ieg3; ud_ieg3];%返回计算结果Y = [e_ieg3; upisat_reg3; saten_ieg3; up_reg3; ui_reg3; ud_ieg3];=Kd_reg3 *(up_reg3 - upl_reg3; = ui_ieg3 十Ki_ieg3*up_reg3 十Kc_reg3 *saten_ieg3;=pid_out_reg3 - upisat_reg3; = uprsat_reg3; = pid_out_max; = pid_out_niui; elseif (uprsat_ieg3 < pid_out_min例2、无速度传感器的感应电动机控制实现======文件名称:ACI3_4.C功能描述:无速度传感器直接磁场定向控制三相交流感应电动机=================*/#include ',..\..\..\..\dniclib\cIQmatli\uiclude\IQmatliLib.h" /* 包含Iqmath 库的头文件*/ #include ',..\..\..\..\divlib\include\DSP28_Device.h n#include "aci3_4.li"#include "paiameter.li"#include "build.h”〃函数声明liitemipt void EvaTimei l(void;〃全局变量定义float Vd_testing = 0.25;float Vq_testing = 0;14 /* Vd (pu */ /* Vq (pi】*/float Id_ref = 0.35; /* Id 参考(pu */float Iq_ref = 0.05; /* Iq 参考(pu */float speed_ref = 0.5; /* 速度参考(pu */float T = 0.001/ISR_FREQUENCY; /* 采样周期(sec,参见paiametei.li */ mt i=0; mt pwmdac_clil=0;mt pwmdac_cli2=0;mt pwmdac_cli3=0;mt enable_flg=0;mt speedjoop_ps = 10;//速度环预定标器mt speed_loop_count = 1; // 速度环计数器ACIFE fel = ACIFE_DEFAULTS;ACISE sei = ACISE_DEFAULTS;CLARKE claikel = CLARKE_DEFAULTS; PARK paikl = PARK.DEFAULTS;IPARK lparkl = IP ARK_DEF AULTS;PIDREG3 pidl_id = PIDREG3_DEFAULTS;PIDREG3 pidl_iq = PIDREG3_DEFAULTS;PIDREG3 pidl_spd = PIDREG3_DEFAULTS;PWMGEN pwml = PWMGEN_DEF AULTS;PWMDAC pwmdacl = PWMDAC_DEFAULTS;DATALOG dlogl = DATALOG_DEFAULTS;SVGENDQ svgen_dql = SVGENDQ_DEFAULTS;CAPTURE capl = CAPTURE_DEFAULTS;SPEED_MEAS_CAP speed 1 = SPEED_MEAS_CAP_DEFAULTS; DRIVE drvl = DRIVE_DEFAULTS;RMPCNTL rcl = RMPCNTL_DEF AULTS;RAMPGEN lgl = RAMPGEN_DEFAULTS;PHASEVOLTAGE voltl = PHASEVOLTAGE_DEFAULTS;ILEG2DCBUSMEAS ilg2_vdcl = ILEG2DCBUSMEAS_DEFAULTS;ACIFE_CONST fel_const = ACIFE_CONST_DEFAULTS;15ACISE CONST sei const = ACISE CONST DEFAULTS;void maui(void { 15〃系统初始化//在DSP28_SysCul.c文件中包含初始化代码〃禁止CPU所有中断DINT; IER = 0x0000; IFR = 0x0000; LntPieCtil(; IiiitPieVectTable(;ImtSysCtil(;//初始化Pie控制寄存器〃初始化PIE中断向量表〃应用特定的函数,重新分配中断向量表,使能中断〃初始化EVA定时器1 // 配置Tuner 1 控制寄存器(EV A EvaRegs.GPTCONA.all = 0; // 使能中断EvaRegs.EV AIMRA.bit.TlUFINT = 1; EvaRegs.EV AIFRA.bit.TlUFINT = 1;//重新分配ISRs.//为T1PINT和T3PTINT重新分配PIE中断向量:// 为T1UFINT 使能PIE 组2 的中断PieCtrl.PIEIER2.all = M_INT6;// 为T1UFINT 使能CPU INT2〃使能全局中断和更高优先级的实时调试事件/*初始化模块*/pwml.n_penod = SYSTEM_FREQUENCY* 1000000*172; /* 预定标XI (T1,ISR 周ffi=Tx 1 */pwmdac 1 .pwmdac_penod = 2500; /* PWM 频率=30 kHz */p wml .imt(&pwml;EINT; //使能全局中断INTM ERTM;〃使能全局实时中断DBGMIER |= M_INT2; EALLOW; EDIS;PieVectTable.TlUFINT = & EvaTmieil;16pwmdac 1 .PWM_DAC_IPTRO = &pwmdac_chl; pwmdacl・PWM_DAC_IPTRl = & pwmdac_ch2; pwmdac l.PWM_DAC_IPTR2 = & pwmdac_ch3;pwmdac 1 .imt(&pwmdac 1;capl.imt(&capl;divl.imt(&drvl;ilg2_vdc 1 .init(&ilg2_vdc 1;/* 初始化DA TALOG 模块 */ dlogl.dlog_iptil = &clarke 1.as; dlogl.dlog_iptr2 = & clarke l.bs;/* 初始化SPEED_PR 模块(X128-T2, 50MHz, 25-teeth sprocket */speed l.ipm_max = 120*BASE_FREQ/P;speed 1 .speed_scalei =60*(SYSTEM_FREQUENCY*1000000/(128*25*speedl.ipm_max;/*初始化RAMPGEN模块*/lgl .step_angle_max = _IQ(BASE_FREQ*T;/* 初始化ACLFE 模块 */ fel_const.Rs = RS; fel_const.Ri = RR; fel^const.Ls = LS; fel_const.Lr = LR; fel_const.Lni = LM;fel_const.Ib = BASE_CURRENT; fel_const.Vb = BASE_VOLTAGE;fel_const.Ts = T;fel_const.calc(&fel_coiist;fel.Kl_fe = _IQ(fel_const.Kl; fel.K2_fe = _IQ(fel_const.K2; fel.K3_fe =_IQ(fel_const・K3; fel.K4_fe = _IQ(fel_const.K4; fel.K5_fe = JQ(fel_const.K5; fel.K6_fe =_IQ(fel_const・K6; fel.K7_fe = JQ(fel_const.K7;fel.K8_fe = _IQ(fel_const.K& fel.Kp_fe = _IQ(0.0625; fel.Ki_fe = _IQ(T/0.1447;17/*初始化ACI-SE模块*//*为Id初始化PID.REG3模块*/pidl_id.Kp_ieg3 = _IQ(0.9463; pidl_id.Ki_ieg3 = _IQ(T/0.04; pidl_id.Kd_ieg3 = _IQ(0/T; pidl_id.Kc_ieg3=_IQ(0.2;sel_const.Ri = RR; sel_const.Li = LR;sel_const.fb = BASE_FREQ; sel_const.fc = 200; seCconst.Ts = T;se l_const.calc(&se l_const;sel・Kl_se = _IQ(sel_const・Kl; sel.K2_se = JQ21(sel_const.K2; sel.K3_se =_IQ(sel_cons(・K3; sel.K4_se = _IQ(sel_const.K4; sel.base_rpm_se = 120*BASE_FREQ/P;pid 1 _id.pid_out_max = _IQ(0・30; pidl」d・pid_ou(_imn = _IQ(-0・30;严为Iq初始化ID.REG3模块*/pidl_iq.Kp_ieg3 = _IQ(0.9463; pidl_iq.Ki_ieg3 = _IQ(T/0.04; pidl_iq.Kd_ieg3 = _IQ(O/T; pidl_iq.Kc_ieg3 =_IQ(0.2;pidl_iq.pid_out_max = _IQ(0.95; pidl_iq.pid_out_nnn = _IQ(-0.95;/*为速度初始化PID.REG3模块*/pidl_spd.Kp_ieg3 =_IQ(0・964;pidl_spd.Ki_ieg3 = _IQ(T*speed_loop_ps/0・2; pidl_spd・Kd_ieg3 =_IQ(O/(T*speed_loop_ps; pid l_spd.Kc_reg3 =_IQ(0.2;pidl_spd.pid_out_max =」Q(1; pidl_spd.pid_out_min = _IQ(-1; // IDLE 循环}mtemipt void EvaTimei l(void {foi(;;;18if (speed_loop_coimt==speed」oop_ps {pidl_spd.pid_ief.reg3 = _IQ(speed_ief; pidl_spd.pid_fclb_ieg3 = sel.wijiat_se;pidl_spd.calc(&pidl_spd; speed_loop_count=l; }else speed」oop_coimt卄;pid l_iq.pid_ief_ieg3 = pid l_spd.pid_out_ieg3; pid l_iq.pid_fdb_reg3 = parkl.qe; pid l_iq.calc(&pid l_iq;pid l_id.pid_ief_ieg3 = _IQ(Id_ief; pidl_id.pid_fdb_ieg3 = paikl.de;pid l_id.calc(&pid l_id;ipaikl.de = pidl_id.pid_out_ieg3; ipaiki.qe = pidl_iq.pid_out_ieg3; lpaikl.ang =fel.theta_i_fe; ipaikl.calc(&ipaikl; svgen_dql.Ualfa = ipaiki.ds; svgen_dql.Ubeta = ipaiki.qs; svgen_dql.calc(&svgen_dql;pwml.Mfunc_cl = (int_IQtoIQ 15(svgen_dql.Ta; /* Mftinc_cl 采用Q15 格式 */ pwml.Mfiinc_c2 = (uit_IQtoIQ 15(svgen_dql.Tb; /* Mfiinc_c2 采用Q15 格式 */pwml.Mfiinc_c3 = (uit_IQtoIQ 15(svgen_dql.Tc;严Mfiinc_c3 采用Q15 格式 */pwml.update(&pwml; ilg2_vdcl.iead(&ilg2_vdc 1;clarke 1 .as = _IQ 15toIQ((longilg2_vdc 1 .Lneas_a; claikel.bs =_IQ 15toIQ((longilg2_vdc 1 ・Imeas_b; clarkel.calc(&claike 1;paikl.ds = clarke 1.ds; paikl.qs = claikel.qs; paikl.ang = fel.tlieta_i_fe; paikl.calc(&paikl;voltl.DC_bus = _IQ15toIQ((longilg2_vdcl.Vdc_meas; voltl.Mfunc_Vl = svgen_dql.Ta;19voltl.Mftinc_V2 = svgen_dql.Tb; voltl.Mfiinc_V3 = svgen_dql.Tc;sel・i_ds_se = claikel.ds; sel・i_qs_se = claikel.qs; sel.psi_di_se = fel.psi_di_fe;sel.psi_qi_se = fel.psLqi^fe; sel.tlieta_i_se = fel.tlieta_i_fe; sel.calc(&sel;/*调用capture读取函数*/fel.u_ds_fe = voltl.Vdiiect; fel.u_qs_fe = voltl.Vquadia; fel.i_ds_fe = claikel.ds; fel.i_qs_fe = claikel.qs; fel.calc(&fel; voltl.calc(&voltl;if((capl.iead(&capl==0 {speed 1 .tune_stamp=(long(cap 1 .tnne_stamp;严读出新的tune stamp */ speed 1 .calc(&speed 1;}pwmdac_clil = (mt_IQtoIQ 15(svgen_dql .Ta; pwmdac_cli2 =(intJQtoIQ 15(clarke 1 .as; pwmdac_ch3 = (int_IQtoIQ 15(fe 1 .tlieta_i_fe;drvl・enable_flg = enable.flg; divl.update(&ckvl;〃在该定时器使能中断}//===========================EvaRegs.EV AIMRA.bit.TlUFINT = 1;PieCtrl.PIEACK.all = PIE AC K_GR0UP2; pwmdac 1 .update(&pwmdac 1;dlog 1 .update(&dlog 1;严调用速度计算函数*/EvaRegs.EV AIFRA.all = BIT9; //相应PIE组2接收到的更多中断20// No more.//—============—==========—=====文件名称:功能描述:ACI.SE.C (IQ version感应电动机开环速度估计器=====/* Iqmath 库函数 */ #include "IQmatliLib.h" #mclude "aci_se.li" voidaci_se_calc(ACISE *v { _iq w_slip, w_syn; /* Slip computation */ v->psi_i_2 =JQmpy(v->psLdi_se,v->psi_di-se+_IQmpy(v->psLqi_se,v->psLqi_se; w_slip = _IQmpy(v・>K 1 _se,(_IQmpy(v->psi_di_se,v・>i_qs_se ・ _IQmpy(v->psi_qi_se,v- >i_ds_se; w_slip =_IQdiv(w_slip,v->psi_i_2; /* 同步速度计算 */ if ((v->tlieta_i_se < DIFF MAX LIMIT&(w>tlieta i se > DIFF MIN LIMIT /* Q21 = Q21*(GL0BAL_Q-GL0BAL_Q */ w_syn =JQmpy(v->K2_se,(v->theta_i_se - v- >theta_r_old; else w_svn = v->wf_psi_r; /* 低通滤波器*//* Q21 = GL0BAL_Q*Q21 十GL0BAL_Q*Q21 */ v->wi_psLf = _IQmpy(v->K3_se,v->wi_psi_i + JQmpv(v- >K4_se,w_syn; v->theta_i_old = v->theta_i_se; /* Q21 = Q21 - GLOBAL_Q */v- >wi_liat_se = v->wi_psi_f - _IQtoIQ21(w_slip; if (v->wi_hat_se>_IQ21(l v->wi_liat_se=_IQ(1; else if (v->wiJiat_se<_IQ21 (-1 v->wi jiat_se = _IQ(-1; else v->wi jiat_se = _IQ2 ltoIQ(v->wi_hat_se; /* QO = QO*GLOBAL_Q => _IQXinpy(, X = GLOBAL_Q */ 21v->wi jiat_ipm_se = _IQmpy(v->base_rpm_se.v->wi Jiat_.se; }严================================= ========文件名称:ACLFE.C功能描述:感应电动机的磁通估计Descuption: Flux Estimator of Induction Motor=========*/ #include n..\include\aci_fe.h n #include M..\include\ataii2_tab.li M extern float sin_tab[]; void aci_fe_calc(ACIFE *v { float i_ds_e, enoi\ eniflold; ATAN2TAB psi_r =ATAN2TAB_DEFAULTS; /* 定子电流PARK 变换 */ if(v- >theta_r_fe+0.25 > 1 i_ds_e =v->Lqs_fe*sin_tab[(int(v->theta_r_fe*256]十v- >Lds_fe*sm_tab[(uit(v->tlieta_i_fe*256-192]: else i_ds_e = v->i_qs_fe*sin_tab[(mt(v- >theta_r_fe*256] +v->i_ds_fe*sin_tab[(int(v->tlieta_i_fe*256+64]; /* 电流模型选择(转子磁通矢量控制方程)*/ v->flx_di_e = v->Kl_fe*v->flx_di_e - v- >K2_fe*i_ds_e;严Paik 逆变换 */ if (v->tlieta_i_fe+0.25 > 1 v->flx_di_s = v- >flx_di_e*sin_tab[(mt(v->theta_r_fe*256-192]; else v->flx_di_s = v- >flx_di_e*sin_tab[(int(v->theta_r_fe*256+64]; v->flx_qi_s =v- >flx_di_e*sin_tab[(int(v->theta_r_fe*256]; /* 根据电流模型计算定子磁通 */ v- >flx ds s = v->K3 fe*v->flx dr s 十v->K4 fe*v->i ds fe; v->flx qs s = v->K3 fe*v->flx_qi_s 十v->K4_fe*v->i_qs_fe;严PI 控制器 */ eiroi = v->psi_ds_fe - v->flx_ds_s;v- >ucomp_ds = v->Kp_fe*enoi 十v->ui_ds; v->ui_ds = v->Kp_fe*v->Ki_fe*enoi 十v- >ui_ds;22enof = v->psLqs_fe - v->flx_qs_s; v->ucomp_qs = v->Kp_fe*eiioi + v->ui_qs; v- >ui_qs = v->Kp_fe*v->Ki_fe*enoi十v->ui_qs; /*根据反电动势的积分估计定子磁通*/ emf old =v->emf ds; v->enif ds = v->u ds fe - v->ucomp ds - v->K5 fe*v- >i_ds_fb; v->psi_ds_fe =v->psi_ds_fe 十v->K6_fe*(0.5*(v->emflds 十emflold; eniflold = v->eniflqs; v->enifLqs =v->u_qs_fe - v->ucomp_qs - v->K5_fe*v->i_qs_fe; v->psi_qs_fe = v->psi_qs_fe 十v->K6_fe*(0.5*(v->eniflqs 十emLold;严根据反电动势的积分估计转子磁通 */ v->psi_dr_fe = v->K7_fe*v->psi_ds_fe - v->K8_fe*v->i_ds_fe; v->psi_qi_fe = v->K7_fe*v->psi_qs_fe -v->K8_fe*v->i_qs_fe; /* 计算转子磁通角 */ psi_i.y = v->psi_qi_fe; psi_i.x = v->psLdi_fe;psi_f.calc(&psi_i; v->tlieta_i_fe = psi.f.ang; } 23。

一种基于DSP的六相感应电机控制器

说明书摘要本实用新型公开了一种基于DSP的六相感应电机控制器,包括用于实现AC-DC-AC转换的电源转换电路,分别与所述电源转换电路连接的DSP主控器和六相感应电机,连接在所述DSP主控器的PWM端与电源转换电路之间的驱动隔离模块,以及连接在所述六相感应电机与DSP主控器的ADC端之间的电流、电压检测模块;5所述六相感应电机的位置反馈端与DSP主控器的CAP端连接。

本实用新型所述基于DSP的六相感应电机控制器,可以克服现有技术中谐波损耗大、转矩脉动大和可靠性低等缺陷,以实现谐波损耗小、转矩脉动小和可靠性高的优点。

摘要附图AC位置反馈信号权利要求书1.一种基于DSP的六相感应电机控制器,其特征在于,包括用于实现AC-DC-AC 转换的电源转换电路,分别与所述电源转换电路连接的DSP主控器和六相感应电机,连接在所述DSP主控器的PWM端与电源转换电路之间的驱动隔离模块,以及连接在5所述六相感应电机与DSP主控器的ADC端之间的电流、电压检测模块;所述六相感应电机的位置反馈端与DSP主控器的CAP端连接。

2.根据权利要求1所述的基于DSP的六相感应电机控制器,其特征在于,所述电源转换电路,包括与市电连接的整流电路,以及并行连接在所述整流电路与六相感应电机之间的第一逆变电路和第二逆变电路;所述隔离模块的第一输出端和第二输出10端,分别与第一逆变电路的控制端和第二逆变电路的控制端连接;所述第一逆变电路的保护端与DSP主控器的PDPINT端连接,第二逆变器的保护端与DSP主控器的PDPINT端连接;所述第一逆变电路的3个输出端与六相感应电机的a、b、c三相的输入端连接,第二逆变器的3个输出端与六相感应电机的d、e、f三相的输入端连接,第一逆变电15路和第二逆变电路与六相感应电机的6个公共端,分别连接至电流、电压检测模块的6个输入端。

3.根据权利要求2所述的基于DSP的六相感应电机控制器,其特征在于,所述电源转换电路,还包括连接在整流电路与相应逆变电路之间的滤波电容。

基于DSP的感应电机矢量控制变频调速系统设计

基于DSP的感应电机矢量控制变频调速系统设计作者:汲德明任一峰赵孟强胡威来源:《电子科学技术》2016年第03期摘要:本文采用TI公司的数字信号处理芯片TMS320F28335为控制核心,完成了感应电机的矢量控制变频调速系统的硬件和软件设计,合理地解决了矢量控制的复杂算法较难实现的问题,并给出了定子电流、直流母线检测、限幅保护等电路,相比采用TMS320F2812、TMS320F2808等同类芯片能有效避免诸多不足。

实验表明,该系统稳定性好、抗干扰能力强、响应速度快。

关键词:感应电机;DSP;矢量控制;TMS320F28335中图分类号:TM346.2 文献标识码: A 文章编号: 2095-8595 (2016) 03-232-05电子科学技术 URL: http// DOI: 10.16453/j.issn.2095-8595.2016.03.010引言矢量控制是上世纪70年代由德国西门子公司的F.Blaschke提出的基于坐标变换的高性能控制理论来解决交流电机的转矩问题。

简单的表述,矢量控制通过Clarke和Park坐标转换,得到两相同步旋转坐标系(d—q)电机数学模型,再按磁场定向,把定子电流分解为励磁(M)和转矩(T)分量,由此实现交流电机等效于直流电机调速系统相同的良好静、动态性能的控制[1]。

矢量控制具有转矩响应速度快、调速范围宽、精度高等优点,图1为矢量控制原理图。

异步电机是高阶、非线性、强耦合的多系统变量,涉及很多的电机参数,对异步电机的控制需要高性能的数字信号处理芯片来解决参数变化对矢量控制造成的不良影响。

设计采用TI 公司的32位浮点运算的TMS320F28335DSP高性能芯片,独特的ePWM模块有多达18路的PWM输出,且具有强大的运算能力和快速实时处理能力,能够解决复杂的矢量控制参数运算,本设计是一套全数字化矢量控制硬件系统,并给出相关电路及测试数据结果,验证了系统的可行性[2]。

基于DSPF2407A的三相感应电机SVPWM恒压频比控制


5 、控制系统的主要硬件结构
图3 为F2 0 ADS 控 制之下的小功率异 步 47 P 电机 变调速 系统试验平 台的硬件结构框 图。变
由式 ( )可以看出,保持V/ 图1恒压频 3 f 比控制 恒定 ,则 A就保持恒 定不变 。电J 频 制曲线率之 的比例关 系如图 1 所示。
【 陶 然 , 苏 建 微 三相S P 3 】 V WM ̄算法研
目 程术 技
基于D P 20A的三相感应 S F 47 电机S P M V W 恒压频比控制
许鹏飞 周孟然 吴宏伟 安徽理工大学电气与信启工程学院 、

S WM调制技术 使得系统具 有较 高的控制性 VP
能 ,充分 显示 丁其转矩脉 动小 、噪声低 、电压
利用率高等优点。
0} :介绍了 i 浸 恒压频比 控制技术以及空
静 止坐标 系下 的交流电流 。再通过 按转子磁场
定向旋转变换 , 等效成同步旋转坐标 系下 的直流
相应 的控 制 系统 软件 流程和 主要 硬件 结构 框 图。
制 ;F2 o A 47
然后模仿直 流电动机的控制 方法 , 求得直 薯嚣 ≮嚣 关键词 恒压频比控制; 空间矢量脉宽调 电流 , 流电动机的控制量 ,经过相应的坐标反变换 , 实
作者简介 : 许鹏飞 (92 18 )男,汉族 ,河南南 阳人 ,在
读硕士,主要研 究方向为 电力传动控制技术。 周孟然 (95 )男,汉族 ,博 士、教授 ,研 16一 究生导师,主要研究方向为智能检测与信息处
理。
电 压
义 。并且 由于 计算单 元采用 D P 2 0 A作为 S F 47
3 利用F 4 7 2 0 实现S P 算法 V WM 每个F 4 7 2 0 的事件管理 器E V模块 都具有操 作十分简单的对称空间矢量P WM波形产生的内
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Outputs
ACI parameter
*
GLOBAL_Q valued between 1 and 30 is defined in the IQmathLib.h header file.
Special Constants and Data types ACI The module definition is created as a data type. This makes it convenient to instance an interface to the 3-phase Induction Motor module. To create multiple instances of the module simply declare variables of type ACI. ACI_handle User defined Data type of pointer to ACI module ACI_DEFAULTS Structure symbolic constant to initialize ACI module. This provides the initial values to the terminal variables as well as method pointers.
ACI
Description
Emulated (per-unit) 3-phase Induction Motor
This module implements a discrete equivalent of a 3 -phase induction motor using trapezoidal approximation with predictor-corrector. The induction model is normalized by the adjustable base quantities of voltage, current, torque, frequency, and flux linkage. The induction motor is modeled in the stationary reference frame. The outputs of this module are the stator currents, rotor flux linkages, electromagnetic torque, electrically angular velocity, and actual rotor speed in rpm. All of these outputs are in per-unit except the actual rotor speed.
Format*
GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q Q0 GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q GLOBAL_Q Q0
Module Properties
Type: Target Independent, Application Dependent Target Devices: x28x C Version File Names: aci.c, aci.h IQmath library files for C: IQmathLib.h, IQmath.lib
Description
alfa-axis phase voltage beta-axis phase voltage load torque alfa-axis phase current beta-axis phase current alfa-axis rotor flux beta-axis rotor flux electromagnetic torque electrically angular velocity motor speed in rpm constant using in rotor flux cal constant using in rotor flux cal constant using in rotor flux cal constant using in stator current cal constant using in stator current cal constant using in stator current cal constant using in stator current cal constant using in torque cal constant using in rotor speed cal constant using in rotor speed cal base speed in rpm
Methods void aci_calc(ACI_handle); This definition implements one method viz., the Induction Motor computation function. The input argument to this function is the module handle. Module Usage Instantiation The following example instances two ACI objects ACI aci1, aci2;
2
C Interface
Module Terminal Variables/Functions
Item Inputs Name
ualfa ubeta load_torque ialfa ibeta psi_r_alfa psi_r_beta torque wr wr_rpm K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 base_rpm
Range(Hex)
80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF 80000000-7FFFFFFF
3
C Interface
Initialization To Instance pre-initialized objects ACI aci1 = ACI_DEFAULTS; ACI aci2 = ACI_DEFAULTS; Invoking the computation function aci1.calc(&aci1); aci2.calc(&aci2);
pu pu ualfa ubeta load_torque pu pu pu ACI pu pu pu pu Q0 ialfa ibeta psi_r_alfa psi_r_beta torque wr wr_rpm
Availability
This IQ module is available in one interface format: 1) The C interface version

Each pre-initialized “_iq” ACI structure consumes 46 words in the data memory
?
Code size mentioned here is the size of the calc() function
1
Interface C Interface Object Definition The structure of ACI object is defined by following structure definition typedef struct { _iq ualfa; _iq ubeta; _iq load_torque; _iq ialfa; _iq ibeta; _iq psi_r_alfa; _iq psi_r_beta; _iq torque; _iq wr; long wr_rpm; _iq K1; _iq K2; _iq K3; _iq K4; _iq K5; _iq K6; _iq K7; _iq K8; _iq K9; _iq K10; long base_rpm; _iq alpha; void (*calc)(); } ACI; typedef ACI *ACI_handle; /* Input: alfa-axis phase voltage */ /* Input: beta-axis phase voltage */ /* Input: load torque */ /* Output: alfa-axis phase current */ /* Output: beta-axis phase current */ /* Output: alfa-axis rotor flux */ /* Output: beta-axis rotor flux */ /* Output: electromagnetic torque */ /* Output: electrically angular velocity */ /* Output: motor speed in rpm (Q0) */ /* Parameter: constant using in rotor flux calculation */ /* Parameter: constant using in rotor flux calculation */ /* Parameter: constant using in rotor flux calculation */ /* Parameter: constant using in stator current cal */ /* Parameter: constant using in stator current cal */ /* Parameter: constant using in stator current cal */ /* Parameter: constant using in stator current cal */ /* Parameter: constant using in torque calculation */ /* Parameter: constant using in rotor speed cal */ /* Parameter: constant using in rotor speed cal * / /* Parameter: base motor speed in rpm */ /* Parameter: trapezoidal integration parameter (0-1) */ /* Pointer to calculation function */
相关文档
最新文档