现代企业决策仿真模拟总结 本文关键词:现代企业,仿真,决策,模拟
现代企业决策仿真模拟总结 本文简介:现代企业决策仿真模拟总结——以销定产是经营成功的秘诀2010/11/21第一部分、企业财务分析:一、概况:本企业是一家工业企业,生产产品为激光打印机,第0期有4条生产线,市场份额占3.3%左右,利润率达到7.89%,资产周转率达到1.34。行业有萎缩的状况,市场竞争形势也很严峻。以第三次模拟数据为例
现代企业决策仿真模拟总结 本文内容:
现代企业决策仿真模拟总结
——以销定产是经营成功的秘诀
2010/11/21
第一部分、企业财务分析:
一、概况:
本企业是一家工业企业,生产产品为激光打印机,第0期有4条生产线,市场份额占3.3%左右,利润率达到7.89%,资产周转率达到1.34。行业有萎缩的状况,市场竞争形势也很严峻。以第三次模拟数据为例,分析公司7年经济走势。
二、财务数据杜邦分析
杜邦分析是把净资产周转率分成了三部分,销售净利润显示“赚的多不多”,总资产周转率显示“转的快不快”,权益乘数显示的是其财务杠杆的高低,间接反映风险指数——反映在:虽然较高的权益乘数会提升企业的资本运用效率,但若缺乏成熟的风险控制体系,也可能带来较高的经营风险,从而要求企业建立更加完备的风险管理机制。
三、企业直接盈利能力——销售净利润
表1-3-1#第三次模拟一般经营活动盈利指标7年变化
第一年
第二年
第三年
第四年
第五年
第六年
第七年
销售净利率%
15.2%
9.4%.
5%
1.9%
4.06%
8.1%
12.4%
销售额
73
71.87
79.02
82.21
82.21
81.99
77.65
净利润
11.13
6.78
3.99
1.59
3.34
6.67
9.66
表1-3-2#第三次模拟一般经营活动生产指标7年变化
第一年
第二年
第三年
第四年
第五年
第六年
第七年
市场价格
1040
978
880
870
835
860
870
产品成本
736.76
656.31
682.78
724.02
728.25
904.82
669.43
库存产品
16290
37396
38351
46191
42309
0
7199
七年经营公司的销售净利率和净利润呈现一个V字型,但是销售额却是一个倒V型。企业在经营活动的第二到四年经历了一次巨大的危机,这次危机是由几个原因共同造成的:
(一)、财务因素:
1)
库存和第二年第11台机器的购买:
从产品的角度来说,第一年企业的库存已经不让人满意,在第二年增加了产能后,萎缩的市场形势为公司带来的更大的销售压力,产品的剩余情况一下子成倍恶化,并且无法挽回,从第二年一台新的机器购买后,企业一直在试图清理库存,在激烈市场竞争和缩小的市场需求中以低价高广告倾销,最终以失败告终。库存的挤压一方面造成了库存费用,另一方面占用了资金,降低了资金的使用效率,同时增加了利息费用,从多方面降低了利润。
2)
极速扩张造成的财务紧张:
第一年的扩张与现实中的企业扩张可能性太不相符,比赛中我是迫于组里压力让企业如此运行,但是现实生活中,银行是不可能贷那么多钱给一个小企业的。机器、机器人、生产合理化、厂房等大额费用,使企业的中期贷款和透支贷款带来的利息费用大幅增加,直接减少了销售的净利润。
3)
对原材料的误解:
从成本会计上来说,提前购买的原材料仅作为库存的资产占用现金。但是在本次比赛中,企业每期都大量储存原材料,没有实际意义的同时还大量占用了现金,进一步加重财务负担。
(二)、产量对成本的影响:
从表1-3-2#中可以看出,企业的库存一直在增加,第一年16000的库存商品就已经是处于危险边缘了,但第二年后又持续上涨,为了清理库存,企业不得不减少维修系数,以降低生产能力,达到减产的目的。在减少维修系数的同时,企业的机器利用率也随之降低了,机器的折旧费用对成本的影响也就加剧,造成成本的上扬,利润的下降。
(三)、价格战策略对利润的影响:
基于库存和同组压力的问题,为了销售不得不大打广告销售人员,同时降价,广告不到位就有库存积压,提高广告又使成本上扬,也是利润减少的一个因素。
从第五年开始企业的盈利指标开始回春。其中,第五年还处在价格战的行列里,但是广告相对而言不是很保守了,使企业销售有了一定的提高。第六年,企业决定清理库存,为了保证0库存,使维修系数降到很低,虽然新生产的产品每个都折价买出的,但是企业又收回了积压在库存商品中的资金,使公司重新步入良性循环。第七年,企业的广告等投入又相对保守,在销售上不是非常突出,但是之所以净利率高,原因有3,首先是库存的原材料发挥了其购买之时的价格优势,其次企业节省了研发费用,虽然使产品质量降低到2,最后,企业有了一个良好的成本控制环境,没有了库存商品的负担,企业将维修系数达到1,使机器的可使用数最大化,极大的降低了成本。
四、周转率——资本运用效率
表1-4-1#第三次模拟周转率指标7年变化
第一年
第二年
第三年
第四年
第五年
第六年
第七年
资产周转率
0.81
0.60
0.70
0.77
1.04
1.35
1.21
净资产周转率
3.63
2.68
2.60
2.57
3.54
2.74
1.98
从总的趋势来看,7年来企业一直在陆陆续续的提升资产周转率。企业的资产周转率也是企业赚钱的一个方法,用同样的资产,转的越快赚的就越多。这次模拟中,我没有过多的考虑过资产周转率的问题,从周转率的角度来看,过多的资产其实会造成企业负担。从经验上来看,销售收入大概就维持在70-80million了,促销措施的边际效应微乎其微,这个时候,资产的多少就直接决定了周转率的快慢。
本企业资产相对较多,原因主要就在于机器人,和财务困境造成的减不下去的周期贷款,与同组第一名相比,我这家企业不论是ROA资产周转率还是ROE净资产周转率都低于他的数值,这反映了我在资产的运作上的不恰当,资产经营质量和利用效率不高。
从结果来看,值得我深思的就是,一开始定下的扩张战略是不是操之过急,光注重了表面上的东西——资产增加了,却忽视了资产对其他方面的影响。本企业经营期间全部资产从投入到产出的流转速度不高,但是大体来说运营效率还是在提高的。通过比较,我发现了本企业与同类企业在资产利用上的差距,主要就在财务控制这方面,这次模拟由于风格太过激进,财务方面无法把握的周全,贷款本来提供的是财务杠杆,但由于我没有很好的利用,也没有考虑到组内情况进行预测,因此很多贷款都用于还新增的透支贷款了,使资产利用率大幅下降。
五、资产负债率——财务杠杆效应
对比七年数据,我的企业资产负债率一直高居不下,始终高于第六组。资产负债率的最佳数值在0.5-0.6,高于属于偏高,低于又属于偏低。从积极的角度来看,资产负债率偏高说明企业可以吸取更多财务杠杆带来的优势,利用借来的资金经营获利,达到几倍于狭义权益资金本身回报率的收益,但是资负率偏高也就意味着企业的财务成本大,风险较大,偿债能力不是很强,经营很激进。
像我的企业,财务杠杆相对较大,在赚钱的时候容易比别人赚得更多,但是与此同时,在市场紧缩的第三四年,由于支付的利息费用比较高,更容易造成亏损。经过这几期的锻炼,我觉得,在资产负债率上没有所谓的好与坏,对于资负率较高的企业,应该建立起适当的风险评估机制,对于这个模拟而言,应该更加谨慎的控制成本,在市场萎缩的情况下不过分扩张规模,保证各系统运行的充分性和合理性,就能达到企业的最优状态。
第二部分、模拟仿真感受
总体来说我觉得每一次模拟对我都有收获,
这三次我采取的都有不同的调整,同时也会从上次的模拟中吸取教训,改变策略。
第一次模拟:懵懵懂懂的开始,相对明白的结束
机器原材料什么的一开始都很少买,总是怕钱不够花,绝对0库存,从第三年左右开始进行扩张,最终增加到13条左右的机器,由于市场容量很大,我领悟得也相对算快,成本控制的很好,基本处于600边缘或以下,所以最终是我们小组的第一;
第二次模拟:采取的是稳步扩张的战略
(一)、相比第一次的经验与改进:
1.财务:
从财务规则上我知道了贷款的利率级差,每一年我都会按照我的权益资本计算,每期都争取让贷款保持在权益资本的2倍以内(因为在现实生活中无限贷款是不可能的)。
2.原材料:
从上次模拟的经验中我得出,如果最后要买13台以上机器的话,就必须在前期储存原材料,不然机器数一旦使公司的可生产产品数达到6位数,原材料的供应的跟不上了,所以我的原材料在第一年产量不足的情况下就购买70001以降低单位原材料价格,并为后期储存,而且原材料的存储是不需要费用的,这更加加剧了我存储原材料的意愿,而且从GMC的比赛经验中,老师也说储存原材料可以隐藏利润,这几个因素都是造成我第三次模拟经营失败的原因之一,但是这是后话了。
3.生产系数:
在生产合理化系数和维修系数上,我觉得这个是一个很重要的让成本降下来的因素,因此我坚持每次都让我的合理化系数达到最高的1.35,维修系数一般达到0.98,让机器能生产出最多的产品,在投入生产合理化系数时,我这次是用两次投满的,我发现,对比这次与上次的数据,合理化投的越快,开销就越小,一次投满需要8million,但是两次投满就需要10million了,很是不值。
4.研发:
在这一次模拟中我还尝试了一下差异化路线,第一次模拟中我的研发基本没有过多的投入,仅是以质量2进行到了最后,而这二次模拟时,我尝试前两年就将产品尽量研发到1去,两年合计研发费用共3.8+2.28=6.09million,但研究同组的我发现,只要一次投入达到4.45以上,即可使产品质量一次上1,但这个数字只作为我积累下来的一个经验,因为随着生产经营的继续,我发现,正如老师所说,产品差异化战略在系统中是没有很强影响的,所以也没有必要一次把质量优化到最好。
5.广告:
最后在广告的问题上,我一直比较保守,相比同组同学投放的一直很有限,这也是影响我第二次模拟公司经营情况的原因之一。
(二)、从第二次模拟中得出的教训:
表2-1#第二次模拟7年综合得分及排名
第一年
第二年
第三年
第四年
第五年
第六年
第七年
06组
74.2
81.5
84.5
79.5
84.1
85.5
85.6
3
10组(我)
68.1
80
88
85.5
83.2
82.2
84
4
18组
69.5
88.7
95.1
91.2
89.2
89.4
90.8
1
表2-2#第二次模拟7年库存商品
第一年
第二年
第三年
第四年
第五年
第六年
第七年
10组(我)
1224
5725
4911
13223
25533
14917
11242
现在想想,我觉得我从这次模拟开始陷入了一个误区。第二次模拟的失败教训(排名见表2-1#)就在于,我在广告还有销售人员方面的投入过于保守,价格也仅处于平均水平,因此产能就显得过剩了,1-4年,我一直是小组第二,差距就在与销售做的力度不够,价格也舍不得降,使存货每次越来越堆积(库存如表2-2#),最终利润也没能做上去,跌到了组里第4。可能正是这个经历,让我第三次模拟的时候在销售上采取了较为激进的模式。现在我明白,一味的打销售加降价不是赢利和生存之道,以销定产才是关键,当广告等销售方式的作用变成“让自己的产品卖的出去”的时候,其实公司已经走上了歧途了。
第三次模拟:战略过于激进,公司很不稳定
(一)、第三次模拟的两点考虑
1.
战略确定:
首先在这一次模拟开始之际,我就确定了一开始要打极速扩张战略,第一次或者第二次就买齐所有的机器。虽然从财务的角度来说,这样做很不经济,但是考虑到第二次模拟最后组内价格战的形式,我觉得生产还是越早越好,误了先机产品只会越来越廉价,越来越卖不出去。但是在机器的台数上我还是比较保守,第一年买到了10台,所谓保守是与我们班几个男生的组相比起来的,第二年在男生及舆论压力下,又多买了一条线,我觉得这第二年新买的一条线就是我最大错误的开始。从价格上,有了上一次模拟被拉入价格战的不好感觉,我决定还是先下手为强,既然价格战早晚都要打响,被动的接受不如勇敢的面对,于是我在第三次模拟的7年经营中,都基于上次模拟的程度加之自己的估计,进行着倾销式的定价战略。
2.
生产人工还是机器人:
对于这个问题,现在想想我考虑得可能有一点不是很成熟。当初我的考虑是:从每年费用对利润的影响的角度,一个生产人员年薪3万元,加上80%的社会福利费用,合计每个生产人员每年费用5.4万元。相比机器人一个售价32万元,摊销8年,每年折旧费用是4万元。因此我觉得如果不加班的话,机器人从费用上来说更胜一筹。从资产的角度,因为比赛的评分机制是资产占20分,因此机器人算我的资产,相对于别的组而言,我还能获取一些优势。但是我当时没有考虑到的是,从财务的角度来说,一个机器人售价32万元,但是它是我的资产,它摊销期达8年,而模拟进行期才7年,因此相当于第八年的折旧费用4万元,是我白白画钱买回来的资产,越晚买,白白花的钱就越多,早买,又对我的财务状况造成了极大负担,这也是我第五年陷入财务困境的重要原因之一。
(二)、从第三次模拟中得出的经验教训:
表2-3#第三次模拟7年机器人数量
第一年
第二年
第三年
第四年
第五年
第六年
第七年
10组(我)
100
146
146
146
146
146
246
1.
财务状况:
公司的财务状况不容忽视,然而我们却在这个模拟中,因不用担心公司资金周转不灵破产而严重的忽视了这项分析的重要性。第三次模拟中,我的财务状况非常紧张,给公司的运作带来了很多不好的影响,追其原因,都是由于我的不重视造成的。我的财务有几大紧张支出,从第一年开始,我的公司中期贷款就居高不下,其实第一年做决策的时候我也预测到了,只是没有想到会那么严重。第一年决策时权益资本很少,中期贷款额度最高只有46million,远远不到我的需求。第一年的极度扩张战略有以下几个大头的需求:6台机器4*6=24million、一个额外的厂房4million、生产合理化投资8million、机器人0.32*100=32million、广告费、研发费,加起来是我透支了18million之多。如果我第二年没有糊里糊涂的被人说的又新加一条生产线的话,也许我的透支状况还可以改善,但是在我第二年又加了一条生产线,并且不经济的因为这条生产线又租用了一个厂房之后,使得我又有几项额外的开支,增添了机器人的购买(如表2-3#),同时因为销量上不去,而增多了存货,中期贷款额度不够,又导致更加剧的财务危机,利息费用大幅增加,使我的利润进一步缩水,带来一系列恶性循环,本来想增加资产,结果成倍的降低了利润。
2.
价格与销售:
性格因素所致,我在销售方面一直很保守,广告和销售人员总是相比不是很多,也因为我对价格的弹性因素估计的太大了。降价的同时广告等因素没有跟上,使得公司有了库存商品后变得颇为被动。
3.
压力大心态不好:
这次模拟的前4年我都是我们组第一,在教室的时候就能听见对面很多男生在谈论我的企业,给我造成很大的压力,很多时候光顾着听别人的就忘记了自己思考,公司其实在第二年以后库存的问题就越来越严重,我也没有进行反思,调整自己的策略,加之一些失误,才造成第五年的特大亏损,亏了9million。经历过第五年的惨败后,我调整了心态,在第六年仔细分析了公司的问题,并且采取非常激进的手段把库存全清理了,才勉强把第五年的亏损盈利回来。并且在第七年结束的时候,以当期利润第一,累计利润第四的成绩结束了这次比赛。通过这次模拟仿真比赛,我也学会了对自己心态的调整,兼听则明但也要合理安排自己思考时间,才是一个企业决策者应有的素质。一个公司经营的好坏,与其说与别人比,不如跟自己比,只要公司健康,每一期都能解决上期的遗留问题,那它自然而然就会是优秀的。
总结
经过这三次模拟比赛的训练,我觉得受益匪浅。通过感受采购、销售、研究、生产、仓库、人事、财务和管理等八大部门决策的相互联系和影响,我们对各部门的中心任务与职责有了初步了解,更对企业的经营模式有了深刻的认识。效益是企业生存和发展的根本,只有实施“零缺陷低成本”战略,才能适应市场的激烈竞争,获得更大的赢利空间,加快企业的发展。因此,企业上下必须以效益为中心,努力降低成本,才能提高收益。
其次对于细节上,我也有了一些更加明确的认识,他们分别是我这几次犯得几个错误。第一、原材料不能隐藏利润,只是先进后出的话原材料的价值会升值而已。因此在原材料上,最好还是不要过多储存,以免占用资金,影响利润和资金的运用效率。第二、机器人到底值不值,几次模拟我都是以多用机器人为主,所以我对使用机器人的优缺点非常了解。它的优势在于,每期每个机器人在费用方面比人员少0.14million,同时没有招聘的费用(1万元)也不受工资涨幅影响,但是这个0.14million指的是最大差异,当员工工资受管理合理化系数调控时,差距可能会变小。劣势在于,首先,当员工工资率下降时,差距会缩小,这个是随大环境调控,不可预测;其次,虽然机器人省了1万元的招聘费用且每年折旧比工人年薪少,但是因为模拟比赛只有7期,因此机器人的效用不能被完全运用,它作为资产,折旧结束后继续使用的价值也不复存在,因此相当于,机器人的第八年折旧费被纯固定为资产了,这增加了购买机器人当期财务上的压力,也为后期还贷增加困难。第三、周期贷款的多少,贷款意味着财务杠杆,这笔额外的资金同时带来的机遇与风险,我觉得我第二次模拟时,每周期都保证贷款额度在权益资本的2倍以内,这样做可能过于保守了,但是像第三次,又可能矫枉过正。不管如何,公司应该按照自己规划的路线走,尽量不要出现透支贷款,这样才能反映出公司还在决策者的控制之下。
最后,在这几次模拟中,我觉得以销定产才是企业经营成功的秘诀,规模也不用一味的追求做大做强,金融危机过后,谁又能说相对小的企业不好呢。在比赛的过程中,心态一定要平和,与别人相比不是最重要的,重要的是跟过去的自己相比要有进步。一个企业只要改善了自己系统内部的矛盾,使系统健康而健全起来,就自然而然得能变得优秀。我觉得这个比赛的系统还是非常成功的,让我们最大限度的感受了企业决策的影响和难度,计分系统的各项指标也都是累计的(包括股息、价格等等),非常的科学,让我们知道,评价一个企业的好坏不能看一朝一夕,得看持久的成长性和盈利性。市场的机会转瞬即逝,每次决策者都要对此进行调整,在仿真模拟中,永远都没有最优方略,市场充满变数,在充满竞争的市场中探索机会,融会贯通,就是我在这堂课上所学到的。
篇2:实验二典型系统的时域响应分析实验仿真报告答案分析解析
实验二典型系统的时域响应分析实验仿真报告答案分析解析 本文关键词:实验,时域,分析,仿真,响应
实验二典型系统的时域响应分析实验仿真报告答案分析解析 本文简介:实验二典型系统的时域响应分析1.实验目的1)通过用MATLAB及SIMULINK对控制系统的时域分析有感性认识。2)明确对于一阶系统,单位阶跃信号、单位斜坡信号以及单位脉冲信号的响应曲线图。3)对于二阶系统阶跃信号的响应曲线图以及不同阻尼比、不同自然角频率取值范围的二阶系统曲线比较图。4)利用MAT
实验二典型系统的时域响应分析实验仿真报告答案分析解析 本文内容:
实验二
典型系统的时域响应分析
1.
实验目的
1)
通过用MATLAB
及SIMULINK
对控制系统的时域分析有感性认识。
2)
明确对于一阶系统,单位阶跃信号、单位斜坡信号以及单位脉冲信号的响应曲线图。
3)
对于二阶系统阶跃信号的响应曲线图以及不同阻尼比、不同自然角频率取值范围的二阶系统曲线比较图。
4)
利用MATLAB
软件来绘制高阶控制系统的零极点分布图,判断此系统是否有主导极点,能否用低阶系统来近似,并将高阶系统与低阶系统的阶跃响应特性进行比较
5)编制简单的M文件程序。
2.
实验仪器
PC计算机一台,MATLAB软件1套
3.
实验内容
1)一阶系统的响应
(1)
一阶系统的单位阶跃响应
在SIMULINK
环境下搭建图1的模型,进行仿真,得出仿真曲线图。
理论分析:C(s)=1/[s(0.8s+1)]由拉氏反变换得h(t)=1-e^(-t/0.8)
(t>=0)
由此得知,图形是一条单调上升的指数曲线,与理论分析相符。
(2)
一阶系统的单位斜坡响应
在SIMULINK环境下搭建图2的模型,将示波器横轴终值修改为12进行仿真,得出仿真曲线图。
理论分析:C(s)=1/[s^2(4s+1)]可求的一阶系统的单位斜坡响应为c(t)=(t-4)+4e^(-t/4)
e(t)=r(t)-c(t)=4-4e^(-t/4)
当t=0时,e(t)=0,当趋于无穷时,误差趋于常值4.
3)
一阶系统的单位脉冲响应
在medit
环境下,编译一个.m
文件,利用impulse()函数可以得出仿真曲线图。此处注意分析在SIMULINK
环境中可否得到该曲线图。
理论分析:C(s)=5/(0.8s+2)=(5/2)/(0.4s+1)可求的g(t)=6.25e^(-t/0.4),是一个单调递减的函数。
两种环境下得到的曲线图不一致。
2)
二阶系统的单位阶跃响应
二阶系统的闭环传递函数标准形式为
其阶跃响应可以分以下情况解出
①当时,系统阶跃响应为
②当时,系统阶跃响应为
其中,
③当时,系统阶跃响应为
④当时,系统阶跃响应为
其中,
(1)自然角频率
选取不同阻尼比0,0.2,0.4,0.6,0.8,1.0,2.0,用MATLAB得到二阶系统阶跃响应曲线。
2.00
0.8
0.6
=0.4
=0.2
=0
二阶系统对系统响应的影响
阻尼比
0
系统状态
无阻尼状态
欠阻尼状态
临界阻尼状态
过阻尼状态
对系统响应的影响
系统的暂态响应是恒定振幅的周期函数
系统的暂态响应是振幅随时间按指数规律衰减的周期函数,阻尼比越大,振幅衰减的越快
系统的单位阶跃响应随时间的推移单调增长,在时间趋于无穷大时,系统响应的最大超调量为0
暂态响应随时间按指数规律单调衰减。系统无超调,但过程缓慢。
分析:当wn一定时,?越小,振荡越厉害,当?增大到1以后,曲线变为单调上升。
(2)阻尼比
选取不同自然角频率0.2,0.4,0.6,0.8,1.0,用MATLAB得到二阶系统阶跃响应曲线,并分析比较不同自然角频率对应的系统输出的情况。
本题采用第三种,在SIMULINK
环境下搭建图1的模型,进行仿真,二阶系统阶跃响应曲线。
0.2
0.4
0.6
0.8
1.0
分析:当?一定时,且处于欠阻尼状态时,wn越大,则系统达到稳定时,所需要的时间越短。
(3)
系统动态性能分析
对于表示的二阶系统
上升时间(s)
峰值时间(s)
最大超调量
调整时间(s)
曲线图
0.586
0.829
12%
1.57
公式计算
0.577
0.85
12%
1.60
解:wn==2,?=/4可知系统处于欠阻尼状态,由课本上的计算公式可得tr=0.577s,tp=0.85s,Mp=0.12*100%,因为0〈?〈0.8,所以ts=1.60s.
结论:通过比较得知,tp,Mp,ts,的理论值与图片中的值基本一致。
3)高阶系统的单位阶跃响应
已知高阶系统的闭环传递函数为
用下式低阶系统近似原系统
解:p1=-5,p2=-1.5+2.5j,p3=-1.5-2.5j,p4=-0.3+j,p5=-0.3-j.由于闭环极点与系统的原闭环极点传递函数之极点相同,零点则不同。
对于高阶系统,极点均为负实数,而且无零点,则系统的暂态响应一定是非振荡的,响应主要取决于据虚轴最近的极点,。若其他极点比最近极点的最大距离大5倍以上,则可以忽略前者对系统暂态过程的影响。P1距p2没有5倍以上,而p3和p2不能看成一对偶极子,由于p4和p5离原点很近,所以影响也不能忽略。所以不能被低阶系统代替。
(2)利用单位阶跃响应step(
)、figure(
)和hold
on(
)等函数和指令,在medit
环境下,编译一个.m
文件,能够将原系统和降阶系统的单位阶跃响应绘制在一个图中,记录它们的响应曲线和暂态性能指标(上升时间、峰值时间、超调量以及调整时间),进行比较分析。
num=[45];
den=[1,8.6,29.8,67.4,51,45];
G=tf(num,den);
step(G);
figure(1)
hold
on
num1=[1];
den1=[1,0.6,1];
G1=tf(num1,den1);
step(G1);
hold
off
篇3:交通系统仿真实验报告
交通系统仿真实验报告 本文关键词:仿真,实验,交通,报告,系统
交通系统仿真实验报告 本文简介:第16页共16页实验报告课程名称道路交通系统仿真学生姓名学号专业班级指导教师院系名称交通运输工程学院2012年11月10日实验一随机数生成程序一.实验要求产生1~1000的随机数,个数大约256个。二.实验环境工具使用VisualC++6.0,程序类型Win32ConsoleApplication。
交通系统仿真实验报告 本文内容:
第
16
页
共
16
页
实验报告
课程名称
道路交通系统仿真
学生姓名
学
号
专业班级
指导教师
院系名称
交通运输工程学院
2012
年
11
月
10
日
实验一
随机数生成程序
一.
实验要求
产生1~1000的随机数,个数大约256个。
二.
实验环境
工具使用Visual
C++
6.0,程序类型
Win32
Console
Application。
三.
实验原理
根据公式x[i]=a*x[i-1]mod(m),可根据所需范围值确定a和m的值,本实验中需要1~1000的随机数,因此可以选择a=35,m=1024。其周期为(m/4)=256,产生256个1~1024之间随机数。根据需要,我们舍弃大于1000的随机数,原理是我们使用中间变量连接产生的数与我们需要的数组,通过对中间变量的不断循环,当产生大于1000的随机数时,我们继续使中间变量不断循环但不放入数组,从而舍弃这些数字,最终得到我们需要的1~1000的随机数的数组并输出数组中的数,并计数其个数,这样就完成了我们的产生随机数的目的。
四.
实验步骤
图一
随机数程序流程图
图二
随机数程序运行结果
程序开始先给定初始值(1~1000以内奇数),根据给定的公式计算中间值temp,再判断temp的值是否小于1000,把小于1000的temp值赋给数组x[i],循环执行该命令直至x[i]=x[0],结束程序并输出数组值和数组大小。数组值随初始值改编而改变,初始值决定数组值的变化。
五.
分析总结
由图二随机数程序运行结果可以看出,该程序运行结果与我们所给与的数学模型期望达到的效果一致。程序运行正确,伪随机数的周期为256个,由于去除了大于1000的随机数,故程序结果显示为249,与数学模型的周期一致。
附录
#include
void
main(void)
{
int
i=1,j=0,temp=0;
int
a=35,m=1024;
int
x[256];
int
k;
printf(“输入到达服务时间随机初始值:“);
scanf(“%d“,printf(“/n“);
while(i)
{temp=a*x[i-1]%m;
while(temp>1000)
{
temp=a*temp%m;
}
if(temp!=x[0])
{
x[i]=temp;
printf(“%5d“,x[i]);
i++;
}
else
{j=i-1,i=0;}
}
printf(“/n/nj=%d/n/n“,j);}
实验二
单服务台排队系统仿真
一.
实验要求
单服务台对到达顾客进行服务,顾客单路排队,随机分配顾客的到达时间间隔和服务时间,从而确定顾客的到达时刻和服务开始结束时刻,并计算服务台的空闲时间和顾客的排队等待时间。通过程序实现对单服务台排队系统的仿真,根据程序运行结果计算重要结果属性值。
二.
实验环境
工具使用Visual
C++
6.0,程序类型
Win32
Console
Application。
三.
实验原理
在程序设计中,顾客到达时间间隔time_interval和服务时间service_time由随机数确定。顾客到达时间间隔通过随机数分布并定义其分布区间,从而确定其到达间隔时间;服务时间也是先通过随机数程序产生一组随机数,然后通过对随机数区间的定义确定随机服务时间。这两个参数确定后可以通过数学方法确定其他参数,因此到达时间间隔和服务时间是程序中最重要的两个参数。
四.
实验步骤
图三
单服务台仿真流程图
图四
随机时间间隔
图五
随机服务时间
图六
单服务台排队系统顾客服务时刻表
程序先通过随机数方法分配排队顾客的随机到达时间间隔和随机服务时间。随机到达时间间隔是用1~1000之间的随机数进行等概率分配给1~8分钟的到达间隔;随机服务时间是将1~1000的随机数分配给1~6分钟的服务时间,其分配时段根据概率0.1,0.2,0.35,0.2,0.1,0.05分配,通过这种方法将1~1000以内的随机数分配给各个时间段,从而得到顾客的随机到达时间间隔和随机服务时间。
得到这两个基本参数后,通过数学方法联系其他参数,运用程序的循环过程最终可以输出单服务台顾客服务时刻表。
五.
分析总结
通过程序运行和结果校正,程序输出结果正确,程序运行正确。我们以10个顾客为例,运行程序,可以计算出在该程序设定条件下的属性值:
顾客平均等待时间=0.7
min
服务员平均服务时间=3.4
min
服务员平均空闲时间=1.2
min
六.
附录
#include
int
imax(int,int);
void
main(void)
{
int
time_interval[256];
int
reach_point[256];
int
service_time[256];
int
service_end_point[256];
int
wait_time[256];
int
free_time[256];
int
x[256];
int
y[256];
int
n,max;
int
i=1,temp=0;
int
a=35,m=1024;
/*输入顾客人数*/
printf(“输入顾客数n:
“);
scanf(“%d“,/*产生到达时间随机间隔*/
printf(“/n输入到达时间间隔随机初始值(1~1000):
“);
scanf(“%d“,printf(“/n“);
while(i>=1)
{
temp=a*x[i-1]%m;
while(temp>1000)
{
temp=a*temp%m;
}
if(temp!=x[0])
{
x[i]=temp;
i++;
}
else
{i=0;}
}
for(i=1;i=1
}
i=1;
printf(“第1位顾客到达时间间隔为:
0“);
for(i=2;i=1)
{temp=a*y[i-1]%m;
while(temp>1000)
{
temp=a*temp%m;
}
if(temp!=y[0])
{
y[i]=temp;
i++;
}
else
{i=0;}
}
for(i=1;i=1
}
for(i=1;iStretchBlt(pos_2,100,bmp.bmWidth/4,bmp.bmHeight/4,//以汽车走的距离为x轴起点
}
else
{//前车移动到下一行,后车行驶完width()-pos_2的距离,移动到下一行
KillTimer(1);
pos_2=0;
distance();
pos_1=inidis;//两车的初始距离
Velocity();//计算deltaX_1和deltaX_2的值,即两车的初始速度
Accelerated_Velocity_1();//前车的加速度,获得Av_1
changes+=1;
step=0;
Sleep(2000);
SetTimer(2,50,NULL);
//停车
}
}
if(changes==1)
{
if(pos_2StretchBlt(pos_1,200,bmp.bmWidth/4,bmp.bmHeight/4,pDC->StretchBlt(pos_2,200,bmp.bmWidth/4,bmp.bmHeight/4,//以汽车走的距离为x轴起点
}
else
{//前车移动到下一行,后车行驶完width()-pos_2的距离,移动到下一行
KillTimer(2);
pos_2=0;
distance();
pos_1=inidis;//两车的初始距离
//
Velocity();//计算deltaX_1和deltaX_2的值,即两车的初始速度
deltaX_1=30;deltaX_2=20;
Accelerated_Velocity_1();//前车的加速度,获得Av_1
changes+=1;
step=0;
Sleep(2000);
SetTimer(3,50,NULL);
//停车
}
}
if(changes==2)
{
if(pos_2=0))//后车位置
{
pDC->StretchBlt(pos_1,300,bmp.bmWidth/4,bmp.bmHeight/4,pDC->StretchBlt(pos_2,300,bmp.bmWidth/4,bmp.bmHeight/4,//以汽车走的距离为x轴起点
}
else
{
KillTimer(3);
pDC->StretchBlt(pos_1,300,bmp.bmWidth/4,bmp.bmHeight/4,pDC->StretchBlt(pos_2,300,bmp.bmWidth/4,bmp.bmHeight/4,bitmap_1.DeleteObject();
bitmap_2.DeleteObject();
dcCompatible_1.DeleteDC();
dcCompatible_2.DeleteDC();
}
}
void
CFollowingSimulationView::OnTimer(UINT_PTR
nIDEvent)
{
//
TODO:
Add
your
message
handler
code
here
and/or
call
default
step+=1;
//int
temp=0;//存储步长用
if(changes==0)//说明刚开始第一个时间段,两车均以匀速行驶,但deltaX_1>deltaX_2,因此需要后车加速以完成车距保持的目的
{
//Av_2=(30*(deltaX_1-deltaX_2)+realdis-200)/465;//只能计算一次
pos_1+=deltaX_1;
pos_2+=deltaX_2;
if(step>20)//可以通过if语句判断两车的实时距离有没有到200左右,到了的话就停止
{
if(abs(pos_1-pos_2)>200)
{
deltaX_2+=1;
pos_2+=deltaX_2;
}
else
{deltaX_2=deltaX_1;}
}
}
if(changes==1)
{
deltaX_1+=1;//前车加速度
pos_1+=deltaX_1;
if(step15)
{
if(abs(pos_1-pos_2)>200)
{
deltaX_2+=3;
pos_2+=deltaX_2;
}
else
{deltaX_2=deltaX_1;}
}
}
if(changes==2)
{
deltaX_1-=1;//前车加速度
pos_1+=deltaX_1;
if(step20)
{
if(abs(pos_1-pos_2)>200)
{
deltaX_2-=2;
pos_2+=deltaX_2;
}
else
{deltaX_2=deltaX_1;}
}
}
Invalidate(true);
CView::OnTimer(nIDEvent);
}