1. Post #1
    BadZzch's Avatar
    February 2011
    51 Posts
    In my quest to make an unnecessarily powerful engine (as seen here)
    , I finally did but it yielded one problem! I tried attaching a transmission to bring the wheel rpm down from going above the limit at which wheels fall through the ground, but each trany just slips. Is there any alternative that can withstand something of this nature because it defeats the purpose of having the engine due that nothing can actually grip the ground without falling right through it.

  2. Post #2
    One Ear Ninja's Avatar
    November 2009
    2,223 Posts
    Dat vid :byodood:

  3. Post #3
    BadZzch's Avatar
    February 2011
    51 Posts
    Either it was the video quality or engine that brought you to that expression... hmmmm, I don't think that answers my question either lol.

  4. Post #4
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    The problem is that your engine is just too powerful. If you want to bring the wheel RPM down, you'll just have to settle with bringing the engine RPM down. Try something like.
    Code:
    if(RPM>500){On=0}else{On=1}
    Where "On" is a multiplier in the expression used to turn the engine on and off. This will turn the engine on if the RPM is less than 500, but shuts it off if the RPM is over 500.

  5. Post #5
    Dennab
    June 2010
    2,040 Posts
    The problem is that your engine is just too powerful. If you want to bring the wheel RPM down, you'll just have to settle with bringing the engine RPM down. Try something like.
    Code:
    if(RPM>500){On=0}else{On=1}
    Where "On" is a multiplier in the expression used to turn the engine on and off. This will turn the engine on if the RPM is less than 500, but shuts it off if the RPM is over 500.
    from what I can tell your problem isn't actually RPM, it's also the massive torque of the engine--you're over-torqueing your wheels, hence, you flip like that. If it was pure RPM, the wheels would just bounce with wheel-skip.

    Up your wheel weight to require more inertia to move it, add more wheels to distribute torque, make it front wheel drive to help compensate for the torque (it'll force the rear wheels down, an unusual solution I found by accident actually), wheel grip hacks, use a wire clutch to slip some of your torque, etc.
    Wheel grip hacks, if you don't know, is applying downward force on the axles or the wheels themselves. Used in moderation or at certain times/amounts, it's very useful (for example increasing the force as RPM increases)

    And Opie, for the love of god, use source recorder. Fraps/Gamecam/Xfire don't compare. Just use hte built-in recorder.

    Edited:

    also,
    Code:
     Fuel = (SetRPM-RPM)*Mul
    is better than hit and miss timing, although you gotta be careful it doesn't explode at low rpms.

  6. Post #6
    BadZzch's Avatar
    February 2011
    51 Posts
    Thanks for the tips.. I forced the car to stay on the ground but the wheels span too fast so they sunk into the ground. I also tried source recorder via the console and the menu add-on, but for some reason it trips out on me no matter what setting its on. Also, I'm not sure what you mean by hit and miss timing, but if I assume you mean my hydro fire system it uses distance detection via a rotating marked object.
    But...
    I thought about it, its a wacky and odd idea that might work. Would it be possible to use a forcer that acts as a collision barrier and does not actually exert excess force? If so this may be a solution if placed on a wheel. I don't know if its possible, but before I spend a lot of time on something of the sort, I'm curious if they can serve this purpose. If needed to visualize it, i'll make something that at least resembles it and take a screenshot.


    edit: Also, I would limit the rpm, but my engine is on the brink of max ops although the code is extremely concise and refined. I added one line and I wasn't able to use variable power without exceeding max ops.

  7. Post #7
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    There is no way in Hell that a hydraulic engine's timing chip could come anywhere close to maximum e2 ops. My engines barely hit 70 ops MAXIMUM.

    It seems that you just need to rebuild from the ground up. Reduce the weight of everything, including the engine, and rewrite your code. For 4 different points on the crankshaft, the expression shouldn't be have any more than 4 lines to time those.
    Code:
    if(Bearing>X&Bearing<Y){H=A}else{H=B}
    Some people like to explode their code for easier viewing, but you shouldn't need to for something as simple as this.

  8. Post #8
    BadZzch's Avatar
    February 2011
    51 Posts
    Before I respond, First off for those who may help read my previous post about a trany idea for this engine... I'm not sure if its plausible.

    Sorry I didn't explain it well, the distance detection barely pings, the controller does. The code is honestly simple, the outputs are simply numerous making it look large as they are all necesary for the power behind this engine via moding length constants and damping.

    It just checks for five conditions then outputs as four are for the four hydro sets, and one is for instant startup. I think the outputs and inputs cause the ops to rise so high.

    Code:
    @name ZSCM GEN 5
    @inputs INPhl INPpow INPoAf INPum INPud INPcd INPdamponly
    @outputs OUThl OUThl2 OUThlt OUThlb OUTc1 OUTc2 OUTc3 OUTc4 OUTd1 OUTd2 OUTd3 OUTd4
    @persist INTu INTd 
    @trigger 
               
    interval(10) #NO else statements used as the detection faults although sytax is corret
    
    if(INPoAf==0){
        OUTc1=250
        OUTc2=50
        OUTc3=0
        OUTc4=0
        OUTd1=0
        OUTd2=0
        OUTd3=0
        OUTd4=0
        INTu=0
        INTd=0
        OUThl=0
        OUThl2=100
        OUThlt=0
        OUThlb=0}
        
    if(INPoAf==1){
        if(INPhl<INPum){
            INTd=0
            if(INTu==0){
                INTu=1}
            OUTc1=0
            OUTc2=0
            OUTc3=INPcd
            OUTc4=0
            OUTd1=0
            OUTd2=0
            OUTd3=INPdamponly
            OUTd4=0
            OUThl=0
            OUThl2=0
            OUThlt=INPpow
            OUThlb=0
        }
        if(INPhl>INPud){
            INTu=0
            if(INTd==0){
                INTd=1}
            OUTc1=0
            OUTc2=0
            OUTc3=0
            OUTc4=INPcd
            OUTd1=0
            OUTd2=0
            OUTd3=0
            OUTd4=INPdamponly
            OUThl=0
            OUThl2=0
            OUThlt=0
            OUThlb=INPpow
        }
    
        if(INTu==1){
            if(INPhl>INPum){
                OUTc1=INPcd
                OUTc2=0
                OUTc3=0
                OUTc4=0
                OUTd1=INPdamponly
                OUTd2=0
                OUTd3=0
                OUTd4=0
                OUThl=INPpow
                OUThl2=0
                OUThlt=0
                OUThlb=0}
        }
        if(INTd==1){
            if(INPhl<INPud){
                OUTc1=0
                OUTc2=INPcd
                OUTc3=0
                OUTc4=0
                OUTd1=0
                OUTd2=INPdamponly
                OUTd3=0
                OUTd4=0
                OUThl=0
                OUThl2=INPpow
                OUThlt=0
                OUThlb=0}
        }
      if(INPhl>INPum){
       if(INPhl<INPud){ 
        if(INTu==0){
         if(INTd==0){
           INTd=1}
        }
    } 
    }
    }

    PS: I found a way to get it to not flip, and as suggested, I used downward force (10 max downward apply forces which physically weighmax weight), 16 small wheels, and everything is at max weight. Although it didn't have full traction, the wheels didn't stop even when tugging 50 max weight cubes. I still need a trany.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 2 (list)

  9. Post #9
    Gold Member
    Kickasskyle's Avatar
    February 2005
    626 Posts
    Before I respond, First off for those who may help read my previous post about a trany idea for this engine... I'm not sure if its plausible.

    Sorry I didn't explain it well, the distance detection barely pings, the controller does. The code is honestly simple, the outputs are simply numerous making it look large as they are all necesary for the power behind this engine via moding length constants and damping.

    It just checks for five conditions then outputs as four are for the four hydro sets, and one is for instant startup. I think the outputs and inputs cause the ops to rise so high.

    WALL OF CODE THE LIKES OF WHICH HAS NEVER BEEN SEEN BY MAN FOR THOUSANDS OF YEARS


    PS: I found a way to get it to not flip, and as suggested, I used downward force (10 max downward apply forces which physically weighmax weight), 16 small wheels, and everything is at max weight. Although it didn't have full traction, the wheels didn't stop even when tugging 50 max weight cubes. I still need a trany.
    Use [code] [/ code] please

  10. Post #10
    Needs more suspension.
    Dennab
    February 2006
    4,484 Posts
    what's wrong with using some gears from the gear pack, they are able to handle winston and i's 1000hp motors.
    Reply With Quote Edit / Delete Reply United States Show Events Optimistic Optimistic x 1 (list)

  11. Post #11
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    Before I respond, First off for those who may help read my previous post about a trany idea for this engine... I'm not sure if its plausible.

    Sorry I didn't explain it well, the distance detection barely pings, the controller does. The code is honestly simple, the outputs are simply numerous making it look large as they are all necesary for the power behind this engine via moding length constants and damping.

    It just checks for five conditions then outputs as four are for the four hydro sets, and one is for instant startup. I think the outputs and inputs cause the ops to rise so high.
    Code:
    @name ZSCM GEN 5
    @inputs INPhl INPpow INPoAf INPum INPud INPcd INPdamponly
    @outputs OUThl OUThl2 OUThlt OUThlb OUTc1 OUTc2 OUTc3 OUTc4 OUTd1 OUTd2 OUTd3 OUTd4
    @persist INTu INTd 
    @trigger 
               
    interval(10) #NO else statements used as the detection faults although sytax is corret
    
    if(INPoAf==0){
        OUTc1=250
        OUTc2=50
        OUTc3=0
        OUTc4=0
        OUTd1=0
        OUTd2=0
        OUTd3=0
        OUTd4=0
        INTu=0
        INTd=0
        OUThl=0
        OUThl2=100
        OUThlt=0
        OUThlb=0}
        
    if(INPoAf==1){
        if(INPhl<INPum){
            INTd=0
            if(INTu==0){
                INTu=1}
            OUTc1=0
            OUTc2=0
            OUTc3=INPcd
            OUTc4=0
            OUTd1=0
            OUTd2=0
            OUTd3=INPdamponly
            OUTd4=0
            OUThl=0
            OUThl2=0
            OUThlt=INPpow
            OUThlb=0
        }
        if(INPhl>INPud){
            INTu=0
            if(INTd==0){
                INTd=1}
            OUTc1=0
            OUTc2=0
            OUTc3=0
            OUTc4=INPcd
            OUTd1=0
            OUTd2=0
            OUTd3=0
            OUTd4=INPdamponly
            OUThl=0
            OUThl2=0
            OUThlt=0
            OUThlb=INPpow
        }
    
        if(INTu==1){
            if(INPhl>INPum){
                OUTc1=INPcd
                OUTc2=0
                OUTc3=0
                OUTc4=0
                OUTd1=INPdamponly
                OUTd2=0
                OUTd3=0
                OUTd4=0
                OUThl=INPpow
                OUThl2=0
                OUThlt=0
                OUThlb=0}
        }
        if(INTd==1){
            if(INPhl<INPud){
                OUTc1=0
                OUTc2=INPcd
                OUTc3=0
                OUTc4=0
                OUTd1=0
                OUTd2=INPdamponly
                OUTd3=0
                OUTd4=0
                OUThl=0
                OUThl2=INPpow
                OUThlt=0
                OUThlb=0}
        }
      if(INPhl>INPum){
       if(INPhl<INPud){ 
        if(INTu==0){
         if(INTd==0){
           INTd=1}
        }
    } 
    }
    }
    PS: I found a way to get it to not flip, and as suggested, I used downward force (10 max downward apply forces which physically weighmax weight), 16 small wheels, and everything is at max weight. Although it didn't have full traction, the wheels didn't stop even when tugging 50 max weight cubes. I still need a trany.
    I have no freaking clue how you set up that engine, but you should be able to severely simplify it. If I understand how you built the engine, you should only need 4 hydro outputs, but with multiple hydraulics wired to any output. I'm not sure what the purpose is to have things this complex, as I'm sure you could get just as much power (if not more) out of an engine I am describing.

  12. Post #12
    Dennab
    June 2010
    2,040 Posts
    yes this seems to be an unnecessarily complex engine. Using four hydraulics on feedbacks you could get the same power as eight regularly, and the code is making my head hurt

  13. Post #13
    BadZzch's Avatar
    February 2011
    51 Posts
    I'll explain. If the engine is started and is not in 12 o clock pos, it chooses sector 4's firing pattern and revolves to the top. Once at the 12 position, the engine fires counter clockwise with set 1(labeled 3) which consists of two opposite sets of four pistons each. Once the engine is past up detection zone, set 2(labeled 1) fires until it hits the bottom detection zone where set 3(labeled 4) fires, and set 4(labeled 2) when leaving that zone. This produces a continual uni-directional spin due to hydraulic firing angles and positions, but to gain power or null opposing hydraulic resistance, constants and damps have to be updated or else e2 continues to output an item even after the condition is false (I don't know why, but its just how it is). Its real basic, but the ops is high.


    Sorry i forgot to use [ code] [/code ], and Amplar, this thing goes leaps above 1000 horsepower, it even overloads the old and new 1.2 autodyno, and can pull 100 max weight cubes, yet it loses traction but does not stop spinning above that (aka it still has more power which I can't use due to slip AND yes once I find a way to give it more traction as e2 isnt apply force isnt enough, there will be a video herp derp).

    YET most importantly, what about my trany problem lol

  14. Post #14
    BadZzch's Avatar
    February 2011
    51 Posts
    edited sorry double clicked

  15. Post #15
    Dennab
    June 2010
    2,040 Posts
    doublepost much?

    Maybe it's me but I always thought "hydraulic" and "forcer" engines weren't real engines I mean, the "rotating camshaft forcer" with a timing shaft and pistons kind of is, but...idk.

    Edited:

    use the "new gear pack" or some sort of weld-latch ratcheting transmission if you can't lower your rpms. Wire clutch tool also works, but is very inefficient.

  16. Post #16
    BadZzch's Avatar
    February 2011
    51 Posts
    Yes It was an accident err, I'm looking to use items found in most servers... I don't play offline a lot as prefer playing in servers. Maybe the new gears would work, but so would have coding a chip via lua to give me more flexibility with e2, but as stated it defeats the purpose. Anyhow, what about the forcers, does anyone know if they can be used as a barrier instead of accelerating an object? If so I could possibly make a trany with em.

  17. Post #17
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    All I know is that your engine is unnecessarily complex. Make it simple. Make a hydraulic go to a length until a desired angle is reached, then go to a different length until the opposite angle is reached, sorta an in/out motion.

    This is how most hydraulic engines are done, so please be normal if you want acceptable and predictable results.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1 (list)

  18. Post #18
    BadZzch's Avatar
    February 2011
    51 Posts
    Ahhhhhh... If I treated it like theirs though it would loose its unnecessary power :( I need the unnecessary power for no reason what so ever... GOSH!!

  19. Post #19
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    Ahhhhhh... If I treated it like theirs though it would loose its unnecessary power :( I need the unnecessary power for no reason what so ever... GOSH!!
    I'd be willing to bet that I can make a hydraulic engine with half as many hydros, and still get very, VERY reasonable power.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1 (list)

  20. Post #20
    BadZzch's Avatar
    February 2011
    51 Posts
    If you want go for it. When screwing around I found out why the variable power was glitching and sticking causing me to be unable to lower the power. I had wired the hydraulic expansion rate reset to the wire hydraulic constant increment-or sooo it seemed as if a little change would happen now and then but then would seem useless now knowing the culprit was it was reseting to default power. I don't know how this happened as I checked and fixed that a bit back, but now I can decrement the engine power to whatever I want without a hitch thus less rpms with less torque.. I too can make the engine more powerful which is absolutely pointless yet funny. I'm not sure if it is so, but perhaps the glitch had to do with super parent multi. In English, engine issue solved without ops increase.

    Also, I guess its useless to have a trany as I have tried about everything... So long dreams of cruising at an incredible five miles per hour with untold amounts of torque :(

  21. Post #21
    Dennab
    June 2010
    2,040 Posts
    applyOffsetForce can be used for torque and requires less work than an engine. It's essentially the same as putting a thruster on a lever, giving you a nice mechanical advantage.

    Code:
    E:applyOffsetForce((Base:up() * Mul),(E:massCenter() + (Base:forward() * 100))))
    E:applyOffsetForce((Base:up() * -Mul),(E:massCenter() + (Base:forward() * -100))))
    the 100/-100 would be like the length of two levers, extending from the center of E (a wheel). It's the applyforce version of sticking a thruster on the end of something; using leverage, you can create torque. Using an RPM limiter or gears, you can manage the speed to thte 5mph you want. really it's "Torque = Force X Distance"

  22. Post #22
    Tolyzor's Avatar
    January 2009
    249 Posts
    Alternatively, this is exactly the same as the above code;
    Code:
    E:applyTorque(Base:right() * 200 * Mul)
    ;)

    Disclaimer: Engines are for cool factor, this is no substitute.
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Agree Agree x 2 (list)

  23. Post #23
    BadZzch's Avatar
    February 2011
    51 Posts
    Exactly, but good news! I crammed all the wire chips into the e2, and to my surprise, ALL THE INPUTS were the issue (it dropped 100 ops ridiculous huh?). I am now able to bring the engine down to 1 rpm all the way up to 800 without my wheels going through the ground! I also added code to up the power (hydro const) in case of loss of rpm when moving so it now auto adjusts to practically infinite torque as needed. No transmission required anymore, although it would be damn right awesome to
    have one.

    Oh and did anyone call for tank steering flywheels :P and an additional completely unnecessary 32 hydros on top of 32 unnecessary hydros

  24. Post #24
    Pringles.'s Avatar
    May 2010
    3,734 Posts
    You're using some sort of a physics mod? I can only get up to 600 rpm in my cars.

  25. Post #25
    BadZzch's Avatar
    February 2011
    51 Posts
    Not at all... You see how I control the constant and damping at all points? Thats how I achieve the power and speed I do. This is vital towards nulling offline hydros counter-acting the active ones.

    Here take a look, I'll throw in comments needed to really understand it and this is also my newest revision.. What you need is under power and detection/fire sequencing (look mostly in the outputs for fire sequencing). I was able to add a lot more after removing many inputs with high refresh rates.

    ((remember this engine uses a distance marking system to read when to initiate hydros))
    Code:
    [] = comment
    @name ZSCM GEN 6
    @inputs INPent:entity INPoAf [on or off] INPcdu [1/0 inc power] INPcdd [1/0 lower power] INPcdhp [1/0 high power mode] INPcdres [1/0 default power reset] INPrt [1/0 right flywheel lock] INPlt [1/0 left flywheel lock] INPs [1/0 brake/engine idle]
    @outputs OUTc1 [constant left quadrant] OUTc2 [constant right quadrant] OUTc3 [constant top quadrant] OUTc4 [constant bottom quadrant] OUTd1 [damping left quadrant] OUTd2 [damping right quadrant] OUTd3 [damping top quadrant] OUTd4 [damping bottom quadrant] OUThl [hydro length left quadrant] OUThl2 [hydro length right quadrant] OUThlt [hydro length top quadrant] OUThlb [hydro length bottom quadrant] OUTrws [right flywheel stop/go] OUTlws [left flywheel stop/go] OUTrewl [right flywheel to engine weld] OUTlewl [left flywheel to engine weld]
    @persist INTu [up hit count] INTd [down hit count] DBLhl [detection point dist] CONSTum [upper d zone] CONSTud [lower d zone] CONSTdamponly [damping... duh] CONSTpow [hydro length] INTcd [hydro constant] INTcdreg [constant inc/dec reg val] INTcdhp [constant inc/dec high power val]
    @trigger 
    
    CONSTum=15 
    CONSTud=40 
    CONSTpow=2500000000000000 
    CONSTdamponly=3864
    INTcdhp=2500
    INTcdreg=50
    
              
    interval(10) #NO else statements used as the detection faults although syntax is correct [blah freggin blah]
    
    [POWER]
    if(INPcdres==0){
        if(INPcdu==1){
            if(INPcdhp==0){
                INTcd=INTcd+INTcdreg} 
            if(INPcdhp==1){ 
                INTcd=INTcd+INTcdhp}
        }
        if(INPcdd==1){
            if(INPcdhp==0){
                INTcd=INTcd-INTcdreg} 
            if(INPcdhp==1){ 
                INTcd=INTcd-INTcdhp} 
         }
    }      
    if(INPcdres==1){
        INTcd=INTcdreg}
        
    if(INTcd<INTcdreg){
        INTcd=INTcdreg}
    
    [TURNING]
    if(INPrt==1){
        OUTrws=1
        OUTrewl=0
        OUTlws=0
        OUTlewl=1}
    if(INPlt==1){
        OUTrws=0
        OUTrewl=1
        OUTlws=1
        OUTlewl=0}
    if(INPs==1){
        OUTrws=1
        OUTrewl=0
        OUTlws=1
        OUTlewl=0}
    if(INPs==0){
        if(INPrt==0){
            if(INPlt==0){
                OUTrws=0
                OUTrewl=1
                OUTlws=0
                OUTlewl=1}
        }
    }
    
    [DETECTION/FIRE SEQUENCING] 
    if(INPoAf==0){
        OUTc1=250 [simply used to reset engine when off]
        OUTc2=50
        OUTc3=0
        OUTc4=0
        OUTd1=0
        OUTd2=0
        OUTd3=0
        OUTd4=0
        INTu=0
        INTd=0
        OUThl=0
        OUThl2=100
        OUThlt=0
        OUThlb=0}
     
    E=entity()
    DBLhl=E:pos():distance(INPent:pos())
         
    if(INPoAf==1){
        if(DBLhl<CONSTum){
            INTd=0
            if(INTu==0){
                INTu=1}
            OUTc1=0[how the engine gains its true power as seen it nulls counter-acting hydros]
            OUTc2=0
            OUTc3=INTcd
            OUTc4=0
            OUTd1=0
            OUTd2=0
            OUTd3=CONSTdamponly
            OUTd4=0
            OUThl=0
            OUThl2=0
            OUThlt=CONSTpow
            OUThlb=0
        }
        
    E=entity()
    DBLhl=E:pos():distance(INPent:pos())
        
        if(DBLhl>CONSTud){
            INTu=0
            if(INTd==0){
                INTd=1}
            OUTc1=0
            OUTc2=0
            OUTc3=0
            OUTc4=INTcd
            OUTd1=0
            OUTd2=0
            OUTd3=0
            OUTd4=CONSTdamponly
            OUThl=0
            OUThl2=0
            OUThlt=0
            OUThlb=CONSTpow
        }
    
    E=entity()
    DBLhl=E:pos():distance(INPent:pos())
    
        if(INTu==1){
            if(DBLhl>CONSTum){
                OUTc1=INTcd
                OUTc2=0
                OUTc3=0
                OUTc4=0
                OUTd1=CONSTdamponly
                OUTd2=0
                OUTd3=0
                OUTd4=0
                OUThl=CONSTpow
                OUThl2=0
                OUThlt=0
                OUThlb=0}
        }
        
    E=entity()
    DBLhl=E:pos():distance(INPent:pos())
        
        if(INTd==1){
            if(DBLhl<CONSTud){
                OUTc1=0
                OUTc2=INTcd
                OUTc3=0
                OUTc4=0
                OUTd1=0
                OUTd2=CONSTdamponly
                OUTd3=0
                OUTd4=0
                OUThl=0
                OUThl2=CONSTpow
                OUThlt=0
                OUThlb=0}
        }
        
    E=entity()
    DBLhl=E:pos():distance(INPent:pos())
        
      if(DBLhl>CONSTum){
       if(DBLhl<CONSTud){ 
        if(INTu==0){
         if(INTd==0){
           INTd=1}
        }
    } 
    }
    }

  26. Post #26
    Bombardier.'s Avatar
    August 2009
    1,054 Posts
    Problem is that the Source rotational limit is ~600rpm, last I checked.

  27. Post #27
    Dennab
    June 2010
    2,040 Posts
    he might have jinto's physics mod added in. I'm pretty sure either with that and/or console commands you can change the maxangvel and maxvel Because maxangvel is usually like 3500, which is ~580rpm

  28. Post #28
    Gold Member
    Falcqn's Avatar
    July 2010
    3,040 Posts
    You don't need Jinto's physics mod to change the maximum velocity / rotational velocity.
    IIRC they were actually included in Garry's mod a while ago along with his render library which allows for clipping etc.

  29. Post #29
    BadZzch's Avatar
    February 2011
    51 Posts
    I'm using NO mods, I used {{{{{{{where_is_your_god_now's egp displayed engine monitor}}}}}}}} Man I can never cut a break can I, God forbid it said I was at 800 rpm ha ha pun -_- What exactly does Jinto's mod do, now you've got me curious.
    BTW I can show this very reading in Crystal Storm build if you want to see. I'm usually in there late in the day. IT clearly said 800rpm.

    and anyhow, heres a vid :P

  30. Post #30
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    Code:
    @name RPM
    @inputs
    @outputs RPM
    @persist
    @trigger all
    @model
    
    interval(10)
    
    RPM=abs(entity():angVel():yaw()/6)
    
    setName("RPM is "+round(RPM))
    Use that. Place the chip on the middle of a wheel/rotational object and it will display the RPM in the e2 name. The RPM is completely mathematically perfect.

    Also, congrats on the engine power you're achieving, but it would be far more impressive if you could take the weight of the engine/chassis down and still have enough power to do even a fraction of what you're doing. Source handles torque in a very odd way, in that it's all relative to weight (examples like the wheel tool come to mind).

  31. Post #31
    BadZzch's Avatar
    February 2011
    51 Posts
    Thanks a mill, I'll see what rpms I'm actually putting out. Oh and about the weight... The engine can work at any weight as I ensured that this one didn't require momentum, but even though the vehicles function at low weights, the wheels just spin on top of the ground when trying to pull that weight.

  32. Post #32
    Gold Member
    Dennab
    March 2010
    3,925 Posts
    If what you say is true, and the weights on the engine can become reasonable, then you are actually onto something.

  33. Post #33
    Pringles.'s Avatar
    May 2010
    3,734 Posts
    Use fraps or source recorder to record your videos.
    Reply With Quote Edit / Delete Reply Finland Show Events Agree Agree x 2 (list)

  34. Post #34
    BadZzch's Avatar
    February 2011
    51 Posts
    Alright, I came up with an idea to eliminate slip on lighter vehicles so that I can actually tug similar weights! I was bored and thought of creating an automatic e2 transmission so to speak...

    The pseudo for it is simple..
    if rpm is higher than desired rpm set integer x to (rpm - desired)/desired
    if rpm is less than desired rpm set integer y to (desired - rpm)/rpm // ratio 0 being no loss of force + is otherwise

    if blah blah rpm is higher
    decrement hydro const by force * x
    if blah blah rpm is lower
    increment hydro const by force * y
    _______________________________________________

    This might solve my issue as the car will increase power while maintaining a specific speed... looks like i might have found my trany... Ill post up if it works, i'm confident it will


    OH btw: source recorder freaks out on me, I'll try to look into fraps, and play the vid on 1080 as it looks real decent at that quality

  35. Post #35
    I'm dumb! You don't have an excuse!
    MacTrekkie's Avatar
    July 2009
    5,485 Posts
    Your system is going to go up and down and up and down as it over/under compensates.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1 (list)

  36. Post #36
    Dennab
    June 2010
    2,040 Posts
    Constant = Base + ((SetRPM-RPM)*Correction)
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1 (list)

  37. Post #37
    BadZzch's Avatar
    February 2011
    51 Posts
    Thanks, I noticed that, not sure why I didn't think of that... I did successfully control a light car with the rough e2 which over under compensates and the engine faired the challenge perfectly. The one downside is the major loss of traction still won't allow me to pull much if anything.

    But sorry, but I'm having a stupid moment,
    Now when you speak of the constant and base are you referring to the power amount for the base and sorry if I'm not seeing things strait, I'm confused by the constant as they cant change values yet it is set to =, what is it meant to be?

    example
    if(INPrpm>INTrpmcount){
    INTcd[power]=INTcd[power]+((INTrpmcount[desired]-INPrpm[actual])*INTrpmu[ratio mentioned above])}

  38. Post #38
    Dennab
    June 2010
    2,040 Posts
    Thanks, I noticed that, not sure why I didn't think of that... I did successfully control a light car with the rough e2 which over under compensates and the engine faired the challenge perfectly. The one downside is the major loss of traction still won't allow me to pull much if anything.

    But sorry, but I'm having a stupid moment,
    Now when you speak of the constant and base are you referring to the power amount for the base and sorry if I'm not seeing things strait, I'm confused by the constant as they cant change values yet it is set to =, what is it meant to be?

    example
    if(INPrpm>INTrpmcount){
    INTcd[power]=INTcd[power]+((INTrpmcount[desired]-INPrpm[actual])*INTrpmu[ratio mentioned above])}
    Well, that's one way to do it. What i listed is a basic feedback loop. I use these in literally every single thing I build, as it automatically applies the amount of force you want to achieve a result. It's just straight arithmatic, it can always be enabled.
    Constant = Base + ((SetRPM-RPM)*Correction)

    Constant is the "constant" value of your hydraulic. Base is some set number, usually your average hydraulic's power. SetRPM is how many RPM you want to have. RPM is your RPM, obviously. The value "correction" is how strongly to compensate--whatever number is the highest you can get without a spaz-out.

    So for example, I have a basic constant on a hydraulic of 30000, and a correction value of negative 250--for every single RPM it's off, it increases or decreases by 250. So if I'm 50 rpm above what i want, the value of 100, my constant is
    Constant = 30000 + ((100-150)*-250)

    So it drops my constant value, the strength behind the hydraulic, to 17500. This makes my rpm drop until it reaches, lets say, 25 less rpm than I want.
    Constant = 30000 + ((100-75)*-250)

    Now the constant will become 36250, and it increases power. it will keep increasing or decreasing power according to the difference until it stabilizes at the point you need, give or take maybe 1rpm (my generator engines average 1/10th of an RPM alteration). I use this with applyforce a lot, often without a "basic constant", and still get great results.

  39. Post #39
    BadZzch's Avatar
    February 2011
    51 Posts
    Thanks a lot, this really helped... I actually over thought it and thought the base would be something much more complex, but simplicity is golden! As for the constant, thanks and I feel like an idiot, no duh it would be the set value. I'll go and fix up my engine thank you very much.
    Reply With Quote Edit / Delete Reply United States Show Events Friendly Friendly x 1 (list)

  40. Post #40
    xroblade's Avatar
    August 2008
    516 Posts
    Are you controlling desired rpm with vehicle speed?