Jump to content

João Marabisa

  • Content Count

  • Joined

  • Last visited

  • Days Won


João Marabisa last won the day on June 30

João Marabisa had the most liked content!

1 Follower

About João Marabisa

  • Rank

Profile Information

  • Are you University user?

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello everyone, I've made a quarter car model (very known engineering model on automotive) using Activate and Modelica and MotionView in order to explore a little more about Altair softwares capabilities. I'm trying to show to my teammates at Baja that we can do some nice (and powerful) models using different approaches (saving much time). I've made a short video showing the model (which is attached): Hope this could be useful for you Cheers! quarter_car.rar
  2. Just to comment, with those API's mentioned by Roberta (which Patrick suggested us to use) the issue was solved in fact, anyway, it is not clear yet when these API's at the beginning should be used, once in some models (including in demo) just using vssGetInputData directly we can calculate it... Thanks for you all.
  3. Hello everyone, Firstly, thanks for your effort (both Lorenzo and Fady)! For sure I can share with you (attached). There are a few calculates in the model (which I commented) but I think that I'm having problem with the first step, reading the input (I am using 'disp' the show the input vector to debug it), as you could see, the array input is not equal than my integral initial condition: Regarding the aliases, to be honest I had some doubts because on the demos with "OML Custom Block" different types of API function are used and I was trying to understand the differences between them like "vssSetOutPortData(block,1,med,vssGetOutputDataType(block,1))" so actually are they all aliases? Regards. Test_omlcblock.scm
  4. Hello techs, I'm facing some challenges using "OML Custom Block" and that is why I've decided to post here because maybe someone has already had the same questions. I've done a little example to illustrate this (below). 1. First of all I'd like to understand if there are differences (or maybe improvements) between somes commands of the API's like: "vssGetInputData" / "vssGetInPortData" and "vssSetOutputData" / "vssSetOutPortData". I've done some tests and I have obtained the same results... There is no description on the help regarding these commands (API's in general) and if possible would be nice to add them. 2. Use a Initial Condition on OML Block by the Integrator: I've set a initial condition on the Integrator block and I'd like that these conditions would be read on my Oml Block in the first step. As you could see, it is not being read exactly as a initial condition, it looks like that has already integrated: I've tried to set this on Oml block Parameters as well and it did not work. If it is not clear, I just would like to use de Initial condition (first step) of the integrator as my first 'X array' (used on Oml block) and then continue to integrate. My 'U array' is being read correctly. Thanks.
  5. Both suggestions are really helpful, thank you guys... I was having a problem using "If Expressions (Pallete - ActivationOperations)" because my output should be a scalar and not a Matrix. And using that option I would have different output ports, and it does not work for my case. I've decided to try Livio's suggestion (as a challenge) and it worked. Besides tricky, is pretty elegant. To illustrate you a case, I have 1 input (Td) and all the other variables are set by the user, and it has to respect the following equations: I had exactly the result that I was expecting! I've attached the file for those who might be interested. Cheers! boost_curve.scm
  6. Hello everyone, Regarding some Shock's analysis demands, I've decided to facilitate and automate (using Activate) the task to obtain the expected Shock Response Spectrum curve as below: This model will be very useful for those who are intending to do some Shock's analysis, even a linear approximation using the amplification factor on a certain frequency, as a Response Spectrum covering all the frequency domain. Basically the inputs are the Half-sine and System properties: Sine: Magnitude, period, phase. System: Mass, damping, stiffness. After set them, you'll just have to click 'Run' and then 'Execute'. Besides the traditional plots (Acceleration (G) vs. Frequency (Hz)) you will already have the 'TABLED1.fem' to be used on OptiStruct, as can be seen in this video. Thanks for @robertavarela, @RoKet and @Adriano Koga for some tips regarding the modeling. Hope this be very useful for you all! Please, let me know if you have any question about this model (attached). João. Srs_curve_model.zip
  7. Hi Brock, Firstly I'd like to mention that nowadays we have a great capability to work with Simulink files (.slx), so in case of questions, please share with us in our forum. Regarding to your questions: 1. Activate is able to solve by a "discrete-time fixed step solver", I understand your question once on Simulink you have a specific selection to this. Though Activate has no an "explicit option" you could choose your step solver settings, as well: Recently a colleague discussed with us this solver option, as mentioned as below: "The models are equivalent, except the last one where the output of the sinewave generator, depending on what goes on in the rest of the model and the solver setting may produce intermediate useless values (so a possible slight loss of optimality). Note also that in this case Activate knows that the output of the filter is a discrete-signal so the scope displays the signal more appropriately (as a piece-wise constant signal instead of performing linear interpolation used to plot continuous-time signals)." 2. On Activate there are some options to debug your model, the easiest one is: With that option you could analyze how the is the signal through the blocks. You can also set as "off" some specifics blocks to disconsider them: 3. Yes, it is possible to import some OML files to read them as variables on Activate. Myself in particular use this: You could actually just go to: File - Open - Select OML as file extension - Select it. It will work as well. If you prefer, tell us if you have a specific application or more questions. João.
  8. @Soheil_F, I'm not a Linux specialist, so I've talked with someone that handles with MS, Activate Linux integration, and he told me that it really depends on your privileges and where you installed Activate and HyperWorks. The easiest way to solve it, is installing all HW's products on Home Directory (not on /root or /opt), is that possible for you? He mentioned that does not experiences any issues doing that. By the way, now that you've told me that you are using Linux, a message regarding ".dll" files should not appears, once they are Windows binary files and on Linus we have ".so", I told him that and he agrees. Could you please tell me your Company or University? It will be useful for our internal improvements. Many thanks for your feedback.
  9. Hi @Soheil_F, By any chance is it your first time running MotionSolve? I ask you this, because I've searched the "scpxml.dll" file and it should be in your solver path installation, something like: "D:\Programas\Altair\2020\hwsolvers\motionsolve\bin\win64" Could you please access this path and search for "scpxml.dll" file? I've made a test deleting it and run the Activate tutorial and I've got the same error as yours: I've copied to the installation path again, and it worked. So it could be some MotionSolve installation error. João.
  10. Hi techs! I've created a Ball & Beam model on MotionView to explore a co-simulation with Activate. Many of you may have seen this on undergraduate/master class studying on frequency or even on time domain. I've decided to do something different, creating the model on a multibody environment. The control is a simple PD, where I've calculated using analytical method (Kp +Kd.s) with a specified overshoot and settling time. You could explore changing its values... I'd like to thank @Livio Mariano for suggesting me his own low-pass filter in a way to filter the input displacement signal (without it I was having a problem to converge). I've created a short video to show you how it works, and the files are attached. Enjoy! João. Ball_&_beam.zip
  11. Adriano, The first time that I've tried to Run a modelica tutorial model, I got the same problem as you, even showing: ans = vc15_buildtools (So theorically I've installed the C++ package). What I've done was to check what I've indeed installed on C++ package as mentioned by @RoKet (once has a wide options to select). I'd suggest you to do the same thing. So when you open the "vs_BuildTools", please do check these items that I've indicated with a red arrow (picture below, sorry for the portuguese), and then modify your installation to install then. One check that you can do is, searching for a similar path below (as mentioned by @RoKet): (It is curious that before doing these changes, I did not have these folders, even with C++ package installed). vs_BuildTools.zip Maybe with this, you can run your model (it worked exactly like that with me). By the way, I've attached the vs_BuildTools to you modify you package. João.
  12. Hi Thinh, If you take a look at the C, Oml and Python Custom Blocks, you will se that they have a similar structure, telling about these flags and logics. Basically the flag is the way that the simulator tells the block what operation needs to performe (usually these jobs consists in updating some of the fiels of the block structure). Regarding to Initialization, generally speaking it is not used (once the states are usually initializated during evaluation), unless you have to read an write data from files on this code, or even if you require dinamically allocated memory. With respect to Reinitialize, you should think that right after the initialization, the inputs to the block may change from one call to the next, and this state it imposes constraints at the initial time, if successful, these call lead to the convergence of the states and inputs. In the Terminate, the simulator calls each block's computational function, this is useful to flush buffered data for closing files that have been opened by blocks ate the beginning or during the simulation. Finally, the OutputData requests the output of the block! As you can see, this explatation is more based on "internal" computational functions, what I'd like to tell you that, depending on your model (mostly of them) you can simulate just using OutputData. I'm attaching an example model that you can see it. Hope this helps. Median_PY_unmasked.scm
  • Create New...