- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
带 j 的复数变量的计算。 用向量法计算结果准 C:0.1uF;U:5V;W:2;φ:0;经过理论推算得出 视在功率为 1.118 伏安。 而与经过程序运算得
出的结果相同。 Double hh1=0,hh2=0,aa1=0,aa2=0,bb1=0, P 有 UI cos bb2=0,cc1=0,cc2=0,dd1=0,dd2=0,ee1=0,ee2=0; double ff1=0,ff2=0,ff3=0,ff4=0,tt1=0,tt2=0; P s UI //变量定义。 void __fastcall TForm2::Button4Click(TObject *Sender) //清零函数 { Form2->Edit1->Text=0;Form2->Edit2->Text=0;Form2->Edit3->Text=0; Form2->Edit4->Text=0;Form2->Edit5->Text=0;Form2->Edit6->Clear(); hh1=0;hh2=0;aa1=1;aa2=1;bb1=1;bb2=1;cc1=1;cc2=1;dd1=1;dd2=1;ee1=1;ee2=0; ff1=0;ff2=0;ff3=0;ff4=0;Series1->Clear();Series2->Clear();} //--------------------------------------------------------------------------void __fastcall TForm2::Button3Click(TObject *Sender)
百度文库
void __fastcall TForm1::Timer2Timer(TObject *Sender) { if(hh2==1) //控制时钟信号发生 {tt1+=0.01; bb1=StrToFloat(Form1->Edit1->Text*pow(10,6))*StrToFloat(Form1->Edit2->Text*pow(10,-6)); cc1=(-1)/bb1;dd1=cc1*tt1;aa1=StrToFloat(Form1->Edit3->Text)*(exp(StrToFloat(dd1))); Series2->AddXY(tt1,aa1,(String)(tt1),clRed); }}
1、系统设计 (1)系统开发环境
操作系统:Windows 8 开发平台:C++ Builder
(2)系统总体设计
本系统共包含 dfghg.h、dfghg.cpp、Unit1.h、Unit1.cpp、Unit2.h 和 Unit2.cpp 六 个源文件,其中 Unit1.h、Unit1.cpp 是对电路静态分析的定义,Unit2.h、Unit2.cpp、是 动态的分析,以及视在功率的计算。
软件编程实训 实训报告
专 班 学 姓
业:电气工程及其自动化 级: 号: 名: 0314406 031440611 李岗岗 廖红华
指导教师:
完成日期: 2016 年 6 月 29 日
1
一、课程实训目的
通过这次软件编程实训,我们对 C 语言在软件设计方面有更深的了解,熟悉了 C++Builder 开发环境,在这次实训中,培养了我们的团队协作精神,为以后课程的进一步学 习打下较扎实的软件开发、设计基础。
(3)系统布局
一共分两个 Form,分别实现响应的功能,Form 之间可以相互转换,转换程序: (1)Form1->Show(); (2)Form2->Show();
2
4.2、程序设计 (1)Form1
图 2 暂态电路图像分析
如图 2 所示 Form1 内的程序按照如图所示的原理就行编写计算, 程序通过变量代换, 实 现了 RCU 值变量的变换, 实现了电路图的计算功能。 在 R:内输入 10 千欧的电阻值 C:内输入 0.1uF 的 电 容 值 U(t): 内 输 入 2 伏 的 电 压 。 则 有 理 论 值 得 出 零 状 态 响 应 为 :
二、课程实训任务
我们小组设计的是一个一阶电路的动态分析,其作用是计算出开关闭合前后的对应参 数,分析开关置 1 的零输入和零状态反应,绘出开关置 2 的输出电压和输出电流的波形。
三、一阶电路分析。
图 1 系统流程图
如图 1 所示为系统整体流程图系统在信号输入后经过一系列的动态静态运算得出零状态响 应波形、零输入响应波形和视在功率值。
1 RC 1 10 3
U (t ) US (1 e )即:U (t ) 2(1 e ) ,符合图像显示。 double aa=0,bb=0,cc=0,dd,hh1=0,tt=0,hh2=0; //定义不同的变量 double aa1=0,bb1=0,cc1=0,dd1=0,tt1=0; //定义不同的变量 //--------------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender) //时钟信号输出波形 { if(hh1==1) //控制时钟信号发生 {tt+=0.01; bb=StrToFloat(Form1->Edit1->Text*pow(10,3))*(StrToFloat(Form1->Edit2->Text*pow(10,-6))); cc=(-1)/bb; dd=cc*tt;aa=StrToFloat(Form1->Edit3->Text)*(1-exp(StrToFloat(dd))); Series1->AddXY(tt,aa,(String)(tt),clRed);}} //--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender) //系统赋清零值 {Form1->Edit1->Text=0;Form1->Edit2->Text=0;Form1->Edit3->Text=0; aa=0;bb=0;cc=0; hh1=0;hh2=0;Series1->Clear();Series2->Clear(); //图像清零} //--------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender) //系统初始化值 {Form1->Edit1->Text=10;Form1->Edit2->Text=0.1;Form1->Edit3->Text=2; aa=0;bb=0;cc=0;} //--------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender) // 输出零状态响应波形 {hh1=1;} //--------------------------------------------------------------------------void __fastcall TForm1::Button4Click(TObject *Sender) //输出零输入响应波形 {hh2=1;} //--------------------------------------------------------------------------3
(2)Form2
图 3 正弦电路图像分析
如图 3 所示我们组将复杂的正弦计算转 换为方法向量计算, 克服了由于程序不方便对
R
1 jwc
R
j
1
c
1 F R 2 ( ) 2 c 确,计算方便。 1 a rc tan( ) R c 由 左 边 公 式 计 算 给 图 中 R:10 千 欧 Z F
4
U U I Z Z U c U I Z
U F
( )
{hh1=1;} //--------------------------------------------------------------------------void __fastcall TForm2::Button2Click(TObject *Sender) {hh2=1; } //--------------------------------------------------------------------------void __fastcall TForm2::Button5Click(TObject *Sender) //功率参数计算 { ff1=StrToFloat(Form2->Edit1->Text*pow(10,6))*StrToFloat(Form2->Edit1->Text*pow(10,6)); ff2=(1/(StrToFloat(Form2->Edit4->Text)*(StrToFloat(Form2->Edit2->Text*pow(10,-6))))); ff3=ff2*ff2;ff4=sqrt(ff3+ff1); aa1=(-1)*(ff2)/(StrToFloat(Form2->Edit1->Text*pow(10,6))); aa2=atan(aa1); bb1=(StrToFloat(Form2->Edit3->Text))/(ff4*sqrt(2)); bb2=StrToFloat(Form2->Edit5->Text)-StrToFloat(aa2);} //--------------------------------------------------------------------------void __fastcall TForm2::FormCreate(TObject *Sender) // 赋予合适的初始值 { Form2->Edit1->Text=10;Form2->Edit2->Text=0.01;Form2->Edit3->Text=5; Form2->Edit4->Text=50;Form2->Edit5->Text=20;Form2->Edit6->Text=0;} //--------------------------------------------------------------------------void __fastcall TForm2::Timer1Timer(TObject *Sender) //输出原有波形 {if(hh1==1) //控制时钟信号发生 { tt1+=0.001;cc1=StrToFloat(Form2->Edit4->Text); dd1= StrToFloat(Form2->Edit3->Text)*sin(cc1*tt1-StrToFloat(Form2->Edit5->Text)); Series1->AddXY(tt1,dd1,(String)(tt1),clRed);}} //--------------------------------------------------------------------------void __fastcall TForm2::Timer2Timer(TObject *Sender) // 输出电流波形 { if(hh2==1) //控制时钟信号发生 { tt2+=0.001;dd2=bb2*sin(cc1*tt2-bb2); Series2->AddXY(tt2,dd2,(String)(tt2),clRed);}} //--------------------------------------------------------------------------void __fastcall TForm2::Button6Click(TObject *Sender) { ee1=(StrToFloat(Form2->Edit3->Text)/(sqrt(2)))*(StrToFloat(Form2->Edit3->Text)/(sqrt(2))); ee2=ee1/ff4; Form2->Edit6->Text=ee2;}