基于Simulink的电力电子系统仿真_simulink电力系统仿真实例

基于Simulink的电力电子系统仿真_simulink电力系统仿真实例,第1张

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。那么如何使用matlab上建立simulink仿真呢?本文小编带你建立simulink仿真程序。

方法步骤:打开matlab2014a程序

建立方法之一:

在主工具栏里边找到新建,然后选择simulinkmodel,点击即可建立。

建立方法之二:

在主工具栏里点击simulink库,进入simulink库界面。

2在simulink库界面工具栏中选择file--new--model,或者直接按ctrlN即可建立

你好回答如下:

程序C和H文件:

#ifndef LCD_CHAR_1602_2005_4_9

#define LCD_CHAR_1602_2005_4_9

#include <intrinsh>

//Port Definitions

sbit LcdRs  = P2^0;

sbit LcdRw  = P2^1;

sbit LcdEn   = P2^2;

sfr  DBPort  = 0x80;  //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0数据端口

//内部等待函数

unsigned char LCD_Wait(void)

{

LcdRs=0;

LcdRw=1; _nop_();

LcdEn=1; _nop_();

//while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,

//可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80

//实际硬件时打开此语句

LcdEn=0;

return DBPort;

}

//向LCD写入命令或数据

#define LCD_COMMAND   0      // Command

#define LCD_DATA   1      // Data

#define LCD_CLEAR_SCREEN 0x01      // 清屏

#define LCD_HOMING    0x02      // 光标返回原点

void LCD_Write(bit style, unsigned char input)

{

LcdEn=0;

LcdRs=style;

LcdRw=0;  _nop_();

DBPort=input; _nop_();//注意顺序

LcdEn=1;  _nop_();//注意顺序

LcdEn=0;  _nop_();

LCD_Wait();

}

//设置显示模式

#define LCD_SHOW   0x04    //显示开

#define LCD_HIDE   0x00    //显示关

#define LCD_CURSOR   0x02  //显示光标

#define LCD_NO_CURSOR  0x00    //无光标

#define LCD_FLASH   0x01    //光标闪动

#define LCD_NO_FLASH  0x00    //光标不闪动

void LCD_SetDisplay(unsigned char DisplayMode)

{

LCD_Write(LCD_COMMAND, 0x08|DisplayMode);

}

//设置输入模式

#define LCD_AC_UP   0x02

#define LCD_AC_DOWN   0x00      // default

#define LCD_MOVE   0x01      // 画面可平移

#define LCD_NO_MOVE   0x00      //default

void LCD_SetInput(unsigned char InputMode)

{

LCD_Write(LCD_COMMAND, 0x04|InputMode);

}

//移动光标或屏幕

/

#define LCD_CURSOR  0x02

#define LCD_SCREEN  0x08

#define LCD_LEFT  0x00

#define LCD_RIGHT  0x04

void LCD_Move(unsigned char object, unsigned char direction)

{

if(object==LCD_CURSOR)

LCD_Write(LCD_COMMAND,0x10|direction);

if(object==LCD_SCREEN)

LCD_Write(LCD_COMMAND,0x18|direction);

}

/

//初始化LCD

void LCD_Initial()

{

LcdEn=0;

LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,57点阵

LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示, 无光标

LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增, 画面不动

}

//

void GotoXY(unsigned char x, unsigned char y)

{

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x);

if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40));

}

void Print(unsigned char str)

{

while(str!='\0')

{

LCD_Write(LCD_DATA,str);

str++;

}

}

/

void LCD_LoadChar(unsigned char user[8], unsigned char place)

{

unsigned char i;

LCD_Write(LCD_COMMAND,0x40|(place8));

for(i=0; i<8; i++)

LCD_Write(LCD_DATA,user[i]);

}

/

//

#endif

#include <REGX52H>

#include "LCD1602h"

unsigned char TempBuffer[10];

void IntToStr(unsigned int t, unsigned char str, unsigned char n)

{

unsigned char a[5]; char i, j;

a[0]=(t/10000)%10;         //取得整数值到数组

a[1]=(t/1000)%10;

a[2]=(t/100)%10;

a[3]=(t/10)%10;

a[4]=(t/1)%10;

for(i=0; i<5; i++)         //转成ASCII码

a[i]=a[i]+'0';

for(i=0; a[i]=='0' && i<=3; i++);

for(j=5-n; j<i; j++)       //填充空格

{ str=' ';  str++; }

for(; i<5; i++)

{ str=a[i]; str++; }  //加入有效的数字

str='\0';

}

void Delay1ms(unsigned int count)

{

unsigned int i,j;

for(i=0;i<count;i++)

for(j=0;j<120;j++);

}

main()

{

unsigned int Count = 0;

LCD_Initial();

GotoXY(0,0);

Print("The 1602LCD Test");

GotoXY(0,1);

Print("zhaoyao");

while(1)

{

IntToStr(Count++,&TempBuffer[0],5);

GotoXY(3,1);

Print(&TempBuffer[0]);

Delay1ms(100);

}

}

兄弟,我也是学通信的,我也曾和你有过同样的感受,其实很多人都曾感到迷茫,这是我在网上看到的文章,对我帮助不小,希望对你有帮助

《给未来的电子工程师》

