无刷直流电机的matlab仿真(直流电机matlab仿真模型)

海潮机械 2023-01-24 16:14 编辑:admin 297阅读

1. 直流电机matlab仿真模型

看一下仿真参数设置是否合理,步长是否太长,示波器存储点数是否够用,求解器选择是否合理,等等。

另外注意一下初始状态的设置,最好给加个开关,在仿真开始后,开关再打开。仿真时间再放长一些,看看是不是80ms还没来得及发生明显变化。仿真还是很有规律的,沿着线索一点一点查就是了。

2. 直流电机的matlab仿真

简述DTMF信号产生的基本原理,提出使用SPCE061芯片的D/A端口和使用I/O端口模拟D/A产生DTMF信号的两种实现方案,并通过实验和仿真对两种实现方案进行对比分析。实验证明,由于D/A精度较高,采用D/A输出的DTMF信号质量比使用I/O电阻网络的DTMF质量好;但在采样频率足够高的情况下,使用I/O电阻网络仍然可以满足电信标准要求。

关键词:双音多频(DTMF) sin函数计算 SPCE061A MATLAB仿真

在全世界范围内,双音多频DTMF(Dual Tone Multi Frequency)信令逐渐使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信号。近年来,DTMF也应用在交互式控制中,如语言菜单、语言邮件、来电显示、电话银行和ATM终端等。在芯片内部没有内置DTMF产生器时,用普通D/A甚至于用4~5个普通I/O口和简单的电阻网络来模拟D/A实现DTMF信号的产生,将扩大DTMF在工程中的应用,具有一定的应用价值。本文主要研究以上两种用软件产品 DTMF信号的方案。

DTMF信号由8个频率两两组合而成。这8个频率又分为低频群和高频群两组。低频群的4个频率依次为697Hz、770Hz、852Hz、941Hz;高频群的4个频率依次为1209Hz、1336Hz、1477Hz、1336Hz。在通信领域应用中,DTMF主要用于电话机拨号信号和CID(Caller Identification,来电显示)信号的传送。在应用于电话机的拨号信号中,按照国家电信标准,其信号持续时间和间隔时间都不小于40ms,而频率偏差不大于1.5%。

1 传统的可编程硬件DTMF发生器原理

传统的DTMF发生器芯片有Hotel公司的HT9200A/B、Mitel公司的MT8880等。部分MCU也内置了DTMF发生器,其DTMF信号产生原理可简述如下:

将振荡器产生的高频振荡信号分别送至两个计数器,当计数器达到预设的值时,产生一次反转信号输出,形成低频方波。其中计数器寄存器可用软件设置且有自动装载功能。通过这两个计数器可设置输出的两路方波频率。软件编写控制程序时,只须将对应频率的计数值写入控制寄存器便可自动产生所需的频率信号。

从以上两路输出的方波再进行信号正弦化处理和幅度控制,然后将两路信号同时送至信号混合器输出。这样,如果其中一路输出的方波频率接近DTMF低频群中的一个频率,而另一路接近DTMF高频群中的一个频率,从混合器输出的信号便是所需的DTMF信号了。

2 用D/A产生DTMF信号

DTMF软件产生器是基于两个用软件模拟的二阶数字在弦波振荡器,一个用于产生低频,一个用于产生高频。典型的DTMF信号频率范围是697Hz~1633Hz。选取8192Hz作为采样频率,即可满足Nyquist条件。系统中信号合成的函数方程为

Y(n)=a0+a1sin(2Pif0n/fs)+a2sin(2Pif1n/fs) (1)

式中:a0为直流分量;f0、f1分别为DTMF中的低频和高频;fs为采样频率,在此定为8192Hz;a1、a2分别为f0、f1的振幅;n为采样点数。

2.1 sin函数的计算

采样频率并不是DTMF的8个频率中各频率的整数倍,若采用查表法得到各采样点处理的D/A输出值,由于查表意味着输出值周期性的出现,则要求采样频率是输出频率的多个周期的整数倍。又由于输出数据表中需要包括多个周期,而且要逼近上述的整数倍,因此输出频率必须是采样频率整数倍的倍数。由此产生以下几个问题:

①多个周期的数据表较大(平均一个频率20字左右);

②数据表中各数值的计算烦杂;

③产生的信号频率存在频偏。

若采用计算sin函数的方法,以上问题都将迎刃而解。只是,如何计算sin函数呢?在传统的电子计算机系统中,处理浮点数比处理整数要复杂且占用CPU较多的时间;而在郑易里片机系统中,一般对程序运行的时间都有要求。因此,本文采用了定点小数近似表示浮点数的方法,再利用线性插值法计算各点处的正弦函数值。

定点小数的表示方法:将需要表示的小数空间乘上一个系数映射到整数所能所示的空间。本文使用16位的单片机SPCE061,其D/A的精度为10位,DAC输出寄存器为16位数据的高10位;sin函数的值域为[-1,+1],取整数域[0x0000,0x03ff]映射sin函数值中的[0,+1],取补数映射sin函数值中的负值,即可满足DTMF输出精度要求。要求将1映射为0x03ff,因此,当函数值为正时,应乘以0x03ff即1023,经取整后作为计算sin函数子程序的输出;当函数值为负时,只须将对应的正时的函数值取补便可得到。

计算sin函数时,将0~2π映射为整数域的[0x0000,0x4000],因此,可通过整数域的第13和12位获得象限信息。查表时只计算第一象限[0, π/2]的正弦值,其它象限的函数仁政由三角函数公式计算得到。第一象限sin函数的计算:0~π/2被映射到整数域的[0x0000,0x1000],将其分为16等分,将分割点上的函数值建立数据表,即将0、0x0100、0x0200等17个点处对应的正弦值列表,若弧度值x介于两分割点x1与x2之间,则通过查表获得sin(x1)与sin(x2),则有:

sin(x)=sin(x1)+[sin(x2)-sin(x1)](x2-x1)/256

其它象限可根据三角函数公式获得类似的计算公式。

2.2 DTMF信号的软件合成

由于在DTMF的传输过程中,高频在线路中的传输损耗比低频高,为了保证信号到达交换机时高、低频信号电平基本相当,在DTMF信号产生器中,标准规定频率组合中高频分量电平应比低频分量电平高21dB。在DTMF硬件产生器中,这一处理是在高、低频信号混合器之间的低频通道中加适当的衰减电路完成的;而在用D/A产生DTMF信号的过程中,高、低频信号的混合也是由软件完成的。因此,必须在高、低频信号的产生过程中就考虑使低频信号的振幅略低于高频信号,这样才能从输出的信号中获得所需的电平差。由2.1中所描述的sin函数计算得的函数值,为实际函数值的1023倍。式(1)中,取y(n)的电压范围为0~5V,直流分量a0为2V;令高频信号的电平为Sh,低频信号的电平为S1,单位为dBm,则有

Sh=-20lg(Vh/V0) S1=-20lg(V1/V0) 1Sh-S12

取Vh/V1=6/5,则Sh-S1≈1.6dB,即取a1为5,a2为6,即可得到高、低频的电平差为1.6dB的信号。将y(n)映射为SPCE061的D/A输出值[0x0000,0xffc0],则DAC的输出为(0xffc0/5)y(n),公式如下:

设 A=1023sin(2Pif0n/fs)

B=1023sin(2f1n/fs)(n=0,1,2…)

DAC(n)=(0xffc0/5) y(n)=

12.8(1023a0+a1A+a2B)=

26189+5A+6B (2)

式(2)中的A和B都由计算sin的子程序求得。由于2π在量化为整数时为0x4000,即16384,而fs=8192Hz,实际的sin函数子程序自变量便简化为(2nf0和0x3fff),这对于单片机的处理是相当容易的。由上述公式求得的DAC值,已将计算结果数据移到了高10位,可直接输出到D/A寄存器。

3 用I/O口模拟D/A产生DTMF信号

在某些应用中,所使用的MCU比较简单,如8051;或者因为对成本控制的要求而不能使用带D/A的MCU,但又需要用这些MCU产生DTMF信号,其替代方案是用多个I/O口和电阻网络来模拟D/A。当然,这样的电路产生的DTMF,其输出精度会比由D/A产生的低,噪声也会比较大,但在某些应用中已经可以满足DTMF输出的要求了。

3. MATLAB仿真直流电机机械特性

这几天我在帮师兄做傅里叶分析,就是从示波器踩过来的数据,保存在excel文件中。用matlab读取,进行fft运算。大概通过几天的学习dft,了解到如果你拿来一个向量,N个点。进行fft后结果当然也是N个点。但是这些点的频率你是无法得知的。因为你没有交代着N个点的时间长度。

以我最近帮师兄做的工作为例。示波器对300HZ电压进行采样,时长0.1s。那么也就是30个周波。由于示波器的采样频率很高,所得到的数据是50w个点。这仅仅是0.1s啊 保存在exce结果通过matlab读取后,进行fft运算。结果也是50w 个点。于是问题来了,哪一个点是我要的300hz呢。答案是第31个点。 为什么呢,因为matlab数组是从1开始,第一个点是直流分量。即0hz,那为什么第31点是300hz呢。因为时间长度是0.1s。那么这段信号进行fft的分辨率就是10hz。所以300hz就是 30+1的点。 顺便说一句,matlab进行fft运算的结果,幅值要经过*2/n的运算才能得到真实值。n是采样点个数。还有,直流分量要再除以2,即第一个点虽然是直流 但是 幅值是真实值的2倍。原理高数傅里叶级数讲过,已经喂狗。 回答的不好,不对的地方请高手指正。

4. 直流电动机的matlab仿真

其实仿真使用很简单,关键是在你要仿真内容的设计。

1.点击快捷按钮,即可弹出SIMULINK窗口;

2.在MATLAB命令行中输入SIMULINK,即可弹出SIMULINK窗口;

3.在菜单栏中也可以找到SIMULINK窗口;

5. matlab 电机仿真

T是torque的缩写,转矩的意思 m是max的缩写,最大的意思 Tm组合就是最大转矩(是在额定条件下运行时,增加负载而不至于使电机突然停下时电动机所能产生的最大转动力矩。

一般最小值约为额定转矩的1.6~2.5倍,有特殊要求时,可设计成2.8~3.0倍。)

6. 基于matlab的电机控制系统的仿真

打开电脑之后,点击打开mat lab的直流电机之后,点击右上角的参数设置,参数为20才参数

7. 基于matlab直流电机调速系统的仿真

他励直流电动机的启动方式有:

1)电枢回路串电阻起动;

2)降低电枢电压启动;

3)直接启动;针对他励直流电机调速系统参数模型的非线性、时变性,常规PID控制器参数离线整定带来的非优化的问题,提出一种基于DSP的模糊PID控制器算法,以电流反馈误差及误差的变化率作为模糊控制器的输入变量,采用参数自整定的模糊PID控制器实现PID参数在线优化。以DSP开发系统作为仿真平台,将他励直流电机传递函数转换为差分方程,构成基于模糊PID控制器的数字闭环他励直流电机仿真系统。利用DSP高速运算能力进行在线仿真,观察常规PID控制器和模糊PID控制器产生的系统输出波形。CCS2.0和MATLAB仿真实验表明:模糊PID控制器基本实现输出无超调,系统阶跃响应的上升时间和调整时间均比常规的PID控制器阶跃响应的小。