FOC的控制核心——坐标变换■坐标系口一定子坐标系(静止)一A-B-C坐标系(三相定子绕组、相差120度)一a-β坐标系(直角坐标系:a轴与A轴重合、β轴超前a轴90度)口一转子坐标系(旋转)-d-q坐标系(d轴一转子磁极的轴线、q轴超前d轴90度)口一定向坐标系(旋转)M-T坐标系(M轴固定在定向的磁链矢量上,T轴超前M轴90度)转子磁场定向控制一-M-T坐标系与d-q坐标系重合FOC的控制核心——SVPWM■空间矢量口根据功率管的开关状态(上管导通是“1",关闭是“0")定义了8个空间矢量。其中000和111是零矢量。■扇区口空间矢量构成6个扇区口确定Vref位于哪个扇区,才能知道用哪对相邻的基本电压空间矢量去合成Vref。■参考电压矢量合成口利用基本电压空间矢量的线性时间组合得到定子参考电压Vref。■七段式SVPWM,由3段零矢量和4段相邻的两个非零矢量组成。3段零矢量分别位于PWM的开始、中间和结尾。■非零电压空间矢量能使电机磁通空间矢量产生运动,而零电压空间矢量使磁通空间矢量静止
标签: foc
上传时间: 2022-06-30
上传用户:qdxqdxqdxqdx
选择一幅黑白色类似于圆形的图片,运行后的A为黑色像素数,B为边界像素数,4*3.14*A/(B*B)即圆形度,此值越接近1,说明越像圆形,偏离1比如0.7,说明已经不算是圆形
标签: 黑白
上传时间: 2016-06-15
上传用户:zq70996813
本代码为编码开关代码,编码开关也就是数字音响中的 360度旋转的数字音量以及显示器上用的(单键飞梭开 关)等类似鼠标滚轮的手动计数输入设备。 我使用的编码开关为5个引脚的,其中2个引脚为按下 转轮开关(也就相当于鼠标中键)。另外3个引脚用来 检测旋转方向以及旋转步数的检测端。引脚分别为a,b,c b接地a,c分别接到P2.0和P2.1口并分别接两个10K上拉 电阻,并且a,c需要分别对地接一个104的电容,否则 因为编码开关的触点抖动会引起轻微误动作。本程序不 使用定时器,不占用中断,不使用延时代码,并对每个 细分步数进行判断,避免一切误动作,性能超级稳定。 我使用的编码器是APLS的EC11B可以参照附件的时序图 编码器控制流水灯最能说明问题,下面是以一段流水 灯来演示。
上传时间: 2017-07-03
上传用户:gaojiao1999
1. 编写M程序,利用图像点运算的线性函数:G = aF + b, 给出a、b的不同值,改变图像的对比度、亮度以及图像反相的效果。 2. 利用“二值图像与原图像做点乘,得到子图像”的原理.,编写M程序,构造特殊的二值图像,最终得到需要的子图像。 3. 编写M程序,实现两个大小不同图像的叠加。 4,(提高题)编写M程序,实现图像的动态平移。
上传时间: 2017-05-10
上传用户:mouroutao
在过去的十几年间,FPGA取得了惊人的发展:集成度已达到1000万等效门、速度可达到400~500MHz。随着FPGA的集成度不断增大,在高密度FPGA中,芯片上时钟的分布质量就变得越来越重要。时钟延时和时钟相位偏移已成为影响系统性能的重要因素。现在,解决时钟延时问题主要使用时钟延时补偿电路。 为了消除FPGA芯片内的时钟延时,减小时钟偏差,本文设计了内置于FPGA芯片中的延迟锁相环,采用一种全数字的电路结构,将传统DLL中的用模拟方式实现的环路滤波器和压控延迟链改进为数字方式实现的时钟延迟测量电路,和延时补偿调整电路,配合特定的控制逻辑电路,完成时钟延时补偿。在输入时钟频率不变的情况下,只需一次调节过程即可完成输入输出时钟的同步,锁定时间较短,噪声不会积累,抗干扰性好。 在Smic0.18um工艺下,设计出的时钟延时补偿电路工作频率范围从25MHz到300MHz,最大抖动时间为35ps,锁定时间为13个输入时钟周期。另外,完成了时钟相移电路的设计,实现可编程相移,为用户提供与输入时钟同频的相位差为90度,180度,270度的相移时钟;时钟占空比调节电路的设计,实现可编程占空比,可以提供占空比为50/50的时钟信号;时钟分频电路的设计,实现频率分频,提供1.5,2,2.5,3,4,5,8,16分频时钟。
上传时间: 2013-07-06
上传用户:LouieWu
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
enter——选取或启动 esc——放弃或取消 f1——启动在线帮助窗口 tab——启动浮动图件的属性窗口 pgup——放大窗口显示比例 pgdn——缩小窗口显示比例 end——刷新屏幕 del——删除点取的元件(1个) ctrl+del——删除选取的元件(2个或2个以上) x+a——取消所有被选取图件的选取状态 x——将浮动图件左右翻转 y——将浮动图件上下翻转 space——将浮动图件旋转90度 crtl+ins——将选取图件复制到编辑区里 shift+ins——将剪贴板里的图件贴到编辑区里 shift+del——将选取图件剪切放入剪贴板里 alt+backspace——恢复前一次的操作 ctrl+backspace——取消前一次的恢复 crtl+g——跳转到指定的位置 crtl+f——寻找指定的文字
上传时间: 2013-12-29
上传用户:13033095779
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230