Пример #1
0
        /// <param name="outputWriter">The TextWriter to write the output csv-file to.</param>
        public void ToCsv(TextWriter outputWriter)
        {
            var csvWriter = new CsvWriter(outputWriter);

            csvWriter.AddEntry("Step");
            for (var i = 0; i < Steps; i++)
            {
                csvWriter.AddEntry(i);
            }
            csvWriter.NewLine();

            csvWriter.AddEntry("CurrentValue");
            for (var i = 0; i < Steps; i++)
            {
                csvWriter.AddEntry(SourceValues[i]);
            }
            csvWriter.NewLine();

            csvWriter.AddEntry("Pr");
            for (var i = 0; i < Steps; i++)
            {
                csvWriter.AddEntry(ResultValues[i]);
            }
            csvWriter.NewLine();
        }
Пример #2
0
        public void CalculateHazardProbabilityGraph()
        {
            var model = new ExampleModelBase();

            var minValue = 0.0;
            var maxValue = 1.0;
            var steps    = 250;
            var stepSize = (maxValue - minValue) / (steps - 1);

            var sourceValues = new double[steps];
            var resultValues = new double[steps];

            for (var i = 0; i < steps; i++)
            {
                var currentValue = i * stepSize;
                sourceValues[i] = currentValue;
                model.System.SignalDetector1.F1.ProbabilityOfOccurrence = new Probability(currentValue);
                var currentResult = SafetySharpModelChecker.CalculateProbabilityToReachStateBounded(model, model.System.HazardActive, 50);
                GC.Collect();
                resultValues[i] = currentResult.Value;
            }

            var fileWriter = new StreamWriter("Model3/graph.csv", append: false);
            var csvWriter  = new CsvWriter(fileWriter);

            csvWriter.AddEntry("Step");
            for (var i = 0; i < steps; i++)
            {
                csvWriter.AddEntry(i);
            }
            csvWriter.NewLine();

            csvWriter.AddEntry("Pr(F1)");
            for (var i = 0; i < steps; i++)
            {
                csvWriter.AddEntry(sourceValues[i]);
            }
            csvWriter.NewLine();

            csvWriter.AddEntry("Pr(Hazard)");
            for (var i = 0; i < steps; i++)
            {
                csvWriter.AddEntry(resultValues[i]);
            }
            csvWriter.NewLine();
            fileWriter.Close();
        }