看这篇帖子的,我想都是电子爱好者或电类专业学生。不知道大家都处于什么一个阶段,这篇帖子是写给入门者的,要解决一个问题:初学者应重点掌握什么电子知识,大学阶段如何学习?

先说点貌似题外的东西——3个谬论

谬论一:高中老师常对我们说,大家现在好好学,考上了大学就轻松了,爱怎么玩怎么玩。这真是狗屁。别的专业我不好说,电气、电子、电力、通信、自动化等电类专业,想要轻松那是不可能地(当然你是天才就另说),专业课上讲的东西对决大多数人来说那是云里雾里,从来都是一知半解,需要你课下花大量时间精力来消化。有些东西甚至需要你若干年后在工作中遇着时才回过味:“哦,原来以前学的那东西是干这使的。”你要能想得起,并知道怎么回头去补,就算是上学时专业课学得较扎实了。

谬论二:填志愿时经常有人对我们说:专业不重要,学校最重要,进了个好学校想学什么再学。这亦是狗屁。进了学校,本专业的课程就可能会压得你喘不过气来,还有多少人有时间和毅力选修第二专业?而所学专业几乎就是决定了你今后一生的职业生涯。而学校,说实话本科阶段从老师那学到的东西各校间差别不是很大。课上讲的大同小异,课下也不会有什么好老师给你单独指导和点拨(若能遇着,那是你的幸运)。越牛的学校的越牛的老师就越忙,不要指望他们会在教学上花多少心思,更不要指望他们对你另眼相看。反倒是一些普通院校的小老师们可能跟学生走得更近,辅导更多些,虽然他们可能水平一般,但对于你大学的学习来说还是足够的。综上所述,我觉得对于一个电子爱好者来说,成为一名普通重点大学的电子系学生比成为北大的哲学系学生更重要。当然看帖的应该大多数都是学电的,那恭喜你,这个专业不错的,虽不是什么“朝阳产业”,但绝对是个“常青行业”。

谬论三:上了大学,可能又有不少人对你说,在大学专业不重要,关键的是学好计算机和英语,这样就不愁找不到好工作了。这也是屁话。你要明确一点:你将来不是纯靠英语吃饭的,也不是做编程、搞软件开发或动画创作的。我是想说:若果你性格偏内向沉稳、肯钻研、爱好电子行业,将来想从事电子设计和研发工作,那你一定要学好专业课。当然英语也很重要,但以后工作中用得多的是你的专业英语,即能读懂英语技术文档,而不是跟别人比你口语多正宗多流利。至于计算机,那就是一工具,不要花太多时间去学photoshop、3dmax、Flash、网页制作等流行软件,这些在你今后的工作中用不着,也会牵扯你大量时间精力。好钢用在刀刃上,多进进实验室多搭搭电路吧。当然,电类学生对电脑也有特殊要求,那就是用熟Protel、Multisim,学好汇编语言、C语言、选学PLD相关软件。任务也是很重的。

以上说了3个谬论,下面言归正传吧。那么进了大学,读了电类专业,这4年你该学些什么呢?

1 大一大二(打基础)

首先要了解:电类专业可分为强电和弱电两个方向,具体为电力工程及其自动化(电力系统、工厂供变电等)专业属强电,电气工程及其自动化以强电为主弱电为辅,电子、通信、自动化专业以弱电为主。其他更进一步的细分要进入研究生阶段才划分。但无论强电还是弱电,基础都是一样的。

首先高数是要学好的,以后的信号处理、电磁场、电力系统、DSP等不同方向的专业课都用得着。

专业基础课最重要的就是电路分析、模拟电路、数字电路。这3门课一定要学好。这3门课一般都是大一下学期到大三上学期开设,对大多数对电子知识还了解不多的同学来说,通常是学得一知半解,迷迷糊糊。所以,最好是在开课之前或是开课的同时读一两本通俗浅显的综合介绍电子知识的书籍,对书中的知识你不需要都懂,能有个大致感觉就行。对这这种入门读物的选择很重要,难了看不懂可能兴趣就此丧失或备受打击,反而事与愿违。在此推荐一本《电子设计丛零开始》(杨欣编著,清华大学出版社出版),该书比较系统全面地介绍了电子设计与制作的基础知识,模电、数电、单片机、Multisim电路仿真软件等都有涉及,一册在手基本知识就差不多了,关键是浅显易懂,有一定趣味性。另外科学出版社引进出版的一套小开本(32开)电子系列图书也不错,是日本人写的,科学出版社翻译出版,插图较多,也较浅显,不过这一系列分册较多,内容分得较细。

除了看书,还要足够重视动手实践。电路、模电、数电这些课程进行的同时都会同时开设一些试验课,珍惜这个动手机会好好弄一弄,而不要把它当作一个任务应付了事。跟抄作业一样,拷贝别人的试验结果在高校中也是蔚然成风,特别是几个人一个小组的实验,那就是个别勤奋好学的在那折腾,其他人毫不用心地等着出结果。我只想说,自己动手努力得来的成果才是甜美的,那种成就感会让你充

以上就是关于基于Simulink的电力电子系统仿真_simulink电力系统仿真实例全部的内容,包括:基于Simulink的电力电子系统仿真_simulink电力系统仿真实例、谁有单片机控制1602的显示程序要proteus能仿真成功的、能电路仿真的程序都有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10207141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存