ELEC362 Project
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
Department of Electrical Engineering and Electronics
ELEC362 Project Circuit simulator application |
Module |
ELEC362 |
Coursework name |
Project |
Component weight |
50% |
Semester |
1 |
HE Level |
5 |
Lab location |
personal computers/laptops, university remote computer |
Work |
Individual |
*Estimated time to finish |
40 hours (coding and testing) |
Assessment method |
Individually |
Submission format |
Online via VITAL |
Submission deadline |
09.00 am on the 10th January, 2022 |
Late submission |
Standard university penalty applies |
Resit opportunity |
None except for extenuating circumstance |
Marking policy |
Marked and moderated independently |
Anonymous marking |
No (the marker needs to link the code to the report) |
Feedback |
via CANVAS |
Expected release of marks date |
15 business days from the deadline |
Learning outcomes |
LO2: Using C++ to implement GUI-based software. LO3: Using online documentation for self-learning. |
*Note: This estimate may vary based on the need to debug your application. Make sure you start working on the project as soon as possible.
The project
Task 1: Design and implement a Qt-based GUI which allows the user to draw an AC series circuit. Then the application will generate the equation that needs to be solved to compute the current. For example, for the circuit shown in figure 1:
Figure 1: Example circuit diagram to the app
The output of the app will be equation 1:
− + + + = 0
−10 + (4.7) + (−6.77) + (15.7) = 0
The application does not need to solve the equation. Only displaying it to the user is enough. If the equation generated is not correct from circuit theory perspective, no marks will be lost.
The elements that can be added as part of the application are: AC source, resistor, capacitor, inductor, and a ground. To remind you how elements can be converted into impedances the following relations are used:
1
= , = − = 2
In the previous equations ZR, ZC and ZL are the impedances of the resistor, capacitor, and inductor respectively. R, C and L are the values of the resistance, capacitance and inductance respectively. Lastly, f is the frequency of the voltage source. If there are multiple voltage sources in the circuit, all of them will operate at the same frequency.
In addition to the core functionality mentioned above, the application:
- Should have the ability to save and load the circuit.
- Should allow the user to add elements to the circuit drawing using 3 different means.
- Should allow the user to change the parameters of the elements (i.e. the resistance of the resistor), by right-clicking on the item.
- Should be validated, in the report, by using test circuits as inputs to the application obtaining the equation, calculating the circuit from the equation (not part of the application), then comparing the solution to a solution provided by another programme such as PSpice or Multisim (No linking to PSpice or Multisim is required in the application).
- Should be able to deal with a range of potential run-time errors, which the developers should identify.
Task 2: Modify the application to also be able to work with parallel circuits as well. This part is meant to be a challenge so minimal help will be provided for this part.
It is an expectation from everyone to consult Qt documentation to find any functions or classes that might be useful for the implementation of this project. Finally, you should make the programme as professional as possible. Imagine this project as a real-life project given to you.
Approach to be followed
The following steps will help you to have a good design and implementation of the application:
– Start by conducting a background overview of the available programs for circuit simulations and how they are used. This will give you a feeling of what a professional design is and a better understanding of the core functionality. Make sure the practical notes given in the lectures ae taken into consideration in your design and implementation.
– Follow the incremental model by breaking the implementation of the application into smaller parts, where every part is designed, implemented and tested before other parts are implemented.
– Make sure your application is working perfectly before moving to task 2.
Note for Mac OS users: You can develop the application and write the report based on Mac version of the app. The application will be tested and marked on a Windows machine. You are strongly recommended to verify that your app works as it should on a windows machine before submission, to avoid any potential cross-platform issue, if you have any problems, please let me know.
The deliverables
Every submission should consist of the project’s files + brief report. The name of the zip file must be your name. The report must have the student’s name and ID number. The report does not need an introduction or a conclusion, it must have a cover page, and includes the following sections:
How the programme works (explain the idea of the algorithm, include a flow chart).
User instructions (how should the user use it)
Testing and verification attempts.
Overall notes (optional): in this section you can highlight any special features in your design or implementation of the application. Or you can mention any major issue you faced how you overcome it. If you left this section empty you will not lose any marks.
Appendix: headers+ source files (must be in machine readable format).
Industrial Relevance
Circuit simulations software are essential tool in industry where ICs for example are designed and power supplies are developed. In addition to educational institutions where physics or electrical engineering are taught. The tasks given in this project are essential part of famous software
including:
The programming experience gained from doing this project not only extends to circuit simulation software, it also extends to any software where a process is modelled whether it is electrical, mechanical, industrial, or chemical process.
Mapping the project to modules’ material:
Aspect |
Where it is covered |
Creating child windows or child dialogs. |
Lecture 16, Lecture 18 |
Saving object in vectors in Qt |
Week 8 lab, the tutorial |
Loading and saving files |
Lecture 18, week 9 lab |
Error handling |
week 9 lab |
Dealing with string sequences |
Week 7 lab, the tutorial |
Implementing mouse functionality |
Lecture 16, the tutorial |
Handling drawings |
Lecture 17, the tutorial |
Implementing a functionality using different methods |
Lecture 16, week 8 lab |
Controlling the style, layout and GUI design |
Lecture 15, the tutorial |
Implementing buttons and other input widgets functionality |
Lectures 14-15, week 7 lab |
Implementing interaction between different elements in a drawing |
The tutorial |
Online documentation |
2022-01-10
Circuit simulator application